From 4ade5854449e9497ff8d50dfaab738bc3324bb77 Mon Sep 17 00:00:00 2001 From: Expand-sys Date: Fri, 18 Jun 2021 09:22:40 +1000 Subject: [PATCH] half new patch --- views/Dockerfile | 6 - views/config/admin.js | 12 - views/config/auth.js | 10 - views/helpers/functions.js | 13 - views/node_modules/.bin/acorn | 1 - views/node_modules/.bin/mime | 1 - views/node_modules/.bin/parser | 1 - views/node_modules/.package-lock.json | 1696 -- .../helper-validator-identifier/LICENSE | 22 - .../helper-validator-identifier/README.md | 19 - .../lib/identifier.js | 77 - .../helper-validator-identifier/lib/index.js | 57 - .../lib/keyword.js | 38 - .../helper-validator-identifier/package.json | 20 - .../scripts/generate-identifier-regex.js | 75 - views/node_modules/@babel/parser/CHANGELOG.md | 1073 - views/node_modules/@babel/parser/LICENSE | 19 - views/node_modules/@babel/parser/README.md | 19 - .../@babel/parser/bin/babel-parser.js | 15 - views/node_modules/@babel/parser/lib/index.js | 13991 ------------ .../@babel/parser/lib/index.js.map | 1 - views/node_modules/@babel/parser/package.json | 42 - .../@babel/parser/typings/babel-parser.d.ts | 174 - views/node_modules/@babel/types/LICENSE | 22 - views/node_modules/@babel/types/README.md | 19 - .../@babel/types/lib/asserts/assertNode.js | 19 - .../types/lib/asserts/generated/index.js | 1479 -- .../types/lib/ast-types/generated/index.js | 0 .../@babel/types/lib/builders/builder.js | 44 - .../lib/builders/flow/createFlowUnionType.js | 22 - .../flow/createTypeAnnotationBasedOnTypeof.js | 30 - .../types/lib/builders/generated/index.js | 1248 -- .../types/lib/builders/generated/uppercase.js | 1489 -- .../types/lib/builders/react/buildChildren.js | 31 - .../builders/typescript/createTSUnionType.js | 23 - .../@babel/types/lib/clone/clone.js | 14 - .../@babel/types/lib/clone/cloneDeep.js | 14 - .../types/lib/clone/cloneDeepWithoutLoc.js | 14 - .../@babel/types/lib/clone/cloneNode.js | 103 - .../@babel/types/lib/clone/cloneWithoutLoc.js | 14 - .../@babel/types/lib/comments/addComment.js | 17 - .../@babel/types/lib/comments/addComments.js | 23 - .../lib/comments/inheritInnerComments.js | 14 - .../lib/comments/inheritLeadingComments.js | 14 - .../lib/comments/inheritTrailingComments.js | 14 - .../types/lib/comments/inheritsComments.js | 21 - .../types/lib/comments/removeComments.js | 16 - .../types/lib/constants/generated/index.js | 99 - .../@babel/types/lib/constants/index.js | 49 - .../@babel/types/lib/converters/Scope.js | 0 .../types/lib/converters/ensureBlock.js | 14 - .../converters/gatherSequenceExpressions.js | 77 - .../lib/converters/toBindingIdentifierName.js | 16 - .../@babel/types/lib/converters/toBlock.js | 34 - .../types/lib/converters/toComputedKey.js | 15 - .../types/lib/converters/toExpression.js | 33 - .../types/lib/converters/toIdentifier.js | 32 - .../@babel/types/lib/converters/toKeyAlias.js | 48 - .../lib/converters/toSequenceExpression.js | 23 - .../types/lib/converters/toStatement.js | 47 - .../types/lib/converters/valueToNode.js | 93 - .../@babel/types/lib/definitions/core.js | 1489 -- .../types/lib/definitions/experimental.js | 213 - .../@babel/types/lib/definitions/flow.js | 467 - .../@babel/types/lib/definitions/index.js | 95 - .../@babel/types/lib/definitions/jsx.js | 165 - .../@babel/types/lib/definitions/misc.js | 35 - .../types/lib/definitions/placeholders.js | 33 - .../types/lib/definitions/typescript.js | 433 - .../@babel/types/lib/definitions/utils.js | 326 - .../@babel/types/lib/index-legacy.d.ts | 2634 --- .../node_modules/@babel/types/lib/index.d.ts | 2920 --- views/node_modules/@babel/types/lib/index.js | 654 - .../@babel/types/lib/index.js.flow | 2495 --- .../modifications/appendToMemberExpression.js | 15 - .../flow/removeTypeDuplicates.js | 78 - .../types/lib/modifications/inherits.js | 33 - .../prependToMemberExpression.js | 13 - .../lib/modifications/removeProperties.js | 30 - .../lib/modifications/removePropertiesDeep.js | 17 - .../typescript/removeTypeDuplicates.js | 54 - .../lib/retrievers/getBindingIdentifiers.js | 103 - .../retrievers/getOuterBindingIdentifiers.js | 17 - .../@babel/types/lib/traverse/traverse.js | 55 - .../@babel/types/lib/traverse/traverseFast.js | 28 - .../@babel/types/lib/utils/inherit.js | 12 - .../react/cleanJSXElementLiteralChild.js | 47 - .../@babel/types/lib/utils/shallowEqual.js | 18 - .../validators/buildMatchMemberExpression.js | 15 - .../types/lib/validators/generated/index.js | 4685 ---- .../@babel/types/lib/validators/is.js | 35 - .../@babel/types/lib/validators/isBinding.js | 33 - .../types/lib/validators/isBlockScoped.js | 16 - .../types/lib/validators/isImmutable.js | 26 - .../@babel/types/lib/validators/isLet.js | 14 - .../@babel/types/lib/validators/isNode.js | 12 - .../types/lib/validators/isNodesEquivalent.js | 67 - .../types/lib/validators/isPlaceholderType.js | 21 - .../types/lib/validators/isReferenced.js | 116 - .../@babel/types/lib/validators/isScope.js | 20 - .../lib/validators/isSpecifierDefault.js | 14 - .../@babel/types/lib/validators/isType.js | 24 - .../lib/validators/isValidES3Identifier.js | 16 - .../types/lib/validators/isValidIdentifier.js | 20 - .../@babel/types/lib/validators/isVar.js | 16 - .../types/lib/validators/matchesPattern.js | 40 - .../types/lib/validators/react/isCompatTag.js | 10 - .../lib/validators/react/isReactComponent.js | 14 - .../@babel/types/lib/validators/validate.js | 32 - views/node_modules/@babel/types/package.json | 37 - .../types/scripts/generators/asserts.js | 50 - .../types/scripts/generators/ast-types.js | 139 - .../types/scripts/generators/builders.js | 163 - .../types/scripts/generators/constants.js | 15 - .../@babel/types/scripts/generators/docs.js | 115 - .../@babel/types/scripts/generators/flow.js | 260 - .../scripts/generators/typescript-legacy.js | 369 - .../types/scripts/generators/validators.js | 87 - .../@babel/types/scripts/package.json | 1 - .../types/scripts/utils/formatBuilderName.js | 8 - .../@babel/types/scripts/utils/lowerFirst.js | 3 - .../types/scripts/utils/stringifyValidator.js | 66 - .../types/scripts/utils/toFunctionName.js | 4 - .../@sindresorhus/is/dist/index.d.ts | 220 - .../@sindresorhus/is/dist/index.js | 410 - .../@sindresorhus/is/dist/types.d.ts | 24 - .../@sindresorhus/is/dist/types.js | 3 - views/node_modules/@sindresorhus/is/license | 9 - .../@sindresorhus/is/package.json | 96 - views/node_modules/@sindresorhus/is/readme.md | 602 - .../@szmarczak/http-timer/LICENSE | 21 - .../@szmarczak/http-timer/README.md | 89 - .../http-timer/dist/source/index.d.ts | 32 - .../http-timer/dist/source/index.js | 117 - .../@szmarczak/http-timer/package.json | 74 - views/node_modules/@types/bson/LICENSE | 21 - views/node_modules/@types/bson/README.md | 16 - views/node_modules/@types/bson/index.d.ts | 600 - views/node_modules/@types/bson/package.json | 41 - .../@types/cacheable-request/LICENSE | 21 - .../@types/cacheable-request/README.md | 16 - .../@types/cacheable-request/index.d.ts | 137 - .../@types/cacheable-request/package.json | 34 - .../@types/http-cache-semantics/LICENSE | 21 - .../@types/http-cache-semantics/README.md | 16 - .../@types/http-cache-semantics/index.d.ts | 170 - .../@types/http-cache-semantics/package.json | 23 - views/node_modules/@types/keyv/LICENSE | 21 - views/node_modules/@types/keyv/README.md | 16 - views/node_modules/@types/keyv/index.d.ts | 70 - views/node_modules/@types/keyv/package.json | 31 - views/node_modules/@types/mongodb/LICENSE | 21 - views/node_modules/@types/mongodb/README.md | 16 - views/node_modules/@types/mongodb/index.d.ts | 3427 --- .../node_modules/@types/mongodb/package.json | 187 - views/node_modules/@types/node/LICENSE | 21 - views/node_modules/@types/node/README.md | 16 - views/node_modules/@types/node/assert.d.ts | 129 - .../node_modules/@types/node/async_hooks.d.ts | 233 - views/node_modules/@types/node/base.d.ts | 19 - views/node_modules/@types/node/buffer.d.ts | 26 - .../@types/node/child_process.d.ts | 514 - views/node_modules/@types/node/cluster.d.ts | 266 - views/node_modules/@types/node/console.d.ts | 137 - views/node_modules/@types/node/constants.d.ts | 19 - views/node_modules/@types/node/crypto.d.ts | 1176 - views/node_modules/@types/node/dgram.d.ts | 145 - views/node_modules/@types/node/dns.d.ts | 384 - views/node_modules/@types/node/domain.d.ts | 28 - views/node_modules/@types/node/events.d.ts | 83 - views/node_modules/@types/node/fs.d.ts | 2262 -- .../node_modules/@types/node/fs/promises.d.ts | 561 - views/node_modules/@types/node/globals.d.ts | 614 - .../@types/node/globals.global.d.ts | 1 - views/node_modules/@types/node/http.d.ts | 427 - views/node_modules/@types/node/http2.d.ts | 962 - views/node_modules/@types/node/https.d.ts | 40 - views/node_modules/@types/node/index.d.ts | 59 - views/node_modules/@types/node/inspector.d.ts | 3048 --- views/node_modules/@types/node/module.d.ts | 57 - views/node_modules/@types/node/net.d.ts | 289 - views/node_modules/@types/node/os.d.ts | 243 - views/node_modules/@types/node/package.json | 236 - views/node_modules/@types/node/path.d.ts | 158 - .../node_modules/@types/node/perf_hooks.d.ts | 275 - views/node_modules/@types/node/process.d.ts | 412 - views/node_modules/@types/node/punycode.d.ts | 86 - .../node_modules/@types/node/querystring.d.ts | 32 - views/node_modules/@types/node/readline.d.ts | 174 - views/node_modules/@types/node/repl.d.ts | 399 - views/node_modules/@types/node/stream.d.ts | 359 - .../@types/node/string_decoder.d.ts | 11 - views/node_modules/@types/node/timers.d.ts | 20 - views/node_modules/@types/node/tls.d.ts | 783 - .../@types/node/trace_events.d.ts | 65 - .../@types/node/ts3.6/assert.d.ts | 103 - .../node_modules/@types/node/ts3.6/base.d.ts | 61 - .../node_modules/@types/node/ts3.6/index.d.ts | 7 - views/node_modules/@types/node/tty.d.ts | 70 - views/node_modules/@types/node/url.d.ts | 120 - views/node_modules/@types/node/util.d.ts | 211 - views/node_modules/@types/node/v8.d.ts | 191 - views/node_modules/@types/node/vm.d.ts | 156 - views/node_modules/@types/node/wasi.d.ts | 90 - .../@types/node/worker_threads.d.ts | 242 - views/node_modules/@types/node/zlib.d.ts | 365 - .../node_modules/@types/responselike/LICENSE | 21 - .../@types/responselike/README.md | 16 - .../@types/responselike/index.d.ts | 34 - .../@types/responselike/package.json | 25 - views/node_modules/@types/validator/LICENSE | 21 - views/node_modules/@types/validator/README.md | 16 - .../@types/validator/es/lib/blacklist.d.ts | 2 - .../@types/validator/es/lib/contains.d.ts | 2 - .../@types/validator/es/lib/equals.d.ts | 2 - .../@types/validator/es/lib/escape.d.ts | 2 - .../@types/validator/es/lib/isAfter.d.ts | 2 - .../@types/validator/es/lib/isAlpha.d.ts | 3 - .../validator/es/lib/isAlphanumeric.d.ts | 3 - .../@types/validator/es/lib/isAscii.d.ts | 2 - .../@types/validator/es/lib/isBIC.d.ts | 2 - .../@types/validator/es/lib/isBase32.d.ts | 2 - .../@types/validator/es/lib/isBase64.d.ts | 2 - .../@types/validator/es/lib/isBefore.d.ts | 2 - .../@types/validator/es/lib/isBoolean.d.ts | 2 - .../@types/validator/es/lib/isBtcAddress.d.ts | 2 - .../@types/validator/es/lib/isByteLength.d.ts | 3 - .../@types/validator/es/lib/isCreditCard.d.ts | 2 - .../@types/validator/es/lib/isCurrency.d.ts | 3 - .../@types/validator/es/lib/isDataURI.d.ts | 2 - .../@types/validator/es/lib/isDate.d.ts | 2 - .../@types/validator/es/lib/isDecimal.d.ts | 4 - .../validator/es/lib/isDivisibleBy.d.ts | 2 - .../@types/validator/es/lib/isEAN.d.ts | 2 - .../@types/validator/es/lib/isEmail.d.ts | 3 - .../@types/validator/es/lib/isEmpty.d.ts | 3 - .../validator/es/lib/isEthereumAddress.d.ts | 2 - .../@types/validator/es/lib/isFQDN.d.ts | 3 - .../@types/validator/es/lib/isFloat.d.ts | 4 - .../@types/validator/es/lib/isFullWidth.d.ts | 2 - .../@types/validator/es/lib/isHSL.d.ts | 2 - .../@types/validator/es/lib/isHalfWidth.d.ts | 2 - .../@types/validator/es/lib/isHash.d.ts | 3 - .../@types/validator/es/lib/isHexColor.d.ts | 2 - .../validator/es/lib/isHexadecimal.d.ts | 2 - .../@types/validator/es/lib/isIBAN.d.ts | 2 - .../@types/validator/es/lib/isIP.d.ts | 3 - .../@types/validator/es/lib/isIPRange.d.ts | 3 - .../@types/validator/es/lib/isISBN.d.ts | 3 - .../@types/validator/es/lib/isISIN.d.ts | 2 - .../validator/es/lib/isISO31661Alpha2.d.ts | 2 - .../validator/es/lib/isISO31661Alpha3.d.ts | 2 - .../@types/validator/es/lib/isISO8601.d.ts | 3 - .../@types/validator/es/lib/isISRC.d.ts | 2 - .../@types/validator/es/lib/isISSN.d.ts | 3 - .../validator/es/lib/isIdentityCard.d.ts | 3 - .../@types/validator/es/lib/isIn.d.ts | 2 - .../@types/validator/es/lib/isInt.d.ts | 3 - .../@types/validator/es/lib/isJSON.d.ts | 2 - .../@types/validator/es/lib/isJWT.d.ts | 2 - .../@types/validator/es/lib/isLatLong.d.ts | 2 - .../@types/validator/es/lib/isLength.d.ts | 3 - .../@types/validator/es/lib/isLocale.d.ts | 2 - .../@types/validator/es/lib/isLowercase.d.ts | 2 - .../@types/validator/es/lib/isMACAddress.d.ts | 3 - .../@types/validator/es/lib/isMD5.d.ts | 2 - .../@types/validator/es/lib/isMagnetURI.d.ts | 2 - .../@types/validator/es/lib/isMimeType.d.ts | 2 - .../validator/es/lib/isMobilePhone.d.ts | 4 - .../@types/validator/es/lib/isMongoId.d.ts | 2 - .../@types/validator/es/lib/isMultibyte.d.ts | 2 - .../@types/validator/es/lib/isNumeric.d.ts | 3 - .../@types/validator/es/lib/isOctal.d.ts | 2 - .../validator/es/lib/isPassportNumber.d.ts | 2 - .../@types/validator/es/lib/isPort.d.ts | 2 - .../@types/validator/es/lib/isPostalCode.d.ts | 3 - .../@types/validator/es/lib/isRFC3339.d.ts | 2 - .../@types/validator/es/lib/isRgbColor.d.ts | 2 - .../@types/validator/es/lib/isSemVer.d.ts | 2 - .../@types/validator/es/lib/isSlug.d.ts | 2 - .../validator/es/lib/isStrongPassword.d.ts | 2 - .../validator/es/lib/isSurrogatePair.d.ts | 2 - .../@types/validator/es/lib/isURL.d.ts | 3 - .../@types/validator/es/lib/isUUID.d.ts | 3 - .../@types/validator/es/lib/isUppercase.d.ts | 2 - .../validator/es/lib/isVariableWidth.d.ts | 2 - .../validator/es/lib/isWhitelisted.d.ts | 2 - .../@types/validator/es/lib/ltrim.d.ts | 2 - .../@types/validator/es/lib/matches.d.ts | 2 - .../validator/es/lib/normalizeEmail.d.ts | 3 - .../@types/validator/es/lib/rtrim.d.ts | 2 - .../@types/validator/es/lib/stripLow.d.ts | 2 - .../@types/validator/es/lib/toBoolean.d.ts | 2 - .../@types/validator/es/lib/toDate.d.ts | 2 - .../@types/validator/es/lib/toFloat.d.ts | 2 - .../@types/validator/es/lib/toInt.d.ts | 2 - .../@types/validator/es/lib/trim.d.ts | 2 - .../@types/validator/es/lib/unescape.d.ts | 2 - .../@types/validator/es/lib/whitelist.d.ts | 2 - .../node_modules/@types/validator/index.d.ts | 1357 -- .../@types/validator/lib/blacklist.d.ts | 2 - .../@types/validator/lib/contains.d.ts | 2 - .../@types/validator/lib/equals.d.ts | 2 - .../@types/validator/lib/escape.d.ts | 2 - .../@types/validator/lib/isAfter.d.ts | 2 - .../@types/validator/lib/isAlpha.d.ts | 3 - .../@types/validator/lib/isAlphanumeric.d.ts | 3 - .../@types/validator/lib/isAscii.d.ts | 2 - .../@types/validator/lib/isBIC.d.ts | 2 - .../@types/validator/lib/isBase32.d.ts | 2 - .../@types/validator/lib/isBase64.d.ts | 2 - .../@types/validator/lib/isBefore.d.ts | 2 - .../@types/validator/lib/isBoolean.d.ts | 2 - .../@types/validator/lib/isBtcAddress.d.ts | 2 - .../@types/validator/lib/isByteLength.d.ts | 3 - .../@types/validator/lib/isCreditCard.d.ts | 2 - .../@types/validator/lib/isCurrency.d.ts | 3 - .../@types/validator/lib/isDataURI.d.ts | 2 - .../@types/validator/lib/isDate.d.ts | 2 - .../@types/validator/lib/isDecimal.d.ts | 4 - .../@types/validator/lib/isDivisibleBy.d.ts | 2 - .../@types/validator/lib/isEAN.d.ts | 2 - .../@types/validator/lib/isEmail.d.ts | 3 - .../@types/validator/lib/isEmpty.d.ts | 3 - .../validator/lib/isEthereumAddress.d.ts | 2 - .../@types/validator/lib/isFQDN.d.ts | 3 - .../@types/validator/lib/isFloat.d.ts | 4 - .../@types/validator/lib/isFullWidth.d.ts | 2 - .../@types/validator/lib/isHSL.d.ts | 2 - .../@types/validator/lib/isHalfWidth.d.ts | 2 - .../@types/validator/lib/isHash.d.ts | 3 - .../@types/validator/lib/isHexColor.d.ts | 2 - .../@types/validator/lib/isHexadecimal.d.ts | 2 - .../@types/validator/lib/isIBAN.d.ts | 2 - .../@types/validator/lib/isIP.d.ts | 3 - .../@types/validator/lib/isIPRange.d.ts | 3 - .../@types/validator/lib/isISBN.d.ts | 3 - .../@types/validator/lib/isISIN.d.ts | 2 - .../validator/lib/isISO31661Alpha2.d.ts | 2 - .../validator/lib/isISO31661Alpha3.d.ts | 2 - .../@types/validator/lib/isISO8601.d.ts | 3 - .../@types/validator/lib/isISRC.d.ts | 2 - .../@types/validator/lib/isISSN.d.ts | 3 - .../@types/validator/lib/isIdentityCard.d.ts | 3 - .../@types/validator/lib/isIn.d.ts | 2 - .../@types/validator/lib/isInt.d.ts | 3 - .../@types/validator/lib/isJSON.d.ts | 2 - .../@types/validator/lib/isJWT.d.ts | 2 - .../@types/validator/lib/isLatLong.d.ts | 2 - .../@types/validator/lib/isLength.d.ts | 3 - .../@types/validator/lib/isLocale.d.ts | 2 - .../@types/validator/lib/isLowercase.d.ts | 2 - .../@types/validator/lib/isMACAddress.d.ts | 3 - .../@types/validator/lib/isMD5.d.ts | 2 - .../@types/validator/lib/isMagnetURI.d.ts | 2 - .../@types/validator/lib/isMimeType.d.ts | 2 - .../@types/validator/lib/isMobilePhone.d.ts | 4 - .../@types/validator/lib/isMongoId.d.ts | 2 - .../@types/validator/lib/isMultibyte.d.ts | 2 - .../@types/validator/lib/isNumeric.d.ts | 3 - .../@types/validator/lib/isOctal.d.ts | 2 - .../validator/lib/isPassportNumber.d.ts | 2 - .../@types/validator/lib/isPort.d.ts | 2 - .../@types/validator/lib/isPostalCode.d.ts | 3 - .../@types/validator/lib/isRFC3339.d.ts | 2 - .../@types/validator/lib/isRgbColor.d.ts | 2 - .../@types/validator/lib/isSemVer.d.ts | 2 - .../@types/validator/lib/isSlug.d.ts | 2 - .../validator/lib/isStrongPassword.d.ts | 2 - .../@types/validator/lib/isSurrogatePair.d.ts | 2 - .../@types/validator/lib/isURL.d.ts | 3 - .../@types/validator/lib/isUUID.d.ts | 3 - .../@types/validator/lib/isUppercase.d.ts | 2 - .../@types/validator/lib/isVariableWidth.d.ts | 2 - .../@types/validator/lib/isWhitelisted.d.ts | 2 - .../@types/validator/lib/ltrim.d.ts | 2 - .../@types/validator/lib/matches.d.ts | 2 - .../@types/validator/lib/normalizeEmail.d.ts | 3 - .../@types/validator/lib/rtrim.d.ts | 2 - .../@types/validator/lib/stripLow.d.ts | 2 - .../@types/validator/lib/toBoolean.d.ts | 2 - .../@types/validator/lib/toDate.d.ts | 2 - .../@types/validator/lib/toFloat.d.ts | 2 - .../@types/validator/lib/toInt.d.ts | 2 - .../@types/validator/lib/trim.d.ts | 2 - .../@types/validator/lib/unescape.d.ts | 2 - .../@types/validator/lib/whitelist.d.ts | 2 - .../@types/validator/package.json | 75 - views/node_modules/accepts/HISTORY.md | 236 - views/node_modules/accepts/LICENSE | 23 - views/node_modules/accepts/README.md | 142 - views/node_modules/accepts/index.js | 238 - views/node_modules/accepts/package.json | 47 - views/node_modules/acorn/CHANGELOG.md | 620 - views/node_modules/acorn/LICENSE | 21 - views/node_modules/acorn/README.md | 269 - views/node_modules/acorn/bin/acorn | 4 - views/node_modules/acorn/dist/acorn.d.ts | 209 - views/node_modules/acorn/dist/acorn.js | 5186 ----- views/node_modules/acorn/dist/acorn.js.map | 1 - views/node_modules/acorn/dist/acorn.mjs | 5155 ----- views/node_modules/acorn/dist/acorn.mjs.d.ts | 2 - views/node_modules/acorn/dist/acorn.mjs.map | 1 - views/node_modules/acorn/dist/bin.js | 64 - views/node_modules/acorn/package.json | 35 - views/node_modules/array-flatten/LICENSE | 21 - views/node_modules/array-flatten/README.md | 43 - .../array-flatten/array-flatten.js | 64 - views/node_modules/array-flatten/package.json | 39 - views/node_modules/asap/CHANGES.md | 70 - views/node_modules/asap/LICENSE.md | 21 - views/node_modules/asap/README.md | 237 - views/node_modules/asap/asap.js | 65 - views/node_modules/asap/browser-asap.js | 66 - views/node_modules/asap/browser-raw.js | 223 - views/node_modules/asap/package.json | 58 - views/node_modules/asap/raw.js | 101 - views/node_modules/assert-never/README.md | 39 - views/node_modules/assert-never/index.d.ts | 27 - views/node_modules/assert-never/index.js | 35 - views/node_modules/assert-never/index.ts | 36 - views/node_modules/assert-never/package.json | 28 - views/node_modules/axios/CHANGELOG.md | 685 - views/node_modules/axios/LICENSE | 19 - views/node_modules/axios/README.md | 800 - views/node_modules/axios/UPGRADE_GUIDE.md | 162 - views/node_modules/axios/dist/axios.js | 1756 -- views/node_modules/axios/dist/axios.map | 1 - views/node_modules/axios/dist/axios.min.js | 3 - views/node_modules/axios/dist/axios.min.map | 1 - views/node_modules/axios/index.d.ts | 161 - views/node_modules/axios/index.js | 1 - .../node_modules/axios/lib/adapters/README.md | 37 - views/node_modules/axios/lib/adapters/http.js | 303 - views/node_modules/axios/lib/adapters/xhr.js | 179 - views/node_modules/axios/lib/axios.js | 56 - views/node_modules/axios/lib/cancel/Cancel.js | 19 - .../axios/lib/cancel/CancelToken.js | 57 - .../node_modules/axios/lib/cancel/isCancel.js | 5 - views/node_modules/axios/lib/core/Axios.js | 95 - .../axios/lib/core/InterceptorManager.js | 52 - views/node_modules/axios/lib/core/README.md | 7 - .../axios/lib/core/buildFullPath.js | 20 - .../axios/lib/core/createError.js | 18 - .../axios/lib/core/dispatchRequest.js | 79 - .../axios/lib/core/enhanceError.js | 42 - .../axios/lib/core/mergeConfig.js | 87 - views/node_modules/axios/lib/core/settle.js | 25 - .../axios/lib/core/transformData.js | 20 - views/node_modules/axios/lib/defaults.js | 98 - .../node_modules/axios/lib/helpers/README.md | 7 - views/node_modules/axios/lib/helpers/bind.js | 11 - .../axios/lib/helpers/buildURL.js | 70 - .../axios/lib/helpers/combineURLs.js | 14 - .../node_modules/axios/lib/helpers/cookies.js | 53 - .../axios/lib/helpers/deprecatedMethod.js | 24 - .../axios/lib/helpers/isAbsoluteURL.js | 14 - .../axios/lib/helpers/isAxiosError.js | 11 - .../axios/lib/helpers/isURLSameOrigin.js | 68 - .../axios/lib/helpers/normalizeHeaderName.js | 12 - .../axios/lib/helpers/parseHeaders.js | 53 - .../node_modules/axios/lib/helpers/spread.js | 27 - views/node_modules/axios/lib/utils.js | 351 - views/node_modules/axios/package.json | 86 - views/node_modules/babel-walk/LICENSE.md | 7 - views/node_modules/babel-walk/README.md | 127 - .../node_modules/babel-walk/lib/.tsbuildinfo | 1704 -- .../node_modules/babel-walk/lib/explode.d.ts | 8 - views/node_modules/babel-walk/lib/explode.js | 109 - .../babel-walk/lib/explode.js.map | 1 - views/node_modules/babel-walk/lib/index.d.ts | 24 - views/node_modules/babel-walk/lib/index.js | 136 - .../node_modules/babel-walk/lib/index.js.map | 1 - views/node_modules/babel-walk/lib/test.d.ts | 1 - views/node_modules/babel-walk/lib/test.js | 35 - views/node_modules/babel-walk/lib/test.js.map | 1 - views/node_modules/babel-walk/package.json | 36 - views/node_modules/bl/.jshintrc | 60 - views/node_modules/bl/.travis.yml | 15 - views/node_modules/bl/LICENSE.md | 13 - views/node_modules/bl/README.md | 218 - views/node_modules/bl/bl.js | 392 - views/node_modules/bl/package.json | 35 - views/node_modules/bl/test/indexOf.js | 463 - views/node_modules/bl/test/test.js | 782 - views/node_modules/bluebird/LICENSE | 21 - views/node_modules/bluebird/README.md | 52 - views/node_modules/bluebird/changelog.md | 1 - .../bluebird/js/browser/bluebird.core.js | 3781 ---- .../bluebird/js/browser/bluebird.core.min.js | 31 - .../bluebird/js/browser/bluebird.js | 5623 ----- .../bluebird/js/browser/bluebird.min.js | 31 - views/node_modules/bluebird/js/release/any.js | 21 - .../bluebird/js/release/assert.js | 55 - .../node_modules/bluebird/js/release/async.js | 161 - .../node_modules/bluebird/js/release/bind.js | 67 - .../bluebird/js/release/bluebird.js | 11 - .../bluebird/js/release/call_get.js | 123 - .../bluebird/js/release/cancel.js | 129 - .../bluebird/js/release/catch_filter.js | 42 - .../bluebird/js/release/context.js | 69 - .../bluebird/js/release/debuggability.js | 919 - .../bluebird/js/release/direct_resolve.js | 46 - .../node_modules/bluebird/js/release/each.js | 30 - .../bluebird/js/release/errors.js | 116 - views/node_modules/bluebird/js/release/es5.js | 80 - .../bluebird/js/release/filter.js | 12 - .../bluebird/js/release/finally.js | 146 - .../bluebird/js/release/generators.js | 223 - .../node_modules/bluebird/js/release/join.js | 168 - views/node_modules/bluebird/js/release/map.js | 168 - .../bluebird/js/release/method.js | 55 - .../bluebird/js/release/nodeback.js | 51 - .../bluebird/js/release/nodeify.js | 58 - .../bluebird/js/release/promise.js | 775 - .../bluebird/js/release/promise_array.js | 185 - .../bluebird/js/release/promisify.js | 314 - .../node_modules/bluebird/js/release/props.js | 118 - .../node_modules/bluebird/js/release/queue.js | 73 - .../node_modules/bluebird/js/release/race.js | 49 - .../bluebird/js/release/reduce.js | 172 - .../bluebird/js/release/schedule.js | 61 - .../bluebird/js/release/settle.js | 43 - .../node_modules/bluebird/js/release/some.js | 148 - .../js/release/synchronous_inspection.js | 103 - .../bluebird/js/release/thenables.js | 86 - .../bluebird/js/release/timers.js | 93 - .../node_modules/bluebird/js/release/using.js | 226 - .../node_modules/bluebird/js/release/util.js | 380 - views/node_modules/bluebird/package.json | 77 - views/node_modules/body-parser/HISTORY.md | 609 - views/node_modules/body-parser/LICENSE | 23 - views/node_modules/body-parser/README.md | 443 - views/node_modules/body-parser/index.js | 157 - views/node_modules/body-parser/lib/read.js | 181 - .../body-parser/lib/types/json.js | 230 - .../node_modules/body-parser/lib/types/raw.js | 101 - .../body-parser/lib/types/text.js | 121 - .../body-parser/lib/types/urlencoded.js | 284 - views/node_modules/body-parser/package.json | 52 - views/node_modules/bson/HISTORY.md | 301 - views/node_modules/bson/LICENSE.md | 201 - views/node_modules/bson/README.md | 170 - views/node_modules/bson/bower.json | 26 - views/node_modules/bson/browser_build/bson.js | 18218 ---------------- .../bson/browser_build/package.json | 8 - views/node_modules/bson/index.js | 46 - views/node_modules/bson/lib/bson/binary.js | 384 - views/node_modules/bson/lib/bson/bson.js | 386 - views/node_modules/bson/lib/bson/code.js | 24 - views/node_modules/bson/lib/bson/db_ref.js | 32 - .../node_modules/bson/lib/bson/decimal128.js | 820 - views/node_modules/bson/lib/bson/double.js | 33 - .../bson/lib/bson/float_parser.js | 124 - views/node_modules/bson/lib/bson/int_32.js | 33 - views/node_modules/bson/lib/bson/long.js | 865 - views/node_modules/bson/lib/bson/map.js | 128 - views/node_modules/bson/lib/bson/max_key.js | 14 - views/node_modules/bson/lib/bson/min_key.js | 14 - views/node_modules/bson/lib/bson/objectid.js | 392 - .../bson/lib/bson/parser/calculate_size.js | 255 - .../bson/lib/bson/parser/deserializer.js | 782 - .../bson/lib/bson/parser/serializer.js | 1194 - .../bson/lib/bson/parser/utils.js | 28 - views/node_modules/bson/lib/bson/regexp.js | 33 - views/node_modules/bson/lib/bson/symbol.js | 50 - views/node_modules/bson/lib/bson/timestamp.js | 854 - views/node_modules/bson/package.json | 58 - views/node_modules/bytes/History.md | 87 - views/node_modules/bytes/LICENSE | 23 - views/node_modules/bytes/Readme.md | 126 - views/node_modules/bytes/index.js | 162 - views/node_modules/bytes/package.json | 41 - views/node_modules/cacheable-lookup/LICENSE | 21 - views/node_modules/cacheable-lookup/README.md | 240 - .../node_modules/cacheable-lookup/index.d.ts | 139 - .../cacheable-lookup/package.json | 45 - .../cacheable-lookup/source/index.js | 436 - views/node_modules/cacheable-request/LICENSE | 21 - .../node_modules/cacheable-request/README.md | 206 - .../cacheable-request/package.json | 56 - .../cacheable-request/src/index.js | 251 - views/node_modules/call-bind/.eslintignore | 1 - views/node_modules/call-bind/.eslintrc | 17 - .../call-bind/.github/FUNDING.yml | 12 - views/node_modules/call-bind/.nycrc | 13 - views/node_modules/call-bind/CHANGELOG.md | 42 - views/node_modules/call-bind/LICENSE | 21 - views/node_modules/call-bind/README.md | 2 - views/node_modules/call-bind/callBound.js | 15 - views/node_modules/call-bind/index.js | 47 - views/node_modules/call-bind/package.json | 80 - .../node_modules/call-bind/test/callBound.js | 55 - views/node_modules/call-bind/test/index.js | 66 - views/node_modules/ccash-client-js/README.md | 43 - .../ccash-client-js/dist/CCashClient.d.ts | 23 - .../dist/CCashClient.exceptions.d.ts | 38 - .../dist/CCashClient.exceptions.js | 63 - .../ccash-client-js/dist/CCashClient.js | 194 - .../dist/CCashClient.types.d.ts | 23 - .../ccash-client-js/dist/CCashClient.types.js | 2 - .../ccash-client-js/dist/Exception.d.ts | 2 - .../ccash-client-js/dist/Exception.js | 6 - .../ccash-client-js/dist/User.d.ts | 3 - .../node_modules/ccash-client-js/dist/User.js | 19 - .../ccash-client-js/dist/exceptions.d.ts | 25 - .../ccash-client-js/dist/exceptions.js | 38 - .../ccash-client-js/dist/index.d.ts | 4 - .../ccash-client-js/dist/index.js | 16 - .../ccash-client-js/dist/responses.d.ts | 24 - .../ccash-client-js/dist/responses.js | 50 - .../node_modules/debug/LICENSE | 19 - .../node_modules/debug/README.md | 455 - .../node_modules/debug/package.json | 59 - .../node_modules/debug/src/browser.js | 269 - .../node_modules/debug/src/common.js | 261 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/node.js | 263 - .../ccash-client-js/node_modules/ms/index.js | 162 - .../node_modules/ms/license.md | 21 - .../node_modules/ms/package.json | 37 - .../ccash-client-js/node_modules/ms/readme.md | 60 - .../node_modules/ccash-client-js/package.json | 49 - .../node_modules/character-parser/.npmignore | 2 - views/node_modules/character-parser/LICENSE | 19 - views/node_modules/character-parser/README.md | 177 - views/node_modules/character-parser/index.js | 296 - .../character-parser/package.json | 33 - views/node_modules/class-transformer/LICENSE | 21 - .../node_modules/class-transformer/README.md | 903 - .../bundles/class-transformer.umd.js | 1002 - .../bundles/class-transformer.umd.js.map | 1 - .../bundles/class-transformer.umd.min.js | 2 - .../bundles/class-transformer.umd.min.js.map | 1 - .../class-transformer/cjs/ClassTransformer.js | 69 - .../cjs/ClassTransformer.js.map | 1 - .../class-transformer/cjs/MetadataStorage.js | 211 - .../cjs/MetadataStorage.js.map | 1 - .../cjs/TransformOperationExecutor.js | 449 - .../cjs/TransformOperationExecutor.js.map | 1 - .../cjs/constants/default-options.constant.js | 20 - .../constants/default-options.constant.js.map | 1 - .../cjs/decorators/exclude.decorator.js | 28 - .../cjs/decorators/exclude.decorator.js.map | 1 - .../cjs/decorators/expose.decorator.js | 28 - .../cjs/decorators/expose.decorator.js.map | 1 - .../class-transformer/cjs/decorators/index.js | 20 - .../cjs/decorators/index.js.map | 1 - .../transform-class-to-class.decorator.js | 24 - .../transform-class-to-class.decorator.js.map | 1 - .../transform-class-to-plain.decorator.js | 24 - .../transform-class-to-plain.decorator.js.map | 1 - .../transform-plain-to-class.decorator.js | 24 - .../transform-plain-to-class.decorator.js.map | 1 - .../cjs/decorators/transform.decorator.js | 21 - .../cjs/decorators/transform.decorator.js.map | 1 - .../cjs/decorators/type.decorator.js | 24 - .../cjs/decorators/type.decorator.js.map | 1 - .../class-transformer/cjs/enums/index.js | 14 - .../class-transformer/cjs/enums/index.js.map | 1 - .../cjs/enums/transformation-type.enum.js | 10 - .../cjs/enums/transformation-type.enum.js.map | 1 - .../class-transformer/cjs/index.js | 63 - .../class-transformer/cjs/index.js.map | 1 - .../cjs/interfaces/class-constructor.type.js | 3 - .../interfaces/class-constructor.type.js.map | 1 - .../class-transformer-options.interface.js | 3 - ...class-transformer-options.interface.js.map | 1 - .../exclude-options.interface.js | 3 - .../exclude-options.interface.js.map | 1 - .../expose-options.interface.js | 3 - .../expose-options.interface.js.map | 1 - .../transform-options.interface.js | 3 - .../transform-options.interface.js.map | 1 - ...type-discriminator-descriptor.interface.js | 3 - ...-discriminator-descriptor.interface.js.map | 1 - .../type-options.interface.js | 3 - .../type-options.interface.js.map | 1 - .../class-transformer/cjs/interfaces/index.js | 27 - .../cjs/interfaces/index.js.map | 1 - .../metadata/exclude-metadata.interface.js | 3 - .../exclude-metadata.interface.js.map | 1 - .../metadata/expose-metadata.interface.js | 3 - .../metadata/expose-metadata.interface.js.map | 1 - .../metadata/transform-fn-params.interface.js | 3 - .../transform-fn-params.interface.js.map | 1 - .../metadata/transform-metadata.interface.js | 3 - .../transform-metadata.interface.js.map | 1 - .../metadata/type-metadata.interface.js | 3 - .../metadata/type-metadata.interface.js.map | 1 - .../cjs/interfaces/target-map.interface.js | 3 - .../interfaces/target-map.interface.js.map | 1 - .../interfaces/type-help-options.interface.js | 3 - .../type-help-options.interface.js.map | 1 - .../class-transformer/cjs/storage.js | 9 - .../class-transformer/cjs/storage.js.map | 1 - .../cjs/utils/get-global.util.js | 33 - .../cjs/utils/get-global.util.js.map | 1 - .../cjs/utils/get-global.util.spect.js | 15 - .../cjs/utils/get-global.util.spect.js.map | 1 - .../class-transformer/cjs/utils/index.js | 15 - .../class-transformer/cjs/utils/index.js.map | 1 - .../cjs/utils/is-promise.util.js | 8 - .../cjs/utils/is-promise.util.js.map | 1 - .../esm2015/ClassTransformer.js | 65 - .../esm2015/ClassTransformer.js.map | 1 - .../esm2015/MetadataStorage.js | 207 - .../esm2015/MetadataStorage.js.map | 1 - .../esm2015/TransformOperationExecutor.js | 445 - .../esm2015/TransformOperationExecutor.js.map | 1 - .../constants/default-options.constant.js | 17 - .../constants/default-options.constant.js.map | 1 - .../esm2015/decorators/exclude.decorator.js | 24 - .../decorators/exclude.decorator.js.map | 1 - .../esm2015/decorators/expose.decorator.js | 24 - .../decorators/expose.decorator.js.map | 1 - .../esm2015/decorators/index.js | 8 - .../esm2015/decorators/index.js.map | 1 - .../transform-class-to-class.decorator.js | 20 - .../transform-class-to-class.decorator.js.map | 1 - .../transform-class-to-plain.decorator.js | 20 - .../transform-class-to-plain.decorator.js.map | 1 - .../transform-plain-to-class.decorator.js | 20 - .../transform-plain-to-class.decorator.js.map | 1 - .../esm2015/decorators/transform.decorator.js | 17 - .../decorators/transform.decorator.js.map | 1 - .../esm2015/decorators/type.decorator.js | 20 - .../esm2015/decorators/type.decorator.js.map | 1 - .../class-transformer/esm2015/enums/index.js | 2 - .../esm2015/enums/index.js.map | 1 - .../esm2015/enums/transformation-type.enum.js | 7 - .../enums/transformation-type.enum.js.map | 1 - .../class-transformer/esm2015/index.js | 40 - .../class-transformer/esm2015/index.js.map | 1 - .../interfaces/class-constructor.type.js | 2 - .../interfaces/class-constructor.type.js.map | 1 - .../class-transformer-options.interface.js | 2 - ...class-transformer-options.interface.js.map | 1 - .../exclude-options.interface.js | 2 - .../exclude-options.interface.js.map | 1 - .../expose-options.interface.js | 2 - .../expose-options.interface.js.map | 1 - .../transform-options.interface.js | 2 - .../transform-options.interface.js.map | 1 - ...type-discriminator-descriptor.interface.js | 2 - ...-discriminator-descriptor.interface.js.map | 1 - .../type-options.interface.js | 2 - .../type-options.interface.js.map | 1 - .../esm2015/interfaces/index.js | 15 - .../esm2015/interfaces/index.js.map | 1 - .../metadata/exclude-metadata.interface.js | 2 - .../exclude-metadata.interface.js.map | 1 - .../metadata/expose-metadata.interface.js | 2 - .../metadata/expose-metadata.interface.js.map | 1 - .../metadata/transform-fn-params.interface.js | 2 - .../transform-fn-params.interface.js.map | 1 - .../metadata/transform-metadata.interface.js | 2 - .../transform-metadata.interface.js.map | 1 - .../metadata/type-metadata.interface.js | 2 - .../metadata/type-metadata.interface.js.map | 1 - .../interfaces/target-map.interface.js | 2 - .../interfaces/target-map.interface.js.map | 1 - .../interfaces/type-help-options.interface.js | 2 - .../type-help-options.interface.js.map | 1 - .../class-transformer/esm2015/storage.js | 6 - .../class-transformer/esm2015/storage.js.map | 1 - .../esm2015/utils/get-global.util.js | 29 - .../esm2015/utils/get-global.util.js.map | 1 - .../esm2015/utils/get-global.util.spect.js | 13 - .../utils/get-global.util.spect.js.map | 1 - .../class-transformer/esm2015/utils/index.js | 3 - .../esm2015/utils/index.js.map | 1 - .../esm2015/utils/is-promise.util.js | 4 - .../esm2015/utils/is-promise.util.js.map | 1 - .../esm5/ClassTransformer.js | 62 - .../esm5/ClassTransformer.js.map | 1 - .../class-transformer/esm5/MetadataStorage.js | 212 - .../esm5/MetadataStorage.js.map | 1 - .../esm5/TransformOperationExecutor.js | 459 - .../esm5/TransformOperationExecutor.js.map | 1 - .../constants/default-options.constant.js | 17 - .../constants/default-options.constant.js.map | 1 - .../esm5/decorators/exclude.decorator.js | 25 - .../esm5/decorators/exclude.decorator.js.map | 1 - .../esm5/decorators/expose.decorator.js | 25 - .../esm5/decorators/expose.decorator.js.map | 1 - .../esm5/decorators/index.js | 8 - .../esm5/decorators/index.js.map | 1 - .../transform-class-to-class.decorator.js | 24 - .../transform-class-to-class.decorator.js.map | 1 - .../transform-class-to-plain.decorator.js | 24 - .../transform-class-to-plain.decorator.js.map | 1 - .../transform-plain-to-class.decorator.js | 24 - .../transform-plain-to-class.decorator.js.map | 1 - .../esm5/decorators/transform.decorator.js | 18 - .../decorators/transform.decorator.js.map | 1 - .../esm5/decorators/type.decorator.js | 21 - .../esm5/decorators/type.decorator.js.map | 1 - .../class-transformer/esm5/enums/index.js | 2 - .../class-transformer/esm5/enums/index.js.map | 1 - .../esm5/enums/transformation-type.enum.js | 7 - .../enums/transformation-type.enum.js.map | 1 - .../class-transformer/esm5/index.js | 40 - .../class-transformer/esm5/index.js.map | 1 - .../esm5/interfaces/class-constructor.type.js | 2 - .../interfaces/class-constructor.type.js.map | 1 - .../class-transformer-options.interface.js | 2 - ...class-transformer-options.interface.js.map | 1 - .../exclude-options.interface.js | 2 - .../exclude-options.interface.js.map | 1 - .../expose-options.interface.js | 2 - .../expose-options.interface.js.map | 1 - .../transform-options.interface.js | 2 - .../transform-options.interface.js.map | 1 - ...type-discriminator-descriptor.interface.js | 2 - ...-discriminator-descriptor.interface.js.map | 1 - .../type-options.interface.js | 2 - .../type-options.interface.js.map | 1 - .../esm5/interfaces/index.js | 15 - .../esm5/interfaces/index.js.map | 1 - .../metadata/exclude-metadata.interface.js | 2 - .../exclude-metadata.interface.js.map | 1 - .../metadata/expose-metadata.interface.js | 2 - .../metadata/expose-metadata.interface.js.map | 1 - .../metadata/transform-fn-params.interface.js | 2 - .../transform-fn-params.interface.js.map | 1 - .../metadata/transform-metadata.interface.js | 2 - .../transform-metadata.interface.js.map | 1 - .../metadata/type-metadata.interface.js | 2 - .../metadata/type-metadata.interface.js.map | 1 - .../esm5/interfaces/target-map.interface.js | 2 - .../interfaces/target-map.interface.js.map | 1 - .../interfaces/type-help-options.interface.js | 2 - .../type-help-options.interface.js.map | 1 - .../class-transformer/esm5/storage.js | 6 - .../class-transformer/esm5/storage.js.map | 1 - .../esm5/utils/get-global.util.js | 29 - .../esm5/utils/get-global.util.js.map | 1 - .../esm5/utils/get-global.util.spect.js | 13 - .../esm5/utils/get-global.util.spect.js.map | 1 - .../class-transformer/esm5/utils/index.js | 3 - .../class-transformer/esm5/utils/index.js.map | 1 - .../esm5/utils/is-promise.util.js | 4 - .../esm5/utils/is-promise.util.js.map | 1 - .../class-transformer/package.json | 38 - .../types/ClassTransformer.d.ts | 53 - .../types/MetadataStorage.d.ts | 31 - .../types/TransformOperationExecutor.d.ts | 15 - .../constants/default-options.constant.d.ts | 5 - .../types/decorators/exclude.decorator.d.ts | 9 - .../types/decorators/expose.decorator.d.ts | 9 - .../types/decorators/index.d.ts | 7 - .../transform-class-to-class.decorator.d.ts | 7 - .../transform-class-to-plain.decorator.d.ts | 7 - .../transform-plain-to-class.decorator.d.ts | 7 - .../types/decorators/transform.decorator.d.ts | 7 - .../types/decorators/type.decorator.d.ts | 8 - .../class-transformer/types/enums/index.d.ts | 1 - .../types/enums/transformation-type.enum.d.ts | 5 - .../class-transformer/types/index.d.ts | 55 - .../interfaces/class-constructor.type.d.ts | 3 - .../class-transformer-options.interface.d.ts | 62 - .../exclude-options.interface.d.ts | 13 - .../expose-options.interface.d.ts | 46 - .../transform-options.interface.d.ts | 42 - ...pe-discriminator-descriptor.interface.d.ts | 26 - .../type-options.interface.d.ts | 18 - .../types/interfaces/index.d.ts | 14 - .../metadata/exclude-metadata.interface.d.ts | 17 - .../metadata/expose-metadata.interface.d.ts | 17 - .../transform-fn-params.interface.d.ts | 9 - .../transform-metadata.interface.d.ts | 20 - .../metadata/type-metadata.interface.d.ts | 24 - .../interfaces/target-map.interface.d.ts | 16 - .../type-help-options.interface.d.ts | 5 - .../class-transformer/types/storage.d.ts | 5 - .../types/utils/get-global.util.d.ts | 7 - .../types/utils/get-global.util.spect.d.ts | 1 - .../class-transformer/types/utils/index.d.ts | 2 - .../types/utils/is-promise.util.d.ts | 1 - views/node_modules/class-validator/LICENSE | 22 - views/node_modules/class-validator/README.md | 1013 - .../bundles/class-validator.umd.js | 10083 --------- .../bundles/class-validator.umd.js.map | 1 - .../bundles/class-validator.umd.min.js | 2 - .../bundles/class-validator.umd.min.js.map | 1 - .../class-validator/cjs/container.js | 51 - .../class-validator/cjs/container.js.map | 1 - .../cjs/decorator/ValidationOptions.js | 11 - .../cjs/decorator/ValidationOptions.js.map | 1 - .../cjs/decorator/array/ArrayContains.js | 31 - .../cjs/decorator/array/ArrayContains.js.map | 1 - .../cjs/decorator/array/ArrayMaxSize.js | 29 - .../cjs/decorator/array/ArrayMaxSize.js.map | 1 - .../cjs/decorator/array/ArrayMinSize.js | 29 - .../cjs/decorator/array/ArrayMinSize.js.map | 1 - .../cjs/decorator/array/ArrayNotContains.js | 31 - .../decorator/array/ArrayNotContains.js.map | 1 - .../cjs/decorator/array/ArrayNotEmpty.js | 28 - .../cjs/decorator/array/ArrayNotEmpty.js.map | 1 - .../cjs/decorator/array/ArrayUnique.js | 36 - .../cjs/decorator/array/ArrayUnique.js.map | 1 - .../cjs/decorator/common/Allow.js | 22 - .../cjs/decorator/common/Allow.js.map | 1 - .../cjs/decorator/common/Equals.js | 27 - .../cjs/decorator/common/Equals.js.map | 1 - .../cjs/decorator/common/IsDefined.js | 28 - .../cjs/decorator/common/IsDefined.js.map | 1 - .../cjs/decorator/common/IsEmpty.js | 26 - .../cjs/decorator/common/IsEmpty.js.map | 1 - .../cjs/decorator/common/IsIn.js | 27 - .../cjs/decorator/common/IsIn.js.map | 1 - .../cjs/decorator/common/IsLatLong.js | 30 - .../cjs/decorator/common/IsLatLong.js.map | 1 - .../cjs/decorator/common/IsLatitude.js | 27 - .../cjs/decorator/common/IsLatitude.js.map | 1 - .../cjs/decorator/common/IsLongitude.js | 27 - .../cjs/decorator/common/IsLongitude.js.map | 1 - .../cjs/decorator/common/IsNotEmpty.js | 26 - .../cjs/decorator/common/IsNotEmpty.js.map | 1 - .../cjs/decorator/common/IsNotIn.js | 27 - .../cjs/decorator/common/IsNotIn.js.map | 1 - .../cjs/decorator/common/IsOptional.js | 27 - .../cjs/decorator/common/IsOptional.js.map | 1 - .../cjs/decorator/common/NotEquals.js | 27 - .../cjs/decorator/common/NotEquals.js.map | 1 - .../cjs/decorator/common/Validate.js | 42 - .../cjs/decorator/common/Validate.js.map | 1 - .../cjs/decorator/common/ValidateBy.js | 25 - .../cjs/decorator/common/ValidateBy.js.map | 1 - .../cjs/decorator/common/ValidateIf.js | 23 - .../cjs/decorator/common/ValidateIf.js.map | 1 - .../cjs/decorator/common/ValidateNested.js | 25 - .../decorator/common/ValidateNested.js.map | 1 - .../cjs/decorator/common/ValidatePromise.js | 22 - .../decorator/common/ValidatePromise.js.map | 1 - .../cjs/decorator/date/MaxDate.js | 27 - .../cjs/decorator/date/MaxDate.js.map | 1 - .../cjs/decorator/date/MinDate.js | 27 - .../cjs/decorator/date/MinDate.js.map | 1 - .../cjs/decorator/decorators.js | 143 - .../cjs/decorator/decorators.js.map | 1 - .../cjs/decorator/number/IsDivisibleBy.js | 31 - .../cjs/decorator/number/IsDivisibleBy.js.map | 1 - .../cjs/decorator/number/IsNegative.js | 26 - .../cjs/decorator/number/IsNegative.js.map | 1 - .../cjs/decorator/number/IsPositive.js | 26 - .../cjs/decorator/number/IsPositive.js.map | 1 - .../cjs/decorator/number/Max.js | 27 - .../cjs/decorator/number/Max.js.map | 1 - .../cjs/decorator/number/Min.js | 27 - .../cjs/decorator/number/Min.js.map | 1 - .../cjs/decorator/object/IsInstance.js | 34 - .../cjs/decorator/object/IsInstance.js.map | 1 - .../cjs/decorator/object/IsNotEmptyObject.js | 41 - .../decorator/object/IsNotEmptyObject.js.map | 1 - .../cjs/decorator/string/Contains.js | 33 - .../cjs/decorator/string/Contains.js.map | 1 - .../cjs/decorator/string/IsAlpha.js | 33 - .../cjs/decorator/string/IsAlpha.js.map | 1 - .../cjs/decorator/string/IsAlphanumeric.js | 33 - .../decorator/string/IsAlphanumeric.js.map | 1 - .../cjs/decorator/string/IsAscii.js | 32 - .../cjs/decorator/string/IsAscii.js.map | 1 - .../cjs/decorator/string/IsBIC.js | 32 - .../cjs/decorator/string/IsBIC.js.map | 1 - .../cjs/decorator/string/IsBase32.js | 32 - .../cjs/decorator/string/IsBase32.js.map | 1 - .../cjs/decorator/string/IsBase64.js | 32 - .../cjs/decorator/string/IsBase64.js.map | 1 - .../cjs/decorator/string/IsBooleanString.js | 32 - .../decorator/string/IsBooleanString.js.map | 1 - .../cjs/decorator/string/IsBtcAddress.js | 32 - .../cjs/decorator/string/IsBtcAddress.js.map | 1 - .../cjs/decorator/string/IsByteLength.js | 33 - .../cjs/decorator/string/IsByteLength.js.map | 1 - .../cjs/decorator/string/IsCreditCard.js | 32 - .../cjs/decorator/string/IsCreditCard.js.map | 1 - .../cjs/decorator/string/IsCurrency.js | 33 - .../cjs/decorator/string/IsCurrency.js.map | 1 - .../cjs/decorator/string/IsDataURI.js | 32 - .../cjs/decorator/string/IsDataURI.js.map | 1 - .../cjs/decorator/string/IsDateString.js | 28 - .../cjs/decorator/string/IsDateString.js.map | 1 - .../cjs/decorator/string/IsDecimal.js | 33 - .../cjs/decorator/string/IsDecimal.js.map | 1 - .../cjs/decorator/string/IsEAN.js | 32 - .../cjs/decorator/string/IsEAN.js.map | 1 - .../cjs/decorator/string/IsEmail.js | 33 - .../cjs/decorator/string/IsEmail.js.map | 1 - .../cjs/decorator/string/IsEthereumAddress.js | 32 - .../decorator/string/IsEthereumAddress.js.map | 1 - .../cjs/decorator/string/IsFQDN.js | 33 - .../cjs/decorator/string/IsFQDN.js.map | 1 - .../cjs/decorator/string/IsFirebasePushId.js | 29 - .../decorator/string/IsFirebasePushId.js.map | 1 - .../cjs/decorator/string/IsFullWidth.js | 32 - .../cjs/decorator/string/IsFullWidth.js.map | 1 - .../cjs/decorator/string/IsHSL.js | 34 - .../cjs/decorator/string/IsHSL.js.map | 1 - .../cjs/decorator/string/IsHalfWidth.js | 32 - .../cjs/decorator/string/IsHalfWidth.js.map | 1 - .../cjs/decorator/string/IsHash.js | 35 - .../cjs/decorator/string/IsHash.js.map | 1 - .../cjs/decorator/string/IsHexColor.js | 32 - .../cjs/decorator/string/IsHexColor.js.map | 1 - .../cjs/decorator/string/IsHexadecimal.js | 32 - .../cjs/decorator/string/IsHexadecimal.js.map | 1 - .../cjs/decorator/string/IsIBAN.js | 32 - .../cjs/decorator/string/IsIBAN.js.map | 1 - .../cjs/decorator/string/IsIP.js | 34 - .../cjs/decorator/string/IsIP.js.map | 1 - .../cjs/decorator/string/IsISBN.js | 34 - .../cjs/decorator/string/IsISBN.js.map | 1 - .../cjs/decorator/string/IsISIN.js | 32 - .../cjs/decorator/string/IsISIN.js.map | 1 - .../cjs/decorator/string/IsISO31661Alpha2.js | 30 - .../decorator/string/IsISO31661Alpha2.js.map | 1 - .../cjs/decorator/string/IsISO31661Alpha3.js | 30 - .../decorator/string/IsISO31661Alpha3.js.map | 1 - .../cjs/decorator/string/IsISO8601.js | 35 - .../cjs/decorator/string/IsISO8601.js.map | 1 - .../cjs/decorator/string/IsISRC.js | 32 - .../cjs/decorator/string/IsISRC.js.map | 1 - .../cjs/decorator/string/IsISSN.js | 33 - .../cjs/decorator/string/IsISSN.js.map | 1 - .../cjs/decorator/string/IsIdentityCard.js | 37 - .../decorator/string/IsIdentityCard.js.map | 1 - .../cjs/decorator/string/IsJSON.js | 32 - .../cjs/decorator/string/IsJSON.js.map | 1 - .../cjs/decorator/string/IsJWT.js | 32 - .../cjs/decorator/string/IsJWT.js.map | 1 - .../cjs/decorator/string/IsLocale.js | 32 - .../cjs/decorator/string/IsLocale.js.map | 1 - .../cjs/decorator/string/IsLowercase.js | 32 - .../cjs/decorator/string/IsLowercase.js.map | 1 - .../cjs/decorator/string/IsMacAddress.js | 34 - .../cjs/decorator/string/IsMacAddress.js.map | 1 - .../cjs/decorator/string/IsMagnetURI.js | 32 - .../cjs/decorator/string/IsMagnetURI.js.map | 1 - .../cjs/decorator/string/IsMilitaryTime.js | 33 - .../decorator/string/IsMilitaryTime.js.map | 1 - .../cjs/decorator/string/IsMimeType.js | 32 - .../cjs/decorator/string/IsMimeType.js.map | 1 - .../cjs/decorator/string/IsMobilePhone.js | 49 - .../cjs/decorator/string/IsMobilePhone.js.map | 1 - .../cjs/decorator/string/IsMongoId.js | 32 - .../cjs/decorator/string/IsMongoId.js.map | 1 - .../cjs/decorator/string/IsMultibyte.js | 32 - .../cjs/decorator/string/IsMultibyte.js.map | 1 - .../cjs/decorator/string/IsNumberString.js | 33 - .../decorator/string/IsNumberString.js.map | 1 - .../cjs/decorator/string/IsOctal.js | 32 - .../cjs/decorator/string/IsOctal.js.map | 1 - .../cjs/decorator/string/IsPassportNumber.js | 33 - .../decorator/string/IsPassportNumber.js.map | 1 - .../cjs/decorator/string/IsPhoneNumber.js | 45 - .../cjs/decorator/string/IsPhoneNumber.js.map | 1 - .../cjs/decorator/string/IsPort.js | 30 - .../cjs/decorator/string/IsPort.js.map | 1 - .../cjs/decorator/string/IsPostalCode.js | 35 - .../cjs/decorator/string/IsPostalCode.js.map | 1 - .../cjs/decorator/string/IsRFC3339.js | 32 - .../cjs/decorator/string/IsRFC3339.js.map | 1 - .../cjs/decorator/string/IsRgbColor.js | 35 - .../cjs/decorator/string/IsRgbColor.js.map | 1 - .../cjs/decorator/string/IsSemVer.js | 32 - .../cjs/decorator/string/IsSemVer.js.map | 1 - .../cjs/decorator/string/IsSurrogatePair.js | 32 - .../decorator/string/IsSurrogatePair.js.map | 1 - .../cjs/decorator/string/IsUUID.js | 33 - .../cjs/decorator/string/IsUUID.js.map | 1 - .../cjs/decorator/string/IsUppercase.js | 32 - .../cjs/decorator/string/IsUppercase.js.map | 1 - .../cjs/decorator/string/IsUrl.js | 33 - .../cjs/decorator/string/IsUrl.js.map | 1 - .../cjs/decorator/string/IsVariableWidth.js | 32 - .../decorator/string/IsVariableWidth.js.map | 1 - .../cjs/decorator/string/Length.js | 44 - .../cjs/decorator/string/Length.js.map | 1 - .../cjs/decorator/string/Matches.js | 32 - .../cjs/decorator/string/Matches.js.map | 1 - .../cjs/decorator/string/MaxLength.js | 33 - .../cjs/decorator/string/MaxLength.js.map | 1 - .../cjs/decorator/string/MinLength.js | 33 - .../cjs/decorator/string/MinLength.js.map | 1 - .../cjs/decorator/string/NotContains.js | 33 - .../cjs/decorator/string/NotContains.js.map | 1 - .../cjs/decorator/typechecker/IsArray.js | 26 - .../cjs/decorator/typechecker/IsArray.js.map | 1 - .../cjs/decorator/typechecker/IsBoolean.js | 26 - .../decorator/typechecker/IsBoolean.js.map | 1 - .../cjs/decorator/typechecker/IsDate.js | 26 - .../cjs/decorator/typechecker/IsDate.js.map | 1 - .../cjs/decorator/typechecker/IsEnum.js | 28 - .../cjs/decorator/typechecker/IsEnum.js.map | 1 - .../cjs/decorator/typechecker/IsInt.js | 26 - .../cjs/decorator/typechecker/IsInt.js.map | 1 - .../cjs/decorator/typechecker/IsNumber.js | 45 - .../cjs/decorator/typechecker/IsNumber.js.map | 1 - .../cjs/decorator/typechecker/IsObject.js | 28 - .../cjs/decorator/typechecker/IsObject.js.map | 1 - .../cjs/decorator/typechecker/IsString.js | 26 - .../cjs/decorator/typechecker/IsString.js.map | 1 - .../node_modules/class-validator/cjs/index.js | 77 - .../class-validator/cjs/index.js.map | 1 - .../cjs/metadata/ConstraintMetadata.js | 28 - .../cjs/metadata/ConstraintMetadata.js.map | 1 - .../cjs/metadata/MetadataStorage.js | 137 - .../cjs/metadata/MetadataStorage.js.map | 1 - .../cjs/metadata/ValidationMetadata.js | 40 - .../cjs/metadata/ValidationMetadata.js.map | 1 - .../cjs/metadata/ValidationMetadataArgs.js | 3 - .../metadata/ValidationMetadataArgs.js.map | 1 - .../class-validator/cjs/register-decorator.js | 47 - .../cjs/register-decorator.js.map | 1 - .../cjs/utils/convert-to-array.util.js | 14 - .../cjs/utils/convert-to-array.util.js.map | 1 - .../cjs/utils/get-global.util.js | 33 - .../cjs/utils/get-global.util.js.map | 1 - .../class-validator/cjs/utils/index.js | 16 - .../class-validator/cjs/utils/index.js.map | 1 - .../cjs/utils/is-promise.util.js | 9 - .../cjs/utils/is-promise.util.js.map | 1 - .../cjs/validation-schema/ValidationSchema.js | 3 - .../validation-schema/ValidationSchema.js.map | 1 - .../ValidationSchemaToMetadataTransformer.js | 34 - ...lidationSchemaToMetadataTransformer.js.map | 1 - .../cjs/validation/ValidationArguments.js | 3 - .../cjs/validation/ValidationArguments.js.map | 1 - .../cjs/validation/ValidationError.js | 44 - .../cjs/validation/ValidationError.js.map | 1 - .../cjs/validation/ValidationExecutor.js | 322 - .../cjs/validation/ValidationExecutor.js.map | 1 - .../cjs/validation/ValidationTypes.js | 27 - .../cjs/validation/ValidationTypes.js.map | 1 - .../cjs/validation/ValidationUtils.js | 41 - .../cjs/validation/ValidationUtils.js.map | 1 - .../cjs/validation/Validator.js | 56 - .../cjs/validation/Validator.js.map | 1 - .../ValidatorConstraintInterface.js | 3 - .../ValidatorConstraintInterface.js.map | 1 - .../cjs/validation/ValidatorOptions.js | 3 - .../cjs/validation/ValidatorOptions.js.map | 1 - .../class-validator/esm2015/container.js | 46 - .../class-validator/esm2015/container.js.map | 1 - .../esm2015/decorator/ValidationOptions.js | 7 - .../decorator/ValidationOptions.js.map | 1 - .../esm2015/decorator/array/ArrayContains.js | 26 - .../decorator/array/ArrayContains.js.map | 1 - .../esm2015/decorator/array/ArrayMaxSize.js | 24 - .../decorator/array/ArrayMaxSize.js.map | 1 - .../esm2015/decorator/array/ArrayMinSize.js | 24 - .../decorator/array/ArrayMinSize.js.map | 1 - .../decorator/array/ArrayNotContains.js | 26 - .../decorator/array/ArrayNotContains.js.map | 1 - .../esm2015/decorator/array/ArrayNotEmpty.js | 23 - .../decorator/array/ArrayNotEmpty.js.map | 1 - .../esm2015/decorator/array/ArrayUnique.js | 31 - .../decorator/array/ArrayUnique.js.map | 1 - .../esm2015/decorator/common/Allow.js | 18 - .../esm2015/decorator/common/Allow.js.map | 1 - .../esm2015/decorator/common/Equals.js | 22 - .../esm2015/decorator/common/Equals.js.map | 1 - .../esm2015/decorator/common/IsDefined.js | 23 - .../esm2015/decorator/common/IsDefined.js.map | 1 - .../esm2015/decorator/common/IsEmpty.js | 21 - .../esm2015/decorator/common/IsEmpty.js.map | 1 - .../esm2015/decorator/common/IsIn.js | 22 - .../esm2015/decorator/common/IsIn.js.map | 1 - .../esm2015/decorator/common/IsLatLong.js | 22 - .../esm2015/decorator/common/IsLatLong.js.map | 1 - .../esm2015/decorator/common/IsLatitude.js | 22 - .../decorator/common/IsLatitude.js.map | 1 - .../esm2015/decorator/common/IsLongitude.js | 22 - .../decorator/common/IsLongitude.js.map | 1 - .../esm2015/decorator/common/IsNotEmpty.js | 21 - .../decorator/common/IsNotEmpty.js.map | 1 - .../esm2015/decorator/common/IsNotIn.js | 22 - .../esm2015/decorator/common/IsNotIn.js.map | 1 - .../esm2015/decorator/common/IsOptional.js | 23 - .../decorator/common/IsOptional.js.map | 1 - .../esm2015/decorator/common/NotEquals.js | 22 - .../esm2015/decorator/common/NotEquals.js.map | 1 - .../esm2015/decorator/common/Validate.js | 37 - .../esm2015/decorator/common/Validate.js.map | 1 - .../esm2015/decorator/common/ValidateBy.js | 20 - .../decorator/common/ValidateBy.js.map | 1 - .../esm2015/decorator/common/ValidateIf.js | 19 - .../decorator/common/ValidateIf.js.map | 1 - .../decorator/common/ValidateNested.js | 21 - .../decorator/common/ValidateNested.js.map | 1 - .../decorator/common/ValidatePromise.js | 18 - .../decorator/common/ValidatePromise.js.map | 1 - .../esm2015/decorator/date/MaxDate.js | 22 - .../esm2015/decorator/date/MaxDate.js.map | 1 - .../esm2015/decorator/date/MinDate.js | 22 - .../esm2015/decorator/date/MinDate.js.map | 1 - .../esm2015/decorator/decorators.js | 131 - .../esm2015/decorator/decorators.js.map | 1 - .../esm2015/decorator/number/IsDivisibleBy.js | 23 - .../decorator/number/IsDivisibleBy.js.map | 1 - .../esm2015/decorator/number/IsNegative.js | 21 - .../decorator/number/IsNegative.js.map | 1 - .../esm2015/decorator/number/IsPositive.js | 21 - .../decorator/number/IsPositive.js.map | 1 - .../esm2015/decorator/number/Max.js | 22 - .../esm2015/decorator/number/Max.js.map | 1 - .../esm2015/decorator/number/Min.js | 22 - .../esm2015/decorator/number/Min.js.map | 1 - .../esm2015/decorator/object/IsInstance.js | 29 - .../decorator/object/IsInstance.js.map | 1 - .../decorator/object/IsNotEmptyObject.js | 36 - .../decorator/object/IsNotEmptyObject.js.map | 1 - .../esm2015/decorator/string/Contains.js | 25 - .../esm2015/decorator/string/Contains.js.map | 1 - .../esm2015/decorator/string/IsAlpha.js | 25 - .../esm2015/decorator/string/IsAlpha.js.map | 1 - .../decorator/string/IsAlphanumeric.js | 25 - .../decorator/string/IsAlphanumeric.js.map | 1 - .../esm2015/decorator/string/IsAscii.js | 24 - .../esm2015/decorator/string/IsAscii.js.map | 1 - .../esm2015/decorator/string/IsBIC.js | 24 - .../esm2015/decorator/string/IsBIC.js.map | 1 - .../esm2015/decorator/string/IsBase32.js | 24 - .../esm2015/decorator/string/IsBase32.js.map | 1 - .../esm2015/decorator/string/IsBase64.js | 24 - .../esm2015/decorator/string/IsBase64.js.map | 1 - .../decorator/string/IsBooleanString.js | 24 - .../decorator/string/IsBooleanString.js.map | 1 - .../esm2015/decorator/string/IsBtcAddress.js | 24 - .../decorator/string/IsBtcAddress.js.map | 1 - .../esm2015/decorator/string/IsByteLength.js | 25 - .../decorator/string/IsByteLength.js.map | 1 - .../esm2015/decorator/string/IsCreditCard.js | 24 - .../decorator/string/IsCreditCard.js.map | 1 - .../esm2015/decorator/string/IsCurrency.js | 25 - .../decorator/string/IsCurrency.js.map | 1 - .../esm2015/decorator/string/IsDataURI.js | 24 - .../esm2015/decorator/string/IsDataURI.js.map | 1 - .../esm2015/decorator/string/IsDateString.js | 23 - .../decorator/string/IsDateString.js.map | 1 - .../esm2015/decorator/string/IsDecimal.js | 25 - .../esm2015/decorator/string/IsDecimal.js.map | 1 - .../esm2015/decorator/string/IsEAN.js | 24 - .../esm2015/decorator/string/IsEAN.js.map | 1 - .../esm2015/decorator/string/IsEmail.js | 25 - .../esm2015/decorator/string/IsEmail.js.map | 1 - .../decorator/string/IsEthereumAddress.js | 24 - .../decorator/string/IsEthereumAddress.js.map | 1 - .../esm2015/decorator/string/IsFQDN.js | 25 - .../esm2015/decorator/string/IsFQDN.js.map | 1 - .../decorator/string/IsFirebasePushId.js | 24 - .../decorator/string/IsFirebasePushId.js.map | 1 - .../esm2015/decorator/string/IsFullWidth.js | 24 - .../decorator/string/IsFullWidth.js.map | 1 - .../esm2015/decorator/string/IsHSL.js | 26 - .../esm2015/decorator/string/IsHSL.js.map | 1 - .../esm2015/decorator/string/IsHalfWidth.js | 24 - .../decorator/string/IsHalfWidth.js.map | 1 - .../esm2015/decorator/string/IsHash.js | 27 - .../esm2015/decorator/string/IsHash.js.map | 1 - .../esm2015/decorator/string/IsHexColor.js | 24 - .../decorator/string/IsHexColor.js.map | 1 - .../esm2015/decorator/string/IsHexadecimal.js | 24 - .../decorator/string/IsHexadecimal.js.map | 1 - .../esm2015/decorator/string/IsIBAN.js | 24 - .../esm2015/decorator/string/IsIBAN.js.map | 1 - .../esm2015/decorator/string/IsIP.js | 26 - .../esm2015/decorator/string/IsIP.js.map | 1 - .../esm2015/decorator/string/IsISBN.js | 26 - .../esm2015/decorator/string/IsISBN.js.map | 1 - .../esm2015/decorator/string/IsISIN.js | 24 - .../esm2015/decorator/string/IsISIN.js.map | 1 - .../decorator/string/IsISO31661Alpha2.js | 22 - .../decorator/string/IsISO31661Alpha2.js.map | 1 - .../decorator/string/IsISO31661Alpha3.js | 22 - .../decorator/string/IsISO31661Alpha3.js.map | 1 - .../esm2015/decorator/string/IsISO8601.js | 27 - .../esm2015/decorator/string/IsISO8601.js.map | 1 - .../esm2015/decorator/string/IsISRC.js | 24 - .../esm2015/decorator/string/IsISRC.js.map | 1 - .../esm2015/decorator/string/IsISSN.js | 25 - .../esm2015/decorator/string/IsISSN.js.map | 1 - .../decorator/string/IsIdentityCard.js | 29 - .../decorator/string/IsIdentityCard.js.map | 1 - .../esm2015/decorator/string/IsJSON.js | 24 - .../esm2015/decorator/string/IsJSON.js.map | 1 - .../esm2015/decorator/string/IsJWT.js | 24 - .../esm2015/decorator/string/IsJWT.js.map | 1 - .../esm2015/decorator/string/IsLocale.js | 24 - .../esm2015/decorator/string/IsLocale.js.map | 1 - .../esm2015/decorator/string/IsLowercase.js | 24 - .../decorator/string/IsLowercase.js.map | 1 - .../esm2015/decorator/string/IsMacAddress.js | 26 - .../decorator/string/IsMacAddress.js.map | 1 - .../esm2015/decorator/string/IsMagnetURI.js | 24 - .../decorator/string/IsMagnetURI.js.map | 1 - .../decorator/string/IsMilitaryTime.js | 25 - .../decorator/string/IsMilitaryTime.js.map | 1 - .../esm2015/decorator/string/IsMimeType.js | 24 - .../decorator/string/IsMimeType.js.map | 1 - .../esm2015/decorator/string/IsMobilePhone.js | 41 - .../decorator/string/IsMobilePhone.js.map | 1 - .../esm2015/decorator/string/IsMongoId.js | 24 - .../esm2015/decorator/string/IsMongoId.js.map | 1 - .../esm2015/decorator/string/IsMultibyte.js | 24 - .../decorator/string/IsMultibyte.js.map | 1 - .../decorator/string/IsNumberString.js | 25 - .../decorator/string/IsNumberString.js.map | 1 - .../esm2015/decorator/string/IsOctal.js | 24 - .../esm2015/decorator/string/IsOctal.js.map | 1 - .../decorator/string/IsPassportNumber.js | 25 - .../decorator/string/IsPassportNumber.js.map | 1 - .../esm2015/decorator/string/IsPhoneNumber.js | 40 - .../decorator/string/IsPhoneNumber.js.map | 1 - .../esm2015/decorator/string/IsPort.js | 22 - .../esm2015/decorator/string/IsPort.js.map | 1 - .../esm2015/decorator/string/IsPostalCode.js | 27 - .../decorator/string/IsPostalCode.js.map | 1 - .../esm2015/decorator/string/IsRFC3339.js | 24 - .../esm2015/decorator/string/IsRFC3339.js.map | 1 - .../esm2015/decorator/string/IsRgbColor.js | 27 - .../decorator/string/IsRgbColor.js.map | 1 - .../esm2015/decorator/string/IsSemVer.js | 24 - .../esm2015/decorator/string/IsSemVer.js.map | 1 - .../decorator/string/IsSurrogatePair.js | 24 - .../decorator/string/IsSurrogatePair.js.map | 1 - .../esm2015/decorator/string/IsUUID.js | 25 - .../esm2015/decorator/string/IsUUID.js.map | 1 - .../esm2015/decorator/string/IsUppercase.js | 24 - .../decorator/string/IsUppercase.js.map | 1 - .../esm2015/decorator/string/IsUrl.js | 25 - .../esm2015/decorator/string/IsUrl.js.map | 1 - .../decorator/string/IsVariableWidth.js | 24 - .../decorator/string/IsVariableWidth.js.map | 1 - .../esm2015/decorator/string/Length.js | 36 - .../esm2015/decorator/string/Length.js.map | 1 - .../esm2015/decorator/string/Matches.js | 24 - .../esm2015/decorator/string/Matches.js.map | 1 - .../esm2015/decorator/string/MaxLength.js | 25 - .../esm2015/decorator/string/MaxLength.js.map | 1 - .../esm2015/decorator/string/MinLength.js | 25 - .../esm2015/decorator/string/MinLength.js.map | 1 - .../esm2015/decorator/string/NotContains.js | 25 - .../decorator/string/NotContains.js.map | 1 - .../esm2015/decorator/typechecker/IsArray.js | 21 - .../decorator/typechecker/IsArray.js.map | 1 - .../decorator/typechecker/IsBoolean.js | 21 - .../decorator/typechecker/IsBoolean.js.map | 1 - .../esm2015/decorator/typechecker/IsDate.js | 21 - .../decorator/typechecker/IsDate.js.map | 1 - .../esm2015/decorator/typechecker/IsEnum.js | 23 - .../decorator/typechecker/IsEnum.js.map | 1 - .../esm2015/decorator/typechecker/IsInt.js | 21 - .../decorator/typechecker/IsInt.js.map | 1 - .../esm2015/decorator/typechecker/IsNumber.js | 40 - .../decorator/typechecker/IsNumber.js.map | 1 - .../esm2015/decorator/typechecker/IsObject.js | 23 - .../decorator/typechecker/IsObject.js.map | 1 - .../esm2015/decorator/typechecker/IsString.js | 21 - .../decorator/typechecker/IsString.js.map | 1 - .../class-validator/esm2015/index.js | 60 - .../class-validator/esm2015/index.js.map | 1 - .../esm2015/metadata/ConstraintMetadata.js | 24 - .../metadata/ConstraintMetadata.js.map | 1 - .../esm2015/metadata/MetadataStorage.js | 132 - .../esm2015/metadata/MetadataStorage.js.map | 1 - .../esm2015/metadata/ValidationMetadata.js | 36 - .../metadata/ValidationMetadata.js.map | 1 - .../metadata/ValidationMetadataArgs.js | 2 - .../metadata/ValidationMetadataArgs.js.map | 1 - .../esm2015/register-decorator.js | 43 - .../esm2015/register-decorator.js.map | 1 - .../esm2015/utils/convert-to-array.util.js | 10 - .../utils/convert-to-array.util.js.map | 1 - .../esm2015/utils/get-global.util.js | 29 - .../esm2015/utils/get-global.util.js.map | 1 - .../class-validator/esm2015/utils/index.js | 4 - .../esm2015/utils/index.js.map | 1 - .../esm2015/utils/is-promise.util.js | 5 - .../esm2015/utils/is-promise.util.js.map | 1 - .../validation-schema/ValidationSchema.js | 2 - .../validation-schema/ValidationSchema.js.map | 1 - .../ValidationSchemaToMetadataTransformer.js | 30 - ...lidationSchemaToMetadataTransformer.js.map | 1 - .../esm2015/validation/ValidationArguments.js | 2 - .../validation/ValidationArguments.js.map | 1 - .../esm2015/validation/ValidationError.js | 40 - .../esm2015/validation/ValidationError.js.map | 1 - .../esm2015/validation/ValidationExecutor.js | 318 - .../validation/ValidationExecutor.js.map | 1 - .../esm2015/validation/ValidationTypes.js | 23 - .../esm2015/validation/ValidationTypes.js.map | 1 - .../esm2015/validation/ValidationUtils.js | 36 - .../esm2015/validation/ValidationUtils.js.map | 1 - .../esm2015/validation/Validator.js | 52 - .../esm2015/validation/Validator.js.map | 1 - .../ValidatorConstraintInterface.js | 2 - .../ValidatorConstraintInterface.js.map | 1 - .../esm2015/validation/ValidatorOptions.js | 2 - .../validation/ValidatorOptions.js.map | 1 - .../class-validator/esm5/container.js | 47 - .../class-validator/esm5/container.js.map | 1 - .../esm5/decorator/ValidationOptions.js | 7 - .../esm5/decorator/ValidationOptions.js.map | 1 - .../esm5/decorator/array/ArrayContains.js | 26 - .../esm5/decorator/array/ArrayContains.js.map | 1 - .../esm5/decorator/array/ArrayMaxSize.js | 24 - .../esm5/decorator/array/ArrayMaxSize.js.map | 1 - .../esm5/decorator/array/ArrayMinSize.js | 24 - .../esm5/decorator/array/ArrayMinSize.js.map | 1 - .../esm5/decorator/array/ArrayNotContains.js | 26 - .../decorator/array/ArrayNotContains.js.map | 1 - .../esm5/decorator/array/ArrayNotEmpty.js | 23 - .../esm5/decorator/array/ArrayNotEmpty.js.map | 1 - .../esm5/decorator/array/ArrayUnique.js | 31 - .../esm5/decorator/array/ArrayUnique.js.map | 1 - .../esm5/decorator/common/Allow.js | 18 - .../esm5/decorator/common/Allow.js.map | 1 - .../esm5/decorator/common/Equals.js | 22 - .../esm5/decorator/common/Equals.js.map | 1 - .../esm5/decorator/common/IsDefined.js | 23 - .../esm5/decorator/common/IsDefined.js.map | 1 - .../esm5/decorator/common/IsEmpty.js | 21 - .../esm5/decorator/common/IsEmpty.js.map | 1 - .../esm5/decorator/common/IsIn.js | 22 - .../esm5/decorator/common/IsIn.js.map | 1 - .../esm5/decorator/common/IsLatLong.js | 22 - .../esm5/decorator/common/IsLatLong.js.map | 1 - .../esm5/decorator/common/IsLatitude.js | 22 - .../esm5/decorator/common/IsLatitude.js.map | 1 - .../esm5/decorator/common/IsLongitude.js | 22 - .../esm5/decorator/common/IsLongitude.js.map | 1 - .../esm5/decorator/common/IsNotEmpty.js | 21 - .../esm5/decorator/common/IsNotEmpty.js.map | 1 - .../esm5/decorator/common/IsNotIn.js | 22 - .../esm5/decorator/common/IsNotIn.js.map | 1 - .../esm5/decorator/common/IsOptional.js | 23 - .../esm5/decorator/common/IsOptional.js.map | 1 - .../esm5/decorator/common/NotEquals.js | 22 - .../esm5/decorator/common/NotEquals.js.map | 1 - .../esm5/decorator/common/Validate.js | 37 - .../esm5/decorator/common/Validate.js.map | 1 - .../esm5/decorator/common/ValidateBy.js | 20 - .../esm5/decorator/common/ValidateBy.js.map | 1 - .../esm5/decorator/common/ValidateIf.js | 19 - .../esm5/decorator/common/ValidateIf.js.map | 1 - .../esm5/decorator/common/ValidateNested.js | 32 - .../decorator/common/ValidateNested.js.map | 1 - .../esm5/decorator/common/ValidatePromise.js | 18 - .../decorator/common/ValidatePromise.js.map | 1 - .../esm5/decorator/date/MaxDate.js | 22 - .../esm5/decorator/date/MaxDate.js.map | 1 - .../esm5/decorator/date/MinDate.js | 22 - .../esm5/decorator/date/MinDate.js.map | 1 - .../esm5/decorator/decorators.js | 131 - .../esm5/decorator/decorators.js.map | 1 - .../esm5/decorator/number/IsDivisibleBy.js | 23 - .../decorator/number/IsDivisibleBy.js.map | 1 - .../esm5/decorator/number/IsNegative.js | 21 - .../esm5/decorator/number/IsNegative.js.map | 1 - .../esm5/decorator/number/IsPositive.js | 21 - .../esm5/decorator/number/IsPositive.js.map | 1 - .../esm5/decorator/number/Max.js | 22 - .../esm5/decorator/number/Max.js.map | 1 - .../esm5/decorator/number/Min.js | 22 - .../esm5/decorator/number/Min.js.map | 1 - .../esm5/decorator/object/IsInstance.js | 29 - .../esm5/decorator/object/IsInstance.js.map | 1 - .../esm5/decorator/object/IsNotEmptyObject.js | 36 - .../decorator/object/IsNotEmptyObject.js.map | 1 - .../esm5/decorator/string/Contains.js | 25 - .../esm5/decorator/string/Contains.js.map | 1 - .../esm5/decorator/string/IsAlpha.js | 25 - .../esm5/decorator/string/IsAlpha.js.map | 1 - .../esm5/decorator/string/IsAlphanumeric.js | 25 - .../decorator/string/IsAlphanumeric.js.map | 1 - .../esm5/decorator/string/IsAscii.js | 24 - .../esm5/decorator/string/IsAscii.js.map | 1 - .../esm5/decorator/string/IsBIC.js | 24 - .../esm5/decorator/string/IsBIC.js.map | 1 - .../esm5/decorator/string/IsBase32.js | 24 - .../esm5/decorator/string/IsBase32.js.map | 1 - .../esm5/decorator/string/IsBase64.js | 24 - .../esm5/decorator/string/IsBase64.js.map | 1 - .../esm5/decorator/string/IsBooleanString.js | 24 - .../decorator/string/IsBooleanString.js.map | 1 - .../esm5/decorator/string/IsBtcAddress.js | 24 - .../esm5/decorator/string/IsBtcAddress.js.map | 1 - .../esm5/decorator/string/IsByteLength.js | 25 - .../esm5/decorator/string/IsByteLength.js.map | 1 - .../esm5/decorator/string/IsCreditCard.js | 24 - .../esm5/decorator/string/IsCreditCard.js.map | 1 - .../esm5/decorator/string/IsCurrency.js | 25 - .../esm5/decorator/string/IsCurrency.js.map | 1 - .../esm5/decorator/string/IsDataURI.js | 24 - .../esm5/decorator/string/IsDataURI.js.map | 1 - .../esm5/decorator/string/IsDateString.js | 23 - .../esm5/decorator/string/IsDateString.js.map | 1 - .../esm5/decorator/string/IsDecimal.js | 25 - .../esm5/decorator/string/IsDecimal.js.map | 1 - .../esm5/decorator/string/IsEAN.js | 24 - .../esm5/decorator/string/IsEAN.js.map | 1 - .../esm5/decorator/string/IsEmail.js | 25 - .../esm5/decorator/string/IsEmail.js.map | 1 - .../decorator/string/IsEthereumAddress.js | 24 - .../decorator/string/IsEthereumAddress.js.map | 1 - .../esm5/decorator/string/IsFQDN.js | 25 - .../esm5/decorator/string/IsFQDN.js.map | 1 - .../esm5/decorator/string/IsFirebasePushId.js | 24 - .../decorator/string/IsFirebasePushId.js.map | 1 - .../esm5/decorator/string/IsFullWidth.js | 24 - .../esm5/decorator/string/IsFullWidth.js.map | 1 - .../esm5/decorator/string/IsHSL.js | 26 - .../esm5/decorator/string/IsHSL.js.map | 1 - .../esm5/decorator/string/IsHalfWidth.js | 24 - .../esm5/decorator/string/IsHalfWidth.js.map | 1 - .../esm5/decorator/string/IsHash.js | 27 - .../esm5/decorator/string/IsHash.js.map | 1 - .../esm5/decorator/string/IsHexColor.js | 24 - .../esm5/decorator/string/IsHexColor.js.map | 1 - .../esm5/decorator/string/IsHexadecimal.js | 24 - .../decorator/string/IsHexadecimal.js.map | 1 - .../esm5/decorator/string/IsIBAN.js | 24 - .../esm5/decorator/string/IsIBAN.js.map | 1 - .../esm5/decorator/string/IsIP.js | 26 - .../esm5/decorator/string/IsIP.js.map | 1 - .../esm5/decorator/string/IsISBN.js | 26 - .../esm5/decorator/string/IsISBN.js.map | 1 - .../esm5/decorator/string/IsISIN.js | 24 - .../esm5/decorator/string/IsISIN.js.map | 1 - .../esm5/decorator/string/IsISO31661Alpha2.js | 22 - .../decorator/string/IsISO31661Alpha2.js.map | 1 - .../esm5/decorator/string/IsISO31661Alpha3.js | 22 - .../decorator/string/IsISO31661Alpha3.js.map | 1 - .../esm5/decorator/string/IsISO8601.js | 27 - .../esm5/decorator/string/IsISO8601.js.map | 1 - .../esm5/decorator/string/IsISRC.js | 24 - .../esm5/decorator/string/IsISRC.js.map | 1 - .../esm5/decorator/string/IsISSN.js | 25 - .../esm5/decorator/string/IsISSN.js.map | 1 - .../esm5/decorator/string/IsIdentityCard.js | 29 - .../decorator/string/IsIdentityCard.js.map | 1 - .../esm5/decorator/string/IsJSON.js | 24 - .../esm5/decorator/string/IsJSON.js.map | 1 - .../esm5/decorator/string/IsJWT.js | 24 - .../esm5/decorator/string/IsJWT.js.map | 1 - .../esm5/decorator/string/IsLocale.js | 24 - .../esm5/decorator/string/IsLocale.js.map | 1 - .../esm5/decorator/string/IsLowercase.js | 24 - .../esm5/decorator/string/IsLowercase.js.map | 1 - .../esm5/decorator/string/IsMacAddress.js | 26 - .../esm5/decorator/string/IsMacAddress.js.map | 1 - .../esm5/decorator/string/IsMagnetURI.js | 24 - .../esm5/decorator/string/IsMagnetURI.js.map | 1 - .../esm5/decorator/string/IsMilitaryTime.js | 25 - .../decorator/string/IsMilitaryTime.js.map | 1 - .../esm5/decorator/string/IsMimeType.js | 24 - .../esm5/decorator/string/IsMimeType.js.map | 1 - .../esm5/decorator/string/IsMobilePhone.js | 41 - .../decorator/string/IsMobilePhone.js.map | 1 - .../esm5/decorator/string/IsMongoId.js | 24 - .../esm5/decorator/string/IsMongoId.js.map | 1 - .../esm5/decorator/string/IsMultibyte.js | 24 - .../esm5/decorator/string/IsMultibyte.js.map | 1 - .../esm5/decorator/string/IsNumberString.js | 25 - .../decorator/string/IsNumberString.js.map | 1 - .../esm5/decorator/string/IsOctal.js | 24 - .../esm5/decorator/string/IsOctal.js.map | 1 - .../esm5/decorator/string/IsPassportNumber.js | 25 - .../decorator/string/IsPassportNumber.js.map | 1 - .../esm5/decorator/string/IsPhoneNumber.js | 40 - .../decorator/string/IsPhoneNumber.js.map | 1 - .../esm5/decorator/string/IsPort.js | 22 - .../esm5/decorator/string/IsPort.js.map | 1 - .../esm5/decorator/string/IsPostalCode.js | 27 - .../esm5/decorator/string/IsPostalCode.js.map | 1 - .../esm5/decorator/string/IsRFC3339.js | 24 - .../esm5/decorator/string/IsRFC3339.js.map | 1 - .../esm5/decorator/string/IsRgbColor.js | 27 - .../esm5/decorator/string/IsRgbColor.js.map | 1 - .../esm5/decorator/string/IsSemVer.js | 24 - .../esm5/decorator/string/IsSemVer.js.map | 1 - .../esm5/decorator/string/IsSurrogatePair.js | 24 - .../decorator/string/IsSurrogatePair.js.map | 1 - .../esm5/decorator/string/IsUUID.js | 25 - .../esm5/decorator/string/IsUUID.js.map | 1 - .../esm5/decorator/string/IsUppercase.js | 24 - .../esm5/decorator/string/IsUppercase.js.map | 1 - .../esm5/decorator/string/IsUrl.js | 25 - .../esm5/decorator/string/IsUrl.js.map | 1 - .../esm5/decorator/string/IsVariableWidth.js | 24 - .../decorator/string/IsVariableWidth.js.map | 1 - .../esm5/decorator/string/Length.js | 36 - .../esm5/decorator/string/Length.js.map | 1 - .../esm5/decorator/string/Matches.js | 24 - .../esm5/decorator/string/Matches.js.map | 1 - .../esm5/decorator/string/MaxLength.js | 25 - .../esm5/decorator/string/MaxLength.js.map | 1 - .../esm5/decorator/string/MinLength.js | 25 - .../esm5/decorator/string/MinLength.js.map | 1 - .../esm5/decorator/string/NotContains.js | 25 - .../esm5/decorator/string/NotContains.js.map | 1 - .../esm5/decorator/typechecker/IsArray.js | 21 - .../esm5/decorator/typechecker/IsArray.js.map | 1 - .../esm5/decorator/typechecker/IsBoolean.js | 21 - .../decorator/typechecker/IsBoolean.js.map | 1 - .../esm5/decorator/typechecker/IsDate.js | 21 - .../esm5/decorator/typechecker/IsDate.js.map | 1 - .../esm5/decorator/typechecker/IsEnum.js | 23 - .../esm5/decorator/typechecker/IsEnum.js.map | 1 - .../esm5/decorator/typechecker/IsInt.js | 21 - .../esm5/decorator/typechecker/IsInt.js.map | 1 - .../esm5/decorator/typechecker/IsNumber.js | 42 - .../decorator/typechecker/IsNumber.js.map | 1 - .../esm5/decorator/typechecker/IsObject.js | 23 - .../decorator/typechecker/IsObject.js.map | 1 - .../esm5/decorator/typechecker/IsString.js | 21 - .../decorator/typechecker/IsString.js.map | 1 - .../class-validator/esm5/index.js | 60 - .../class-validator/esm5/index.js.map | 1 - .../esm5/metadata/ConstraintMetadata.js | 31 - .../esm5/metadata/ConstraintMetadata.js.map | 1 - .../esm5/metadata/MetadataStorage.js | 139 - .../esm5/metadata/MetadataStorage.js.map | 1 - .../esm5/metadata/ValidationMetadata.js | 38 - .../esm5/metadata/ValidationMetadata.js.map | 1 - .../esm5/metadata/ValidationMetadataArgs.js | 2 - .../metadata/ValidationMetadataArgs.js.map | 1 - .../esm5/register-decorator.js | 46 - .../esm5/register-decorator.js.map | 1 - .../esm5/utils/convert-to-array.util.js | 10 - .../esm5/utils/convert-to-array.util.js.map | 1 - .../esm5/utils/get-global.util.js | 29 - .../esm5/utils/get-global.util.js.map | 1 - .../class-validator/esm5/utils/index.js | 4 - .../class-validator/esm5/utils/index.js.map | 1 - .../esm5/utils/is-promise.util.js | 5 - .../esm5/utils/is-promise.util.js.map | 1 - .../validation-schema/ValidationSchema.js | 2 - .../validation-schema/ValidationSchema.js.map | 1 - .../ValidationSchemaToMetadataTransformer.js | 34 - ...lidationSchemaToMetadataTransformer.js.map | 1 - .../esm5/validation/ValidationArguments.js | 2 - .../validation/ValidationArguments.js.map | 1 - .../esm5/validation/ValidationError.js | 50 - .../esm5/validation/ValidationError.js.map | 1 - .../esm5/validation/ValidationExecutor.js | 334 - .../esm5/validation/ValidationExecutor.js.map | 1 - .../esm5/validation/ValidationTypes.js | 28 - .../esm5/validation/ValidationTypes.js.map | 1 - .../esm5/validation/ValidationUtils.js | 40 - .../esm5/validation/ValidationUtils.js.map | 1 - .../esm5/validation/Validator.js | 102 - .../esm5/validation/Validator.js.map | 1 - .../ValidatorConstraintInterface.js | 2 - .../ValidatorConstraintInterface.js.map | 1 - .../esm5/validation/ValidatorOptions.js | 2 - .../esm5/validation/ValidatorOptions.js.map | 1 - .../node_modules/class-validator/package.json | 27 - .../class-validator/types/container.d.ts | 25 - .../types/decorator/ValidationOptions.d.ts | 25 - .../types/decorator/array/ArrayContains.d.ts | 12 - .../types/decorator/array/ArrayMaxSize.d.ts | 12 - .../types/decorator/array/ArrayMinSize.d.ts | 12 - .../decorator/array/ArrayNotContains.d.ts | 12 - .../types/decorator/array/ArrayNotEmpty.d.ts | 12 - .../types/decorator/array/ArrayUnique.d.ts | 13 - .../types/decorator/common/Allow.d.ts | 5 - .../types/decorator/common/Equals.d.ts | 10 - .../types/decorator/common/IsDefined.d.ts | 10 - .../types/decorator/common/IsEmpty.d.ts | 10 - .../types/decorator/common/IsIn.d.ts | 10 - .../types/decorator/common/IsLatLong.d.ts | 10 - .../types/decorator/common/IsLatitude.d.ts | 10 - .../types/decorator/common/IsLongitude.d.ts | 10 - .../types/decorator/common/IsNotEmpty.d.ts | 10 - .../types/decorator/common/IsNotIn.d.ts | 10 - .../types/decorator/common/IsOptional.d.ts | 5 - .../types/decorator/common/NotEquals.d.ts | 10 - .../types/decorator/common/Validate.d.ts | 14 - .../types/decorator/common/ValidateBy.d.ts | 11 - .../types/decorator/common/ValidateIf.d.ts | 5 - .../decorator/common/ValidateNested.d.ts | 5 - .../decorator/common/ValidatePromise.d.ts | 5 - .../types/decorator/date/MaxDate.d.ts | 10 - .../types/decorator/date/MinDate.d.ts | 10 - .../types/decorator/decorators.d.ts | 106 - .../types/decorator/number/IsDivisibleBy.d.ts | 10 - .../types/decorator/number/IsNegative.d.ts | 10 - .../types/decorator/number/IsPositive.d.ts | 10 - .../types/decorator/number/Max.d.ts | 10 - .../types/decorator/number/Min.d.ts | 10 - .../types/decorator/object/IsInstance.d.ts | 10 - .../decorator/object/IsNotEmptyObject.d.ts | 16 - .../types/decorator/string/Contains.d.ts | 12 - .../types/decorator/string/IsAlpha.d.ts | 13 - .../decorator/string/IsAlphanumeric.d.ts | 13 - .../types/decorator/string/IsAscii.d.ts | 12 - .../types/decorator/string/IsBIC.d.ts | 12 - .../types/decorator/string/IsBase32.d.ts | 12 - .../types/decorator/string/IsBase64.d.ts | 12 - .../decorator/string/IsBooleanString.d.ts | 12 - .../types/decorator/string/IsBtcAddress.d.ts | 12 - .../types/decorator/string/IsByteLength.d.ts | 12 - .../types/decorator/string/IsCreditCard.d.ts | 12 - .../types/decorator/string/IsCurrency.d.ts | 13 - .../types/decorator/string/IsDataURI.d.ts | 12 - .../types/decorator/string/IsDateString.d.ts | 11 - .../types/decorator/string/IsDecimal.d.ts | 13 - .../types/decorator/string/IsEAN.d.ts | 12 - .../types/decorator/string/IsEmail.d.ts | 13 - .../decorator/string/IsEthereumAddress.d.ts | 12 - .../types/decorator/string/IsFQDN.d.ts | 13 - .../decorator/string/IsFirebasePushId.d.ts | 12 - .../types/decorator/string/IsFullWidth.d.ts | 12 - .../types/decorator/string/IsHSL.d.ts | 14 - .../types/decorator/string/IsHalfWidth.d.ts | 12 - .../types/decorator/string/IsHash.d.ts | 15 - .../types/decorator/string/IsHexColor.d.ts | 12 - .../types/decorator/string/IsHexadecimal.d.ts | 12 - .../types/decorator/string/IsIBAN.d.ts | 12 - .../types/decorator/string/IsIP.d.ts | 13 - .../types/decorator/string/IsISBN.d.ts | 13 - .../types/decorator/string/IsISIN.d.ts | 12 - .../decorator/string/IsISO31661Alpha2.d.ts | 10 - .../decorator/string/IsISO31661Alpha3.d.ts | 10 - .../types/decorator/string/IsISO8601.d.ts | 15 - .../types/decorator/string/IsISRC.d.ts | 12 - .../types/decorator/string/IsISSN.d.ts | 13 - .../decorator/string/IsIdentityCard.d.ts | 17 - .../types/decorator/string/IsJSON.d.ts | 12 - .../types/decorator/string/IsJWT.d.ts | 12 - .../types/decorator/string/IsLocale.d.ts | 12 - .../types/decorator/string/IsLowercase.d.ts | 12 - .../types/decorator/string/IsMacAddress.d.ts | 14 - .../types/decorator/string/IsMagnetURI.d.ts | 12 - .../decorator/string/IsMilitaryTime.d.ts | 12 - .../types/decorator/string/IsMimeType.d.ts | 12 - .../types/decorator/string/IsMobilePhone.d.ts | 29 - .../types/decorator/string/IsMongoId.d.ts | 12 - .../types/decorator/string/IsMultibyte.d.ts | 12 - .../decorator/string/IsNumberString.d.ts | 13 - .../types/decorator/string/IsOctal.d.ts | 12 - .../decorator/string/IsPassportNumber.d.ts | 12 - .../types/decorator/string/IsPhoneNumber.d.ts | 20 - .../types/decorator/string/IsPort.d.ts | 10 - .../types/decorator/string/IsPostalCode.d.ts | 15 - .../types/decorator/string/IsRFC3339.d.ts | 12 - .../types/decorator/string/IsRgbColor.d.ts | 14 - .../types/decorator/string/IsSemVer.d.ts | 12 - .../decorator/string/IsSurrogatePair.d.ts | 12 - .../types/decorator/string/IsUUID.d.ts | 13 - .../types/decorator/string/IsUppercase.d.ts | 12 - .../types/decorator/string/IsUrl.d.ts | 13 - .../decorator/string/IsVariableWidth.d.ts | 12 - .../types/decorator/string/Length.d.ts | 12 - .../types/decorator/string/Matches.d.ts | 14 - .../types/decorator/string/MaxLength.d.ts | 12 - .../types/decorator/string/MinLength.d.ts | 12 - .../types/decorator/string/NotContains.d.ts | 12 - .../types/decorator/typechecker/IsArray.d.ts | 10 - .../decorator/typechecker/IsBoolean.d.ts | 10 - .../types/decorator/typechecker/IsDate.d.ts | 10 - .../types/decorator/typechecker/IsEnum.d.ts | 10 - .../types/decorator/typechecker/IsInt.d.ts | 10 - .../types/decorator/typechecker/IsNumber.d.ts | 18 - .../types/decorator/typechecker/IsObject.d.ts | 12 - .../types/decorator/typechecker/IsString.d.ts | 10 - .../class-validator/types/index.d.ts | 47 - .../types/metadata/ConstraintMetadata.d.ts | 23 - .../types/metadata/MetadataStorage.d.ts | 42 - .../types/metadata/ValidationMetadata.d.ts | 49 - .../metadata/ValidationMetadataArgs.d.ts | 34 - .../types/register-decorator.d.ts | 36 - .../types/utils/convert-to-array.util.d.ts | 4 - .../types/utils/get-global.util.d.ts | 7 - .../class-validator/types/utils/index.d.ts | 3 - .../types/utils/is-promise.util.d.ts | 1 - .../validation-schema/ValidationSchema.d.ts | 53 - ...ValidationSchemaToMetadataTransformer.d.ts | 8 - .../types/validation/ValidationArguments.d.ts | 26 - .../types/validation/ValidationError.d.ts | 41 - .../types/validation/ValidationExecutor.d.ts | 28 - .../types/validation/ValidationTypes.d.ts | 15 - .../types/validation/ValidationUtils.d.ts | 8 - .../types/validation/Validator.d.ts | 37 - .../ValidatorConstraintInterface.d.ts | 14 - .../types/validation/ValidatorOptions.d.ts | 70 - views/node_modules/clone-response/LICENSE | 21 - views/node_modules/clone-response/README.md | 62 - .../node_modules/clone-response/package.json | 44 - .../node_modules/clone-response/src/index.js | 17 - views/node_modules/connect-flash/.travis.yml | 6 - views/node_modules/connect-flash/LICENSE | 20 - views/node_modules/connect-flash/README.md | 73 - views/node_modules/connect-flash/lib/flash.js | 82 - views/node_modules/connect-flash/lib/index.js | 4 - views/node_modules/connect-flash/package.json | 32 - .../node_modules/constantinople/.editorconfig | 10 - .../constantinople/.gitattributes | 22 - views/node_modules/constantinople/.prettierrc | 13 - views/node_modules/constantinople/.travis.yml | 5 - views/node_modules/constantinople/LICENSE | 19 - views/node_modules/constantinople/README.md | 46 - .../constantinople/lib/binaryOperation.d.ts | 2 - .../constantinople/lib/binaryOperation.js | 51 - .../constantinople/lib/index.d.ts | 19 - .../node_modules/constantinople/lib/index.js | 368 - .../node_modules/constantinople/package.json | 36 - .../constantinople/src/binaryOperation.ts | 76 - .../node_modules/constantinople/src/index.ts | 369 - .../node_modules/constantinople/test/index.js | 86 - .../node_modules/constantinople/tsconfig.json | 8 - .../content-disposition/HISTORY.md | 55 - .../node_modules/content-disposition/LICENSE | 22 - .../content-disposition/README.md | 148 - .../node_modules/content-disposition/index.js | 458 - .../content-disposition/package.json | 44 - views/node_modules/content-type/HISTORY.md | 24 - views/node_modules/content-type/LICENSE | 22 - views/node_modules/content-type/README.md | 92 - views/node_modules/content-type/index.js | 222 - views/node_modules/content-type/package.json | 40 - .../node_modules/cookie-signature/.npmignore | 4 - .../node_modules/cookie-signature/History.md | 38 - views/node_modules/cookie-signature/Readme.md | 42 - views/node_modules/cookie-signature/index.js | 51 - .../cookie-signature/package.json | 18 - views/node_modules/cookie/HISTORY.md | 123 - views/node_modules/cookie/LICENSE | 24 - views/node_modules/cookie/README.md | 253 - views/node_modules/cookie/index.js | 198 - views/node_modules/cookie/package.json | 40 - views/node_modules/core-util-is/LICENSE | 19 - views/node_modules/core-util-is/README.md | 3 - views/node_modules/core-util-is/float.patch | 604 - views/node_modules/core-util-is/lib/util.js | 107 - views/node_modules/core-util-is/package.json | 32 - views/node_modules/core-util-is/test.js | 68 - views/node_modules/debug/.coveralls.yml | 1 - views/node_modules/debug/.eslintrc | 11 - views/node_modules/debug/.npmignore | 9 - views/node_modules/debug/.travis.yml | 14 - views/node_modules/debug/CHANGELOG.md | 362 - views/node_modules/debug/LICENSE | 19 - views/node_modules/debug/Makefile | 50 - views/node_modules/debug/README.md | 312 - views/node_modules/debug/component.json | 19 - views/node_modules/debug/karma.conf.js | 70 - views/node_modules/debug/node.js | 1 - views/node_modules/debug/package.json | 49 - views/node_modules/debug/src/browser.js | 185 - views/node_modules/debug/src/debug.js | 202 - views/node_modules/debug/src/index.js | 10 - views/node_modules/debug/src/inspector-log.js | 15 - views/node_modules/debug/src/node.js | 248 - .../decompress-response/index.d.ts | 22 - .../node_modules/decompress-response/index.js | 58 - .../node_modules/decompress-response/license | 9 - .../node_modules/mimic-response/index.d.ts | 17 - .../node_modules/mimic-response/index.js | 77 - .../node_modules/mimic-response/license | 9 - .../node_modules/mimic-response/package.json | 42 - .../node_modules/mimic-response/readme.md | 78 - .../decompress-response/package.json | 56 - .../decompress-response/readme.md | 48 - views/node_modules/defer-to-connect/LICENSE | 21 - views/node_modules/defer-to-connect/README.md | 38 - .../defer-to-connect/dist/source/index.d.ts | 10 - .../defer-to-connect/dist/source/index.js | 47 - .../defer-to-connect/package.json | 71 - views/node_modules/denque/CHANGELOG.md | 4 - views/node_modules/denque/LICENSE | 13 - views/node_modules/denque/README.md | 362 - views/node_modules/denque/index.d.ts | 31 - views/node_modules/denque/index.js | 443 - views/node_modules/denque/package.json | 55 - views/node_modules/depd/History.md | 96 - views/node_modules/depd/LICENSE | 22 - views/node_modules/depd/Readme.md | 280 - views/node_modules/depd/index.js | 522 - views/node_modules/depd/lib/browser/index.js | 77 - .../depd/lib/compat/callsite-tostring.js | 103 - .../depd/lib/compat/event-listener-count.js | 22 - views/node_modules/depd/lib/compat/index.js | 79 - views/node_modules/depd/package.json | 41 - views/node_modules/destroy/LICENSE | 22 - views/node_modules/destroy/README.md | 60 - views/node_modules/destroy/index.js | 75 - views/node_modules/destroy/package.json | 37 - views/node_modules/doctypes/.npmignore | 13 - views/node_modules/doctypes/.travis.yml | 3 - views/node_modules/doctypes/HISTORY.md | 14 - views/node_modules/doctypes/LICENSE | 19 - views/node_modules/doctypes/README.md | 24 - views/node_modules/doctypes/index.js | 13 - views/node_modules/doctypes/package.json | 19 - views/node_modules/doctypes/test.js | 9 - views/node_modules/dotenv/CHANGELOG.md | 155 - views/node_modules/dotenv/LICENSE | 23 - views/node_modules/dotenv/README.md | 271 - views/node_modules/dotenv/config.js | 11 - views/node_modules/dotenv/lib/cli-options.js | 13 - views/node_modules/dotenv/lib/env-options.js | 18 - views/node_modules/dotenv/lib/main.js | 113 - views/node_modules/dotenv/package.json | 51 - views/node_modules/dotenv/types/index.d.ts | 59 - views/node_modules/dotenv/types/test.ts | 19 - views/node_modules/dotenv/types/tsconfig.json | 15 - views/node_modules/dotenv/types/tslint.json | 6 - views/node_modules/ee-first/LICENSE | 22 - views/node_modules/ee-first/README.md | 80 - views/node_modules/ee-first/index.js | 95 - views/node_modules/ee-first/package.json | 29 - views/node_modules/encodeurl/HISTORY.md | 14 - views/node_modules/encodeurl/LICENSE | 22 - views/node_modules/encodeurl/README.md | 128 - views/node_modules/encodeurl/index.js | 60 - views/node_modules/encodeurl/package.json | 40 - views/node_modules/end-of-stream/LICENSE | 21 - views/node_modules/end-of-stream/README.md | 54 - views/node_modules/end-of-stream/index.js | 94 - views/node_modules/end-of-stream/package.json | 37 - views/node_modules/escape-html/LICENSE | 24 - views/node_modules/escape-html/Readme.md | 43 - views/node_modules/escape-html/index.js | 78 - views/node_modules/escape-html/package.json | 24 - views/node_modules/etag/HISTORY.md | 83 - views/node_modules/etag/LICENSE | 22 - views/node_modules/etag/README.md | 159 - views/node_modules/etag/index.js | 131 - views/node_modules/etag/package.json | 47 - .../node_modules/express-messages/.npmignore | 1 - .../node_modules/express-messages/History.md | 10 - views/node_modules/express-messages/Readme.md | 142 - views/node_modules/express-messages/index.js | 43 - .../express-messages/package.json | 29 - views/node_modules/express-session/HISTORY.md | 429 - views/node_modules/express-session/LICENSE | 24 - views/node_modules/express-session/README.md | 862 - views/node_modules/express-session/index.js | 681 - .../node_modules/depd/History.md | 103 - .../express-session/node_modules/depd/LICENSE | 22 - .../node_modules/depd/Readme.md | 280 - .../node_modules/depd/index.js | 538 - .../node_modules/depd/lib/browser/index.js | 77 - .../node_modules/depd/package.json | 45 - .../node_modules/safe-buffer/LICENSE | 21 - .../node_modules/safe-buffer/README.md | 586 - .../node_modules/safe-buffer/index.d.ts | 187 - .../node_modules/safe-buffer/index.js | 64 - .../node_modules/safe-buffer/package.json | 37 - .../node_modules/express-session/package.json | 48 - .../express-session/session/cookie.js | 150 - .../express-session/session/memory.js | 187 - .../express-session/session/session.js | 143 - .../express-session/session/store.js | 102 - .../express-validator/CONTRIBUTING.md | 27 - views/node_modules/express-validator/LICENSE | 21 - .../node_modules/express-validator/README.md | 38 - .../express-validator/UPGRADE_GUIDE.md | 44 - .../express-validator/check/check.d.ts | 243 - .../express-validator/check/check.js | 123 - .../express-validator/check/index.d.ts | 10 - .../express-validator/check/index.js | 22 - .../express-validator/check/location.d.ts | 1 - .../express-validator/check/one-of.d.ts | 12 - .../express-validator/check/one-of.js | 55 - .../express-validator/check/runner.js | 55 - .../express-validator/check/schema.d.ts | 104 - .../express-validator/check/schema.js | 48 - .../check/validation-chain-builders.d.ts | 15 - .../check/validation-chain-builders.js | 12 - .../check/validation-result.d.ts | 28 - .../check/validation-result.js | 54 - .../express-validator/docs/api-check.md | 116 - .../express-validator/docs/api-filter.md | 77 - .../express-validator/docs/api-legacy.md | 120 - .../docs/api-sanitization-chain.md | 34 - .../docs/api-validation-chain.md | 88 - .../docs/api-validation-result.md | 96 - .../feature-custom-validators-sanitizers.md | 63 - .../docs/feature-error-messages.md | 101 - .../docs/feature-sanitization.md | 42 - .../docs/feature-schema-validation.md | 71 - .../docs/feature-whole-body-validation.md | 35 - .../docs/feature-wildcards.md | 48 - .../express-validator/docs/index.md | 83 - .../express-validator/filter/index.d.ts | 3 - .../express-validator/filter/index.js | 18 - .../filter/matched-data.d.ts | 10 - .../express-validator/filter/matched-data.js | 45 - .../filter/sanitization-chain-builders.d.ts | 13 - .../filter/sanitization-chain-builders.js | 11 - .../express-validator/filter/sanitize.d.ts | 40 - .../express-validator/filter/sanitize.js | 38 - .../node_modules/express-validator/index.d.ts | 150 - views/node_modules/express-validator/index.js | 1 - .../express-validator/lib/chain-creator.js | 34 - .../express-validator/lib/custom-methods.js | 13 - .../lib/express_validator.js | 256 - .../express-validator/lib/legacy-runner.js | 47 - .../express-validator/lib/utils.js | 37 - .../node_modules/validator/CHANGELOG.md | 558 - .../node_modules/validator/LICENSE | 20 - .../node_modules/validator/README.md | 234 - .../node_modules/validator/index.js | 243 - .../node_modules/validator/lib/alpha.js | 109 - .../node_modules/validator/lib/blacklist.js | 18 - .../node_modules/validator/lib/contains.js | 20 - .../node_modules/validator/lib/equals.js | 18 - .../node_modules/validator/lib/escape.js | 18 - .../node_modules/validator/lib/isAfter.js | 23 - .../node_modules/validator/lib/isAlpha.js | 27 - .../validator/lib/isAlphanumeric.js | 27 - .../node_modules/validator/lib/isAscii.js | 22 - .../node_modules/validator/lib/isBase64.js | 27 - .../node_modules/validator/lib/isBefore.js | 23 - .../node_modules/validator/lib/isBoolean.js | 18 - .../validator/lib/isByteLength.js | 34 - .../validator/lib/isCreditCard.js | 52 - .../node_modules/validator/lib/isCurrency.js | 89 - .../node_modules/validator/lib/isDataURI.js | 54 - .../node_modules/validator/lib/isDecimal.js | 42 - .../validator/lib/isDivisibleBy.js | 20 - .../node_modules/validator/lib/isEmail.js | 133 - .../node_modules/validator/lib/isEmpty.js | 25 - .../node_modules/validator/lib/isFQDN.js | 75 - .../node_modules/validator/lib/isFloat.js | 29 - .../node_modules/validator/lib/isFullWidth.js | 19 - .../node_modules/validator/lib/isHalfWidth.js | 19 - .../node_modules/validator/lib/isHash.js | 35 - .../node_modules/validator/lib/isHexColor.js | 20 - .../validator/lib/isHexadecimal.js | 20 - .../node_modules/validator/lib/isIP.js | 86 - .../node_modules/validator/lib/isIPRange.js | 37 - .../node_modules/validator/lib/isISBN.js | 65 - .../node_modules/validator/lib/isISIN.js | 52 - .../validator/lib/isISO31661Alpha2.js | 23 - .../validator/lib/isISO31661Alpha3.js | 23 - .../node_modules/validator/lib/isISO8601.js | 58 - .../node_modules/validator/lib/isISRC.js | 21 - .../node_modules/validator/lib/isISSN.js | 37 - .../validator/lib/isIdentityCard.js | 61 - .../node_modules/validator/lib/isIn.js | 40 - .../node_modules/validator/lib/isInt.js | 30 - .../node_modules/validator/lib/isJSON.js | 28 - .../node_modules/validator/lib/isJWT.js | 20 - .../node_modules/validator/lib/isLatLong.js | 23 - .../node_modules/validator/lib/isLength.js | 35 - .../node_modules/validator/lib/isLowercase.js | 18 - .../validator/lib/isMACAddress.js | 26 - .../node_modules/validator/lib/isMD5.js | 20 - .../node_modules/validator/lib/isMagnetURI.js | 20 - .../node_modules/validator/lib/isMimeType.js | 51 - .../validator/lib/isMobilePhone.js | 132 - .../node_modules/validator/lib/isMongoId.js | 20 - .../node_modules/validator/lib/isMultibyte.js | 22 - .../node_modules/validator/lib/isNumeric.js | 26 - .../node_modules/validator/lib/isPort.js | 20 - .../validator/lib/isPostalCode.js | 89 - .../node_modules/validator/lib/isRFC3339.js | 33 - .../validator/lib/isSurrogatePair.js | 20 - .../node_modules/validator/lib/isURL.js | 152 - .../node_modules/validator/lib/isUUID.js | 27 - .../node_modules/validator/lib/isUppercase.js | 18 - .../validator/lib/isVariableWidth.js | 22 - .../validator/lib/isWhitelisted.js | 25 - .../node_modules/validator/lib/ltrim.js | 19 - .../node_modules/validator/lib/matches.js | 23 - .../validator/lib/normalizeEmail.js | 151 - .../node_modules/validator/lib/rtrim.js | 25 - .../node_modules/validator/lib/stripLow.js | 21 - .../node_modules/validator/lib/toBoolean.js | 23 - .../node_modules/validator/lib/toDate.js | 19 - .../node_modules/validator/lib/toFloat.js | 18 - .../node_modules/validator/lib/toInt.js | 18 - .../node_modules/validator/lib/trim.js | 19 - .../node_modules/validator/lib/unescape.js | 18 - .../validator/lib/util/assertString.js | 33 - .../validator/lib/util/includes.js | 17 - .../node_modules/validator/lib/util/merge.js | 22 - .../validator/lib/util/toString.js | 25 - .../node_modules/validator/lib/whitelist.js | 18 - .../node_modules/validator/package.json | 71 - .../node_modules/validator/validator.js | 2098 -- .../node_modules/validator/validator.min.js | 23 - .../express-validator/package.json | 54 - .../express-validator/tsconfig.json | 24 - views/node_modules/express-validator/tst.js | 44 - .../express-validator/utils/constants.js | 12 - .../express-validator/utils/filters.js | 4 - .../utils/format-param-output.js | 22 - .../express-validator/utils/persist-values.js | 12 - .../express-validator/utils/select-fields.js | 105 - .../express-validator/utils/to-string.js | 19 - .../express-validator/website/core/Footer.js | 77 - .../express-validator/website/i18n/en.json | 112 - .../register/.babel.7.1.2.development.json | 10938 ---------- .../express-validator/website/package.json | 14 - .../website/pages/en/versions.js | 104 - .../express-validator/website/sidebars.json | 21 - .../express-validator/website/siteConfig.js | 40 - .../website/static/css/custom.css | 16 - .../website/static/img/favicon.png | Bin 2109 -> 0 bytes .../website/static/img/favicon/favicon.ico | Bin 15086 -> 0 bytes .../website/static/img/logo.svg | 14 - .../website/static/index.html | 14 - .../versioned_docs/version-5.2.0/api-check.md | 117 - .../version-5.2.0/api-filter.md | 77 - .../version-5.2.0/api-legacy.md | 121 - .../version-5.2.0/api-sanitization-chain.md | 35 - .../version-5.2.0/api-validation-chain.md | 84 - .../version-5.2.0/api-validation-result.md | 97 - .../feature-custom-validators-sanitizers.md | 64 - .../version-5.2.0/feature-error-messages.md | 102 - .../version-5.2.0/feature-sanitization.md | 43 - .../feature-schema-validation.md | 72 - .../feature-whole-body-validation.md | 36 - .../version-5.2.0/feature-wildcards.md | 49 - .../versioned_docs/version-5.2.0/index.md | 84 - .../version-5.3.0/api-filter.md | 78 - .../version-5.3.0/api-validation-chain.md | 89 - .../feature-custom-validators-sanitizers.md | 64 - .../versioned_docs/version-5.3.1/api-check.md | 117 - .../version-5.3.1/feature-error-messages.md | 102 - .../version-5.2.0-sidebars.json | 23 - .../express-validator/website/versions.json | 5 - views/node_modules/express/History.md | 3477 --- views/node_modules/express/LICENSE | 24 - views/node_modules/express/Readme.md | 155 - views/node_modules/express/index.js | 11 - views/node_modules/express/lib/application.js | 644 - views/node_modules/express/lib/express.js | 116 - .../express/lib/middleware/init.js | 43 - .../express/lib/middleware/query.js | 47 - views/node_modules/express/lib/request.js | 525 - views/node_modules/express/lib/response.js | 1142 - .../node_modules/express/lib/router/index.js | 662 - .../node_modules/express/lib/router/layer.js | 181 - .../node_modules/express/lib/router/route.js | 216 - views/node_modules/express/lib/utils.js | 306 - views/node_modules/express/lib/view.js | 182 - views/node_modules/express/package.json | 98 - views/node_modules/finalhandler/HISTORY.md | 187 - views/node_modules/finalhandler/LICENSE | 22 - views/node_modules/finalhandler/README.md | 148 - views/node_modules/finalhandler/index.js | 331 - views/node_modules/finalhandler/package.json | 45 - views/node_modules/follow-redirects/LICENSE | 18 - views/node_modules/follow-redirects/README.md | 148 - views/node_modules/follow-redirects/debug.js | 14 - views/node_modules/follow-redirects/http.js | 1 - views/node_modules/follow-redirects/https.js | 1 - views/node_modules/follow-redirects/index.js | 531 - .../follow-redirects/package.json | 59 - views/node_modules/forwarded/HISTORY.md | 16 - views/node_modules/forwarded/LICENSE | 22 - views/node_modules/forwarded/README.md | 57 - views/node_modules/forwarded/index.js | 76 - views/node_modules/forwarded/package.json | 43 - views/node_modules/fresh/HISTORY.md | 70 - views/node_modules/fresh/LICENSE | 23 - views/node_modules/fresh/README.md | 119 - views/node_modules/fresh/index.js | 137 - views/node_modules/fresh/package.json | 46 - .../node_modules/function-bind/.editorconfig | 20 - views/node_modules/function-bind/.eslintrc | 15 - views/node_modules/function-bind/.jscs.json | 176 - views/node_modules/function-bind/.npmignore | 22 - views/node_modules/function-bind/.travis.yml | 168 - views/node_modules/function-bind/LICENSE | 20 - views/node_modules/function-bind/README.md | 48 - .../function-bind/implementation.js | 52 - views/node_modules/function-bind/index.js | 5 - views/node_modules/function-bind/package.json | 63 - .../node_modules/function-bind/test/.eslintrc | 9 - .../node_modules/function-bind/test/index.js | 252 - .../node_modules/get-intrinsic/.eslintignore | 1 - views/node_modules/get-intrinsic/.eslintrc | 43 - .../get-intrinsic/.github/FUNDING.yml | 12 - views/node_modules/get-intrinsic/.nycrc | 13 - views/node_modules/get-intrinsic/CHANGELOG.md | 64 - views/node_modules/get-intrinsic/LICENSE | 21 - views/node_modules/get-intrinsic/README.md | 65 - views/node_modules/get-intrinsic/index.js | 330 - views/node_modules/get-intrinsic/package.json | 78 - .../get-intrinsic/test/GetIntrinsic.js | 260 - .../node_modules/get-stream/buffer-stream.js | 52 - views/node_modules/get-stream/index.d.ts | 108 - views/node_modules/get-stream/index.js | 60 - views/node_modules/get-stream/license | 9 - views/node_modules/get-stream/package.json | 50 - views/node_modules/get-stream/readme.md | 124 - .../source/as-promise/create-rejection.d.ts | 2 - .../source/as-promise/create-rejection.js | 30 - .../got/dist/source/as-promise/index.d.ts | 3 - .../got/dist/source/as-promise/index.js | 175 - .../as-promise/normalize-arguments.d.ts | 3 - .../source/as-promise/normalize-arguments.js | 78 - .../dist/source/as-promise/parse-body.d.ts | 3 - .../got/dist/source/as-promise/parse-body.js | 25 - .../got/dist/source/as-promise/types.d.ts | 256 - .../got/dist/source/as-promise/types.js | 40 - .../source/core/calculate-retry-delay.d.ts | 5 - .../dist/source/core/calculate-retry-delay.js | 29 - .../got/dist/source/core/index.d.ts | 1124 - .../got/dist/source/core/index.js | 1491 -- .../source/core/utils/dns-ip-version.d.ts | 5 - .../dist/source/core/utils/dns-ip-version.js | 17 - .../dist/source/core/utils/get-body-size.d.ts | 3 - .../dist/source/core/utils/get-body-size.js | 32 - .../dist/source/core/utils/get-buffer.d.ts | 4 - .../got/dist/source/core/utils/get-buffer.js | 16 - .../dist/source/core/utils/is-form-data.d.ts | 8 - .../dist/source/core/utils/is-form-data.js | 4 - .../source/core/utils/is-response-ok.d.ts | 2 - .../dist/source/core/utils/is-response-ok.js | 8 - .../source/core/utils/options-to-url.d.ts | 14 - .../dist/source/core/utils/options-to-url.js | 53 - .../dist/source/core/utils/proxy-events.d.ts | 3 - .../dist/source/core/utils/proxy-events.js | 17 - .../got/dist/source/core/utils/timed-out.d.ts | 29 - .../got/dist/source/core/utils/timed-out.js | 121 - .../got/dist/source/core/utils/unhandle.d.ts | 11 - .../got/dist/source/core/utils/unhandle.js | 22 - .../source/core/utils/url-to-options.d.ts | 15 - .../dist/source/core/utils/url-to-options.js | 24 - .../dist/source/core/utils/weakable-map.d.ts | 8 - .../dist/source/core/utils/weakable-map.js | 29 - .../node_modules/got/dist/source/create.d.ts | 5 - views/node_modules/got/dist/source/create.js | 240 - views/node_modules/got/dist/source/index.d.ts | 4 - views/node_modules/got/dist/source/index.js | 132 - views/node_modules/got/dist/source/types.d.ts | 342 - views/node_modules/got/dist/source/types.js | 2 - .../got/dist/source/utils/deep-freeze.d.ts | 1 - .../got/dist/source/utils/deep-freeze.js | 12 - .../source/utils/deprecation-warning.d.ts | 2 - .../dist/source/utils/deprecation-warning.js | 13 - views/node_modules/got/license | 9 - views/node_modules/got/package.json | 130 - views/node_modules/got/readme.md | 2476 --- views/node_modules/has-symbols/.eslintignore | 1 - views/node_modules/has-symbols/.eslintrc | 11 - .../has-symbols/.github/FUNDING.yml | 12 - views/node_modules/has-symbols/.nycrc | 13 - views/node_modules/has-symbols/CHANGELOG.md | 58 - views/node_modules/has-symbols/LICENSE | 21 - views/node_modules/has-symbols/README.md | 40 - views/node_modules/has-symbols/index.js | 13 - views/node_modules/has-symbols/package.json | 96 - views/node_modules/has-symbols/shams.js | 42 - views/node_modules/has-symbols/test/index.js | 22 - .../has-symbols/test/shams/core-js.js | 28 - .../test/shams/get-own-property-symbols.js | 28 - views/node_modules/has-symbols/test/tests.js | 56 - views/node_modules/has/LICENSE-MIT | 22 - views/node_modules/has/README.md | 18 - views/node_modules/has/package.json | 48 - views/node_modules/has/src/index.js | 5 - views/node_modules/has/test/index.js | 10 - .../node_modules/http-cache-semantics/LICENSE | 9 - .../http-cache-semantics/README.md | 203 - .../http-cache-semantics/index.js | 673 - .../http-cache-semantics/package.json | 24 - views/node_modules/http-errors/HISTORY.md | 149 - views/node_modules/http-errors/LICENSE | 23 - views/node_modules/http-errors/README.md | 163 - views/node_modules/http-errors/index.js | 266 - views/node_modules/http-errors/package.json | 49 - views/node_modules/http2-wrapper/LICENSE | 21 - views/node_modules/http2-wrapper/README.md | 470 - views/node_modules/http2-wrapper/package.json | 54 - .../http2-wrapper/source/agent.js | 670 - .../node_modules/http2-wrapper/source/auto.js | 149 - .../http2-wrapper/source/client-request.js | 445 - .../http2-wrapper/source/incoming-message.js | 58 - .../http2-wrapper/source/index.js | 28 - .../source/utils/calculate-server-name.js | 27 - .../http2-wrapper/source/utils/errors.js | 45 - .../source/utils/is-request-pseudo-header.js | 13 - .../source/utils/proxy-events.js | 7 - .../source/utils/url-to-options.js | 25 - views/node_modules/https/package.json | 15 - views/node_modules/iconv-lite/Changelog.md | 162 - views/node_modules/iconv-lite/LICENSE | 21 - views/node_modules/iconv-lite/README.md | 156 - .../iconv-lite/encodings/dbcs-codec.js | 555 - .../iconv-lite/encodings/dbcs-data.js | 176 - .../iconv-lite/encodings/index.js | 22 - .../iconv-lite/encodings/internal.js | 188 - .../iconv-lite/encodings/sbcs-codec.js | 72 - .../encodings/sbcs-data-generated.js | 451 - .../iconv-lite/encodings/sbcs-data.js | 174 - .../encodings/tables/big5-added.json | 122 - .../iconv-lite/encodings/tables/cp936.json | 264 - .../iconv-lite/encodings/tables/cp949.json | 273 - .../iconv-lite/encodings/tables/cp950.json | 177 - .../iconv-lite/encodings/tables/eucjp.json | 182 - .../encodings/tables/gb18030-ranges.json | 1 - .../encodings/tables/gbk-added.json | 55 - .../iconv-lite/encodings/tables/shiftjis.json | 125 - .../iconv-lite/encodings/utf16.js | 177 - .../node_modules/iconv-lite/encodings/utf7.js | 290 - .../iconv-lite/lib/bom-handling.js | 52 - .../iconv-lite/lib/extend-node.js | 217 - views/node_modules/iconv-lite/lib/index.d.ts | 24 - views/node_modules/iconv-lite/lib/index.js | 153 - views/node_modules/iconv-lite/lib/streams.js | 121 - views/node_modules/iconv-lite/package.json | 46 - views/node_modules/inherits/LICENSE | 16 - views/node_modules/inherits/README.md | 42 - views/node_modules/inherits/inherits.js | 7 - .../node_modules/inherits/inherits_browser.js | 23 - views/node_modules/inherits/package.json | 29 - views/node_modules/ipaddr.js/LICENSE | 19 - views/node_modules/ipaddr.js/README.md | 233 - views/node_modules/ipaddr.js/ipaddr.min.js | 1 - views/node_modules/ipaddr.js/lib/ipaddr.js | 673 - .../node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 68 - views/node_modules/ipaddr.js/package.json | 35 - .../node_modules/is-core-module/.eslintignore | 1 - views/node_modules/is-core-module/.eslintrc | 18 - .../is-core-module/.github/FUNDING.yml | 12 - .../.github/workflows/node-4+.yml | 54 - .../.github/workflows/node-iojs.yml | 58 - .../.github/workflows/node-pretest.yml | 26 - .../.github/workflows/node-zero.yml | 58 - .../.github/workflows/rebase.yml | 15 - .../.github/workflows/require-allow-edits.yml | 14 - views/node_modules/is-core-module/.nycrc | 13 - .../node_modules/is-core-module/CHANGELOG.md | 58 - views/node_modules/is-core-module/LICENSE | 20 - views/node_modules/is-core-module/README.md | 37 - views/node_modules/is-core-module/core.json | 83 - views/node_modules/is-core-module/index.js | 69 - .../node_modules/is-core-module/package.json | 66 - .../node_modules/is-core-module/test/index.js | 83 - views/node_modules/is-expression/CHANGELOG.md | 48 - views/node_modules/is-expression/LICENSE.md | 19 - views/node_modules/is-expression/README.md | 67 - views/node_modules/is-expression/index.js | 45 - views/node_modules/is-expression/package.json | 30 - views/node_modules/is-promise/LICENSE | 19 - views/node_modules/is-promise/index.js | 6 - views/node_modules/is-promise/index.mjs | 3 - views/node_modules/is-promise/package.json | 23 - views/node_modules/is-promise/readme.md | 33 - views/node_modules/is-regex/.editorconfig | 20 - views/node_modules/is-regex/.eslintignore | 1 - views/node_modules/is-regex/.eslintrc | 19 - views/node_modules/is-regex/.nycrc | 13 - views/node_modules/is-regex/CHANGELOG.md | 179 - views/node_modules/is-regex/LICENSE | 20 - views/node_modules/is-regex/README.md | 47 - views/node_modules/is-regex/index.js | 59 - views/node_modules/is-regex/package.json | 84 - views/node_modules/is-regex/test/index.js | 105 - views/node_modules/isarray/.npmignore | 1 - views/node_modules/isarray/.travis.yml | 4 - views/node_modules/isarray/Makefile | 6 - views/node_modules/isarray/README.md | 60 - views/node_modules/isarray/component.json | 19 - views/node_modules/isarray/index.js | 5 - views/node_modules/isarray/package.json | 45 - views/node_modules/isarray/test.js | 20 - views/node_modules/js-stringify/.npmignore | 13 - views/node_modules/js-stringify/.travis.yml | 3 - views/node_modules/js-stringify/LICENSE | 19 - views/node_modules/js-stringify/README.md | 34 - views/node_modules/js-stringify/index.js | 17 - views/node_modules/js-stringify/package.json | 17 - views/node_modules/js-stringify/test/index.js | 17 - views/node_modules/json-buffer/.travis.yml | 3 - views/node_modules/json-buffer/LICENSE | 22 - views/node_modules/json-buffer/README.md | 24 - views/node_modules/json-buffer/index.js | 58 - views/node_modules/json-buffer/package.json | 34 - views/node_modules/json-buffer/test/index.js | 63 - views/node_modules/jstransformer/CHANGELOG.md | 38 - views/node_modules/jstransformer/LICENSE.md | 21 - views/node_modules/jstransformer/README.md | 114 - views/node_modules/jstransformer/index.js | 359 - views/node_modules/jstransformer/package.json | 31 - views/node_modules/kareem/.travis.yml | 12 - views/node_modules/kareem/CHANGELOG.md | 793 - views/node_modules/kareem/LICENSE | 202 - views/node_modules/kareem/Makefile | 5 - views/node_modules/kareem/README.md | 420 - views/node_modules/kareem/docs.js | 39 - views/node_modules/kareem/gulpfile.js | 18 - views/node_modules/kareem/index.js | 512 - views/node_modules/kareem/package.json | 22 - .../node_modules/kareem/test/examples.test.js | 426 - views/node_modules/kareem/test/misc.test.js | 71 - views/node_modules/kareem/test/post.test.js | 198 - views/node_modules/kareem/test/pre.test.js | 340 - views/node_modules/kareem/test/wrap.test.js | 342 - views/node_modules/keyv/LICENSE | 21 - views/node_modules/keyv/README.md | 288 - views/node_modules/keyv/package.json | 49 - views/node_modules/keyv/src/index.js | 111 - .../libphonenumber-js/.gitlab-ci.yml | 16 - views/node_modules/libphonenumber-js/.nycrc | 27 - views/node_modules/libphonenumber-js/AUTHORS | 5 - .../libphonenumber-js/CHANGELOG.md | 560 - views/node_modules/libphonenumber-js/LICENSE | 22 - .../libphonenumber-js/LICENSE.Apache | 176 - .../libphonenumber-js/METADATA.md | 137 - .../node_modules/libphonenumber-js/README.md | 1555 -- .../libphonenumber-js/autoupdate.cmd | 6 - .../libphonenumber-js/autoupdate.sh | 16 - .../libphonenumber-js/build/AsYouType.js | 451 - .../libphonenumber-js/build/AsYouType.js.map | 1 - .../libphonenumber-js/build/AsYouType.test.js | 947 - .../build/AsYouType.test.js.map | 1 - .../build/AsYouTypeFormatter.complete.js | 133 - .../build/AsYouTypeFormatter.complete.js.map | 1 - .../build/AsYouTypeFormatter.js | 726 - .../build/AsYouTypeFormatter.js.map | 1 - .../build/AsYouTypeFormatter.util.js | 156 - .../build/AsYouTypeFormatter.util.js.map | 1 - .../build/AsYouTypeFormatter.util.test.js | 23 - .../build/AsYouTypeFormatter.util.test.js.map | 1 - .../build/AsYouTypeParser.js | 508 - .../build/AsYouTypeParser.js.map | 1 - .../libphonenumber-js/build/AsYouTypeState.js | 130 - .../build/AsYouTypeState.js.map | 1 - .../libphonenumber-js/build/ParseError.js | 22 - .../libphonenumber-js/build/ParseError.js.map | 1 - .../libphonenumber-js/build/PhoneNumber.js | 144 - .../build/PhoneNumber.js.map | 1 - .../build/PhoneNumber.test.js | 43 - .../build/PhoneNumber.test.js.map | 1 - .../build/PhoneNumberMatcher.js | 381 - .../build/PhoneNumberMatcher.js.map | 1 - .../build/PhoneNumberMatcher.test.js | 79 - .../build/PhoneNumberMatcher.test.js.map | 1 - .../libphonenumber-js/build/constants.js | 39 - .../libphonenumber-js/build/constants.js.map | 1 - .../libphonenumber-js/build/findNumbers.js | 22 - .../build/findNumbers.js.map | 1 - .../build/findNumbers.test.js | 194 - .../build/findNumbers.test.js.map | 1 - .../build/findNumbers/LRUCache.js | 136 - .../build/findNumbers/LRUCache.js.map | 1 - .../build/findNumbers/Leniency.js | 340 - .../build/findNumbers/Leniency.js.map | 1 - .../build/findNumbers/Leniency.test.js | 43 - .../build/findNumbers/Leniency.test.js.map | 1 - .../build/findNumbers/RegExpCache.js | 49 - .../build/findNumbers/RegExpCache.js.map | 1 - .../build/findNumbers/isValidCandidate.js | 80 - .../build/findNumbers/isValidCandidate.js.map | 1 - .../build/findNumbers/isValidPreCandidate.js | 34 - .../findNumbers/isValidPreCandidate.js.map | 1 - .../build/findNumbers/parsePreCandidate.js | 26 - .../findNumbers/parsePreCandidate.js.map | 1 - .../build/findNumbers/utf-8.js | 75 - .../build/findNumbers/utf-8.js.map | 1 - .../build/findNumbers/util.js | 42 - .../build/findNumbers/util.js.map | 1 - .../build/findNumbers/util.test.js | 38 - .../build/findNumbers/util.test.js.map | 1 - .../libphonenumber-js/build/findNumbers_.js | 22 - .../build/findNumbers_.js.map | 1 - .../build/findPhoneNumbers.js | 38 - .../build/findPhoneNumbers.js.map | 1 - .../build/findPhoneNumbers.test.js | 243 - .../build/findPhoneNumbers.test.js.map | 1 - .../build/findPhoneNumbersInText.js | 67 - .../build/findPhoneNumbersInText.js.map | 1 - .../build/findPhoneNumbersInText.test.js | 53 - .../build/findPhoneNumbersInText.test.js.map | 1 - .../build/findPhoneNumbers_.js | 225 - .../build/findPhoneNumbers_.js.map | 1 - .../libphonenumber-js/build/format.js | 124 - .../libphonenumber-js/build/format.js.map | 1 - .../libphonenumber-js/build/format.test.js | 267 - .../build/format.test.js.map | 1 - .../build/formatIncompletePhoneNumber.js | 28 - .../build/formatIncompletePhoneNumber.js.map | 1 - .../build/formatIncompletePhoneNumber.test.js | 22 - .../formatIncompletePhoneNumber.test.js.map | 1 - .../build/formatNumberForMobileDialing.js | 205 - .../build/formatNumberForMobileDialing.js.map | 1 - .../formatNumberForMobileDialing.test.js | 15 - .../formatNumberForMobileDialing.test.js.map | 1 - .../libphonenumber-js/build/format_.js | 201 - .../libphonenumber-js/build/format_.js.map | 1 - .../libphonenumber-js/build/getCountries.js | 15 - .../build/getCountries.js.map | 1 - .../build/getCountries.test.js | 14 - .../build/getCountries.test.js.map | 1 - .../build/getCountryCallingCode.js | 14 - .../build/getCountryCallingCode.js.map | 1 - .../build/getCountryCallingCode.test.js | 19 - .../build/getCountryCallingCode.test.js.map | 1 - .../build/getExampleNumber.js | 17 - .../build/getExampleNumber.js.map | 1 - .../build/getExampleNumber.test.js | 23 - .../build/getExampleNumber.test.js.map | 1 - .../libphonenumber-js/build/getNumberType.js | 124 - .../build/getNumberType.js.map | 1 - .../build/getNumberType.test.js | 81 - .../build/getNumberType.test.js.map | 1 - .../build/helpers/RFC3966.js | 107 - .../build/helpers/RFC3966.js.map | 1 - .../build/helpers/RFC3966.test.js | 41 - .../build/helpers/RFC3966.test.js.map | 1 - .../applyInternationalSeparatorStyle.js | 43 - .../applyInternationalSeparatorStyle.js.map | 1 - .../applyInternationalSeparatorStyle.test.js | 13 - ...plyInternationalSeparatorStyle.test.js.map | 1 - .../build/helpers/checkNumberLength.js | 92 - .../build/helpers/checkNumberLength.js.map | 1 - .../build/helpers/checkNumberLength.test.js | 39 - .../helpers/checkNumberLength.test.js.map | 1 - .../extension/createExtensionPattern.js | 116 - .../extension/createExtensionPattern.js.map | 1 - .../helpers/extension/extractExtension.js | 42 - .../helpers/extension/extractExtension.js.map | 1 - .../helpers/extractCountryCallingCode.js | 114 - .../helpers/extractCountryCallingCode.js.map | 1 - .../helpers/extractCountryCallingCode.test.js | 22 - .../extractCountryCallingCode.test.js.map | 1 - ...eFromInternationalNumberWithoutPlusSign.js | 63 - ...mInternationalNumberWithoutPlusSign.js.map | 1 - .../build/helpers/extractNationalNumber.js | 110 - .../helpers/extractNationalNumber.js.map | 1 - ...ionalNumberFromPossiblyIncompleteNumber.js | 114 - ...lNumberFromPossiblyIncompleteNumber.js.map | 1 - ...NumberFromPossiblyIncompleteNumber.test.js | 22 - ...erFromPossiblyIncompleteNumber.test.js.map | 1 - .../formatNationalNumberUsingFormat.js | 46 - .../formatNationalNumberUsingFormat.js.map | 1 - .../build/helpers/getCountryByCallingCode.js | 73 - .../helpers/getCountryByCallingCode.js.map | 1 - .../build/helpers/getIddPrefix.js | 34 - .../build/helpers/getIddPrefix.js.map | 1 - .../build/helpers/getNumberType.js | 93 - .../build/helpers/getNumberType.js.map | 1 - .../build/helpers/isViablePhoneNumber.js | 64 - .../build/helpers/isViablePhoneNumber.js.map | 1 - .../build/helpers/matchesEntirely.js | 19 - .../build/helpers/matchesEntirely.js.map | 1 - .../build/helpers/matchesEntirely.test.js | 15 - .../build/helpers/matchesEntirely.test.js.map | 1 - .../build/helpers/mergeArrays.js | 45 - .../build/helpers/mergeArrays.js.map | 1 - .../build/helpers/mergeArrays.test.js | 12 - .../build/helpers/mergeArrays.test.js.map | 1 - .../build/helpers/parseDigits.js | 137 - .../build/helpers/parseDigits.js.map | 1 - .../build/helpers/parseDigits.test.js | 12 - .../build/helpers/parseDigits.test.js.map | 1 - .../build/helpers/stripIddPrefix.js | 46 - .../build/helpers/stripIddPrefix.js.map | 1 - .../build/helpers/stripIddPrefix.test.js | 23 - .../build/helpers/stripIddPrefix.test.js.map | 1 - .../build/isPossibleNumber.js | 36 - .../build/isPossibleNumber.js.map | 1 - .../build/isPossibleNumber.test.js | 83 - .../build/isPossibleNumber.test.js.map | 1 - .../build/isPossibleNumber_.js | 82 - .../build/isPossibleNumber_.js.map | 1 - .../build/isPossiblePhoneNumber.js | 30 - .../build/isPossiblePhoneNumber.js.map | 1 - .../build/isPossiblePhoneNumber.test.js | 32 - .../build/isPossiblePhoneNumber.test.js.map | 1 - .../build/isValidNumberForRegion.js | 42 - .../build/isValidNumberForRegion.js.map | 1 - .../build/isValidNumberForRegion.test.js | 43 - .../build/isValidNumberForRegion.test.js.map | 1 - .../build/isValidNumberForRegion_.js | 23 - .../build/isValidNumberForRegion_.js.map | 1 - .../build/isValidPhoneNumber.js | 30 - .../build/isValidPhoneNumber.js.map | 1 - .../build/isValidPhoneNumber.test.js | 32 - .../build/isValidPhoneNumber.test.js.map | 1 - .../libphonenumber-js/build/metadata.js | 679 - .../libphonenumber-js/build/metadata.js.map | 1 - .../libphonenumber-js/build/metadata.test.js | 123 - .../build/metadata.test.js.map | 1 - .../libphonenumber-js/build/parse.js | 48 - .../libphonenumber-js/build/parse.js.map | 1 - .../libphonenumber-js/build/parse.test.js | 568 - .../libphonenumber-js/build/parse.test.js.map | 1 - .../build/parseIncompletePhoneNumber.js | 80 - .../build/parseIncompletePhoneNumber.js.map | 1 - .../build/parseIncompletePhoneNumber.test.js | 32 - .../parseIncompletePhoneNumber.test.js.map | 1 - .../build/parsePhoneNumber.js | 93 - .../build/parsePhoneNumber.js.map | 1 - .../build/parsePhoneNumber.test.js | 132 - .../build/parsePhoneNumber.test.js.map | 1 - .../build/parsePhoneNumberFromString.js | 22 - .../build/parsePhoneNumberFromString.js.map | 1 - .../build/parsePhoneNumberFromString.test.js | 85 - .../parsePhoneNumberFromString.test.js.map | 1 - .../build/parsePhoneNumberFromString_.js | 39 - .../build/parsePhoneNumberFromString_.js.map | 1 - .../build/parsePhoneNumber_.js | 21 - .../build/parsePhoneNumber_.js.map | 1 - .../libphonenumber-js/build/parse_.js | 350 - .../libphonenumber-js/build/parse_.js.map | 1 - .../libphonenumber-js/build/searchNumbers.js | 43 - .../build/searchNumbers.js.map | 1 - .../build/searchNumbers.test.js | 44 - .../build/searchNumbers.test.js.map | 1 - .../build/searchPhoneNumbersInText.js | 18 - .../build/searchPhoneNumbersInText.js.map | 1 - .../build/searchPhoneNumbersInText.test.js | 51 - .../searchPhoneNumbersInText.test.js.map | 1 - .../build/tools/semver-compare.js | 37 - .../build/tools/semver-compare.js.map | 1 - .../build/tools/semver-compare.test.js | 13 - .../build/tools/semver-compare.test.js.map | 1 - .../libphonenumber-js/build/validate.js | 23 - .../libphonenumber-js/build/validate.js.map | 1 - .../libphonenumber-js/build/validate.test.js | 96 - .../build/validate.test.js.map | 1 - .../libphonenumber-js/build/validate_.js | 68 - .../libphonenumber-js/build/validate_.js.map | 1 - .../bundle/libphonenumber-js.min.js | 2 - .../bundle/libphonenumber-js.min.js.map | 1 - .../bundle/libphonenumber-max.js | 2 - .../bundle/libphonenumber-max.js.map | 1 - .../bundle/libphonenumber-min.js | 2 - .../bundle/libphonenumber-min.js.map | 1 - .../bundle/libphonenumber-mobile.js | 2 - .../bundle/libphonenumber-mobile.js.map | 1 - .../libphonenumber-js/core/index.commonjs.js | 49 - .../libphonenumber-js/core/index.d.ts | 106 - .../libphonenumber-js/core/index.js | 33 - .../libphonenumber-js/core/package.json | 8 - .../libphonenumber-js/custom.d.ts | 165 - .../node_modules/libphonenumber-js/custom.js | 79 - .../libphonenumber-js/es6/AsYouType.js | 434 - .../libphonenumber-js/es6/AsYouType.js.map | 1 - .../libphonenumber-js/es6/AsYouType.test.js | 942 - .../es6/AsYouType.test.js.map | 1 - .../es6/AsYouTypeFormatter.complete.js | 119 - .../es6/AsYouTypeFormatter.complete.js.map | 1 - .../es6/AsYouTypeFormatter.js | 704 - .../es6/AsYouTypeFormatter.js.map | 1 - .../es6/AsYouTypeFormatter.util.js | 138 - .../es6/AsYouTypeFormatter.util.js.map | 1 - .../es6/AsYouTypeFormatter.util.test.js | 20 - .../es6/AsYouTypeFormatter.util.test.js.map | 1 - .../libphonenumber-js/es6/AsYouTypeParser.js | 492 - .../es6/AsYouTypeParser.js.map | 1 - .../libphonenumber-js/es6/AsYouTypeState.js | 123 - .../es6/AsYouTypeState.js.map | 1 - .../libphonenumber-js/es6/ParseError.js | 15 - .../libphonenumber-js/es6/ParseError.js.map | 1 - .../libphonenumber-js/es6/PhoneNumber.js | 129 - .../libphonenumber-js/es6/PhoneNumber.js.map | 1 - .../libphonenumber-js/es6/PhoneNumber.test.js | 37 - .../es6/PhoneNumber.test.js.map | 1 - .../es6/PhoneNumberMatcher.js | 363 - .../es6/PhoneNumberMatcher.js.map | 1 - .../es6/PhoneNumberMatcher.test.js | 74 - .../es6/PhoneNumberMatcher.test.js.map | 1 - .../libphonenumber-js/es6/constants.js | 25 - .../libphonenumber-js/es6/constants.js.map | 1 - .../libphonenumber-js/es6/findNumbers.js | 11 - .../libphonenumber-js/es6/findNumbers.js.map | 1 - .../libphonenumber-js/es6/findNumbers.test.js | 188 - .../es6/findNumbers.test.js.map | 1 - .../es6/findNumbers/LRUCache.js | 129 - .../es6/findNumbers/LRUCache.js.map | 1 - .../es6/findNumbers/Leniency.js | 327 - .../es6/findNumbers/Leniency.js.map | 1 - .../es6/findNumbers/Leniency.test.js | 42 - .../es6/findNumbers/Leniency.test.js.map | 1 - .../es6/findNumbers/RegExpCache.js | 39 - .../es6/findNumbers/RegExpCache.js.map | 1 - .../es6/findNumbers/isValidCandidate.js | 67 - .../es6/findNumbers/isValidCandidate.js.map | 1 - .../es6/findNumbers/isValidPreCandidate.js | 27 - .../findNumbers/isValidPreCandidate.js.map | 1 - .../es6/findNumbers/parsePreCandidate.js | 17 - .../es6/findNumbers/parsePreCandidate.js.map | 1 - .../es6/findNumbers/utf-8.js | 61 - .../es6/findNumbers/utf-8.js.map | 1 - .../libphonenumber-js/es6/findNumbers/util.js | 29 - .../es6/findNumbers/util.js.map | 1 - .../es6/findNumbers/util.test.js | 35 - .../es6/findNumbers/util.test.js.map | 1 - .../libphonenumber-js/es6/findNumbers_.js | 12 - .../libphonenumber-js/es6/findNumbers_.js.map | 1 - .../libphonenumber-js/es6/findPhoneNumbers.js | 25 - .../es6/findPhoneNumbers.js.map | 1 - .../es6/findPhoneNumbers.test.js | 234 - .../es6/findPhoneNumbers.test.js.map | 1 - .../es6/findPhoneNumbersInText.js | 54 - .../es6/findPhoneNumbersInText.js.map | 1 - .../es6/findPhoneNumbersInText.test.js | 47 - .../es6/findPhoneNumbersInText.test.js.map | 1 - .../es6/findPhoneNumbers_.js | 204 - .../es6/findPhoneNumbers_.js.map | 1 - .../libphonenumber-js/es6/format.js | 112 - .../libphonenumber-js/es6/format.js.map | 1 - .../libphonenumber-js/es6/format.test.js | 262 - .../libphonenumber-js/es6/format.test.js.map | 1 - .../es6/formatIncompletePhoneNumber.js | 19 - .../es6/formatIncompletePhoneNumber.js.map | 1 - .../es6/formatIncompletePhoneNumber.test.js | 16 - .../formatIncompletePhoneNumber.test.js.map | 1 - .../es6/formatNumberForMobileDialing.js | 191 - .../es6/formatNumberForMobileDialing.js.map | 1 - .../es6/formatNumberForMobileDialing.test.js | 14 - .../formatNumberForMobileDialing.test.js.map | 1 - .../libphonenumber-js/es6/format_.js | 188 - .../libphonenumber-js/es6/format_.js.map | 1 - .../libphonenumber-js/es6/getCountries.js | 5 - .../libphonenumber-js/es6/getCountries.js.map | 1 - .../es6/getCountries.test.js | 8 - .../es6/getCountries.test.js.map | 1 - .../es6/getCountryCallingCode.js | 3 - .../es6/getCountryCallingCode.js.map | 1 - .../es6/getCountryCallingCode.test.js | 13 - .../es6/getCountryCallingCode.test.js.map | 1 - .../libphonenumber-js/es6/getExampleNumber.js | 7 - .../es6/getExampleNumber.js.map | 1 - .../es6/getExampleNumber.test.js | 16 - .../es6/getExampleNumber.test.js.map | 1 - .../libphonenumber-js/es6/getNumberType.js | 109 - .../es6/getNumberType.js.map | 1 - .../es6/getNumberType.test.js | 75 - .../es6/getNumberType.test.js.map | 1 - .../libphonenumber-js/es6/helpers/RFC3966.js | 95 - .../es6/helpers/RFC3966.js.map | 1 - .../es6/helpers/RFC3966.test.js | 38 - .../es6/helpers/RFC3966.test.js.map | 1 - .../applyInternationalSeparatorStyle.js | 35 - .../applyInternationalSeparatorStyle.js.map | 1 - .../applyInternationalSeparatorStyle.test.js | 8 - ...plyInternationalSeparatorStyle.test.js.map | 1 - .../es6/helpers/checkNumberLength.js | 80 - .../es6/helpers/checkNumberLength.js.map | 1 - .../es6/helpers/checkNumberLength.test.js | 32 - .../es6/helpers/checkNumberLength.test.js.map | 1 - .../extension/createExtensionPattern.js | 108 - .../extension/createExtensionPattern.js.map | 1 - .../es6/helpers/extension/extractExtension.js | 32 - .../helpers/extension/extractExtension.js.map | 1 - .../es6/helpers/extractCountryCallingCode.js | 102 - .../helpers/extractCountryCallingCode.js.map | 1 - .../helpers/extractCountryCallingCode.test.js | 16 - .../extractCountryCallingCode.test.js.map | 1 - ...eFromInternationalNumberWithoutPlusSign.js | 50 - ...mInternationalNumberWithoutPlusSign.js.map | 1 - .../es6/helpers/extractNationalNumber.js | 98 - .../es6/helpers/extractNationalNumber.js.map | 1 - ...ionalNumberFromPossiblyIncompleteNumber.js | 107 - ...lNumberFromPossiblyIncompleteNumber.js.map | 1 - ...NumberFromPossiblyIncompleteNumber.test.js | 15 - ...erFromPossiblyIncompleteNumber.test.js.map | 1 - .../formatNationalNumberUsingFormat.js | 33 - .../formatNationalNumberUsingFormat.js.map | 1 - .../es6/helpers/getCountryByCallingCode.js | 61 - .../helpers/getCountryByCallingCode.js.map | 1 - .../es6/helpers/getIddPrefix.js | 25 - .../es6/helpers/getIddPrefix.js.map | 1 - .../es6/helpers/getNumberType.js | 80 - .../es6/helpers/getNumberType.js.map | 1 - .../es6/helpers/isViablePhoneNumber.js | 50 - .../es6/helpers/isViablePhoneNumber.js.map | 1 - .../es6/helpers/matchesEntirely.js | 12 - .../es6/helpers/matchesEntirely.js.map | 1 - .../es6/helpers/matchesEntirely.test.js | 10 - .../es6/helpers/matchesEntirely.test.js.map | 1 - .../es6/helpers/mergeArrays.js | 38 - .../es6/helpers/mergeArrays.js.map | 1 - .../es6/helpers/mergeArrays.test.js | 7 - .../es6/helpers/mergeArrays.test.js.map | 1 - .../es6/helpers/parseDigits.js | 126 - .../es6/helpers/parseDigits.js.map | 1 - .../es6/helpers/parseDigits.test.js | 7 - .../es6/helpers/parseDigits.test.js.map | 1 - .../es6/helpers/stripIddPrefix.js | 34 - .../es6/helpers/stripIddPrefix.js.map | 1 - .../es6/helpers/stripIddPrefix.test.js | 17 - .../es6/helpers/stripIddPrefix.test.js.map | 1 - .../libphonenumber-js/es6/isPossibleNumber.js | 26 - .../es6/isPossibleNumber.js.map | 1 - .../es6/isPossibleNumber.test.js | 78 - .../es6/isPossibleNumber.test.js.map | 1 - .../es6/isPossibleNumber_.js | 69 - .../es6/isPossibleNumber_.js.map | 1 - .../es6/isPossiblePhoneNumber.js | 19 - .../es6/isPossiblePhoneNumber.js.map | 1 - .../es6/isPossiblePhoneNumber.test.js | 27 - .../es6/isPossiblePhoneNumber.test.js.map | 1 - .../es6/isValidNumberForRegion.js | 30 - .../es6/isValidNumberForRegion.js.map | 1 - .../es6/isValidNumberForRegion.test.js | 37 - .../es6/isValidNumberForRegion.test.js.map | 1 - .../es6/isValidNumberForRegion_.js | 14 - .../es6/isValidNumberForRegion_.js.map | 1 - .../es6/isValidPhoneNumber.js | 19 - .../es6/isValidPhoneNumber.js.map | 1 - .../es6/isValidPhoneNumber.test.js | 27 - .../es6/isValidPhoneNumber.test.js.map | 1 - .../libphonenumber-js/es6/metadata.js | 662 - .../libphonenumber-js/es6/metadata.js.map | 1 - .../libphonenumber-js/es6/metadata.test.js | 115 - .../es6/metadata.test.js.map | 1 - .../libphonenumber-js/es6/parse.js | 37 - .../libphonenumber-js/es6/parse.js.map | 1 - .../libphonenumber-js/es6/parse.test.js | 562 - .../libphonenumber-js/es6/parse.test.js.map | 1 - .../es6/parseIncompletePhoneNumber.js | 71 - .../es6/parseIncompletePhoneNumber.js.map | 1 - .../es6/parseIncompletePhoneNumber.test.js | 27 - .../parseIncompletePhoneNumber.test.js.map | 1 - .../libphonenumber-js/es6/parsePhoneNumber.js | 80 - .../es6/parsePhoneNumber.js.map | 1 - .../es6/parsePhoneNumber.test.js | 126 - .../es6/parsePhoneNumber.test.js.map | 1 - .../es6/parsePhoneNumberFromString.js | 11 - .../es6/parsePhoneNumberFromString.js.map | 1 - .../es6/parsePhoneNumberFromString.test.js | 80 - .../parsePhoneNumberFromString.test.js.map | 1 - .../es6/parsePhoneNumberFromString_.js | 27 - .../es6/parsePhoneNumberFromString_.js.map | 1 - .../es6/parsePhoneNumber_.js | 11 - .../es6/parsePhoneNumber_.js.map | 1 - .../libphonenumber-js/es6/parse_.js | 324 - .../libphonenumber-js/es6/parse_.js.map | 1 - .../libphonenumber-js/es6/searchNumbers.js | 33 - .../es6/searchNumbers.js.map | 1 - .../es6/searchNumbers.test.js | 38 - .../es6/searchNumbers.test.js.map | 1 - .../es6/searchPhoneNumbersInText.js | 7 - .../es6/searchPhoneNumbersInText.js.map | 1 - .../es6/searchPhoneNumbersInText.test.js | 45 - .../es6/searchPhoneNumbersInText.test.js.map | 1 - .../es6/tools/semver-compare.js | 30 - .../es6/tools/semver-compare.js.map | 1 - .../es6/tools/semver-compare.test.js | 8 - .../es6/tools/semver-compare.test.js.map | 1 - .../libphonenumber-js/es6/validate.js | 12 - .../libphonenumber-js/es6/validate.js.map | 1 - .../libphonenumber-js/es6/validate.test.js | 91 - .../es6/validate.test.js.map | 1 - .../libphonenumber-js/es6/validate_.js | 57 - .../libphonenumber-js/es6/validate_.js.map | 1 - .../libphonenumber-js/examples.mobile.json | 1 - .../libphonenumber-js/examples.mobile.json.js | 4 - .../libphonenumber-js/index.common.js | 120 - .../node_modules/libphonenumber-js/index.d.ts | 163 - .../index.es6.exports/PhoneNumberSearch.js | 11 - .../index.es6.exports/findPhoneNumbers.js | 7 - .../index.es6.exports/format.js | 7 - .../index.es6.exports/getNumberType.js | 7 - .../index.es6.exports/isPossibleNumber.js | 9 - .../index.es6.exports/isValidNumber.js | 9 - .../isValidNumberForRegion.js | 7 - .../index.es6.exports/parse.js | 7 - .../index.es6.exports/searchPhoneNumbers.js | 7 - .../libphonenumber-js/index.es6.js | 66 - .../max/exports/AsYouType.js | 9 - .../libphonenumber-js/max/exports/Metadata.js | 9 - .../max/exports/PhoneNumberMatcher.js | 8 - .../max/exports/findNumbers.js | 6 - .../max/exports/findPhoneNumbersInText.js | 6 - .../exports/formatIncompletePhoneNumber.js | 6 - .../max/exports/getCountries.js | 6 - .../max/exports/getCountryCallingCode.js | 6 - .../max/exports/getExampleNumber.js | 6 - .../max/exports/getExtPrefix.js | 6 - .../max/exports/isPossiblePhoneNumber.js | 6 - .../max/exports/isSupportedCountry.js | 6 - .../max/exports/isValidPhoneNumber.js | 6 - .../max/exports/parsePhoneNumberFromString.js | 6 - .../max/exports/parsePhoneNumberWithError.js | 6 - .../max/exports/searchNumbers.js | 6 - .../max/exports/searchPhoneNumbersInText.js | 6 - .../libphonenumber-js/max/index.commonjs.js | 103 - .../libphonenumber-js/max/index.js | 39 - .../libphonenumber-js/max/metadata.js | 11 - .../libphonenumber-js/max/package.json | 9 - .../libphonenumber-js/metadata.full.json | 1 - .../libphonenumber-js/metadata.full.json.js | 4 - .../libphonenumber-js/metadata.min.json | 1 - .../libphonenumber-js/metadata.min.json.js | 4 - .../libphonenumber-js/metadata.mobile.json | 1 - .../libphonenumber-js/metadata.mobile.json.js | 4 - .../min/exports/AsYouType.js | 9 - .../libphonenumber-js/min/exports/Metadata.js | 9 - .../min/exports/PhoneNumberMatcher.js | 8 - .../min/exports/findNumbers.js | 6 - .../min/exports/findPhoneNumbersInText.js | 6 - .../exports/formatIncompletePhoneNumber.js | 6 - .../min/exports/getCountries.js | 6 - .../min/exports/getCountryCallingCode.js | 6 - .../min/exports/getExampleNumber.js | 6 - .../min/exports/getExtPrefix.js | 6 - .../min/exports/isPossiblePhoneNumber.js | 6 - .../min/exports/isSupportedCountry.js | 6 - .../min/exports/isValidPhoneNumber.js | 6 - .../min/exports/parsePhoneNumberFromString.js | 6 - .../min/exports/parsePhoneNumberWithError.js | 6 - .../min/exports/searchNumbers.js | 6 - .../min/exports/searchPhoneNumbersInText.js | 6 - .../libphonenumber-js/min/index.commonjs.js | 109 - .../libphonenumber-js/min/index.d.ts | 95 - .../libphonenumber-js/min/index.js | 39 - .../libphonenumber-js/min/metadata.js | 11 - .../libphonenumber-js/min/package.json | 8 - .../mobile/exports/AsYouType.js | 9 - .../mobile/exports/Metadata.js | 9 - .../mobile/exports/PhoneNumberMatcher.js | 8 - .../mobile/exports/findNumbers.js | 6 - .../mobile/exports/findPhoneNumbersInText.js | 6 - .../exports/formatIncompletePhoneNumber.js | 6 - .../mobile/exports/getCountries.js | 6 - .../mobile/exports/getCountryCallingCode.js | 6 - .../mobile/exports/getExampleNumber.js | 6 - .../mobile/exports/getExtPrefix.js | 6 - .../mobile/exports/isPossiblePhoneNumber.js | 6 - .../mobile/exports/isSupportedCountry.js | 6 - .../mobile/exports/isValidPhoneNumber.js | 6 - .../exports/parsePhoneNumberFromString.js | 6 - .../exports/parsePhoneNumberWithError.js | 6 - .../mobile/exports/searchNumbers.js | 6 - .../exports/searchPhoneNumbersInText.js | 6 - .../mobile/index.commonjs.js | 103 - .../libphonenumber-js/mobile/index.js | 39 - .../libphonenumber-js/mobile/metadata.js | 11 - .../libphonenumber-js/mobile/package.json | 9 - .../libphonenumber-js/package.json | 81 - .../libphonenumber-js/rollup.config.js | 57 - .../libphonenumber-js/runnable/download.js | 12 - .../runnable/generate-country-codes.js | 13 - .../libphonenumber-js/runnable/generate.js | 75 - .../libphonenumber-js/runnable/json-to-js.js | 14 - .../runnable/metadata-branch.js | 26 - ...tadata-update-and-push-and-pull-request.js | 47 - .../runnable/metadata-update-and-push.js | 30 - .../runnable/metadata-update-and-release.js | 32 - .../runnable/modules/commit.js | 14 - .../runnable/modules/exec.js | 6 - .../runnable/modules/update-metadata.js | 88 - .../libphonenumber-js/source/AsYouType.js | 349 - .../source/AsYouType.test.js | 1062 - .../source/AsYouTypeFormatter.complete.js | 135 - .../source/AsYouTypeFormatter.js | 645 - .../source/AsYouTypeFormatter.util.js | 100 - .../source/AsYouTypeFormatter.util.test.js | 22 - .../source/AsYouTypeParser.js | 491 - .../source/AsYouTypeState.js | 88 - .../libphonenumber-js/source/ParseError.js | 11 - .../libphonenumber-js/source/PhoneNumber.js | 88 - .../source/PhoneNumber.test.js | 36 - .../source/PhoneNumberMatcher.js | 393 - .../source/PhoneNumberMatcher.test.js | 74 - .../libphonenumber-js/source/constants.js | 31 - .../libphonenumber-js/source/findNumbers.js | 7 - .../source/findNumbers.test.js | 204 - .../source/findNumbers/LRUCache.js | 107 - .../source/findNumbers/Leniency.js | 396 - .../source/findNumbers/Leniency.test.js | 41 - .../source/findNumbers/RegExpCache.js | 20 - .../source/findNumbers/isValidCandidate.js | 86 - .../source/findNumbers/isValidPreCandidate.js | 29 - .../source/findNumbers/parsePreCandidate.js | 19 - .../source/findNumbers/utf-8.js | 82 - .../source/findNumbers/util.js | 33 - .../source/findNumbers/util.test.js | 41 - .../libphonenumber-js/source/findNumbers_.js | 10 - .../source/findPhoneNumbers.js | 20 - .../source/findPhoneNumbers.test.js | 233 - .../source/findPhoneNumbersInText.js | 45 - .../source/findPhoneNumbersInText.test.js | 48 - .../source/findPhoneNumbers_.js | 191 - .../libphonenumber-js/source/format.js | 113 - .../libphonenumber-js/source/format.test.js | 225 - .../source/formatIncompletePhoneNumber.js | 17 - .../formatIncompletePhoneNumber.test.js | 21 - .../source/formatNumberForMobileDialing.js | 221 - .../formatNumberForMobileDialing.test.js | 16 - .../libphonenumber-js/source/format_.js | 182 - .../libphonenumber-js/source/getCountries.js | 5 - .../source/getCountries.test.js | 9 - .../source/getCountryCallingCode.js | 2 - .../source/getCountryCallingCode.test.js | 13 - .../source/getExampleNumber.js | 7 - .../source/getExampleNumber.test.js | 17 - .../libphonenumber-js/source/getNumberType.js | 112 - .../source/getNumberType.test.js | 65 - .../source/helpers/RFC3966.js | 59 - .../source/helpers/RFC3966.test.js | 33 - .../applyInternationalSeparatorStyle.js | 35 - .../applyInternationalSeparatorStyle.test.js | 8 - .../source/helpers/checkNumberLength.js | 86 - .../source/helpers/checkNumberLength.test.js | 32 - .../extension/createExtensionPattern.js | 112 - .../helpers/extension/extractExtension.js | 29 - .../helpers/extractCountryCallingCode.js | 106 - .../helpers/extractCountryCallingCode.test.js | 18 - ...eFromInternationalNumberWithoutPlusSign.js | 63 - .../source/helpers/extractNationalNumber.js | 92 - ...ionalNumberFromPossiblyIncompleteNumber.js | 104 - ...NumberFromPossiblyIncompleteNumber.test.js | 15 - .../formatNationalNumberUsingFormat.js | 46 - .../source/helpers/getCountryByCallingCode.js | 44 - .../source/helpers/getIddPrefix.js | 23 - .../source/helpers/getNumberType.js | 93 - .../source/helpers/isViablePhoneNumber.js | 79 - .../source/helpers/matchesEntirely.js | 11 - .../source/helpers/matchesEntirely.test.js | 11 - .../source/helpers/mergeArrays.js | 24 - .../source/helpers/mergeArrays.test.js | 7 - .../source/helpers/parseDigits.js | 82 - .../source/helpers/parseDigits.test.js | 7 - .../source/helpers/stripIddPrefix.js | 30 - .../source/helpers/stripIddPrefix.test.js | 21 - .../source/isPossibleNumber.js | 22 - .../source/isPossibleNumber.test.js | 40 - .../source/isPossibleNumber_.js | 64 - .../source/isPossiblePhoneNumber.js | 12 - .../source/isPossiblePhoneNumber.test.js | 20 - .../source/isValidNumberForRegion.js | 24 - .../source/isValidNumberForRegion.test.js | 28 - .../source/isValidNumberForRegion_.js | 13 - .../source/isValidPhoneNumber.js | 12 - .../source/isValidPhoneNumber.test.js | 20 - .../libphonenumber-js/source/metadata.js | 532 - .../libphonenumber-js/source/metadata.test.js | 82 - .../libphonenumber-js/source/parse.js | 34 - .../libphonenumber-js/source/parse.test.js | 524 - .../source/parseIncompletePhoneNumber.js | 55 - .../source/parseIncompletePhoneNumber.test.js | 36 - .../source/parsePhoneNumber.js | 61 - .../source/parsePhoneNumber.test.js | 110 - .../source/parsePhoneNumberFromString.js | 7 - .../source/parsePhoneNumberFromString.test.js | 72 - .../source/parsePhoneNumberFromString_.js | 24 - .../source/parsePhoneNumber_.js | 5 - .../libphonenumber-js/source/parse_.js | 335 - .../libphonenumber-js/source/searchNumbers.js | 30 - .../source/searchNumbers.test.js | 26 - .../source/searchPhoneNumbersInText.js | 7 - .../source/searchPhoneNumbersInText.test.js | 20 - .../source/tools/semver-compare.js | 26 - .../source/tools/semver-compare.test.js | 40 - .../libphonenumber-js/source/validate.js | 9 - .../libphonenumber-js/source/validate.test.js | 86 - .../libphonenumber-js/source/validate_.js | 62 - .../node_modules/libphonenumber-js/types.d.ts | 93 - views/node_modules/lodash/LICENSE | 47 - views/node_modules/lodash/README.md | 39 - views/node_modules/lodash/_DataView.js | 7 - views/node_modules/lodash/_Hash.js | 32 - views/node_modules/lodash/_LazyWrapper.js | 28 - views/node_modules/lodash/_ListCache.js | 32 - views/node_modules/lodash/_LodashWrapper.js | 22 - views/node_modules/lodash/_Map.js | 7 - views/node_modules/lodash/_MapCache.js | 32 - views/node_modules/lodash/_Promise.js | 7 - views/node_modules/lodash/_Set.js | 7 - views/node_modules/lodash/_SetCache.js | 27 - views/node_modules/lodash/_Stack.js | 27 - views/node_modules/lodash/_Symbol.js | 6 - views/node_modules/lodash/_Uint8Array.js | 6 - views/node_modules/lodash/_WeakMap.js | 7 - views/node_modules/lodash/_apply.js | 21 - views/node_modules/lodash/_arrayAggregator.js | 22 - views/node_modules/lodash/_arrayEach.js | 22 - views/node_modules/lodash/_arrayEachRight.js | 21 - views/node_modules/lodash/_arrayEvery.js | 23 - views/node_modules/lodash/_arrayFilter.js | 25 - views/node_modules/lodash/_arrayIncludes.js | 17 - .../node_modules/lodash/_arrayIncludesWith.js | 22 - views/node_modules/lodash/_arrayLikeKeys.js | 49 - views/node_modules/lodash/_arrayMap.js | 21 - views/node_modules/lodash/_arrayPush.js | 20 - views/node_modules/lodash/_arrayReduce.js | 26 - .../node_modules/lodash/_arrayReduceRight.js | 24 - views/node_modules/lodash/_arraySample.js | 15 - views/node_modules/lodash/_arraySampleSize.js | 17 - views/node_modules/lodash/_arrayShuffle.js | 15 - views/node_modules/lodash/_arraySome.js | 23 - views/node_modules/lodash/_asciiSize.js | 12 - views/node_modules/lodash/_asciiToArray.js | 12 - views/node_modules/lodash/_asciiWords.js | 15 - .../node_modules/lodash/_assignMergeValue.js | 20 - views/node_modules/lodash/_assignValue.js | 28 - views/node_modules/lodash/_assocIndexOf.js | 21 - views/node_modules/lodash/_baseAggregator.js | 21 - views/node_modules/lodash/_baseAssign.js | 17 - views/node_modules/lodash/_baseAssignIn.js | 17 - views/node_modules/lodash/_baseAssignValue.js | 25 - views/node_modules/lodash/_baseAt.js | 23 - views/node_modules/lodash/_baseClamp.js | 22 - views/node_modules/lodash/_baseClone.js | 166 - views/node_modules/lodash/_baseConforms.js | 18 - views/node_modules/lodash/_baseConformsTo.js | 27 - views/node_modules/lodash/_baseCreate.js | 30 - views/node_modules/lodash/_baseDelay.js | 21 - views/node_modules/lodash/_baseDifference.js | 67 - views/node_modules/lodash/_baseEach.js | 14 - views/node_modules/lodash/_baseEachRight.js | 14 - views/node_modules/lodash/_baseEvery.js | 21 - views/node_modules/lodash/_baseExtremum.js | 32 - views/node_modules/lodash/_baseFill.js | 32 - views/node_modules/lodash/_baseFilter.js | 21 - views/node_modules/lodash/_baseFindIndex.js | 24 - views/node_modules/lodash/_baseFindKey.js | 23 - views/node_modules/lodash/_baseFlatten.js | 38 - views/node_modules/lodash/_baseFor.js | 16 - views/node_modules/lodash/_baseForOwn.js | 16 - views/node_modules/lodash/_baseForOwnRight.js | 16 - views/node_modules/lodash/_baseForRight.js | 15 - views/node_modules/lodash/_baseFunctions.js | 19 - views/node_modules/lodash/_baseGet.js | 24 - views/node_modules/lodash/_baseGetAllKeys.js | 20 - views/node_modules/lodash/_baseGetTag.js | 28 - views/node_modules/lodash/_baseGt.js | 14 - views/node_modules/lodash/_baseHas.js | 19 - views/node_modules/lodash/_baseHasIn.js | 13 - views/node_modules/lodash/_baseInRange.js | 18 - views/node_modules/lodash/_baseIndexOf.js | 20 - views/node_modules/lodash/_baseIndexOfWith.js | 23 - .../node_modules/lodash/_baseIntersection.js | 74 - views/node_modules/lodash/_baseInverter.js | 21 - views/node_modules/lodash/_baseInvoke.js | 24 - views/node_modules/lodash/_baseIsArguments.js | 18 - .../node_modules/lodash/_baseIsArrayBuffer.js | 17 - views/node_modules/lodash/_baseIsDate.js | 18 - views/node_modules/lodash/_baseIsEqual.js | 28 - views/node_modules/lodash/_baseIsEqualDeep.js | 83 - views/node_modules/lodash/_baseIsMap.js | 18 - views/node_modules/lodash/_baseIsMatch.js | 62 - views/node_modules/lodash/_baseIsNaN.js | 12 - views/node_modules/lodash/_baseIsNative.js | 47 - views/node_modules/lodash/_baseIsRegExp.js | 18 - views/node_modules/lodash/_baseIsSet.js | 18 - .../node_modules/lodash/_baseIsTypedArray.js | 60 - views/node_modules/lodash/_baseIteratee.js | 31 - views/node_modules/lodash/_baseKeys.js | 30 - views/node_modules/lodash/_baseKeysIn.js | 33 - views/node_modules/lodash/_baseLodash.js | 10 - views/node_modules/lodash/_baseLt.js | 14 - views/node_modules/lodash/_baseMap.js | 22 - views/node_modules/lodash/_baseMatches.js | 22 - .../lodash/_baseMatchesProperty.js | 33 - views/node_modules/lodash/_baseMean.js | 20 - views/node_modules/lodash/_baseMerge.js | 42 - views/node_modules/lodash/_baseMergeDeep.js | 94 - views/node_modules/lodash/_baseNth.js | 20 - views/node_modules/lodash/_baseOrderBy.js | 49 - views/node_modules/lodash/_basePick.js | 19 - views/node_modules/lodash/_basePickBy.js | 30 - views/node_modules/lodash/_baseProperty.js | 14 - .../node_modules/lodash/_basePropertyDeep.js | 16 - views/node_modules/lodash/_basePropertyOf.js | 14 - views/node_modules/lodash/_basePullAll.js | 51 - views/node_modules/lodash/_basePullAt.js | 37 - views/node_modules/lodash/_baseRandom.js | 18 - views/node_modules/lodash/_baseRange.js | 28 - views/node_modules/lodash/_baseReduce.js | 23 - views/node_modules/lodash/_baseRepeat.js | 35 - views/node_modules/lodash/_baseRest.js | 17 - views/node_modules/lodash/_baseSample.js | 15 - views/node_modules/lodash/_baseSampleSize.js | 18 - views/node_modules/lodash/_baseSet.js | 51 - views/node_modules/lodash/_baseSetData.js | 17 - views/node_modules/lodash/_baseSetToString.js | 22 - views/node_modules/lodash/_baseShuffle.js | 15 - views/node_modules/lodash/_baseSlice.js | 31 - views/node_modules/lodash/_baseSome.js | 22 - views/node_modules/lodash/_baseSortBy.js | 21 - views/node_modules/lodash/_baseSortedIndex.js | 42 - .../node_modules/lodash/_baseSortedIndexBy.js | 67 - views/node_modules/lodash/_baseSortedUniq.js | 30 - views/node_modules/lodash/_baseSum.js | 24 - views/node_modules/lodash/_baseTimes.js | 20 - views/node_modules/lodash/_baseToNumber.js | 24 - views/node_modules/lodash/_baseToPairs.js | 18 - views/node_modules/lodash/_baseToString.js | 37 - views/node_modules/lodash/_baseTrim.js | 19 - views/node_modules/lodash/_baseUnary.js | 14 - views/node_modules/lodash/_baseUniq.js | 72 - views/node_modules/lodash/_baseUnset.js | 20 - views/node_modules/lodash/_baseUpdate.js | 18 - views/node_modules/lodash/_baseValues.js | 19 - views/node_modules/lodash/_baseWhile.js | 26 - .../node_modules/lodash/_baseWrapperValue.js | 25 - views/node_modules/lodash/_baseXor.js | 36 - views/node_modules/lodash/_baseZipObject.js | 23 - views/node_modules/lodash/_cacheHas.js | 13 - .../lodash/_castArrayLikeObject.js | 14 - views/node_modules/lodash/_castFunction.js | 14 - views/node_modules/lodash/_castPath.js | 21 - views/node_modules/lodash/_castRest.js | 14 - views/node_modules/lodash/_castSlice.js | 18 - views/node_modules/lodash/_charsEndIndex.js | 19 - views/node_modules/lodash/_charsStartIndex.js | 20 - .../node_modules/lodash/_cloneArrayBuffer.js | 16 - views/node_modules/lodash/_cloneBuffer.js | 35 - views/node_modules/lodash/_cloneDataView.js | 16 - views/node_modules/lodash/_cloneRegExp.js | 17 - views/node_modules/lodash/_cloneSymbol.js | 18 - views/node_modules/lodash/_cloneTypedArray.js | 16 - .../node_modules/lodash/_compareAscending.js | 41 - views/node_modules/lodash/_compareMultiple.js | 44 - views/node_modules/lodash/_composeArgs.js | 39 - .../node_modules/lodash/_composeArgsRight.js | 41 - views/node_modules/lodash/_copyArray.js | 20 - views/node_modules/lodash/_copyObject.js | 40 - views/node_modules/lodash/_copySymbols.js | 16 - views/node_modules/lodash/_copySymbolsIn.js | 16 - views/node_modules/lodash/_coreJsData.js | 6 - views/node_modules/lodash/_countHolders.js | 21 - .../node_modules/lodash/_createAggregator.js | 23 - views/node_modules/lodash/_createAssigner.js | 37 - views/node_modules/lodash/_createBaseEach.js | 32 - views/node_modules/lodash/_createBaseFor.js | 25 - views/node_modules/lodash/_createBind.js | 28 - views/node_modules/lodash/_createCaseFirst.js | 33 - .../node_modules/lodash/_createCompounder.js | 24 - views/node_modules/lodash/_createCtor.js | 37 - views/node_modules/lodash/_createCurry.js | 46 - views/node_modules/lodash/_createFind.js | 25 - views/node_modules/lodash/_createFlow.js | 78 - views/node_modules/lodash/_createHybrid.js | 92 - views/node_modules/lodash/_createInverter.js | 17 - .../lodash/_createMathOperation.js | 38 - views/node_modules/lodash/_createOver.js | 27 - views/node_modules/lodash/_createPadding.js | 33 - views/node_modules/lodash/_createPartial.js | 43 - views/node_modules/lodash/_createRange.js | 30 - views/node_modules/lodash/_createRecurry.js | 56 - .../lodash/_createRelationalOperation.js | 20 - views/node_modules/lodash/_createRound.js | 35 - views/node_modules/lodash/_createSet.js | 19 - views/node_modules/lodash/_createToPairs.js | 30 - views/node_modules/lodash/_createWrap.js | 106 - .../lodash/_customDefaultsAssignIn.js | 29 - .../lodash/_customDefaultsMerge.js | 28 - views/node_modules/lodash/_customOmitClone.js | 16 - views/node_modules/lodash/_deburrLetter.js | 71 - views/node_modules/lodash/_defineProperty.js | 11 - views/node_modules/lodash/_equalArrays.js | 84 - views/node_modules/lodash/_equalByTag.js | 112 - views/node_modules/lodash/_equalObjects.js | 90 - views/node_modules/lodash/_escapeHtmlChar.js | 21 - .../node_modules/lodash/_escapeStringChar.js | 22 - views/node_modules/lodash/_flatRest.js | 16 - views/node_modules/lodash/_freeGlobal.js | 4 - views/node_modules/lodash/_getAllKeys.js | 16 - views/node_modules/lodash/_getAllKeysIn.js | 17 - views/node_modules/lodash/_getData.js | 15 - views/node_modules/lodash/_getFuncName.js | 31 - views/node_modules/lodash/_getHolder.js | 13 - views/node_modules/lodash/_getMapData.js | 18 - views/node_modules/lodash/_getMatchData.js | 24 - views/node_modules/lodash/_getNative.js | 17 - views/node_modules/lodash/_getPrototype.js | 6 - views/node_modules/lodash/_getRawTag.js | 46 - views/node_modules/lodash/_getSymbols.js | 30 - views/node_modules/lodash/_getSymbolsIn.js | 25 - views/node_modules/lodash/_getTag.js | 58 - views/node_modules/lodash/_getValue.js | 13 - views/node_modules/lodash/_getView.js | 33 - views/node_modules/lodash/_getWrapDetails.js | 17 - views/node_modules/lodash/_hasPath.js | 39 - views/node_modules/lodash/_hasUnicode.js | 26 - views/node_modules/lodash/_hasUnicodeWord.js | 15 - views/node_modules/lodash/_hashClear.js | 15 - views/node_modules/lodash/_hashDelete.js | 17 - views/node_modules/lodash/_hashGet.js | 30 - views/node_modules/lodash/_hashHas.js | 23 - views/node_modules/lodash/_hashSet.js | 23 - views/node_modules/lodash/_initCloneArray.js | 26 - views/node_modules/lodash/_initCloneByTag.js | 77 - views/node_modules/lodash/_initCloneObject.js | 18 - .../node_modules/lodash/_insertWrapDetails.js | 23 - views/node_modules/lodash/_isFlattenable.js | 20 - views/node_modules/lodash/_isIndex.js | 25 - views/node_modules/lodash/_isIterateeCall.js | 30 - views/node_modules/lodash/_isKey.js | 29 - views/node_modules/lodash/_isKeyable.js | 15 - views/node_modules/lodash/_isLaziable.js | 28 - views/node_modules/lodash/_isMaskable.js | 14 - views/node_modules/lodash/_isMasked.js | 20 - views/node_modules/lodash/_isPrototype.js | 18 - .../lodash/_isStrictComparable.js | 15 - views/node_modules/lodash/_iteratorToArray.js | 18 - views/node_modules/lodash/_lazyClone.js | 23 - views/node_modules/lodash/_lazyReverse.js | 23 - views/node_modules/lodash/_lazyValue.js | 69 - views/node_modules/lodash/_listCacheClear.js | 13 - views/node_modules/lodash/_listCacheDelete.js | 35 - views/node_modules/lodash/_listCacheGet.js | 19 - views/node_modules/lodash/_listCacheHas.js | 16 - views/node_modules/lodash/_listCacheSet.js | 26 - views/node_modules/lodash/_mapCacheClear.js | 21 - views/node_modules/lodash/_mapCacheDelete.js | 18 - views/node_modules/lodash/_mapCacheGet.js | 16 - views/node_modules/lodash/_mapCacheHas.js | 16 - views/node_modules/lodash/_mapCacheSet.js | 22 - views/node_modules/lodash/_mapToArray.js | 18 - .../lodash/_matchesStrictComparable.js | 20 - views/node_modules/lodash/_memoizeCapped.js | 26 - views/node_modules/lodash/_mergeData.js | 90 - views/node_modules/lodash/_metaMap.js | 6 - views/node_modules/lodash/_nativeCreate.js | 6 - views/node_modules/lodash/_nativeKeys.js | 6 - views/node_modules/lodash/_nativeKeysIn.js | 20 - views/node_modules/lodash/_nodeUtil.js | 30 - views/node_modules/lodash/_objectToString.js | 22 - views/node_modules/lodash/_overArg.js | 15 - views/node_modules/lodash/_overRest.js | 36 - views/node_modules/lodash/_parent.js | 16 - views/node_modules/lodash/_reEscape.js | 4 - views/node_modules/lodash/_reEvaluate.js | 4 - views/node_modules/lodash/_reInterpolate.js | 4 - views/node_modules/lodash/_realNames.js | 4 - views/node_modules/lodash/_reorder.js | 29 - views/node_modules/lodash/_replaceHolders.js | 29 - views/node_modules/lodash/_root.js | 9 - views/node_modules/lodash/_safeGet.js | 21 - views/node_modules/lodash/_setCacheAdd.js | 19 - views/node_modules/lodash/_setCacheHas.js | 14 - views/node_modules/lodash/_setData.js | 20 - views/node_modules/lodash/_setToArray.js | 18 - views/node_modules/lodash/_setToPairs.js | 18 - views/node_modules/lodash/_setToString.js | 14 - views/node_modules/lodash/_setWrapToString.js | 21 - views/node_modules/lodash/_shortOut.js | 37 - views/node_modules/lodash/_shuffleSelf.js | 28 - views/node_modules/lodash/_stackClear.js | 15 - views/node_modules/lodash/_stackDelete.js | 18 - views/node_modules/lodash/_stackGet.js | 14 - views/node_modules/lodash/_stackHas.js | 14 - views/node_modules/lodash/_stackSet.js | 34 - views/node_modules/lodash/_strictIndexOf.js | 23 - .../node_modules/lodash/_strictLastIndexOf.js | 21 - views/node_modules/lodash/_stringSize.js | 18 - views/node_modules/lodash/_stringToArray.js | 18 - views/node_modules/lodash/_stringToPath.js | 27 - views/node_modules/lodash/_toKey.js | 21 - views/node_modules/lodash/_toSource.js | 26 - views/node_modules/lodash/_trimmedEndIndex.js | 19 - .../node_modules/lodash/_unescapeHtmlChar.js | 21 - views/node_modules/lodash/_unicodeSize.js | 44 - views/node_modules/lodash/_unicodeToArray.js | 40 - views/node_modules/lodash/_unicodeWords.js | 69 - .../node_modules/lodash/_updateWrapDetails.js | 46 - views/node_modules/lodash/_wrapperClone.js | 23 - views/node_modules/lodash/add.js | 22 - views/node_modules/lodash/after.js | 42 - views/node_modules/lodash/array.js | 67 - views/node_modules/lodash/ary.js | 29 - views/node_modules/lodash/assign.js | 58 - views/node_modules/lodash/assignIn.js | 40 - views/node_modules/lodash/assignInWith.js | 38 - views/node_modules/lodash/assignWith.js | 37 - views/node_modules/lodash/at.js | 23 - views/node_modules/lodash/attempt.js | 35 - views/node_modules/lodash/before.js | 40 - views/node_modules/lodash/bind.js | 57 - views/node_modules/lodash/bindAll.js | 41 - views/node_modules/lodash/bindKey.js | 68 - views/node_modules/lodash/camelCase.js | 29 - views/node_modules/lodash/capitalize.js | 23 - views/node_modules/lodash/castArray.js | 44 - views/node_modules/lodash/ceil.js | 26 - views/node_modules/lodash/chain.js | 38 - views/node_modules/lodash/chunk.js | 50 - views/node_modules/lodash/clamp.js | 39 - views/node_modules/lodash/clone.js | 36 - views/node_modules/lodash/cloneDeep.js | 29 - views/node_modules/lodash/cloneDeepWith.js | 40 - views/node_modules/lodash/cloneWith.js | 42 - views/node_modules/lodash/collection.js | 30 - views/node_modules/lodash/commit.js | 33 - views/node_modules/lodash/compact.js | 31 - views/node_modules/lodash/concat.js | 43 - views/node_modules/lodash/cond.js | 60 - views/node_modules/lodash/conforms.js | 35 - views/node_modules/lodash/conformsTo.js | 32 - views/node_modules/lodash/constant.js | 26 - views/node_modules/lodash/core.js | 3877 ---- views/node_modules/lodash/core.min.js | 29 - views/node_modules/lodash/countBy.js | 40 - views/node_modules/lodash/create.js | 43 - views/node_modules/lodash/curry.js | 57 - views/node_modules/lodash/curryRight.js | 54 - views/node_modules/lodash/date.js | 3 - views/node_modules/lodash/debounce.js | 191 - views/node_modules/lodash/deburr.js | 45 - views/node_modules/lodash/defaultTo.js | 25 - views/node_modules/lodash/defaults.js | 64 - views/node_modules/lodash/defaultsDeep.js | 30 - views/node_modules/lodash/defer.js | 26 - views/node_modules/lodash/delay.js | 28 - views/node_modules/lodash/difference.js | 33 - views/node_modules/lodash/differenceBy.js | 44 - views/node_modules/lodash/differenceWith.js | 40 - views/node_modules/lodash/divide.js | 22 - views/node_modules/lodash/drop.js | 38 - views/node_modules/lodash/dropRight.js | 39 - views/node_modules/lodash/dropRightWhile.js | 45 - views/node_modules/lodash/dropWhile.js | 45 - views/node_modules/lodash/each.js | 1 - views/node_modules/lodash/eachRight.js | 1 - views/node_modules/lodash/endsWith.js | 43 - views/node_modules/lodash/entries.js | 1 - views/node_modules/lodash/entriesIn.js | 1 - views/node_modules/lodash/eq.js | 37 - views/node_modules/lodash/escape.js | 43 - views/node_modules/lodash/escapeRegExp.js | 32 - views/node_modules/lodash/every.js | 56 - views/node_modules/lodash/extend.js | 1 - views/node_modules/lodash/extendWith.js | 1 - views/node_modules/lodash/fill.js | 45 - views/node_modules/lodash/filter.js | 52 - views/node_modules/lodash/find.js | 42 - views/node_modules/lodash/findIndex.js | 55 - views/node_modules/lodash/findKey.js | 44 - views/node_modules/lodash/findLast.js | 25 - views/node_modules/lodash/findLastIndex.js | 59 - views/node_modules/lodash/findLastKey.js | 44 - views/node_modules/lodash/first.js | 1 - views/node_modules/lodash/flake.lock | 40 - views/node_modules/lodash/flake.nix | 20 - views/node_modules/lodash/flatMap.js | 29 - views/node_modules/lodash/flatMapDeep.js | 31 - views/node_modules/lodash/flatMapDepth.js | 31 - views/node_modules/lodash/flatten.js | 22 - views/node_modules/lodash/flattenDeep.js | 25 - views/node_modules/lodash/flattenDepth.js | 33 - views/node_modules/lodash/flip.js | 28 - views/node_modules/lodash/floor.js | 26 - views/node_modules/lodash/flow.js | 27 - views/node_modules/lodash/flowRight.js | 26 - views/node_modules/lodash/forEach.js | 41 - views/node_modules/lodash/forEachRight.js | 31 - views/node_modules/lodash/forIn.js | 39 - views/node_modules/lodash/forInRight.js | 37 - views/node_modules/lodash/forOwn.js | 36 - views/node_modules/lodash/forOwnRight.js | 34 - views/node_modules/lodash/fp.js | 2 - views/node_modules/lodash/fp/F.js | 1 - views/node_modules/lodash/fp/T.js | 1 - views/node_modules/lodash/fp/__.js | 1 - views/node_modules/lodash/fp/_baseConvert.js | 569 - .../node_modules/lodash/fp/_convertBrowser.js | 18 - views/node_modules/lodash/fp/_falseOptions.js | 7 - views/node_modules/lodash/fp/_mapping.js | 358 - views/node_modules/lodash/fp/_util.js | 16 - views/node_modules/lodash/fp/add.js | 5 - views/node_modules/lodash/fp/after.js | 5 - views/node_modules/lodash/fp/all.js | 1 - views/node_modules/lodash/fp/allPass.js | 1 - views/node_modules/lodash/fp/always.js | 1 - views/node_modules/lodash/fp/any.js | 1 - views/node_modules/lodash/fp/anyPass.js | 1 - views/node_modules/lodash/fp/apply.js | 1 - views/node_modules/lodash/fp/array.js | 2 - views/node_modules/lodash/fp/ary.js | 5 - views/node_modules/lodash/fp/assign.js | 5 - views/node_modules/lodash/fp/assignAll.js | 5 - views/node_modules/lodash/fp/assignAllWith.js | 5 - views/node_modules/lodash/fp/assignIn.js | 5 - views/node_modules/lodash/fp/assignInAll.js | 5 - .../node_modules/lodash/fp/assignInAllWith.js | 5 - views/node_modules/lodash/fp/assignInWith.js | 5 - views/node_modules/lodash/fp/assignWith.js | 5 - views/node_modules/lodash/fp/assoc.js | 1 - views/node_modules/lodash/fp/assocPath.js | 1 - views/node_modules/lodash/fp/at.js | 5 - views/node_modules/lodash/fp/attempt.js | 5 - views/node_modules/lodash/fp/before.js | 5 - views/node_modules/lodash/fp/bind.js | 5 - views/node_modules/lodash/fp/bindAll.js | 5 - views/node_modules/lodash/fp/bindKey.js | 5 - views/node_modules/lodash/fp/camelCase.js | 5 - views/node_modules/lodash/fp/capitalize.js | 5 - views/node_modules/lodash/fp/castArray.js | 5 - views/node_modules/lodash/fp/ceil.js | 5 - views/node_modules/lodash/fp/chain.js | 5 - views/node_modules/lodash/fp/chunk.js | 5 - views/node_modules/lodash/fp/clamp.js | 5 - views/node_modules/lodash/fp/clone.js | 5 - views/node_modules/lodash/fp/cloneDeep.js | 5 - views/node_modules/lodash/fp/cloneDeepWith.js | 5 - views/node_modules/lodash/fp/cloneWith.js | 5 - views/node_modules/lodash/fp/collection.js | 2 - views/node_modules/lodash/fp/commit.js | 5 - views/node_modules/lodash/fp/compact.js | 5 - views/node_modules/lodash/fp/complement.js | 1 - views/node_modules/lodash/fp/compose.js | 1 - views/node_modules/lodash/fp/concat.js | 5 - views/node_modules/lodash/fp/cond.js | 5 - views/node_modules/lodash/fp/conforms.js | 1 - views/node_modules/lodash/fp/conformsTo.js | 5 - views/node_modules/lodash/fp/constant.js | 5 - views/node_modules/lodash/fp/contains.js | 1 - views/node_modules/lodash/fp/convert.js | 18 - views/node_modules/lodash/fp/countBy.js | 5 - views/node_modules/lodash/fp/create.js | 5 - views/node_modules/lodash/fp/curry.js | 5 - views/node_modules/lodash/fp/curryN.js | 5 - views/node_modules/lodash/fp/curryRight.js | 5 - views/node_modules/lodash/fp/curryRightN.js | 5 - views/node_modules/lodash/fp/date.js | 2 - views/node_modules/lodash/fp/debounce.js | 5 - views/node_modules/lodash/fp/deburr.js | 5 - views/node_modules/lodash/fp/defaultTo.js | 5 - views/node_modules/lodash/fp/defaults.js | 5 - views/node_modules/lodash/fp/defaultsAll.js | 5 - views/node_modules/lodash/fp/defaultsDeep.js | 5 - .../node_modules/lodash/fp/defaultsDeepAll.js | 5 - views/node_modules/lodash/fp/defer.js | 5 - views/node_modules/lodash/fp/delay.js | 5 - views/node_modules/lodash/fp/difference.js | 5 - views/node_modules/lodash/fp/differenceBy.js | 5 - .../node_modules/lodash/fp/differenceWith.js | 5 - views/node_modules/lodash/fp/dissoc.js | 1 - views/node_modules/lodash/fp/dissocPath.js | 1 - views/node_modules/lodash/fp/divide.js | 5 - views/node_modules/lodash/fp/drop.js | 5 - views/node_modules/lodash/fp/dropLast.js | 1 - views/node_modules/lodash/fp/dropLastWhile.js | 1 - views/node_modules/lodash/fp/dropRight.js | 5 - .../node_modules/lodash/fp/dropRightWhile.js | 5 - views/node_modules/lodash/fp/dropWhile.js | 5 - views/node_modules/lodash/fp/each.js | 1 - views/node_modules/lodash/fp/eachRight.js | 1 - views/node_modules/lodash/fp/endsWith.js | 5 - views/node_modules/lodash/fp/entries.js | 1 - views/node_modules/lodash/fp/entriesIn.js | 1 - views/node_modules/lodash/fp/eq.js | 5 - views/node_modules/lodash/fp/equals.js | 1 - views/node_modules/lodash/fp/escape.js | 5 - views/node_modules/lodash/fp/escapeRegExp.js | 5 - views/node_modules/lodash/fp/every.js | 5 - views/node_modules/lodash/fp/extend.js | 1 - views/node_modules/lodash/fp/extendAll.js | 1 - views/node_modules/lodash/fp/extendAllWith.js | 1 - views/node_modules/lodash/fp/extendWith.js | 1 - views/node_modules/lodash/fp/fill.js | 5 - views/node_modules/lodash/fp/filter.js | 5 - views/node_modules/lodash/fp/find.js | 5 - views/node_modules/lodash/fp/findFrom.js | 5 - views/node_modules/lodash/fp/findIndex.js | 5 - views/node_modules/lodash/fp/findIndexFrom.js | 5 - views/node_modules/lodash/fp/findKey.js | 5 - views/node_modules/lodash/fp/findLast.js | 5 - views/node_modules/lodash/fp/findLastFrom.js | 5 - views/node_modules/lodash/fp/findLastIndex.js | 5 - .../lodash/fp/findLastIndexFrom.js | 5 - views/node_modules/lodash/fp/findLastKey.js | 5 - views/node_modules/lodash/fp/first.js | 1 - views/node_modules/lodash/fp/flatMap.js | 5 - views/node_modules/lodash/fp/flatMapDeep.js | 5 - views/node_modules/lodash/fp/flatMapDepth.js | 5 - views/node_modules/lodash/fp/flatten.js | 5 - views/node_modules/lodash/fp/flattenDeep.js | 5 - views/node_modules/lodash/fp/flattenDepth.js | 5 - views/node_modules/lodash/fp/flip.js | 5 - views/node_modules/lodash/fp/floor.js | 5 - views/node_modules/lodash/fp/flow.js | 5 - views/node_modules/lodash/fp/flowRight.js | 5 - views/node_modules/lodash/fp/forEach.js | 5 - views/node_modules/lodash/fp/forEachRight.js | 5 - views/node_modules/lodash/fp/forIn.js | 5 - views/node_modules/lodash/fp/forInRight.js | 5 - views/node_modules/lodash/fp/forOwn.js | 5 - views/node_modules/lodash/fp/forOwnRight.js | 5 - views/node_modules/lodash/fp/fromPairs.js | 5 - views/node_modules/lodash/fp/function.js | 2 - views/node_modules/lodash/fp/functions.js | 5 - views/node_modules/lodash/fp/functionsIn.js | 5 - views/node_modules/lodash/fp/get.js | 5 - views/node_modules/lodash/fp/getOr.js | 5 - views/node_modules/lodash/fp/groupBy.js | 5 - views/node_modules/lodash/fp/gt.js | 5 - views/node_modules/lodash/fp/gte.js | 5 - views/node_modules/lodash/fp/has.js | 5 - views/node_modules/lodash/fp/hasIn.js | 5 - views/node_modules/lodash/fp/head.js | 5 - views/node_modules/lodash/fp/identical.js | 1 - views/node_modules/lodash/fp/identity.js | 5 - views/node_modules/lodash/fp/inRange.js | 5 - views/node_modules/lodash/fp/includes.js | 5 - views/node_modules/lodash/fp/includesFrom.js | 5 - views/node_modules/lodash/fp/indexBy.js | 1 - views/node_modules/lodash/fp/indexOf.js | 5 - views/node_modules/lodash/fp/indexOfFrom.js | 5 - views/node_modules/lodash/fp/init.js | 1 - views/node_modules/lodash/fp/initial.js | 5 - views/node_modules/lodash/fp/intersection.js | 5 - .../node_modules/lodash/fp/intersectionBy.js | 5 - .../lodash/fp/intersectionWith.js | 5 - views/node_modules/lodash/fp/invert.js | 5 - views/node_modules/lodash/fp/invertBy.js | 5 - views/node_modules/lodash/fp/invertObj.js | 1 - views/node_modules/lodash/fp/invoke.js | 5 - views/node_modules/lodash/fp/invokeArgs.js | 5 - views/node_modules/lodash/fp/invokeArgsMap.js | 5 - views/node_modules/lodash/fp/invokeMap.js | 5 - views/node_modules/lodash/fp/isArguments.js | 5 - views/node_modules/lodash/fp/isArray.js | 5 - views/node_modules/lodash/fp/isArrayBuffer.js | 5 - views/node_modules/lodash/fp/isArrayLike.js | 5 - .../lodash/fp/isArrayLikeObject.js | 5 - views/node_modules/lodash/fp/isBoolean.js | 5 - views/node_modules/lodash/fp/isBuffer.js | 5 - views/node_modules/lodash/fp/isDate.js | 5 - views/node_modules/lodash/fp/isElement.js | 5 - views/node_modules/lodash/fp/isEmpty.js | 5 - views/node_modules/lodash/fp/isEqual.js | 5 - views/node_modules/lodash/fp/isEqualWith.js | 5 - views/node_modules/lodash/fp/isError.js | 5 - views/node_modules/lodash/fp/isFinite.js | 5 - views/node_modules/lodash/fp/isFunction.js | 5 - views/node_modules/lodash/fp/isInteger.js | 5 - views/node_modules/lodash/fp/isLength.js | 5 - views/node_modules/lodash/fp/isMap.js | 5 - views/node_modules/lodash/fp/isMatch.js | 5 - views/node_modules/lodash/fp/isMatchWith.js | 5 - views/node_modules/lodash/fp/isNaN.js | 5 - views/node_modules/lodash/fp/isNative.js | 5 - views/node_modules/lodash/fp/isNil.js | 5 - views/node_modules/lodash/fp/isNull.js | 5 - views/node_modules/lodash/fp/isNumber.js | 5 - views/node_modules/lodash/fp/isObject.js | 5 - views/node_modules/lodash/fp/isObjectLike.js | 5 - views/node_modules/lodash/fp/isPlainObject.js | 5 - views/node_modules/lodash/fp/isRegExp.js | 5 - views/node_modules/lodash/fp/isSafeInteger.js | 5 - views/node_modules/lodash/fp/isSet.js | 5 - views/node_modules/lodash/fp/isString.js | 5 - views/node_modules/lodash/fp/isSymbol.js | 5 - views/node_modules/lodash/fp/isTypedArray.js | 5 - views/node_modules/lodash/fp/isUndefined.js | 5 - views/node_modules/lodash/fp/isWeakMap.js | 5 - views/node_modules/lodash/fp/isWeakSet.js | 5 - views/node_modules/lodash/fp/iteratee.js | 5 - views/node_modules/lodash/fp/join.js | 5 - views/node_modules/lodash/fp/juxt.js | 1 - views/node_modules/lodash/fp/kebabCase.js | 5 - views/node_modules/lodash/fp/keyBy.js | 5 - views/node_modules/lodash/fp/keys.js | 5 - views/node_modules/lodash/fp/keysIn.js | 5 - views/node_modules/lodash/fp/lang.js | 2 - views/node_modules/lodash/fp/last.js | 5 - views/node_modules/lodash/fp/lastIndexOf.js | 5 - .../node_modules/lodash/fp/lastIndexOfFrom.js | 5 - views/node_modules/lodash/fp/lowerCase.js | 5 - views/node_modules/lodash/fp/lowerFirst.js | 5 - views/node_modules/lodash/fp/lt.js | 5 - views/node_modules/lodash/fp/lte.js | 5 - views/node_modules/lodash/fp/map.js | 5 - views/node_modules/lodash/fp/mapKeys.js | 5 - views/node_modules/lodash/fp/mapValues.js | 5 - views/node_modules/lodash/fp/matches.js | 1 - .../node_modules/lodash/fp/matchesProperty.js | 5 - views/node_modules/lodash/fp/math.js | 2 - views/node_modules/lodash/fp/max.js | 5 - views/node_modules/lodash/fp/maxBy.js | 5 - views/node_modules/lodash/fp/mean.js | 5 - views/node_modules/lodash/fp/meanBy.js | 5 - views/node_modules/lodash/fp/memoize.js | 5 - views/node_modules/lodash/fp/merge.js | 5 - views/node_modules/lodash/fp/mergeAll.js | 5 - views/node_modules/lodash/fp/mergeAllWith.js | 5 - views/node_modules/lodash/fp/mergeWith.js | 5 - views/node_modules/lodash/fp/method.js | 5 - views/node_modules/lodash/fp/methodOf.js | 5 - views/node_modules/lodash/fp/min.js | 5 - views/node_modules/lodash/fp/minBy.js | 5 - views/node_modules/lodash/fp/mixin.js | 5 - views/node_modules/lodash/fp/multiply.js | 5 - views/node_modules/lodash/fp/nAry.js | 1 - views/node_modules/lodash/fp/negate.js | 5 - views/node_modules/lodash/fp/next.js | 5 - views/node_modules/lodash/fp/noop.js | 5 - views/node_modules/lodash/fp/now.js | 5 - views/node_modules/lodash/fp/nth.js | 5 - views/node_modules/lodash/fp/nthArg.js | 5 - views/node_modules/lodash/fp/number.js | 2 - views/node_modules/lodash/fp/object.js | 2 - views/node_modules/lodash/fp/omit.js | 5 - views/node_modules/lodash/fp/omitAll.js | 1 - views/node_modules/lodash/fp/omitBy.js | 5 - views/node_modules/lodash/fp/once.js | 5 - views/node_modules/lodash/fp/orderBy.js | 5 - views/node_modules/lodash/fp/over.js | 5 - views/node_modules/lodash/fp/overArgs.js | 5 - views/node_modules/lodash/fp/overEvery.js | 5 - views/node_modules/lodash/fp/overSome.js | 5 - views/node_modules/lodash/fp/pad.js | 5 - views/node_modules/lodash/fp/padChars.js | 5 - views/node_modules/lodash/fp/padCharsEnd.js | 5 - views/node_modules/lodash/fp/padCharsStart.js | 5 - views/node_modules/lodash/fp/padEnd.js | 5 - views/node_modules/lodash/fp/padStart.js | 5 - views/node_modules/lodash/fp/parseInt.js | 5 - views/node_modules/lodash/fp/partial.js | 5 - views/node_modules/lodash/fp/partialRight.js | 5 - views/node_modules/lodash/fp/partition.js | 5 - views/node_modules/lodash/fp/path.js | 1 - views/node_modules/lodash/fp/pathEq.js | 1 - views/node_modules/lodash/fp/pathOr.js | 1 - views/node_modules/lodash/fp/paths.js | 1 - views/node_modules/lodash/fp/pick.js | 5 - views/node_modules/lodash/fp/pickAll.js | 1 - views/node_modules/lodash/fp/pickBy.js | 5 - views/node_modules/lodash/fp/pipe.js | 1 - views/node_modules/lodash/fp/placeholder.js | 6 - views/node_modules/lodash/fp/plant.js | 5 - views/node_modules/lodash/fp/pluck.js | 1 - views/node_modules/lodash/fp/prop.js | 1 - views/node_modules/lodash/fp/propEq.js | 1 - views/node_modules/lodash/fp/propOr.js | 1 - views/node_modules/lodash/fp/property.js | 1 - views/node_modules/lodash/fp/propertyOf.js | 5 - views/node_modules/lodash/fp/props.js | 1 - views/node_modules/lodash/fp/pull.js | 5 - views/node_modules/lodash/fp/pullAll.js | 5 - views/node_modules/lodash/fp/pullAllBy.js | 5 - views/node_modules/lodash/fp/pullAllWith.js | 5 - views/node_modules/lodash/fp/pullAt.js | 5 - views/node_modules/lodash/fp/random.js | 5 - views/node_modules/lodash/fp/range.js | 5 - views/node_modules/lodash/fp/rangeRight.js | 5 - views/node_modules/lodash/fp/rangeStep.js | 5 - .../node_modules/lodash/fp/rangeStepRight.js | 5 - views/node_modules/lodash/fp/rearg.js | 5 - views/node_modules/lodash/fp/reduce.js | 5 - views/node_modules/lodash/fp/reduceRight.js | 5 - views/node_modules/lodash/fp/reject.js | 5 - views/node_modules/lodash/fp/remove.js | 5 - views/node_modules/lodash/fp/repeat.js | 5 - views/node_modules/lodash/fp/replace.js | 5 - views/node_modules/lodash/fp/rest.js | 5 - views/node_modules/lodash/fp/restFrom.js | 5 - views/node_modules/lodash/fp/result.js | 5 - views/node_modules/lodash/fp/reverse.js | 5 - views/node_modules/lodash/fp/round.js | 5 - views/node_modules/lodash/fp/sample.js | 5 - views/node_modules/lodash/fp/sampleSize.js | 5 - views/node_modules/lodash/fp/seq.js | 2 - views/node_modules/lodash/fp/set.js | 5 - views/node_modules/lodash/fp/setWith.js | 5 - views/node_modules/lodash/fp/shuffle.js | 5 - views/node_modules/lodash/fp/size.js | 5 - views/node_modules/lodash/fp/slice.js | 5 - views/node_modules/lodash/fp/snakeCase.js | 5 - views/node_modules/lodash/fp/some.js | 5 - views/node_modules/lodash/fp/sortBy.js | 5 - views/node_modules/lodash/fp/sortedIndex.js | 5 - views/node_modules/lodash/fp/sortedIndexBy.js | 5 - views/node_modules/lodash/fp/sortedIndexOf.js | 5 - .../node_modules/lodash/fp/sortedLastIndex.js | 5 - .../lodash/fp/sortedLastIndexBy.js | 5 - .../lodash/fp/sortedLastIndexOf.js | 5 - views/node_modules/lodash/fp/sortedUniq.js | 5 - views/node_modules/lodash/fp/sortedUniqBy.js | 5 - views/node_modules/lodash/fp/split.js | 5 - views/node_modules/lodash/fp/spread.js | 5 - views/node_modules/lodash/fp/spreadFrom.js | 5 - views/node_modules/lodash/fp/startCase.js | 5 - views/node_modules/lodash/fp/startsWith.js | 5 - views/node_modules/lodash/fp/string.js | 2 - views/node_modules/lodash/fp/stubArray.js | 5 - views/node_modules/lodash/fp/stubFalse.js | 5 - views/node_modules/lodash/fp/stubObject.js | 5 - views/node_modules/lodash/fp/stubString.js | 5 - views/node_modules/lodash/fp/stubTrue.js | 5 - views/node_modules/lodash/fp/subtract.js | 5 - views/node_modules/lodash/fp/sum.js | 5 - views/node_modules/lodash/fp/sumBy.js | 5 - .../lodash/fp/symmetricDifference.js | 1 - .../lodash/fp/symmetricDifferenceBy.js | 1 - .../lodash/fp/symmetricDifferenceWith.js | 1 - views/node_modules/lodash/fp/tail.js | 5 - views/node_modules/lodash/fp/take.js | 5 - views/node_modules/lodash/fp/takeLast.js | 1 - views/node_modules/lodash/fp/takeLastWhile.js | 1 - views/node_modules/lodash/fp/takeRight.js | 5 - .../node_modules/lodash/fp/takeRightWhile.js | 5 - views/node_modules/lodash/fp/takeWhile.js | 5 - views/node_modules/lodash/fp/tap.js | 5 - views/node_modules/lodash/fp/template.js | 5 - .../lodash/fp/templateSettings.js | 5 - views/node_modules/lodash/fp/throttle.js | 5 - views/node_modules/lodash/fp/thru.js | 5 - views/node_modules/lodash/fp/times.js | 5 - views/node_modules/lodash/fp/toArray.js | 5 - views/node_modules/lodash/fp/toFinite.js | 5 - views/node_modules/lodash/fp/toInteger.js | 5 - views/node_modules/lodash/fp/toIterator.js | 5 - views/node_modules/lodash/fp/toJSON.js | 5 - views/node_modules/lodash/fp/toLength.js | 5 - views/node_modules/lodash/fp/toLower.js | 5 - views/node_modules/lodash/fp/toNumber.js | 5 - views/node_modules/lodash/fp/toPairs.js | 5 - views/node_modules/lodash/fp/toPairsIn.js | 5 - views/node_modules/lodash/fp/toPath.js | 5 - views/node_modules/lodash/fp/toPlainObject.js | 5 - views/node_modules/lodash/fp/toSafeInteger.js | 5 - views/node_modules/lodash/fp/toString.js | 5 - views/node_modules/lodash/fp/toUpper.js | 5 - views/node_modules/lodash/fp/transform.js | 5 - views/node_modules/lodash/fp/trim.js | 5 - views/node_modules/lodash/fp/trimChars.js | 5 - views/node_modules/lodash/fp/trimCharsEnd.js | 5 - .../node_modules/lodash/fp/trimCharsStart.js | 5 - views/node_modules/lodash/fp/trimEnd.js | 5 - views/node_modules/lodash/fp/trimStart.js | 5 - views/node_modules/lodash/fp/truncate.js | 5 - views/node_modules/lodash/fp/unapply.js | 1 - views/node_modules/lodash/fp/unary.js | 5 - views/node_modules/lodash/fp/unescape.js | 5 - views/node_modules/lodash/fp/union.js | 5 - views/node_modules/lodash/fp/unionBy.js | 5 - views/node_modules/lodash/fp/unionWith.js | 5 - views/node_modules/lodash/fp/uniq.js | 5 - views/node_modules/lodash/fp/uniqBy.js | 5 - views/node_modules/lodash/fp/uniqWith.js | 5 - views/node_modules/lodash/fp/uniqueId.js | 5 - views/node_modules/lodash/fp/unnest.js | 1 - views/node_modules/lodash/fp/unset.js | 5 - views/node_modules/lodash/fp/unzip.js | 5 - views/node_modules/lodash/fp/unzipWith.js | 5 - views/node_modules/lodash/fp/update.js | 5 - views/node_modules/lodash/fp/updateWith.js | 5 - views/node_modules/lodash/fp/upperCase.js | 5 - views/node_modules/lodash/fp/upperFirst.js | 5 - views/node_modules/lodash/fp/useWith.js | 1 - views/node_modules/lodash/fp/util.js | 2 - views/node_modules/lodash/fp/value.js | 5 - views/node_modules/lodash/fp/valueOf.js | 5 - views/node_modules/lodash/fp/values.js | 5 - views/node_modules/lodash/fp/valuesIn.js | 5 - views/node_modules/lodash/fp/where.js | 1 - views/node_modules/lodash/fp/whereEq.js | 1 - views/node_modules/lodash/fp/without.js | 5 - views/node_modules/lodash/fp/words.js | 5 - views/node_modules/lodash/fp/wrap.js | 5 - views/node_modules/lodash/fp/wrapperAt.js | 5 - views/node_modules/lodash/fp/wrapperChain.js | 5 - views/node_modules/lodash/fp/wrapperLodash.js | 5 - .../node_modules/lodash/fp/wrapperReverse.js | 5 - views/node_modules/lodash/fp/wrapperValue.js | 5 - views/node_modules/lodash/fp/xor.js | 5 - views/node_modules/lodash/fp/xorBy.js | 5 - views/node_modules/lodash/fp/xorWith.js | 5 - views/node_modules/lodash/fp/zip.js | 5 - views/node_modules/lodash/fp/zipAll.js | 5 - views/node_modules/lodash/fp/zipObj.js | 1 - views/node_modules/lodash/fp/zipObject.js | 5 - views/node_modules/lodash/fp/zipObjectDeep.js | 5 - views/node_modules/lodash/fp/zipWith.js | 5 - views/node_modules/lodash/fromPairs.js | 28 - views/node_modules/lodash/function.js | 25 - views/node_modules/lodash/functions.js | 31 - views/node_modules/lodash/functionsIn.js | 31 - views/node_modules/lodash/get.js | 33 - views/node_modules/lodash/groupBy.js | 41 - views/node_modules/lodash/gt.js | 29 - views/node_modules/lodash/gte.js | 30 - views/node_modules/lodash/has.js | 35 - views/node_modules/lodash/hasIn.js | 34 - views/node_modules/lodash/head.js | 23 - views/node_modules/lodash/identity.js | 21 - views/node_modules/lodash/inRange.js | 55 - views/node_modules/lodash/includes.js | 53 - views/node_modules/lodash/index.js | 1 - views/node_modules/lodash/indexOf.js | 42 - views/node_modules/lodash/initial.js | 22 - views/node_modules/lodash/intersection.js | 30 - views/node_modules/lodash/intersectionBy.js | 45 - views/node_modules/lodash/intersectionWith.js | 41 - views/node_modules/lodash/invert.js | 42 - views/node_modules/lodash/invertBy.js | 56 - views/node_modules/lodash/invoke.js | 24 - views/node_modules/lodash/invokeMap.js | 41 - views/node_modules/lodash/isArguments.js | 36 - views/node_modules/lodash/isArray.js | 26 - views/node_modules/lodash/isArrayBuffer.js | 27 - views/node_modules/lodash/isArrayLike.js | 33 - .../node_modules/lodash/isArrayLikeObject.js | 33 - views/node_modules/lodash/isBoolean.js | 29 - views/node_modules/lodash/isBuffer.js | 38 - views/node_modules/lodash/isDate.js | 27 - views/node_modules/lodash/isElement.js | 25 - views/node_modules/lodash/isEmpty.js | 77 - views/node_modules/lodash/isEqual.js | 35 - views/node_modules/lodash/isEqualWith.js | 41 - views/node_modules/lodash/isError.js | 36 - views/node_modules/lodash/isFinite.js | 36 - views/node_modules/lodash/isFunction.js | 37 - views/node_modules/lodash/isInteger.js | 33 - views/node_modules/lodash/isLength.js | 35 - views/node_modules/lodash/isMap.js | 27 - views/node_modules/lodash/isMatch.js | 36 - views/node_modules/lodash/isMatchWith.js | 41 - views/node_modules/lodash/isNaN.js | 38 - views/node_modules/lodash/isNative.js | 40 - views/node_modules/lodash/isNil.js | 25 - views/node_modules/lodash/isNull.js | 22 - views/node_modules/lodash/isNumber.js | 38 - views/node_modules/lodash/isObject.js | 31 - views/node_modules/lodash/isObjectLike.js | 29 - views/node_modules/lodash/isPlainObject.js | 62 - views/node_modules/lodash/isRegExp.js | 27 - views/node_modules/lodash/isSafeInteger.js | 37 - views/node_modules/lodash/isSet.js | 27 - views/node_modules/lodash/isString.js | 30 - views/node_modules/lodash/isSymbol.js | 29 - views/node_modules/lodash/isTypedArray.js | 27 - views/node_modules/lodash/isUndefined.js | 22 - views/node_modules/lodash/isWeakMap.js | 28 - views/node_modules/lodash/isWeakSet.js | 28 - views/node_modules/lodash/iteratee.js | 53 - views/node_modules/lodash/join.js | 26 - views/node_modules/lodash/kebabCase.js | 28 - views/node_modules/lodash/keyBy.js | 36 - views/node_modules/lodash/keys.js | 37 - views/node_modules/lodash/keysIn.js | 32 - views/node_modules/lodash/lang.js | 58 - views/node_modules/lodash/last.js | 20 - views/node_modules/lodash/lastIndexOf.js | 46 - views/node_modules/lodash/lodash.js | 17209 --------------- views/node_modules/lodash/lodash.min.js | 140 - views/node_modules/lodash/lowerCase.js | 27 - views/node_modules/lodash/lowerFirst.js | 22 - views/node_modules/lodash/lt.js | 29 - views/node_modules/lodash/lte.js | 30 - views/node_modules/lodash/map.js | 53 - views/node_modules/lodash/mapKeys.js | 36 - views/node_modules/lodash/mapValues.js | 43 - views/node_modules/lodash/matches.js | 46 - views/node_modules/lodash/matchesProperty.js | 44 - views/node_modules/lodash/math.js | 17 - views/node_modules/lodash/max.js | 29 - views/node_modules/lodash/maxBy.js | 34 - views/node_modules/lodash/mean.js | 22 - views/node_modules/lodash/meanBy.js | 31 - views/node_modules/lodash/memoize.js | 73 - views/node_modules/lodash/merge.js | 39 - views/node_modules/lodash/mergeWith.js | 39 - views/node_modules/lodash/method.js | 34 - views/node_modules/lodash/methodOf.js | 33 - views/node_modules/lodash/min.js | 29 - views/node_modules/lodash/minBy.js | 34 - views/node_modules/lodash/mixin.js | 74 - views/node_modules/lodash/multiply.js | 22 - views/node_modules/lodash/negate.js | 40 - views/node_modules/lodash/next.js | 35 - views/node_modules/lodash/noop.js | 17 - views/node_modules/lodash/now.js | 23 - views/node_modules/lodash/nth.js | 29 - views/node_modules/lodash/nthArg.js | 32 - views/node_modules/lodash/number.js | 5 - views/node_modules/lodash/object.js | 49 - views/node_modules/lodash/omit.js | 57 - views/node_modules/lodash/omitBy.js | 29 - views/node_modules/lodash/once.js | 25 - views/node_modules/lodash/orderBy.js | 47 - views/node_modules/lodash/over.js | 24 - views/node_modules/lodash/overArgs.js | 61 - views/node_modules/lodash/overEvery.js | 34 - views/node_modules/lodash/overSome.js | 37 - views/node_modules/lodash/package.json | 17 - views/node_modules/lodash/pad.js | 49 - views/node_modules/lodash/padEnd.js | 39 - views/node_modules/lodash/padStart.js | 39 - views/node_modules/lodash/parseInt.js | 43 - views/node_modules/lodash/partial.js | 50 - views/node_modules/lodash/partialRight.js | 49 - views/node_modules/lodash/partition.js | 43 - views/node_modules/lodash/pick.js | 25 - views/node_modules/lodash/pickBy.js | 37 - views/node_modules/lodash/plant.js | 48 - views/node_modules/lodash/property.js | 32 - views/node_modules/lodash/propertyOf.js | 30 - views/node_modules/lodash/pull.js | 29 - views/node_modules/lodash/pullAll.js | 29 - views/node_modules/lodash/pullAllBy.js | 33 - views/node_modules/lodash/pullAllWith.js | 32 - views/node_modules/lodash/pullAt.js | 43 - views/node_modules/lodash/random.js | 82 - views/node_modules/lodash/range.js | 46 - views/node_modules/lodash/rangeRight.js | 41 - views/node_modules/lodash/rearg.js | 33 - views/node_modules/lodash/reduce.js | 51 - views/node_modules/lodash/reduceRight.js | 36 - views/node_modules/lodash/reject.js | 46 - views/node_modules/lodash/release.md | 48 - views/node_modules/lodash/remove.js | 53 - views/node_modules/lodash/repeat.js | 37 - views/node_modules/lodash/replace.js | 29 - views/node_modules/lodash/rest.js | 40 - views/node_modules/lodash/result.js | 56 - views/node_modules/lodash/reverse.js | 34 - views/node_modules/lodash/round.js | 26 - views/node_modules/lodash/sample.js | 24 - views/node_modules/lodash/sampleSize.js | 37 - views/node_modules/lodash/seq.js | 16 - views/node_modules/lodash/set.js | 35 - views/node_modules/lodash/setWith.js | 32 - views/node_modules/lodash/shuffle.js | 25 - views/node_modules/lodash/size.js | 46 - views/node_modules/lodash/slice.js | 37 - views/node_modules/lodash/snakeCase.js | 28 - views/node_modules/lodash/some.js | 51 - views/node_modules/lodash/sortBy.js | 48 - views/node_modules/lodash/sortedIndex.js | 24 - views/node_modules/lodash/sortedIndexBy.js | 33 - views/node_modules/lodash/sortedIndexOf.js | 31 - views/node_modules/lodash/sortedLastIndex.js | 25 - .../node_modules/lodash/sortedLastIndexBy.js | 33 - .../node_modules/lodash/sortedLastIndexOf.js | 31 - views/node_modules/lodash/sortedUniq.js | 24 - views/node_modules/lodash/sortedUniqBy.js | 26 - views/node_modules/lodash/split.js | 52 - views/node_modules/lodash/spread.js | 63 - views/node_modules/lodash/startCase.js | 29 - views/node_modules/lodash/startsWith.js | 39 - views/node_modules/lodash/string.js | 33 - views/node_modules/lodash/stubArray.js | 23 - views/node_modules/lodash/stubFalse.js | 18 - views/node_modules/lodash/stubObject.js | 23 - views/node_modules/lodash/stubString.js | 18 - views/node_modules/lodash/stubTrue.js | 18 - views/node_modules/lodash/subtract.js | 22 - views/node_modules/lodash/sum.js | 24 - views/node_modules/lodash/sumBy.js | 33 - views/node_modules/lodash/tail.js | 22 - views/node_modules/lodash/take.js | 37 - views/node_modules/lodash/takeRight.js | 39 - views/node_modules/lodash/takeRightWhile.js | 45 - views/node_modules/lodash/takeWhile.js | 45 - views/node_modules/lodash/tap.js | 29 - views/node_modules/lodash/template.js | 272 - views/node_modules/lodash/templateSettings.js | 67 - views/node_modules/lodash/throttle.js | 69 - views/node_modules/lodash/thru.js | 28 - views/node_modules/lodash/times.js | 51 - views/node_modules/lodash/toArray.js | 58 - views/node_modules/lodash/toFinite.js | 42 - views/node_modules/lodash/toInteger.js | 36 - views/node_modules/lodash/toIterator.js | 23 - views/node_modules/lodash/toJSON.js | 1 - views/node_modules/lodash/toLength.js | 38 - views/node_modules/lodash/toLower.js | 28 - views/node_modules/lodash/toNumber.js | 64 - views/node_modules/lodash/toPairs.js | 30 - views/node_modules/lodash/toPairsIn.js | 30 - views/node_modules/lodash/toPath.js | 33 - views/node_modules/lodash/toPlainObject.js | 32 - views/node_modules/lodash/toSafeInteger.js | 37 - views/node_modules/lodash/toString.js | 28 - views/node_modules/lodash/toUpper.js | 28 - views/node_modules/lodash/transform.js | 65 - views/node_modules/lodash/trim.js | 47 - views/node_modules/lodash/trimEnd.js | 41 - views/node_modules/lodash/trimStart.js | 43 - views/node_modules/lodash/truncate.js | 111 - views/node_modules/lodash/unary.js | 22 - views/node_modules/lodash/unescape.js | 34 - views/node_modules/lodash/union.js | 26 - views/node_modules/lodash/unionBy.js | 39 - views/node_modules/lodash/unionWith.js | 34 - views/node_modules/lodash/uniq.js | 25 - views/node_modules/lodash/uniqBy.js | 31 - views/node_modules/lodash/uniqWith.js | 28 - views/node_modules/lodash/uniqueId.js | 28 - views/node_modules/lodash/unset.js | 34 - views/node_modules/lodash/unzip.js | 45 - views/node_modules/lodash/unzipWith.js | 39 - views/node_modules/lodash/update.js | 35 - views/node_modules/lodash/updateWith.js | 33 - views/node_modules/lodash/upperCase.js | 27 - views/node_modules/lodash/upperFirst.js | 22 - views/node_modules/lodash/util.js | 34 - views/node_modules/lodash/value.js | 1 - views/node_modules/lodash/valueOf.js | 1 - views/node_modules/lodash/values.js | 34 - views/node_modules/lodash/valuesIn.js | 32 - views/node_modules/lodash/without.js | 31 - views/node_modules/lodash/words.js | 35 - views/node_modules/lodash/wrap.js | 30 - views/node_modules/lodash/wrapperAt.js | 48 - views/node_modules/lodash/wrapperChain.js | 34 - views/node_modules/lodash/wrapperLodash.js | 147 - views/node_modules/lodash/wrapperReverse.js | 44 - views/node_modules/lodash/wrapperValue.js | 21 - views/node_modules/lodash/xor.js | 28 - views/node_modules/lodash/xorBy.js | 39 - views/node_modules/lodash/xorWith.js | 34 - views/node_modules/lodash/zip.js | 22 - views/node_modules/lodash/zipObject.js | 24 - views/node_modules/lodash/zipObjectDeep.js | 23 - views/node_modules/lodash/zipWith.js | 32 - views/node_modules/lowercase-keys/index.d.ts | 16 - views/node_modules/lowercase-keys/index.js | 10 - views/node_modules/lowercase-keys/license | 9 - .../node_modules/lowercase-keys/package.json | 38 - views/node_modules/lowercase-keys/readme.md | 32 - views/node_modules/lru-cache/LICENSE | 15 - views/node_modules/lru-cache/README.md | 158 - views/node_modules/lru-cache/index.js | 468 - views/node_modules/lru-cache/package.json | 36 - views/node_modules/media-typer/HISTORY.md | 22 - views/node_modules/media-typer/LICENSE | 22 - views/node_modules/media-typer/README.md | 81 - views/node_modules/media-typer/index.js | 270 - views/node_modules/media-typer/package.json | 26 - views/node_modules/memory-pager/.travis.yml | 4 - views/node_modules/memory-pager/LICENSE | 21 - views/node_modules/memory-pager/README.md | 65 - views/node_modules/memory-pager/index.js | 160 - views/node_modules/memory-pager/package.json | 24 - views/node_modules/memory-pager/test.js | 80 - views/node_modules/memorystore/.travis.yml | 10 - views/node_modules/memorystore/LICENSE | 21 - views/node_modules/memorystore/README.md | 71 - views/node_modules/memorystore/index.d.ts | 81 - views/node_modules/memorystore/index.js | 1 - .../memorystore/lib/memorystore.js | 295 - .../memorystore/node_modules/debug/LICENSE | 19 - .../memorystore/node_modules/debug/README.md | 455 - .../node_modules/debug/package.json | 59 - .../node_modules/debug/src/browser.js | 269 - .../node_modules/debug/src/common.js | 261 - .../node_modules/debug/src/index.js | 10 - .../node_modules/debug/src/node.js | 263 - .../memorystore/node_modules/ms/index.js | 162 - .../memorystore/node_modules/ms/license.md | 21 - .../memorystore/node_modules/ms/package.json | 37 - .../memorystore/node_modules/ms/readme.md | 60 - views/node_modules/memorystore/package.json | 44 - views/node_modules/memorystore/test/store.js | 304 - .../node_modules/merge-descriptors/HISTORY.md | 21 - views/node_modules/merge-descriptors/LICENSE | 23 - .../node_modules/merge-descriptors/README.md | 48 - views/node_modules/merge-descriptors/index.js | 60 - .../merge-descriptors/package.json | 32 - views/node_modules/methods/HISTORY.md | 29 - views/node_modules/methods/LICENSE | 24 - views/node_modules/methods/README.md | 51 - views/node_modules/methods/index.js | 69 - views/node_modules/methods/package.json | 36 - views/node_modules/mime-db/HISTORY.md | 473 - views/node_modules/mime-db/LICENSE | 22 - views/node_modules/mime-db/README.md | 100 - views/node_modules/mime-db/db.json | 8323 ------- views/node_modules/mime-db/index.js | 11 - views/node_modules/mime-db/package.json | 59 - views/node_modules/mime-types/HISTORY.md | 363 - views/node_modules/mime-types/LICENSE | 23 - views/node_modules/mime-types/README.md | 113 - views/node_modules/mime-types/index.js | 188 - views/node_modules/mime-types/package.json | 44 - views/node_modules/mime/.npmignore | 0 views/node_modules/mime/CHANGELOG.md | 164 - views/node_modules/mime/LICENSE | 21 - views/node_modules/mime/README.md | 90 - views/node_modules/mime/cli.js | 8 - views/node_modules/mime/mime.js | 108 - views/node_modules/mime/package.json | 44 - views/node_modules/mime/src/build.js | 53 - views/node_modules/mime/src/test.js | 60 - views/node_modules/mime/types.json | 1 - views/node_modules/mimic-response/index.js | 32 - views/node_modules/mimic-response/license | 9 - .../node_modules/mimic-response/package.json | 37 - views/node_modules/mimic-response/readme.md | 54 - views/node_modules/mongodb/HISTORY.md | 2861 --- views/node_modules/mongodb/LICENSE.md | 201 - views/node_modules/mongodb/README.md | 493 - views/node_modules/mongodb/index.js | 73 - views/node_modules/mongodb/lib/admin.js | 296 - .../mongodb/lib/aggregation_cursor.js | 369 - views/node_modules/mongodb/lib/apm.js | 31 - .../node_modules/mongodb/lib/async/.eslintrc | 5 - .../mongodb/lib/async/async_iterator.js | 33 - views/node_modules/mongodb/lib/bulk/common.js | 1298 -- .../node_modules/mongodb/lib/bulk/ordered.js | 110 - .../mongodb/lib/bulk/unordered.js | 131 - .../node_modules/mongodb/lib/change_stream.js | 623 - .../mongodb/lib/cmap/connection.js | 384 - .../mongodb/lib/cmap/connection_pool.js | 591 - views/node_modules/mongodb/lib/cmap/errors.js | 35 - views/node_modules/mongodb/lib/cmap/events.js | 154 - .../mongodb/lib/cmap/message_stream.js | 196 - .../mongodb/lib/cmap/stream_description.js | 45 - views/node_modules/mongodb/lib/collection.js | 2225 -- .../mongodb/lib/command_cursor.js | 269 - views/node_modules/mongodb/lib/constants.js | 10 - .../mongodb/lib/core/auth/auth_provider.js | 55 - .../lib/core/auth/defaultAuthProviders.js | 29 - .../mongodb/lib/core/auth/gssapi.js | 151 - .../lib/core/auth/mongo_credentials.js | 107 - .../mongodb/lib/core/auth/mongocr.js | 45 - .../mongodb/lib/core/auth/mongodb_aws.js | 256 - .../mongodb/lib/core/auth/plain.js | 28 - .../mongodb/lib/core/auth/scram.js | 347 - .../mongodb/lib/core/auth/x509.js | 35 - .../mongodb/lib/core/connection/apm.js | 251 - .../lib/core/connection/command_result.js | 36 - .../mongodb/lib/core/connection/commands.js | 507 - .../mongodb/lib/core/connection/connect.js | 352 - .../mongodb/lib/core/connection/connection.js | 711 - .../mongodb/lib/core/connection/logger.js | 252 - .../mongodb/lib/core/connection/msg.js | 224 - .../mongodb/lib/core/connection/pool.js | 1281 -- .../mongodb/lib/core/connection/utils.js | 52 - views/node_modules/mongodb/lib/core/cursor.js | 874 - views/node_modules/mongodb/lib/core/error.js | 351 - views/node_modules/mongodb/lib/core/index.js | 50 - .../mongodb/lib/core/sdam/common.js | 67 - .../mongodb/lib/core/sdam/events.js | 124 - .../mongodb/lib/core/sdam/monitor.js | 413 - .../mongodb/lib/core/sdam/server.js | 564 - .../lib/core/sdam/server_description.js | 227 - .../mongodb/lib/core/sdam/server_selection.js | 238 - .../mongodb/lib/core/sdam/srv_polling.js | 135 - .../mongodb/lib/core/sdam/topology.js | 1144 - .../lib/core/sdam/topology_description.js | 460 - .../node_modules/mongodb/lib/core/sessions.js | 780 - .../mongodb/lib/core/tools/smoke_plugin.js | 62 - .../mongodb/lib/core/topologies/mongos.js | 1397 -- .../lib/core/topologies/read_preference.js | 267 - .../mongodb/lib/core/topologies/replset.js | 1565 -- .../lib/core/topologies/replset_state.js | 1121 - .../mongodb/lib/core/topologies/server.js | 991 - .../mongodb/lib/core/topologies/shared.js | 456 - .../mongodb/lib/core/transactions.js | 179 - .../mongodb/lib/core/uri_parser.js | 731 - views/node_modules/mongodb/lib/core/utils.js | 294 - .../mongodb/lib/core/wireprotocol/command.js | 177 - .../lib/core/wireprotocol/compression.js | 73 - .../lib/core/wireprotocol/constants.js | 13 - .../mongodb/lib/core/wireprotocol/get_more.js | 95 - .../mongodb/lib/core/wireprotocol/index.js | 18 - .../lib/core/wireprotocol/kill_cursors.js | 71 - .../mongodb/lib/core/wireprotocol/query.js | 236 - .../mongodb/lib/core/wireprotocol/shared.js | 115 - .../lib/core/wireprotocol/write_command.js | 59 - views/node_modules/mongodb/lib/cursor.js | 1137 - views/node_modules/mongodb/lib/db.js | 1054 - .../mongodb/lib/dynamic_loaders.js | 32 - views/node_modules/mongodb/lib/encrypter.js | 163 - views/node_modules/mongodb/lib/error.js | 43 - views/node_modules/mongodb/lib/explain.js | 55 - .../mongodb/lib/gridfs-stream/download.js | 433 - .../mongodb/lib/gridfs-stream/index.js | 359 - .../mongodb/lib/gridfs-stream/upload.js | 541 - .../node_modules/mongodb/lib/gridfs/chunk.js | 236 - .../mongodb/lib/gridfs/grid_store.js | 1925 -- .../node_modules/mongodb/lib/mongo_client.js | 572 - .../mongodb/lib/operations/add_user.js | 99 - .../mongodb/lib/operations/admin_ops.js | 62 - .../mongodb/lib/operations/aggregate.js | 104 - .../mongodb/lib/operations/bulk_write.js | 104 - .../mongodb/lib/operations/collection_ops.js | 353 - .../mongodb/lib/operations/collections.js | 55 - .../mongodb/lib/operations/command.js | 119 - .../mongodb/lib/operations/command_v2.js | 119 - .../lib/operations/common_functions.js | 399 - .../mongodb/lib/operations/connect.js | 782 - .../mongodb/lib/operations/count.js | 68 - .../mongodb/lib/operations/count_documents.js | 41 - .../lib/operations/create_collection.js | 102 - .../mongodb/lib/operations/create_indexes.js | 137 - .../mongodb/lib/operations/cursor_ops.js | 167 - .../mongodb/lib/operations/db_ops.js | 467 - .../mongodb/lib/operations/delete_many.js | 38 - .../mongodb/lib/operations/delete_one.js | 38 - .../mongodb/lib/operations/distinct.js | 93 - .../mongodb/lib/operations/drop.js | 53 - .../mongodb/lib/operations/drop_index.js | 42 - .../mongodb/lib/operations/drop_indexes.js | 23 - .../operations/estimated_document_count.js | 58 - .../operations/execute_db_admin_command.js | 34 - .../lib/operations/execute_operation.js | 164 - .../mongodb/lib/operations/find.js | 49 - .../mongodb/lib/operations/find_and_modify.js | 128 - .../mongodb/lib/operations/find_one.js | 41 - .../lib/operations/find_one_and_delete.js | 21 - .../lib/operations/find_one_and_replace.js | 31 - .../lib/operations/find_one_and_update.js | 32 - .../lib/operations/geo_haystack_search.js | 79 - .../mongodb/lib/operations/index_exists.js | 39 - .../lib/operations/index_information.js | 23 - .../mongodb/lib/operations/indexes.js | 22 - .../mongodb/lib/operations/insert_many.js | 63 - .../mongodb/lib/operations/insert_one.js | 39 - .../mongodb/lib/operations/is_capped.js | 19 - .../lib/operations/list_collections.js | 106 - .../mongodb/lib/operations/list_databases.js | 38 - .../mongodb/lib/operations/list_indexes.js | 42 - .../mongodb/lib/operations/map_reduce.js | 209 - .../mongodb/lib/operations/operation.js | 76 - .../lib/operations/options_operation.js | 32 - .../mongodb/lib/operations/profiling_level.js | 31 - .../mongodb/lib/operations/re_index.js | 33 - .../mongodb/lib/operations/remove_user.js | 52 - .../mongodb/lib/operations/rename.js | 61 - .../mongodb/lib/operations/replace_one.js | 54 - .../mongodb/lib/operations/run_command.js | 19 - .../lib/operations/set_profiling_level.js | 48 - .../mongodb/lib/operations/stats.js | 45 - .../mongodb/lib/operations/update_many.js | 55 - .../mongodb/lib/operations/update_one.js | 55 - .../lib/operations/validate_collection.js | 39 - .../node_modules/mongodb/lib/read_concern.js | 61 - .../mongodb/lib/topologies/mongos.js | 445 - .../mongodb/lib/topologies/native_topology.js | 78 - .../mongodb/lib/topologies/replset.js | 489 - .../mongodb/lib/topologies/server.js | 448 - .../mongodb/lib/topologies/topology_base.js | 417 - views/node_modules/mongodb/lib/url_parser.js | 628 - views/node_modules/mongodb/lib/utils.js | 904 - .../node_modules/mongodb/lib/write_concern.js | 94 - views/node_modules/mongodb/package.json | 100 - .../mongoose-legacy-pluralize/LICENSE | 201 - .../mongoose-legacy-pluralize/README.md | 2 - .../mongoose-legacy-pluralize/index.js | 95 - .../mongoose-legacy-pluralize/package.json | 23 - views/node_modules/mongoose/History.md | 6414 ------ views/node_modules/mongoose/LICENSE.md | 22 - views/node_modules/mongoose/README.md | 371 - views/node_modules/mongoose/SECURITY.md | 1 - views/node_modules/mongoose/browser.js | 8 - views/node_modules/mongoose/build-browser.js | 18 - .../node_modules/mongoose/dist/browser.umd.js | 1618 -- views/node_modules/mongoose/index.d.ts | 2780 --- views/node_modules/mongoose/index.js | 9 - views/node_modules/mongoose/lib/aggregate.js | 1161 - views/node_modules/mongoose/lib/browser.js | 158 - .../mongoose/lib/browserDocument.js | 100 - views/node_modules/mongoose/lib/cast.js | 364 - .../node_modules/mongoose/lib/cast/boolean.js | 32 - views/node_modules/mongoose/lib/cast/date.js | 41 - .../mongoose/lib/cast/decimal128.js | 36 - .../node_modules/mongoose/lib/cast/number.js | 43 - .../mongoose/lib/cast/objectid.js | 29 - .../node_modules/mongoose/lib/cast/string.js | 37 - views/node_modules/mongoose/lib/collection.js | 322 - views/node_modules/mongoose/lib/connection.js | 1504 -- .../mongoose/lib/connectionstate.js | 26 - .../mongoose/lib/cursor/AggregationCursor.js | 368 - .../mongoose/lib/cursor/ChangeStream.js | 61 - .../mongoose/lib/cursor/QueryCursor.js | 496 - views/node_modules/mongoose/lib/document.js | 4184 ---- .../mongoose/lib/document_provider.js | 30 - views/node_modules/mongoose/lib/driver.js | 15 - .../node_modules/mongoose/lib/drivers/SPEC.md | 4 - .../lib/drivers/browser/ReadPreference.js | 7 - .../mongoose/lib/drivers/browser/binary.js | 14 - .../lib/drivers/browser/decimal128.js | 7 - .../mongoose/lib/drivers/browser/index.js | 13 - .../mongoose/lib/drivers/browser/objectid.js | 28 - .../node-mongodb-native/ReadPreference.js | 47 - .../lib/drivers/node-mongodb-native/binary.js | 10 - .../drivers/node-mongodb-native/collection.js | 410 - .../drivers/node-mongodb-native/connection.js | 202 - .../drivers/node-mongodb-native/decimal128.js | 7 - .../lib/drivers/node-mongodb-native/index.js | 11 - .../drivers/node-mongodb-native/objectid.js | 16 - .../lib/error/browserMissingSchema.js | 28 - views/node_modules/mongoose/lib/error/cast.js | 120 - .../mongoose/lib/error/disconnected.js | 34 - .../mongoose/lib/error/divergentArray.js | 37 - .../node_modules/mongoose/lib/error/index.js | 205 - .../mongoose/lib/error/messages.js | 47 - .../mongoose/lib/error/missingSchema.js | 30 - .../mongoose/lib/error/mongooseError.js | 13 - .../mongoose/lib/error/notFound.js | 44 - .../mongoose/lib/error/objectExpected.js | 30 - .../mongoose/lib/error/objectParameter.js | 30 - .../mongoose/lib/error/overwriteModel.js | 29 - .../mongoose/lib/error/parallelSave.js | 30 - .../mongoose/lib/error/parallelValidate.js | 31 - .../mongoose/lib/error/serverSelection.js | 61 - .../node_modules/mongoose/lib/error/strict.js | 33 - .../mongoose/lib/error/validation.js | 111 - .../mongoose/lib/error/validator.js | 94 - .../mongoose/lib/error/version.js | 36 - .../aggregate/stringifyFunctionOperators.js | 50 - .../mongoose/lib/helpers/arrayDepth.js | 30 - .../mongoose/lib/helpers/clone.js | 143 - .../mongoose/lib/helpers/common.js | 106 - .../mongoose/lib/helpers/cursor/eachAsync.js | 144 - ...checkEmbeddedDiscriminatorKeyProjection.js | 12 - .../helpers/discriminator/getConstructor.js | 25 - .../discriminator/getDiscriminatorByValue.js | 27 - .../getSchemaDiscriminatorByValue.js | 24 - .../helpers/document/cleanModifiedSubpaths.js | 28 - .../mongoose/lib/helpers/document/compile.js | 211 - .../document/getEmbeddedDiscriminatorPath.js | 43 - .../lib/helpers/document/handleSpreadDoc.js | 17 - .../node_modules/mongoose/lib/helpers/each.js | 25 - .../node_modules/mongoose/lib/helpers/get.js | 39 - .../lib/helpers/getDefaultBulkwriteResult.js | 27 - .../mongoose/lib/helpers/getFunctionName.js | 8 - .../mongoose/lib/helpers/immediate.js | 12 - .../lib/helpers/indexes/isDefaultIdIndex.js | 18 - .../lib/helpers/indexes/isIndexEqual.js | 95 - .../mongoose/lib/helpers/isBsonType.js | 13 - .../mongoose/lib/helpers/isMongooseObject.js | 21 - .../mongoose/lib/helpers/isObject.js | 16 - .../mongoose/lib/helpers/isPromise.js | 6 - .../mongoose/lib/helpers/model/applyHooks.js | 138 - .../lib/helpers/model/applyMethods.js | 56 - .../lib/helpers/model/applyStaticHooks.js | 71 - .../lib/helpers/model/applyStatics.js | 12 - .../lib/helpers/model/castBulkWrite.js | 224 - .../lib/helpers/model/discriminator.js | 205 - .../node_modules/mongoose/lib/helpers/once.js | 12 - .../mongoose/lib/helpers/parallelLimit.js | 55 - .../lib/helpers/populate/SkipPopulateValue.js | 10 - .../populate/assignRawDocsToIdStructure.js | 98 - .../lib/helpers/populate/assignVals.js | 285 - .../populate/getModelsMapForPopulate.js | 541 - .../lib/helpers/populate/getSchemaTypes.js | 208 - .../lib/helpers/populate/getVirtual.js | 72 - .../lib/helpers/populate/leanPopulateMap.js | 7 - .../lib/helpers/populate/lookupLocalFields.js | 25 - .../lib/helpers/populate/normalizeRefPath.js | 45 - .../populate/removeDeselectedForeignField.js | 31 - .../lib/helpers/populate/validateRef.js | 19 - .../mongoose/lib/helpers/printJestWarning.js | 8 - .../projection/isDefiningProjection.js | 18 - .../lib/helpers/projection/isExclusive.js | 32 - .../lib/helpers/projection/isInclusive.js | 34 - .../lib/helpers/projection/isPathExcluded.js | 35 - .../projection/isPathSelectedInclusive.js | 28 - .../lib/helpers/projection/parseProjection.js | 33 - .../mongoose/lib/helpers/promiseOrCallback.js | 45 - .../lib/helpers/query/applyGlobalMaxTimeMS.js | 15 - .../lib/helpers/query/applyQueryMiddleware.js | 93 - .../lib/helpers/query/castFilterPath.js | 55 - .../mongoose/lib/helpers/query/castUpdate.js | 545 - .../lib/helpers/query/completeMany.js | 47 - .../query/getEmbeddedDiscriminatorPath.js | 84 - .../lib/helpers/query/handleImmutable.js | 28 - .../lib/helpers/query/hasDollarKeys.js | 19 - .../mongoose/lib/helpers/query/isOperator.js | 11 - .../helpers/query/selectPopulatedFields.js | 49 - .../mongoose/lib/helpers/query/wrapThunk.js | 18 - .../mongoose/lib/helpers/schema/addAutoId.js | 7 - .../lib/helpers/schema/applyPlugins.js | 44 - .../lib/helpers/schema/applyWriteConcern.js | 16 - .../schema/cleanPositionalOperators.js | 12 - .../mongoose/lib/helpers/schema/getIndexes.js | 155 - .../mongoose/lib/helpers/schema/getPath.js | 35 - .../lib/helpers/schema/handleIdOption.js | 20 - .../helpers/schema/handleTimestampOption.js | 24 - .../mongoose/lib/helpers/schema/merge.js | 19 - .../lib/helpers/schematype/handleImmutable.js | 45 - .../lib/helpers/setDefaultsOnInsert.js | 127 - .../mongoose/lib/helpers/specialProperties.js | 3 - .../mongoose/lib/helpers/symbols.js | 19 - .../lib/helpers/timestamps/setupTimestamps.js | 111 - .../lib/helpers/topology/allServersUnknown.js | 11 - .../mongoose/lib/helpers/topology/isAtlas.js | 12 - .../lib/helpers/topology/isSSLError.js | 15 - .../update/applyTimestampsToChildren.js | 172 - .../helpers/update/applyTimestampsToUpdate.js | 119 - .../lib/helpers/update/castArrayFilters.js | 60 - .../lib/helpers/update/modifiedPaths.js | 33 - .../helpers/update/moveImmutableProperties.js | 53 - .../update/removeUnusedArrayFilters.js | 18 - .../update/updatedPathsByArrayFilter.js | 24 - .../mongoose/lib/helpers/updateValidators.js | 257 - views/node_modules/mongoose/lib/index.js | 1165 - views/node_modules/mongoose/lib/internal.js | 38 - views/node_modules/mongoose/lib/model.js | 4942 ----- views/node_modules/mongoose/lib/options.js | 15 - .../mongoose/lib/options/PopulateOptions.js | 36 - .../lib/options/SchemaArrayOptions.js | 59 - .../lib/options/SchemaBufferOptions.js | 38 - .../mongoose/lib/options/SchemaDateOptions.js | 64 - .../lib/options/SchemaDocumentArrayOptions.js | 68 - .../mongoose/lib/options/SchemaMapOptions.js | 43 - .../lib/options/SchemaNumberOptions.js | 99 - .../lib/options/SchemaObjectIdOptions.js | 63 - .../lib/options/SchemaSingleNestedOptions.js | 42 - .../lib/options/SchemaStringOptions.js | 138 - .../mongoose/lib/options/SchemaTypeOptions.js | 231 - .../mongoose/lib/options/VirtualOptions.js | 164 - .../mongoose/lib/options/propertyOptions.js | 8 - .../mongoose/lib/options/removeOptions.js | 14 - .../mongoose/lib/options/saveOptions.js | 14 - .../mongoose/lib/plugins/idGetter.js | 28 - .../mongoose/lib/plugins/removeSubdocs.js | 31 - .../mongoose/lib/plugins/saveSubdocs.js | 66 - .../mongoose/lib/plugins/sharding.js | 83 - .../mongoose/lib/plugins/trackTransaction.js | 91 - .../lib/plugins/validateBeforeSave.js | 45 - .../mongoose/lib/promise_provider.js | 49 - views/node_modules/mongoose/lib/query.js | 5460 ----- .../node_modules/mongoose/lib/queryhelpers.js | 319 - views/node_modules/mongoose/lib/schema.js | 2149 -- .../mongoose/lib/schema/SingleNestedPath.js | 336 - .../node_modules/mongoose/lib/schema/array.js | 613 - .../mongoose/lib/schema/boolean.js | 270 - .../mongoose/lib/schema/buffer.js | 267 - .../node_modules/mongoose/lib/schema/date.js | 402 - .../mongoose/lib/schema/decimal128.js | 210 - .../mongoose/lib/schema/documentarray.js | 563 - .../node_modules/mongoose/lib/schema/index.js | 37 - views/node_modules/mongoose/lib/schema/map.js | 76 - .../node_modules/mongoose/lib/schema/mixed.js | 132 - .../mongoose/lib/schema/number.js | 433 - .../mongoose/lib/schema/objectid.js | 297 - .../mongoose/lib/schema/operators/bitwise.js | 38 - .../mongoose/lib/schema/operators/exists.js | 12 - .../lib/schema/operators/geospatial.js | 107 - .../mongoose/lib/schema/operators/helpers.js | 32 - .../mongoose/lib/schema/operators/text.js | 39 - .../mongoose/lib/schema/operators/type.js | 20 - .../mongoose/lib/schema/string.js | 672 - .../mongoose/lib/schema/symbols.js | 5 - views/node_modules/mongoose/lib/schematype.js | 1655 -- .../node_modules/mongoose/lib/statemachine.js | 180 - .../node_modules/mongoose/lib/types/array.js | 66 - .../node_modules/mongoose/lib/types/buffer.js | 276 - .../mongoose/lib/types/core_array.js | 968 - .../mongoose/lib/types/decimal128.js | 13 - .../mongoose/lib/types/documentarray.js | 448 - .../mongoose/lib/types/embedded.js | 460 - .../node_modules/mongoose/lib/types/index.js | 20 - views/node_modules/mongoose/lib/types/map.js | 238 - .../mongoose/lib/types/objectid.js | 30 - .../mongoose/lib/types/subdocument.js | 301 - views/node_modules/mongoose/lib/utils.js | 935 - .../node_modules/mongoose/lib/validoptions.js | 36 - .../node_modules/mongoose/lib/virtualtype.js | 176 - .../mongoose/node_modules/ms/index.js | 162 - .../mongoose/node_modules/ms/license.md | 21 - .../mongoose/node_modules/ms/package.json | 37 - .../mongoose/node_modules/ms/readme.md | 60 - .../mongoose/node_modules/safe-buffer/LICENSE | 21 - .../node_modules/safe-buffer/README.md | 584 - .../node_modules/safe-buffer/index.d.ts | 187 - .../node_modules/safe-buffer/index.js | 65 - .../node_modules/safe-buffer/package.json | 51 - views/node_modules/mongoose/package.json | 250 - views/node_modules/mongoose/tools/auth.js | 30 - views/node_modules/mongoose/tools/repl.js | 36 - views/node_modules/mongoose/tools/sharded.js | 45 - views/node_modules/mpath/.travis.yml | 9 - views/node_modules/mpath/History.md | 80 - views/node_modules/mpath/LICENSE | 22 - views/node_modules/mpath/Makefile | 4 - views/node_modules/mpath/README.md | 278 - views/node_modules/mpath/bench.js | 110 - views/node_modules/mpath/bench.log | 0 views/node_modules/mpath/bench.out | 52 - views/node_modules/mpath/index.js | 3 - views/node_modules/mpath/lib/index.js | 314 - views/node_modules/mpath/lib/stringToParts.js | 48 - views/node_modules/mpath/package.json | 144 - views/node_modules/mpath/test/.eslintrc.yml | 4 - views/node_modules/mpath/test/index.js | 1879 -- .../node_modules/mpath/test/stringToParts.js | 30 - views/node_modules/mquery/.eslintignore | 1 - views/node_modules/mquery/.travis.yml | 17 - views/node_modules/mquery/History.md | 354 - views/node_modules/mquery/LICENSE | 22 - views/node_modules/mquery/Makefile | 26 - views/node_modules/mquery/README.md | 1375 -- views/node_modules/mquery/SECURITY.md | 1 - .../mquery/lib/collection/collection.js | 46 - .../mquery/lib/collection/index.js | 13 - .../mquery/lib/collection/node.js | 151 - views/node_modules/mquery/lib/env.js | 22 - views/node_modules/mquery/lib/mquery.js | 3252 --- views/node_modules/mquery/lib/permissions.js | 88 - views/node_modules/mquery/lib/utils.js | 363 - .../mquery/node_modules/debug/.coveralls.yml | 1 - .../mquery/node_modules/debug/.eslintrc | 14 - .../mquery/node_modules/debug/.npmignore | 9 - .../mquery/node_modules/debug/.travis.yml | 20 - .../mquery/node_modules/debug/CHANGELOG.md | 395 - .../mquery/node_modules/debug/LICENSE | 19 - .../mquery/node_modules/debug/Makefile | 58 - .../mquery/node_modules/debug/README.md | 368 - .../mquery/node_modules/debug/karma.conf.js | 70 - .../mquery/node_modules/debug/node.js | 1 - .../mquery/node_modules/debug/package.json | 43 - .../mquery/node_modules/debug/src/browser.js | 195 - .../mquery/node_modules/debug/src/debug.js | 225 - .../mquery/node_modules/debug/src/index.js | 10 - .../mquery/node_modules/debug/src/node.js | 186 - views/node_modules/mquery/package.json | 84 - .../mquery/test/collection/browser.js | 0 .../mquery/test/collection/mongo.js | 0 .../mquery/test/collection/node.js | 28 - views/node_modules/mquery/test/env.js | 21 - views/node_modules/mquery/test/index.js | 3076 --- views/node_modules/mquery/test/utils.test.js | 162 - views/node_modules/ms/index.js | 152 - views/node_modules/ms/license.md | 21 - views/node_modules/ms/package.json | 37 - views/node_modules/ms/readme.md | 51 - views/node_modules/negotiator/HISTORY.md | 103 - views/node_modules/negotiator/LICENSE | 24 - views/node_modules/negotiator/README.md | 203 - views/node_modules/negotiator/index.js | 124 - views/node_modules/negotiator/lib/charset.js | 169 - views/node_modules/negotiator/lib/encoding.js | 184 - views/node_modules/negotiator/lib/language.js | 179 - .../node_modules/negotiator/lib/mediaType.js | 294 - views/node_modules/negotiator/package.json | 42 - views/node_modules/normalize-url/index.d.ts | 216 - views/node_modules/normalize-url/index.js | 221 - views/node_modules/normalize-url/license | 9 - views/node_modules/normalize-url/package.json | 44 - views/node_modules/normalize-url/readme.md | 232 - views/node_modules/object-assign/index.js | 90 - views/node_modules/object-assign/license | 21 - views/node_modules/object-assign/package.json | 42 - views/node_modules/object-assign/readme.md | 61 - views/node_modules/on-finished/HISTORY.md | 88 - views/node_modules/on-finished/LICENSE | 23 - views/node_modules/on-finished/README.md | 154 - views/node_modules/on-finished/index.js | 196 - views/node_modules/on-finished/package.json | 31 - views/node_modules/on-headers/HISTORY.md | 21 - views/node_modules/on-headers/LICENSE | 22 - views/node_modules/on-headers/README.md | 81 - views/node_modules/on-headers/index.js | 132 - views/node_modules/on-headers/package.json | 42 - views/node_modules/once/LICENSE | 15 - views/node_modules/once/README.md | 79 - views/node_modules/once/once.js | 42 - views/node_modules/once/package.json | 33 - views/node_modules/optional-require/README.md | 92 - views/node_modules/optional-require/index.js | 75 - .../optional-require/package.json | 38 - views/node_modules/p-cancelable/index.d.ts | 176 - views/node_modules/p-cancelable/index.js | 111 - views/node_modules/p-cancelable/license | 9 - views/node_modules/p-cancelable/package.json | 49 - views/node_modules/p-cancelable/readme.md | 153 - views/node_modules/parseurl/HISTORY.md | 58 - views/node_modules/parseurl/LICENSE | 24 - views/node_modules/parseurl/README.md | 133 - views/node_modules/parseurl/index.js | 158 - views/node_modules/parseurl/package.json | 40 - views/node_modules/path-parse/.travis.yml | 9 - views/node_modules/path-parse/LICENSE | 21 - views/node_modules/path-parse/README.md | 42 - views/node_modules/path-parse/index.js | 93 - views/node_modules/path-parse/package.json | 33 - views/node_modules/path-parse/test.js | 77 - views/node_modules/path-to-regexp/History.md | 36 - views/node_modules/path-to-regexp/LICENSE | 21 - views/node_modules/path-to-regexp/Readme.md | 35 - views/node_modules/path-to-regexp/index.js | 129 - .../node_modules/path-to-regexp/package.json | 30 - views/node_modules/path/.npmignore | 1 - views/node_modules/path/LICENSE | 18 - views/node_modules/path/README.md | 15 - views/node_modules/path/package.json | 24 - views/node_modules/path/path.js | 628 - .../process-nextick-args/index.js | 45 - .../process-nextick-args/license.md | 19 - .../process-nextick-args/package.json | 25 - .../process-nextick-args/readme.md | 18 - views/node_modules/process/.eslintrc | 21 - views/node_modules/process/LICENSE | 22 - views/node_modules/process/README.md | 26 - views/node_modules/process/browser.js | 184 - views/node_modules/process/index.js | 2 - views/node_modules/process/package.json | 27 - views/node_modules/process/test.js | 199 - views/node_modules/promise/.jshintrc | 5 - views/node_modules/promise/.npmignore | 7 - views/node_modules/promise/LICENSE | 19 - views/node_modules/promise/Readme.md | 231 - views/node_modules/promise/build.js | 69 - views/node_modules/promise/core.js | 5 - views/node_modules/promise/domains/core.js | 213 - views/node_modules/promise/domains/done.js | 13 - .../promise/domains/es6-extensions.js | 107 - views/node_modules/promise/domains/finally.js | 16 - views/node_modules/promise/domains/index.js | 8 - .../promise/domains/node-extensions.js | 130 - .../promise/domains/rejection-tracking.js | 113 - .../promise/domains/synchronous.js | 62 - views/node_modules/promise/index.d.ts | 256 - views/node_modules/promise/index.js | 3 - views/node_modules/promise/lib/core.js | 213 - views/node_modules/promise/lib/done.js | 13 - .../promise/lib/es6-extensions.js | 107 - views/node_modules/promise/lib/finally.js | 16 - views/node_modules/promise/lib/index.js | 8 - .../promise/lib/node-extensions.js | 130 - .../promise/lib/rejection-tracking.js | 113 - views/node_modules/promise/lib/synchronous.js | 62 - views/node_modules/promise/package.json | 35 - views/node_modules/promise/polyfill-done.js | 12 - views/node_modules/promise/polyfill.js | 10 - .../node_modules/promise/setimmediate/core.js | 213 - .../node_modules/promise/setimmediate/done.js | 13 - .../promise/setimmediate/es6-extensions.js | 107 - .../promise/setimmediate/finally.js | 16 - .../promise/setimmediate/index.js | 8 - .../promise/setimmediate/node-extensions.js | 130 - .../setimmediate/rejection-tracking.js | 113 - .../promise/setimmediate/synchronous.js | 62 - views/node_modules/promise/src/core.js | 213 - views/node_modules/promise/src/done.js | 13 - .../promise/src/es6-extensions.js | 107 - views/node_modules/promise/src/finally.js | 16 - views/node_modules/promise/src/index.js | 8 - .../promise/src/node-extensions.js | 130 - .../promise/src/rejection-tracking.js | 113 - views/node_modules/promise/src/synchronous.js | 62 - views/node_modules/proxy-addr/HISTORY.md | 155 - views/node_modules/proxy-addr/LICENSE | 22 - views/node_modules/proxy-addr/README.md | 155 - views/node_modules/proxy-addr/index.js | 327 - views/node_modules/proxy-addr/package.json | 47 - views/node_modules/pseudomap/LICENSE | 15 - views/node_modules/pseudomap/README.md | 60 - views/node_modules/pseudomap/map.js | 9 - views/node_modules/pseudomap/package.json | 25 - views/node_modules/pseudomap/pseudomap.js | 113 - views/node_modules/pseudomap/test/basic.js | 86 - views/node_modules/pug-attrs/LICENSE | 19 - views/node_modules/pug-attrs/README.md | 75 - views/node_modules/pug-attrs/index.js | 150 - views/node_modules/pug-attrs/package.json | 22 - views/node_modules/pug-code-gen/HISTORY.md | 13 - views/node_modules/pug-code-gen/LICENSE | 19 - views/node_modules/pug-code-gen/README.md | 64 - views/node_modules/pug-code-gen/index.js | 1009 - views/node_modules/pug-code-gen/package.json | 27 - views/node_modules/pug-error/LICENSE | 19 - views/node_modules/pug-error/README.md | 55 - views/node_modules/pug-error/index.js | 51 - views/node_modules/pug-error/package.json | 17 - views/node_modules/pug-filters/CHANGELOG.md | 34 - views/node_modules/pug-filters/LICENSE | 19 - views/node_modules/pug-filters/README.md | 42 - views/node_modules/pug-filters/index.js | 4 - .../pug-filters/lib/handle-filters.js | 144 - .../pug-filters/lib/run-filter.js | 47 - views/node_modules/pug-filters/package.json | 37 - views/node_modules/pug-lexer/History.md | 66 - views/node_modules/pug-lexer/LICENSE | 19 - views/node_modules/pug-lexer/README.md | 73 - views/node_modules/pug-lexer/index.d.ts | 366 - views/node_modules/pug-lexer/index.js | 1710 -- views/node_modules/pug-lexer/package.json | 27 - views/node_modules/pug-linker/HISTORY.md | 10 - views/node_modules/pug-linker/LICENSE | 19 - views/node_modules/pug-linker/README.md | 28 - views/node_modules/pug-linker/index.js | 206 - views/node_modules/pug-linker/package.json | 26 - views/node_modules/pug-load/HISTORY.md | 19 - views/node_modules/pug-load/LICENSE | 19 - views/node_modules/pug-load/README.md | 105 - views/node_modules/pug-load/index.js | 120 - views/node_modules/pug-load/package.json | 25 - views/node_modules/pug-parser/HISTORY.md | 11 - views/node_modules/pug-parser/LICENSE | 19 - views/node_modules/pug-parser/README.md | 90 - views/node_modules/pug-parser/index.js | 1300 -- .../pug-parser/lib/inline-tags.js | 23 - views/node_modules/pug-parser/package.json | 23 - views/node_modules/pug-runtime/CHANGELOG.md | 45 - views/node_modules/pug-runtime/LICENSE | 19 - views/node_modules/pug-runtime/README.md | 68 - views/node_modules/pug-runtime/build.js | 27 - views/node_modules/pug-runtime/index.js | 286 - .../pug-runtime/lib/dependencies.js | 34 - .../node_modules/pug-runtime/lib/internals.js | 8 - views/node_modules/pug-runtime/lib/sources.js | 13 - views/node_modules/pug-runtime/package.json | 33 - views/node_modules/pug-runtime/wrap.js | 10 - .../pug-strip-comments/CHANGELOG.md | 16 - .../pug-strip-comments/LICENSE.md | 7 - .../node_modules/pug-strip-comments/README.md | 46 - .../node_modules/pug-strip-comments/index.js | 77 - .../pug-strip-comments/package.json | 23 - views/node_modules/pug-walk/HISTORY.md | 4 - views/node_modules/pug-walk/LICENSE | 19 - views/node_modules/pug-walk/README.md | 138 - views/node_modules/pug-walk/index.js | 120 - views/node_modules/pug-walk/package.json | 21 - views/node_modules/pug/History.md | 991 - views/node_modules/pug/LICENSE | 22 - views/node_modules/pug/README.md | 168 - views/node_modules/pug/lib/index.js | 494 - views/node_modules/pug/package.json | 58 - views/node_modules/pug/register.js | 20 - views/node_modules/pump/.travis.yml | 5 - views/node_modules/pump/LICENSE | 21 - views/node_modules/pump/README.md | 65 - views/node_modules/pump/index.js | 82 - views/node_modules/pump/package.json | 24 - views/node_modules/pump/test-browser.js | 66 - views/node_modules/pump/test-node.js | 53 - views/node_modules/punycode/LICENSE-MIT.txt | 20 - views/node_modules/punycode/README.md | 176 - views/node_modules/punycode/package.json | 53 - views/node_modules/punycode/punycode.js | 530 - views/node_modules/qs/.editorconfig | 30 - views/node_modules/qs/.eslintignore | 1 - views/node_modules/qs/.eslintrc | 21 - views/node_modules/qs/CHANGELOG.md | 256 - views/node_modules/qs/LICENSE | 28 - views/node_modules/qs/README.md | 570 - views/node_modules/qs/dist/qs.js | 782 - views/node_modules/qs/lib/formats.js | 18 - views/node_modules/qs/lib/index.js | 11 - views/node_modules/qs/lib/parse.js | 242 - views/node_modules/qs/lib/stringify.js | 269 - views/node_modules/qs/lib/utils.js | 230 - views/node_modules/qs/package.json | 58 - views/node_modules/qs/test/.eslintrc | 17 - views/node_modules/qs/test/index.js | 7 - views/node_modules/qs/test/parse.js | 676 - views/node_modules/qs/test/stringify.js | 679 - views/node_modules/qs/test/utils.js | 136 - .../node_modules/querystring/.History.md.un~ | Bin 7960 -> 0 bytes views/node_modules/querystring/.Readme.md.un~ | Bin 3225 -> 0 bytes .../querystring/.package.json.un~ | Bin 5710 -> 0 bytes views/node_modules/querystring/.travis.yml | 4 - views/node_modules/querystring/History.md | 20 - views/node_modules/querystring/License.md | 19 - views/node_modules/querystring/Readme.md | 15 - views/node_modules/querystring/decode.js | 80 - views/node_modules/querystring/encode.js | 64 - views/node_modules/querystring/index.js | 4 - views/node_modules/querystring/package.json | 65 - .../querystring/test/.index.js.un~ | Bin 975 -> 0 bytes .../querystring/test/common-index.js | 3 - views/node_modules/querystring/test/index.js | 210 - .../querystring/test/tap-index.js | 3 - views/node_modules/quick-lru/index.d.ts | 97 - views/node_modules/quick-lru/index.js | 123 - views/node_modules/quick-lru/license | 9 - views/node_modules/quick-lru/package.json | 43 - views/node_modules/quick-lru/readme.md | 111 - views/node_modules/random-bytes/HISTORY.md | 4 - views/node_modules/random-bytes/LICENSE | 21 - views/node_modules/random-bytes/README.md | 77 - views/node_modules/random-bytes/index.js | 101 - views/node_modules/random-bytes/package.json | 36 - views/node_modules/range-parser/HISTORY.md | 56 - views/node_modules/range-parser/LICENSE | 23 - views/node_modules/range-parser/README.md | 84 - views/node_modules/range-parser/index.js | 162 - views/node_modules/range-parser/package.json | 44 - views/node_modules/raw-body/HISTORY.md | 270 - views/node_modules/raw-body/LICENSE | 22 - views/node_modules/raw-body/README.md | 219 - views/node_modules/raw-body/index.d.ts | 87 - views/node_modules/raw-body/index.js | 286 - views/node_modules/raw-body/package.json | 48 - .../node_modules/readable-stream/.travis.yml | 34 - .../readable-stream/CONTRIBUTING.md | 38 - .../readable-stream/GOVERNANCE.md | 136 - views/node_modules/readable-stream/LICENSE | 47 - views/node_modules/readable-stream/README.md | 58 - .../doc/wg-meetings/2015-01-30.md | 60 - .../readable-stream/duplex-browser.js | 1 - views/node_modules/readable-stream/duplex.js | 1 - .../readable-stream/lib/_stream_duplex.js | 131 - .../lib/_stream_passthrough.js | 47 - .../readable-stream/lib/_stream_readable.js | 1019 - .../readable-stream/lib/_stream_transform.js | 214 - .../readable-stream/lib/_stream_writable.js | 687 - .../lib/internal/streams/BufferList.js | 79 - .../lib/internal/streams/destroy.js | 74 - .../lib/internal/streams/stream-browser.js | 1 - .../lib/internal/streams/stream.js | 1 - .../node_modules/readable-stream/package.json | 52 - .../readable-stream/passthrough.js | 1 - .../readable-stream/readable-browser.js | 7 - .../node_modules/readable-stream/readable.js | 19 - .../node_modules/readable-stream/transform.js | 1 - .../readable-stream/writable-browser.js | 1 - .../node_modules/readable-stream/writable.js | 8 - views/node_modules/regexp-clone/.travis.yml | 14 - views/node_modules/regexp-clone/History.md | 5 - views/node_modules/regexp-clone/LICENSE | 22 - views/node_modules/regexp-clone/Makefile | 5 - views/node_modules/regexp-clone/README.md | 42 - views/node_modules/regexp-clone/index.js | 27 - views/node_modules/regexp-clone/package.json | 22 - views/node_modules/regexp-clone/test/index.js | 171 - views/node_modules/resolve-alpn/.editorconfig | 13 - .../resolve-alpn/.github/workflows/nodejs.yml | 27 - views/node_modules/resolve-alpn/LICENSE | 22 - views/node_modules/resolve-alpn/README.md | 53 - views/node_modules/resolve-alpn/index.js | 33 - views/node_modules/resolve-alpn/package.json | 31 - views/node_modules/resolve-alpn/test.js | 114 - views/node_modules/resolve/.editorconfig | 37 - views/node_modules/resolve/.eslintignore | 1 - views/node_modules/resolve/.eslintrc | 39 - views/node_modules/resolve/LICENSE | 21 - views/node_modules/resolve/SECURITY.md | 3 - views/node_modules/resolve/appveyor.yml | 74 - views/node_modules/resolve/example/async.js | 5 - views/node_modules/resolve/example/sync.js | 3 - views/node_modules/resolve/index.js | 6 - views/node_modules/resolve/lib/async.js | 320 - views/node_modules/resolve/lib/caller.js | 8 - views/node_modules/resolve/lib/core.js | 53 - views/node_modules/resolve/lib/core.json | 83 - views/node_modules/resolve/lib/is-core.js | 5 - .../resolve/lib/node-modules-paths.js | 42 - .../resolve/lib/normalize-options.js | 10 - views/node_modules/resolve/lib/sync.js | 199 - views/node_modules/resolve/package.json | 51 - views/node_modules/resolve/readme.markdown | 279 - views/node_modules/resolve/test/.eslintrc | 5 - views/node_modules/resolve/test/core.js | 81 - views/node_modules/resolve/test/dotdot.js | 29 - .../resolve/test/dotdot/abc/index.js | 2 - .../node_modules/resolve/test/dotdot/index.js | 1 - .../resolve/test/faulty_basedir.js | 29 - views/node_modules/resolve/test/filter.js | 34 - .../node_modules/resolve/test/filter_sync.js | 33 - views/node_modules/resolve/test/mock.js | 315 - views/node_modules/resolve/test/mock_sync.js | 216 - views/node_modules/resolve/test/module_dir.js | 56 - .../test/module_dir/xmodules/aaa/index.js | 1 - .../test/module_dir/ymodules/aaa/index.js | 1 - .../test/module_dir/zmodules/bbb/main.js | 1 - .../test/module_dir/zmodules/bbb/package.json | 3 - .../resolve/test/node-modules-paths.js | 143 - views/node_modules/resolve/test/node_path.js | 70 - .../resolve/test/node_path/x/aaa/index.js | 1 - .../resolve/test/node_path/x/ccc/index.js | 1 - .../resolve/test/node_path/y/bbb/index.js | 1 - .../resolve/test/node_path/y/ccc/index.js | 1 - views/node_modules/resolve/test/nonstring.js | 9 - views/node_modules/resolve/test/pathfilter.js | 75 - .../resolve/test/pathfilter/deep_ref/main.js | 0 views/node_modules/resolve/test/precedence.js | 23 - .../resolve/test/precedence/aaa.js | 1 - .../resolve/test/precedence/aaa/index.js | 1 - .../resolve/test/precedence/aaa/main.js | 1 - .../resolve/test/precedence/bbb.js | 1 - .../resolve/test/precedence/bbb/main.js | 1 - views/node_modules/resolve/test/resolver.js | 450 - .../resolve/test/resolver/baz/doom.js | 0 .../resolve/test/resolver/baz/package.json | 4 - .../resolve/test/resolver/baz/quux.js | 1 - .../resolve/test/resolver/browser_field/a.js | 0 .../resolve/test/resolver/browser_field/b.js | 0 .../test/resolver/browser_field/package.json | 5 - .../resolve/test/resolver/cup.coffee | 1 - .../resolve/test/resolver/dot_main/index.js | 1 - .../test/resolver/dot_main/package.json | 3 - .../test/resolver/dot_slash_main/index.js | 1 - .../test/resolver/dot_slash_main/package.json | 3 - .../node_modules/resolve/test/resolver/foo.js | 1 - .../test/resolver/incorrect_main/index.js | 2 - .../test/resolver/incorrect_main/package.json | 3 - .../test/resolver/invalid_main/package.json | 7 - .../resolve/test/resolver/mug.coffee | 0 .../node_modules/resolve/test/resolver/mug.js | 0 .../test/resolver/multirepo/lerna.json | 6 - .../test/resolver/multirepo/package.json | 20 - .../multirepo/packages/package-a/index.js | 35 - .../multirepo/packages/package-a/package.json | 14 - .../multirepo/packages/package-b/index.js | 0 .../multirepo/packages/package-b/package.json | 14 - .../resolver/nested_symlinks/mylib/async.js | 26 - .../nested_symlinks/mylib/package.json | 15 - .../resolver/nested_symlinks/mylib/sync.js | 12 - .../test/resolver/other_path/lib/other-lib.js | 0 .../resolve/test/resolver/other_path/root.js | 0 .../resolve/test/resolver/quux/foo/index.js | 1 - .../resolve/test/resolver/same_names/foo.js | 1 - .../test/resolver/same_names/foo/index.js | 1 - .../resolver/symlinked/_/node_modules/foo.js | 0 .../symlinked/_/symlink_target/.gitkeep | 0 .../test/resolver/symlinked/package/bar.js | 1 - .../resolver/symlinked/package/package.json | 3 - .../test/resolver/without_basedir/main.js | 5 - .../resolve/test/resolver_sync.js | 358 - .../resolve/test/shadowed_core.js | 54 - .../shadowed_core/node_modules/util/index.js | 0 views/node_modules/resolve/test/subdirs.js | 13 - views/node_modules/resolve/test/symlinks.js | 176 - views/node_modules/responselike/LICENSE | 19 - views/node_modules/responselike/README.md | 77 - views/node_modules/responselike/package.json | 38 - views/node_modules/responselike/src/index.js | 34 - views/node_modules/safe-buffer/LICENSE | 21 - views/node_modules/safe-buffer/README.md | 584 - views/node_modules/safe-buffer/index.d.ts | 187 - views/node_modules/safe-buffer/index.js | 62 - views/node_modules/safe-buffer/package.json | 37 - views/node_modules/safer-buffer/LICENSE | 21 - .../safer-buffer/Porting-Buffer.md | 268 - views/node_modules/safer-buffer/Readme.md | 156 - views/node_modules/safer-buffer/dangerous.js | 58 - views/node_modules/safer-buffer/package.json | 34 - views/node_modules/safer-buffer/safer.js | 77 - views/node_modules/safer-buffer/tests.js | 406 - views/node_modules/saslprep/.editorconfig | 10 - views/node_modules/saslprep/.gitattributes | 1 - views/node_modules/saslprep/.travis.yml | 10 - views/node_modules/saslprep/CHANGELOG.md | 19 - views/node_modules/saslprep/LICENSE | 22 - views/node_modules/saslprep/code-points.mem | Bin 419864 -> 0 bytes .../saslprep/generate-code-points.js | 51 - views/node_modules/saslprep/index.js | 157 - .../node_modules/saslprep/lib/code-points.js | 996 - .../saslprep/lib/memory-code-points.js | 39 - views/node_modules/saslprep/lib/util.js | 21 - views/node_modules/saslprep/package.json | 72 - views/node_modules/saslprep/readme.md | 31 - views/node_modules/saslprep/test/index.js | 76 - views/node_modules/saslprep/test/util.js | 16 - views/node_modules/send/HISTORY.md | 496 - views/node_modules/send/LICENSE | 23 - views/node_modules/send/README.md | 329 - views/node_modules/send/index.js | 1129 - .../send/node_modules/ms/index.js | 162 - .../send/node_modules/ms/license.md | 21 - .../send/node_modules/ms/package.json | 37 - .../send/node_modules/ms/readme.md | 60 - views/node_modules/send/package.json | 61 - views/node_modules/serve-static/HISTORY.md | 451 - views/node_modules/serve-static/LICENSE | 25 - views/node_modules/serve-static/README.md | 259 - views/node_modules/serve-static/index.js | 210 - views/node_modules/serve-static/package.json | 42 - views/node_modules/setprototypeof/LICENSE | 13 - views/node_modules/setprototypeof/README.md | 31 - views/node_modules/setprototypeof/index.d.ts | 2 - views/node_modules/setprototypeof/index.js | 17 - .../node_modules/setprototypeof/package.json | 36 - .../node_modules/setprototypeof/test/index.js | 24 - views/node_modules/sift/.babelrc | 3 - views/node_modules/sift/.coveralls.yml | 1 - views/node_modules/sift/.travis.yml | 13 - views/node_modules/sift/MIT-LICENSE.txt | 20 - views/node_modules/sift/README.md | 417 - views/node_modules/sift/bower.json | 21 - views/node_modules/sift/changelog.md | 25 - .../node_modules/sift/coverage/coverage.json | 1 - views/node_modules/sift/coverage/lcov.info | 446 - views/node_modules/sift/gulpfile.js | 154 - views/node_modules/sift/index.d.ts | 62 - views/node_modules/sift/lib/index.js | 568 - views/node_modules/sift/package.json | 34 - views/node_modules/sift/sift.min.js | 1 - views/node_modules/sift/src/index.js | 554 - views/node_modules/sift/test/basic-test.js | 237 - .../node_modules/sift/test/immutable-test.js | 20 - views/node_modules/sift/test/objects-test.js | 409 - .../node_modules/sift/test/operations-test.js | 203 - views/node_modules/sift/tsconfig.json | 8 - views/node_modules/sift/webpack.config.js | 23 - views/node_modules/sift/yarn.lock | 4016 ---- views/node_modules/sliced/History.md | 41 - views/node_modules/sliced/LICENSE | 22 - views/node_modules/sliced/README.md | 62 - views/node_modules/sliced/index.js | 33 - views/node_modules/sliced/package.json | 30 - views/node_modules/sparse-bitfield/.npmignore | 1 - .../node_modules/sparse-bitfield/.travis.yml | 6 - views/node_modules/sparse-bitfield/LICENSE | 21 - views/node_modules/sparse-bitfield/README.md | 62 - views/node_modules/sparse-bitfield/index.js | 95 - .../node_modules/sparse-bitfield/package.json | 27 - views/node_modules/sparse-bitfield/test.js | 79 - views/node_modules/statuses/HISTORY.md | 65 - views/node_modules/statuses/LICENSE | 23 - views/node_modules/statuses/README.md | 127 - views/node_modules/statuses/codes.json | 66 - views/node_modules/statuses/index.js | 113 - views/node_modules/statuses/package.json | 48 - views/node_modules/string_decoder/.travis.yml | 50 - views/node_modules/string_decoder/LICENSE | 48 - views/node_modules/string_decoder/README.md | 47 - .../string_decoder/lib/string_decoder.js | 296 - .../node_modules/string_decoder/package.json | 31 - .../node_modules/to-fast-properties/index.js | 27 - views/node_modules/to-fast-properties/license | 10 - .../to-fast-properties/package.json | 35 - .../node_modules/to-fast-properties/readme.md | 37 - views/node_modules/toidentifier/LICENSE | 21 - views/node_modules/toidentifier/README.md | 61 - views/node_modules/toidentifier/index.js | 30 - views/node_modules/toidentifier/package.json | 34 - views/node_modules/token-stream/.npmignore | 14 - views/node_modules/token-stream/.travis.yml | 16 - views/node_modules/token-stream/HISTORY.md | 5 - views/node_modules/token-stream/LICENSE | 19 - views/node_modules/token-stream/README.md | 68 - views/node_modules/token-stream/index.js | 30 - views/node_modules/token-stream/package.json | 19 - views/node_modules/token-stream/test/index.js | 46 - views/node_modules/type-is/HISTORY.md | 259 - views/node_modules/type-is/LICENSE | 23 - views/node_modules/type-is/README.md | 170 - views/node_modules/type-is/index.js | 266 - views/node_modules/type-is/package.json | 45 - views/node_modules/uid-safe/HISTORY.md | 61 - views/node_modules/uid-safe/LICENSE | 22 - views/node_modules/uid-safe/README.md | 77 - views/node_modules/uid-safe/index.js | 107 - views/node_modules/uid-safe/package.json | 46 - views/node_modules/unpipe/HISTORY.md | 4 - views/node_modules/unpipe/LICENSE | 22 - views/node_modules/unpipe/README.md | 43 - views/node_modules/unpipe/index.js | 69 - views/node_modules/unpipe/package.json | 27 - views/node_modules/url/.npmignore | 1 - views/node_modules/url/.travis.yml | 7 - views/node_modules/url/.zuul.yml | 16 - views/node_modules/url/LICENSE | 21 - views/node_modules/url/README.md | 108 - views/node_modules/url/package.json | 24 - views/node_modules/url/test.js | 1599 -- views/node_modules/url/url.js | 732 - views/node_modules/url/util.js | 16 - views/node_modules/util-deprecate/History.md | 16 - views/node_modules/util-deprecate/LICENSE | 24 - views/node_modules/util-deprecate/README.md | 53 - views/node_modules/util-deprecate/browser.js | 67 - views/node_modules/util-deprecate/node.js | 6 - .../node_modules/util-deprecate/package.json | 27 - views/node_modules/util/LICENSE | 18 - views/node_modules/util/README.md | 15 - views/node_modules/util/package.json | 35 - views/node_modules/util/support/isBuffer.js | 3 - .../util/support/isBufferBrowser.js | 6 - views/node_modules/util/util.js | 586 - views/node_modules/utils-merge/.npmignore | 9 - views/node_modules/utils-merge/LICENSE | 20 - views/node_modules/utils-merge/README.md | 34 - views/node_modules/utils-merge/index.js | 23 - views/node_modules/utils-merge/package.json | 40 - views/node_modules/validator/CHANGELOG.md | 816 - views/node_modules/validator/LICENSE | 20 - views/node_modules/validator/README.md | 262 - views/node_modules/validator/es/index.js | 193 - views/node_modules/validator/es/lib/alpha.js | 119 - .../validator/es/lib/blacklist.js | 5 - .../node_modules/validator/es/lib/contains.js | 11 - views/node_modules/validator/es/lib/equals.js | 5 - views/node_modules/validator/es/lib/escape.js | 5 - .../node_modules/validator/es/lib/isAfter.js | 9 - .../node_modules/validator/es/lib/isAlpha.js | 26 - .../validator/es/lib/isAlphanumeric.js | 13 - .../node_modules/validator/es/lib/isAscii.js | 10 - views/node_modules/validator/es/lib/isBIC.js | 6 - .../node_modules/validator/es/lib/isBase32.js | 12 - .../node_modules/validator/es/lib/isBase58.js | 12 - .../node_modules/validator/es/lib/isBase64.js | 23 - .../node_modules/validator/es/lib/isBefore.js | 9 - .../validator/es/lib/isBoolean.js | 5 - .../validator/es/lib/isBtcAddress.js | 7 - .../validator/es/lib/isByteLength.js | 22 - .../validator/es/lib/isCreditCard.js | 40 - .../validator/es/lib/isCurrency.js | 77 - .../validator/es/lib/isDataURI.js | 40 - views/node_modules/validator/es/lib/isDate.js | 86 - .../validator/es/lib/isDecimal.js | 26 - .../validator/es/lib/isDivisibleBy.js | 6 - views/node_modules/validator/es/lib/isEAN.js | 67 - .../node_modules/validator/es/lib/isEmail.js | 190 - .../node_modules/validator/es/lib/isEmpty.js | 10 - .../validator/es/lib/isEthereumAddress.js | 6 - views/node_modules/validator/es/lib/isFQDN.js | 67 - .../node_modules/validator/es/lib/isFloat.js | 16 - .../validator/es/lib/isFullWidth.js | 6 - views/node_modules/validator/es/lib/isHSL.js | 7 - .../validator/es/lib/isHalfWidth.js | 6 - views/node_modules/validator/es/lib/isHash.js | 21 - .../validator/es/lib/isHexColor.js | 6 - .../validator/es/lib/isHexadecimal.js | 6 - views/node_modules/validator/es/lib/isIBAN.js | 136 - views/node_modules/validator/es/lib/isIMEI.js | 47 - views/node_modules/validator/es/lib/isIP.js | 124 - .../validator/es/lib/isIPRange.js | 22 - views/node_modules/validator/es/lib/isISBN.js | 51 - views/node_modules/validator/es/lib/isISIN.js | 38 - .../validator/es/lib/isISO31661Alpha2.js | 8 - .../validator/es/lib/isISO31661Alpha3.js | 8 - .../validator/es/lib/isISO8601.js | 47 - views/node_modules/validator/es/lib/isISRC.js | 7 - views/node_modules/validator/es/lib/isISSN.js | 23 - .../validator/es/lib/isIdentityCard.js | 274 - views/node_modules/validator/es/lib/isIn.js | 28 - views/node_modules/validator/es/lib/isInt.js | 16 - views/node_modules/validator/es/lib/isJSON.js | 26 - views/node_modules/validator/es/lib/isJWT.js | 17 - .../validator/es/lib/isLatLong.js | 22 - .../node_modules/validator/es/lib/isLength.js | 23 - .../node_modules/validator/es/lib/isLocale.js | 11 - .../validator/es/lib/isLowercase.js | 5 - .../validator/es/lib/isMACAddress.js | 15 - views/node_modules/validator/es/lib/isMD5.js | 6 - .../validator/es/lib/isMagnetURI.js | 6 - .../validator/es/lib/isMimeType.js | 39 - .../validator/es/lib/isMobilePhone.js | 164 - .../validator/es/lib/isMongoId.js | 6 - .../validator/es/lib/isMultibyte.js | 10 - .../validator/es/lib/isNumeric.js | 12 - .../node_modules/validator/es/lib/isOctal.js | 6 - .../validator/es/lib/isPassportNumber.js | 114 - views/node_modules/validator/es/lib/isPort.js | 7 - .../validator/es/lib/isPostalCode.js | 94 - .../validator/es/lib/isRFC3339.js | 20 - .../validator/es/lib/isRgbColor.js | 15 - .../node_modules/validator/es/lib/isSemVer.js | 14 - views/node_modules/validator/es/lib/isSlug.js | 6 - .../validator/es/lib/isStrongPassword.js | 100 - .../validator/es/lib/isSurrogatePair.js | 6 - .../node_modules/validator/es/lib/isTaxID.js | 1422 -- views/node_modules/validator/es/lib/isURL.js | 158 - views/node_modules/validator/es/lib/isUUID.js | 13 - .../validator/es/lib/isUppercase.js | 5 - views/node_modules/validator/es/lib/isVAT.js | 14 - .../validator/es/lib/isVariableWidth.js | 7 - .../validator/es/lib/isWhitelisted.js | 12 - views/node_modules/validator/es/lib/ltrim.js | 7 - .../node_modules/validator/es/lib/matches.js | 10 - .../validator/es/lib/normalizeEmail.js | 138 - views/node_modules/validator/es/lib/rtrim.js | 7 - .../node_modules/validator/es/lib/stripLow.js | 7 - .../validator/es/lib/toBoolean.js | 10 - views/node_modules/validator/es/lib/toDate.js | 6 - .../node_modules/validator/es/lib/toFloat.js | 5 - views/node_modules/validator/es/lib/toInt.js | 5 - views/node_modules/validator/es/lib/trim.js | 5 - .../node_modules/validator/es/lib/unescape.js | 5 - .../validator/es/lib/util/algorithms.js | 88 - .../validator/es/lib/util/assertString.js | 12 - .../validator/es/lib/util/includes.js | 7 - .../validator/es/lib/util/merge.js | 12 - .../validator/es/lib/util/multilineRegex.js | 12 - .../validator/es/lib/util/toString.js | 15 - .../validator/es/lib/whitelist.js | 5 - views/node_modules/validator/index.js | 302 - views/node_modules/validator/lib/alpha.js | 133 - views/node_modules/validator/lib/blacklist.js | 18 - views/node_modules/validator/lib/contains.js | 27 - views/node_modules/validator/lib/equals.js | 18 - views/node_modules/validator/lib/escape.js | 18 - views/node_modules/validator/lib/isAfter.js | 23 - views/node_modules/validator/lib/isAlpha.js | 40 - .../validator/lib/isAlphanumeric.js | 27 - views/node_modules/validator/lib/isAscii.js | 22 - views/node_modules/validator/lib/isBIC.js | 20 - views/node_modules/validator/lib/isBase32.js | 26 - views/node_modules/validator/lib/isBase58.js | 26 - views/node_modules/validator/lib/isBase64.js | 38 - views/node_modules/validator/lib/isBefore.js | 23 - views/node_modules/validator/lib/isBoolean.js | 18 - .../validator/lib/isBtcAddress.js | 21 - .../validator/lib/isByteLength.js | 34 - .../validator/lib/isCreditCard.js | 52 - .../node_modules/validator/lib/isCurrency.js | 91 - views/node_modules/validator/lib/isDataURI.js | 54 - views/node_modules/validator/lib/isDate.js | 99 - views/node_modules/validator/lib/isDecimal.js | 42 - .../validator/lib/isDivisibleBy.js | 20 - views/node_modules/validator/lib/isEAN.js | 80 - views/node_modules/validator/lib/isEmail.js | 207 - views/node_modules/validator/lib/isEmpty.js | 25 - .../validator/lib/isEthereumAddress.js | 20 - views/node_modules/validator/lib/isFQDN.js | 82 - views/node_modules/validator/lib/isFloat.js | 29 - .../node_modules/validator/lib/isFullWidth.js | 19 - views/node_modules/validator/lib/isHSL.js | 21 - .../node_modules/validator/lib/isHalfWidth.js | 19 - views/node_modules/validator/lib/isHash.js | 35 - .../node_modules/validator/lib/isHexColor.js | 20 - .../validator/lib/isHexadecimal.js | 20 - views/node_modules/validator/lib/isIBAN.js | 148 - views/node_modules/validator/lib/isIMEI.js | 61 - views/node_modules/validator/lib/isIP.js | 137 - views/node_modules/validator/lib/isIPRange.js | 37 - views/node_modules/validator/lib/isISBN.js | 65 - views/node_modules/validator/lib/isISIN.js | 52 - .../validator/lib/isISO31661Alpha2.js | 23 - .../validator/lib/isISO31661Alpha3.js | 23 - views/node_modules/validator/lib/isISO8601.js | 59 - views/node_modules/validator/lib/isISRC.js | 21 - views/node_modules/validator/lib/isISSN.js | 37 - .../validator/lib/isIdentityCard.js | 288 - views/node_modules/validator/lib/isIn.js | 42 - views/node_modules/validator/lib/isInt.js | 30 - views/node_modules/validator/lib/isJSON.js | 41 - views/node_modules/validator/lib/isJWT.js | 31 - views/node_modules/validator/lib/isLatLong.js | 37 - views/node_modules/validator/lib/isLength.js | 35 - views/node_modules/validator/lib/isLocale.js | 25 - .../node_modules/validator/lib/isLowercase.js | 18 - .../validator/lib/isMACAddress.js | 29 - views/node_modules/validator/lib/isMD5.js | 20 - .../node_modules/validator/lib/isMagnetURI.js | 20 - .../node_modules/validator/lib/isMimeType.js | 51 - .../validator/lib/isMobilePhone.js | 177 - views/node_modules/validator/lib/isMongoId.js | 20 - .../node_modules/validator/lib/isMultibyte.js | 22 - views/node_modules/validator/lib/isNumeric.js | 27 - views/node_modules/validator/lib/isOctal.js | 20 - .../validator/lib/isPassportNumber.js | 126 - views/node_modules/validator/lib/isPort.js | 20 - .../validator/lib/isPostalCode.js | 107 - views/node_modules/validator/lib/isRFC3339.js | 33 - .../node_modules/validator/lib/isRgbColor.js | 29 - views/node_modules/validator/lib/isSemVer.js | 28 - views/node_modules/validator/lib/isSlug.js | 20 - .../validator/lib/isStrongPassword.js | 114 - .../validator/lib/isSurrogatePair.js | 20 - views/node_modules/validator/lib/isTaxID.js | 1442 -- views/node_modules/validator/lib/isURL.js | 173 - views/node_modules/validator/lib/isUUID.js | 27 - .../node_modules/validator/lib/isUppercase.js | 18 - views/node_modules/validator/lib/isVAT.js | 27 - .../validator/lib/isVariableWidth.js | 22 - .../validator/lib/isWhitelisted.js | 25 - views/node_modules/validator/lib/ltrim.js | 20 - views/node_modules/validator/lib/matches.js | 23 - .../validator/lib/normalizeEmail.js | 151 - views/node_modules/validator/lib/rtrim.js | 20 - views/node_modules/validator/lib/stripLow.js | 21 - views/node_modules/validator/lib/toBoolean.js | 23 - views/node_modules/validator/lib/toDate.js | 19 - views/node_modules/validator/lib/toFloat.js | 18 - views/node_modules/validator/lib/toInt.js | 18 - views/node_modules/validator/lib/trim.js | 19 - views/node_modules/validator/lib/unescape.js | 18 - .../validator/lib/util/algorithms.js | 101 - .../validator/lib/util/assertString.js | 22 - .../validator/lib/util/includes.js | 17 - .../node_modules/validator/lib/util/merge.js | 22 - .../validator/lib/util/multilineRegex.js | 22 - .../validator/lib/util/toString.js | 25 - views/node_modules/validator/lib/whitelist.js | 18 - views/node_modules/validator/package.json | 78 - views/node_modules/validator/validator.js | 4728 ---- views/node_modules/validator/validator.min.js | 23 - views/node_modules/vary/HISTORY.md | 39 - views/node_modules/vary/LICENSE | 22 - views/node_modules/vary/README.md | 101 - views/node_modules/vary/index.js | 149 - views/node_modules/vary/package.json | 43 - views/node_modules/void-elements/LICENSE | 22 - views/node_modules/void-elements/README.md | 27 - views/node_modules/void-elements/index.js | 21 - views/node_modules/void-elements/package.json | 34 - views/node_modules/with/.babelrc | 9 - .../workflows/rollingversions-canary.yml | 40 - .../.github/workflows/rollingversions.yml | 38 - .../with/.github/workflows/test.yml | 24 - views/node_modules/with/LICENSE | 19 - views/node_modules/with/README.md | 87 - views/node_modules/with/lib/globals.d.ts | 5 - views/node_modules/with/lib/globals.js | 190 - views/node_modules/with/lib/globals.js.map | 1 - views/node_modules/with/lib/index.d.ts | 8 - views/node_modules/with/lib/index.js | 148 - views/node_modules/with/lib/index.js.map | 1 - views/node_modules/with/lib/reference.d.ts | 2 - views/node_modules/with/lib/reference.js | 43 - views/node_modules/with/lib/reference.js.map | 1 - views/node_modules/with/package.json | 40 - views/node_modules/with/prettier.config.js | 1 - views/node_modules/with/src/globals.ts | 195 - views/node_modules/with/src/index.ts | 154 - views/node_modules/with/src/reference.ts | 24 - views/node_modules/with/tsconfig.json | 10 - views/node_modules/with/tslint.json | 7 - views/node_modules/wrappy/LICENSE | 15 - views/node_modules/wrappy/README.md | 36 - views/node_modules/wrappy/package.json | 29 - views/node_modules/wrappy/wrappy.js | 33 - views/node_modules/yallist/LICENSE | 15 - views/node_modules/yallist/README.md | 204 - views/node_modules/yallist/iterator.js | 7 - views/node_modules/yallist/package.json | 29 - views/node_modules/yallist/yallist.js | 370 - views/public/CCashLogo2.png | Bin 285739 -> 0 bytes views/public/CCashLogo3.png | Bin 21135 -> 0 bytes views/public/blockimages/items/0-0.png | Bin 80 -> 0 bytes views/public/blockimages/items/1-0.png | Bin 454 -> 0 bytes views/public/blockimages/items/1-1.png | Bin 1009 -> 0 bytes views/public/blockimages/items/1-2.png | Bin 943 -> 0 bytes views/public/blockimages/items/1-3.png | Bin 1362 -> 0 bytes views/public/blockimages/items/1-4.png | Bin 1255 -> 0 bytes views/public/blockimages/items/1-5.png | Bin 1890 -> 0 bytes views/public/blockimages/items/1-6.png | Bin 1733 -> 0 bytes views/public/blockimages/items/10-0.png | Bin 2057 -> 0 bytes views/public/blockimages/items/100-0.png | Bin 1108 -> 0 bytes views/public/blockimages/items/101-0.png | Bin 593 -> 0 bytes views/public/blockimages/items/102-0.png | Bin 180 -> 0 bytes views/public/blockimages/items/103-0.png | Bin 908 -> 0 bytes views/public/blockimages/items/104-0.png | Bin 172 -> 0 bytes views/public/blockimages/items/105-0.png | Bin 172 -> 0 bytes views/public/blockimages/items/106-0.png | Bin 222 -> 0 bytes views/public/blockimages/items/107-0.png | Bin 1266 -> 0 bytes views/public/blockimages/items/108-0.png | Bin 1124 -> 0 bytes views/public/blockimages/items/109-0.png | Bin 586 -> 0 bytes views/public/blockimages/items/11-0.png | Bin 2057 -> 0 bytes views/public/blockimages/items/110-0.png | Bin 1051 -> 0 bytes views/public/blockimages/items/111-0.png | Bin 209 -> 0 bytes views/public/blockimages/items/112-0.png | Bin 1599 -> 0 bytes views/public/blockimages/items/113-0.png | Bin 482 -> 0 bytes views/public/blockimages/items/114-0.png | Bin 1571 -> 0 bytes views/public/blockimages/items/115-0.png | Bin 558 -> 0 bytes views/public/blockimages/items/116-0.png | Bin 1709 -> 0 bytes views/public/blockimages/items/117-0.png | Bin 937 -> 0 bytes views/public/blockimages/items/118-0.png | Bin 918 -> 0 bytes views/public/blockimages/items/119-0.png | Bin 802 -> 0 bytes views/public/blockimages/items/12-0.png | Bin 1592 -> 0 bytes views/public/blockimages/items/12-1.png | Bin 1490 -> 0 bytes views/public/blockimages/items/120-0.png | Bin 1787 -> 0 bytes views/public/blockimages/items/121-0.png | Bin 1650 -> 0 bytes views/public/blockimages/items/122-0.png | Bin 328 -> 0 bytes views/public/blockimages/items/123-0.png | Bin 1736 -> 0 bytes views/public/blockimages/items/124-0.png | Bin 1886 -> 0 bytes views/public/blockimages/items/125-0.png | Bin 530 -> 0 bytes views/public/blockimages/items/125-1.png | Bin 548 -> 0 bytes views/public/blockimages/items/125-2.png | Bin 563 -> 0 bytes views/public/blockimages/items/125-3.png | Bin 541 -> 0 bytes views/public/blockimages/items/125-4.png | Bin 1234 -> 0 bytes views/public/blockimages/items/125-5.png | Bin 981 -> 0 bytes views/public/blockimages/items/126-0.png | Bin 412 -> 0 bytes views/public/blockimages/items/126-1.png | Bin 432 -> 0 bytes views/public/blockimages/items/126-2.png | Bin 449 -> 0 bytes views/public/blockimages/items/126-3.png | Bin 433 -> 0 bytes views/public/blockimages/items/126-4.png | Bin 997 -> 0 bytes views/public/blockimages/items/126-5.png | Bin 802 -> 0 bytes views/public/blockimages/items/127-0.png | Bin 1284 -> 0 bytes views/public/blockimages/items/128-0.png | Bin 1919 -> 0 bytes views/public/blockimages/items/129-0.png | Bin 1350 -> 0 bytes views/public/blockimages/items/13-0.png | Bin 1754 -> 0 bytes views/public/blockimages/items/130-0.png | Bin 1419 -> 0 bytes views/public/blockimages/items/131-0.png | Bin 871 -> 0 bytes views/public/blockimages/items/132-0.png | Bin 145 -> 0 bytes views/public/blockimages/items/133-0.png | Bin 1886 -> 0 bytes views/public/blockimages/items/134-0.png | Bin 1142 -> 0 bytes views/public/blockimages/items/135-0.png | Bin 1225 -> 0 bytes views/public/blockimages/items/136-0.png | Bin 1199 -> 0 bytes views/public/blockimages/items/137-0.png | Bin 1537 -> 0 bytes views/public/blockimages/items/138-0.png | Bin 707 -> 0 bytes views/public/blockimages/items/139-0.png | Bin 491 -> 0 bytes views/public/blockimages/items/139-1.png | Bin 974 -> 0 bytes views/public/blockimages/items/14-0.png | Bin 561 -> 0 bytes views/public/blockimages/items/140-0.png | Bin 634 -> 0 bytes views/public/blockimages/items/141-0.png | Bin 518 -> 0 bytes views/public/blockimages/items/142-0.png | Bin 320 -> 0 bytes views/public/blockimages/items/143-0.png | Bin 187 -> 0 bytes views/public/blockimages/items/144-0.png | Bin 422 -> 0 bytes views/public/blockimages/items/145-0.png | Bin 726 -> 0 bytes views/public/blockimages/items/146-0.png | Bin 934 -> 0 bytes views/public/blockimages/items/147-0.png | Bin 1108 -> 0 bytes views/public/blockimages/items/148-0.png | Bin 364 -> 0 bytes views/public/blockimages/items/149-0.png | Bin 311 -> 0 bytes views/public/blockimages/items/15-0.png | Bin 561 -> 0 bytes views/public/blockimages/items/150-0.png | Bin 414 -> 0 bytes views/public/blockimages/items/151-0.png | Bin 385 -> 0 bytes views/public/blockimages/items/152-0.png | Bin 1278 -> 0 bytes views/public/blockimages/items/153-0.png | Bin 1980 -> 0 bytes views/public/blockimages/items/154-0.png | Bin 233 -> 0 bytes views/public/blockimages/items/155-0.png | Bin 796 -> 0 bytes views/public/blockimages/items/155-1.png | Bin 830 -> 0 bytes views/public/blockimages/items/155-2.png | Bin 680 -> 0 bytes views/public/blockimages/items/156-0.png | Bin 785 -> 0 bytes views/public/blockimages/items/157-0.png | Bin 287 -> 0 bytes views/public/blockimages/items/158-0.png | Bin 736 -> 0 bytes views/public/blockimages/items/159-0.png | Bin 978 -> 0 bytes views/public/blockimages/items/159-1.png | Bin 1073 -> 0 bytes views/public/blockimages/items/159-10.png | Bin 1070 -> 0 bytes views/public/blockimages/items/159-11.png | Bin 826 -> 0 bytes views/public/blockimages/items/159-12.png | Bin 856 -> 0 bytes views/public/blockimages/items/159-13.png | Bin 843 -> 0 bytes views/public/blockimages/items/159-14.png | Bin 1054 -> 0 bytes views/public/blockimages/items/159-15.png | Bin 723 -> 0 bytes views/public/blockimages/items/159-2.png | Bin 1075 -> 0 bytes views/public/blockimages/items/159-3.png | Bin 878 -> 0 bytes views/public/blockimages/items/159-4.png | Bin 1100 -> 0 bytes views/public/blockimages/items/159-5.png | Bin 1039 -> 0 bytes views/public/blockimages/items/159-6.png | Bin 1106 -> 0 bytes views/public/blockimages/items/159-7.png | Bin 791 -> 0 bytes views/public/blockimages/items/159-8.png | Bin 902 -> 0 bytes views/public/blockimages/items/159-9.png | Bin 1041 -> 0 bytes views/public/blockimages/items/16-0.png | Bin 488 -> 0 bytes views/public/blockimages/items/160-0.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-1.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-10.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-11.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-12.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-13.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-14.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-15.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-2.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-3.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-4.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-5.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-6.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-7.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-8.png | Bin 236 -> 0 bytes views/public/blockimages/items/160-9.png | Bin 236 -> 0 bytes views/public/blockimages/items/161-0.png | Bin 1236 -> 0 bytes views/public/blockimages/items/161-1.png | Bin 1236 -> 0 bytes views/public/blockimages/items/162-0.png | Bin 1512 -> 0 bytes views/public/blockimages/items/162-1.png | Bin 1251 -> 0 bytes views/public/blockimages/items/163-0.png | Bin 1182 -> 0 bytes views/public/blockimages/items/164-0.png | Bin 931 -> 0 bytes views/public/blockimages/items/165-0.png | Bin 1582 -> 0 bytes views/public/blockimages/items/166-0.png | Bin 223 -> 0 bytes views/public/blockimages/items/167-0.png | Bin 320 -> 0 bytes views/public/blockimages/items/168-0.png | Bin 1539 -> 0 bytes views/public/blockimages/items/168-1.png | Bin 2065 -> 0 bytes views/public/blockimages/items/168-2.png | Bin 1851 -> 0 bytes views/public/blockimages/items/169-0.png | Bin 1578 -> 0 bytes views/public/blockimages/items/17-0.png | Bin 1091 -> 0 bytes views/public/blockimages/items/17-1.png | Bin 991 -> 0 bytes views/public/blockimages/items/17-2.png | Bin 1562 -> 0 bytes views/public/blockimages/items/17-3.png | Bin 1339 -> 0 bytes views/public/blockimages/items/170-0.png | Bin 1710 -> 0 bytes views/public/blockimages/items/171-0.png | Bin 545 -> 0 bytes views/public/blockimages/items/171-1.png | Bin 418 -> 0 bytes views/public/blockimages/items/171-10.png | Bin 481 -> 0 bytes views/public/blockimages/items/171-11.png | Bin 465 -> 0 bytes views/public/blockimages/items/171-12.png | Bin 425 -> 0 bytes views/public/blockimages/items/171-13.png | Bin 417 -> 0 bytes views/public/blockimages/items/171-14.png | Bin 465 -> 0 bytes views/public/blockimages/items/171-15.png | Bin 400 -> 0 bytes views/public/blockimages/items/171-2.png | Bin 488 -> 0 bytes views/public/blockimages/items/171-3.png | Bin 486 -> 0 bytes views/public/blockimages/items/171-4.png | Bin 479 -> 0 bytes views/public/blockimages/items/171-5.png | Bin 471 -> 0 bytes views/public/blockimages/items/171-6.png | Bin 494 -> 0 bytes views/public/blockimages/items/171-7.png | Bin 384 -> 0 bytes views/public/blockimages/items/171-8.png | Bin 502 -> 0 bytes views/public/blockimages/items/171-9.png | Bin 457 -> 0 bytes views/public/blockimages/items/172-0.png | Bin 1332 -> 0 bytes views/public/blockimages/items/173-0.png | Bin 441 -> 0 bytes views/public/blockimages/items/174-0.png | Bin 1286 -> 0 bytes views/public/blockimages/items/175-0.png | Bin 196 -> 0 bytes views/public/blockimages/items/175-1.png | Bin 220 -> 0 bytes views/public/blockimages/items/175-2.png | Bin 224 -> 0 bytes views/public/blockimages/items/175-3.png | Bin 428 -> 0 bytes views/public/blockimages/items/175-4.png | Bin 249 -> 0 bytes views/public/blockimages/items/175-5.png | Bin 362 -> 0 bytes views/public/blockimages/items/176-0.png | Bin 346 -> 0 bytes views/public/blockimages/items/177-0.png | Bin 346 -> 0 bytes views/public/blockimages/items/178-0.png | Bin 394 -> 0 bytes views/public/blockimages/items/179-0.png | Bin 1412 -> 0 bytes views/public/blockimages/items/179-1.png | Bin 1303 -> 0 bytes views/public/blockimages/items/179-2.png | Bin 1186 -> 0 bytes views/public/blockimages/items/18-0.png | Bin 939 -> 0 bytes views/public/blockimages/items/18-1.png | Bin 939 -> 0 bytes views/public/blockimages/items/18-2.png | Bin 939 -> 0 bytes views/public/blockimages/items/18-3.png | Bin 662 -> 0 bytes views/public/blockimages/items/180-0.png | Bin 1345 -> 0 bytes views/public/blockimages/items/181-0.png | Bin 1412 -> 0 bytes views/public/blockimages/items/182-0.png | Bin 1049 -> 0 bytes views/public/blockimages/items/183-0.png | Bin 293 -> 0 bytes views/public/blockimages/items/184-0.png | Bin 307 -> 0 bytes views/public/blockimages/items/185-0.png | Bin 298 -> 0 bytes views/public/blockimages/items/186-0.png | Bin 273 -> 0 bytes views/public/blockimages/items/187-0.png | Bin 303 -> 0 bytes views/public/blockimages/items/188-0.png | Bin 393 -> 0 bytes views/public/blockimages/items/189-0.png | Bin 413 -> 0 bytes views/public/blockimages/items/19-0.png | Bin 1821 -> 0 bytes views/public/blockimages/items/19-1.png | Bin 2096 -> 0 bytes views/public/blockimages/items/190-0.png | Bin 403 -> 0 bytes views/public/blockimages/items/191-0.png | Bin 374 -> 0 bytes views/public/blockimages/items/192-0.png | Bin 408 -> 0 bytes views/public/blockimages/items/193-0.png | Bin 155 -> 0 bytes views/public/blockimages/items/194-0.png | Bin 153 -> 0 bytes views/public/blockimages/items/195-0.png | Bin 153 -> 0 bytes views/public/blockimages/items/196-0.png | Bin 144 -> 0 bytes views/public/blockimages/items/197-0.png | Bin 138 -> 0 bytes views/public/blockimages/items/198-0.png | Bin 319 -> 0 bytes views/public/blockimages/items/199-0.png | Bin 1152 -> 0 bytes views/public/blockimages/items/2-0.png | Bin 1651 -> 0 bytes views/public/blockimages/items/20-0.png | Bin 309 -> 0 bytes views/public/blockimages/items/200-0.png | Bin 1333 -> 0 bytes views/public/blockimages/items/201-0.png | Bin 1245 -> 0 bytes views/public/blockimages/items/202-0.png | Bin 1416 -> 0 bytes views/public/blockimages/items/203-0.png | Bin 1197 -> 0 bytes views/public/blockimages/items/204-0.png | Bin 1245 -> 0 bytes views/public/blockimages/items/205-0.png | Bin 976 -> 0 bytes views/public/blockimages/items/206-0.png | Bin 1356 -> 0 bytes views/public/blockimages/items/207-0.png | Bin 165 -> 0 bytes views/public/blockimages/items/208-0.png | Bin 1156 -> 0 bytes views/public/blockimages/items/209-0.png | Bin 1875 -> 0 bytes views/public/blockimages/items/21-0.png | Bin 1009 -> 0 bytes views/public/blockimages/items/210-0.png | Bin 829 -> 0 bytes views/public/blockimages/items/211-0.png | Bin 832 -> 0 bytes views/public/blockimages/items/212-0.png | Bin 285 -> 0 bytes views/public/blockimages/items/213-0.png | Bin 682 -> 0 bytes views/public/blockimages/items/214-0.png | Bin 855 -> 0 bytes views/public/blockimages/items/215-0.png | Bin 1024 -> 0 bytes views/public/blockimages/items/216-0.png | Bin 986 -> 0 bytes views/public/blockimages/items/217-0.png | Bin 214 -> 0 bytes views/public/blockimages/items/218-0.png | Bin 1180 -> 0 bytes views/public/blockimages/items/219-0.png | Bin 934 -> 0 bytes views/public/blockimages/items/22-0.png | Bin 1504 -> 0 bytes views/public/blockimages/items/220-0.png | Bin 907 -> 0 bytes views/public/blockimages/items/221-0.png | Bin 927 -> 0 bytes views/public/blockimages/items/222-0.png | Bin 941 -> 0 bytes views/public/blockimages/items/223-0.png | Bin 778 -> 0 bytes views/public/blockimages/items/224-0.png | Bin 924 -> 0 bytes views/public/blockimages/items/225-0.png | Bin 927 -> 0 bytes views/public/blockimages/items/2256-0.png | Bin 203 -> 0 bytes views/public/blockimages/items/2257-0.png | Bin 205 -> 0 bytes views/public/blockimages/items/2258-0.png | Bin 199 -> 0 bytes views/public/blockimages/items/2259-0.png | Bin 204 -> 0 bytes views/public/blockimages/items/226-0.png | Bin 819 -> 0 bytes views/public/blockimages/items/2260-0.png | Bin 203 -> 0 bytes views/public/blockimages/items/2261-0.png | Bin 203 -> 0 bytes views/public/blockimages/items/2262-0.png | Bin 203 -> 0 bytes views/public/blockimages/items/2263-0.png | Bin 199 -> 0 bytes views/public/blockimages/items/2264-0.png | Bin 199 -> 0 bytes views/public/blockimages/items/2265-0.png | Bin 206 -> 0 bytes views/public/blockimages/items/2266-0.png | Bin 209 -> 0 bytes views/public/blockimages/items/2267-0.png | Bin 216 -> 0 bytes views/public/blockimages/items/227-0.png | Bin 932 -> 0 bytes views/public/blockimages/items/228-0.png | Bin 933 -> 0 bytes views/public/blockimages/items/229-0.png | Bin 909 -> 0 bytes views/public/blockimages/items/23-0.png | Bin 1080 -> 0 bytes views/public/blockimages/items/230-0.png | Bin 949 -> 0 bytes views/public/blockimages/items/231-0.png | Bin 920 -> 0 bytes views/public/blockimages/items/232-0.png | Bin 893 -> 0 bytes views/public/blockimages/items/233-0.png | Bin 927 -> 0 bytes views/public/blockimages/items/234-0.png | Bin 807 -> 0 bytes views/public/blockimages/items/235-0.png | Bin 643 -> 0 bytes views/public/blockimages/items/236-0.png | Bin 716 -> 0 bytes views/public/blockimages/items/237-0.png | Bin 599 -> 0 bytes views/public/blockimages/items/238-0.png | Bin 695 -> 0 bytes views/public/blockimages/items/239-0.png | Bin 697 -> 0 bytes views/public/blockimages/items/24-0.png | Bin 1748 -> 0 bytes views/public/blockimages/items/24-1.png | Bin 1574 -> 0 bytes views/public/blockimages/items/24-2.png | Bin 1380 -> 0 bytes views/public/blockimages/items/240-0.png | Bin 649 -> 0 bytes views/public/blockimages/items/241-0.png | Bin 512 -> 0 bytes views/public/blockimages/items/242-0.png | Bin 708 -> 0 bytes views/public/blockimages/items/243-0.png | Bin 745 -> 0 bytes views/public/blockimages/items/244-0.png | Bin 749 -> 0 bytes views/public/blockimages/items/245-0.png | Bin 637 -> 0 bytes views/public/blockimages/items/246-0.png | Bin 539 -> 0 bytes views/public/blockimages/items/247-0.png | Bin 714 -> 0 bytes views/public/blockimages/items/248-0.png | Bin 767 -> 0 bytes views/public/blockimages/items/249-0.png | Bin 611 -> 0 bytes views/public/blockimages/items/25-0.png | Bin 931 -> 0 bytes views/public/blockimages/items/250-0.png | Bin 783 -> 0 bytes views/public/blockimages/items/251-0.png | Bin 428 -> 0 bytes views/public/blockimages/items/251-1.png | Bin 588 -> 0 bytes views/public/blockimages/items/251-10.png | Bin 444 -> 0 bytes views/public/blockimages/items/251-11.png | Bin 406 -> 0 bytes views/public/blockimages/items/251-12.png | Bin 430 -> 0 bytes views/public/blockimages/items/251-13.png | Bin 417 -> 0 bytes views/public/blockimages/items/251-14.png | Bin 440 -> 0 bytes views/public/blockimages/items/251-15.png | Bin 419 -> 0 bytes views/public/blockimages/items/251-2.png | Bin 494 -> 0 bytes views/public/blockimages/items/251-3.png | Bin 462 -> 0 bytes views/public/blockimages/items/251-4.png | Bin 559 -> 0 bytes views/public/blockimages/items/251-5.png | Bin 544 -> 0 bytes views/public/blockimages/items/251-6.png | Bin 523 -> 0 bytes views/public/blockimages/items/251-7.png | Bin 357 -> 0 bytes views/public/blockimages/items/251-8.png | Bin 403 -> 0 bytes views/public/blockimages/items/251-9.png | Bin 438 -> 0 bytes views/public/blockimages/items/252-0.png | Bin 1480 -> 0 bytes views/public/blockimages/items/252-1.png | Bin 1868 -> 0 bytes views/public/blockimages/items/252-10.png | Bin 1728 -> 0 bytes views/public/blockimages/items/252-11.png | Bin 1603 -> 0 bytes views/public/blockimages/items/252-12.png | Bin 1583 -> 0 bytes views/public/blockimages/items/252-13.png | Bin 1697 -> 0 bytes views/public/blockimages/items/252-14.png | Bin 1558 -> 0 bytes views/public/blockimages/items/252-15.png | Bin 1300 -> 0 bytes views/public/blockimages/items/252-2.png | Bin 1846 -> 0 bytes views/public/blockimages/items/252-3.png | Bin 1905 -> 0 bytes views/public/blockimages/items/252-4.png | Bin 1849 -> 0 bytes views/public/blockimages/items/252-5.png | Bin 1680 -> 0 bytes views/public/blockimages/items/252-6.png | Bin 1937 -> 0 bytes views/public/blockimages/items/252-7.png | Bin 1381 -> 0 bytes views/public/blockimages/items/252-8.png | Bin 1530 -> 0 bytes views/public/blockimages/items/252-9.png | Bin 1584 -> 0 bytes views/public/blockimages/items/255-0.png | Bin 2038 -> 0 bytes views/public/blockimages/items/256-0.png | Bin 192 -> 0 bytes views/public/blockimages/items/257-0.png | Bin 207 -> 0 bytes views/public/blockimages/items/258-0.png | Bin 200 -> 0 bytes views/public/blockimages/items/259-0.png | Bin 205 -> 0 bytes views/public/blockimages/items/26-0.png | Bin 904 -> 0 bytes views/public/blockimages/items/260-0.png | Bin 209 -> 0 bytes views/public/blockimages/items/261-0.png | Bin 204 -> 0 bytes views/public/blockimages/items/262-0.png | Bin 186 -> 0 bytes views/public/blockimages/items/263-0.png | Bin 252 -> 0 bytes views/public/blockimages/items/263-1.png | Bin 404 -> 0 bytes views/public/blockimages/items/264-0.png | Bin 229 -> 0 bytes views/public/blockimages/items/265-0.png | Bin 202 -> 0 bytes views/public/blockimages/items/266-0.png | Bin 227 -> 0 bytes views/public/blockimages/items/267-0.png | Bin 210 -> 0 bytes views/public/blockimages/items/268-0.png | Bin 210 -> 0 bytes views/public/blockimages/items/269-0.png | Bin 192 -> 0 bytes views/public/blockimages/items/27-0.png | Bin 365 -> 0 bytes views/public/blockimages/items/270-0.png | Bin 207 -> 0 bytes views/public/blockimages/items/271-0.png | Bin 200 -> 0 bytes views/public/blockimages/items/272-0.png | Bin 210 -> 0 bytes views/public/blockimages/items/273-0.png | Bin 192 -> 0 bytes views/public/blockimages/items/274-0.png | Bin 207 -> 0 bytes views/public/blockimages/items/275-0.png | Bin 200 -> 0 bytes views/public/blockimages/items/276-0.png | Bin 210 -> 0 bytes views/public/blockimages/items/277-0.png | Bin 192 -> 0 bytes views/public/blockimages/items/278-0.png | Bin 207 -> 0 bytes views/public/blockimages/items/279-0.png | Bin 200 -> 0 bytes views/public/blockimages/items/28-0.png | Bin 360 -> 0 bytes views/public/blockimages/items/280-0.png | Bin 137 -> 0 bytes views/public/blockimages/items/281-0.png | Bin 172 -> 0 bytes views/public/blockimages/items/282-0.png | Bin 191 -> 0 bytes views/public/blockimages/items/283-0.png | Bin 210 -> 0 bytes views/public/blockimages/items/284-0.png | Bin 192 -> 0 bytes views/public/blockimages/items/285-0.png | Bin 207 -> 0 bytes views/public/blockimages/items/286-0.png | Bin 200 -> 0 bytes views/public/blockimages/items/287-0.png | Bin 178 -> 0 bytes views/public/blockimages/items/288-0.png | Bin 175 -> 0 bytes views/public/blockimages/items/289-0.png | Bin 198 -> 0 bytes views/public/blockimages/items/29-0.png | Bin 1849 -> 0 bytes views/public/blockimages/items/290-0.png | Bin 184 -> 0 bytes views/public/blockimages/items/291-0.png | Bin 184 -> 0 bytes views/public/blockimages/items/292-0.png | Bin 184 -> 0 bytes views/public/blockimages/items/293-0.png | Bin 184 -> 0 bytes views/public/blockimages/items/294-0.png | Bin 184 -> 0 bytes views/public/blockimages/items/295-0.png | Bin 173 -> 0 bytes views/public/blockimages/items/296-0.png | Bin 324 -> 0 bytes views/public/blockimages/items/297-0.png | Bin 211 -> 0 bytes views/public/blockimages/items/298-0.png | Bin 161 -> 0 bytes views/public/blockimages/items/299-0.png | Bin 185 -> 0 bytes views/public/blockimages/items/3-0.png | Bin 517 -> 0 bytes views/public/blockimages/items/3-1.png | Bin 1287 -> 0 bytes views/public/blockimages/items/3-2.png | Bin 1217 -> 0 bytes views/public/blockimages/items/30-0.png | Bin 224 -> 0 bytes views/public/blockimages/items/300-0.png | Bin 152 -> 0 bytes views/public/blockimages/items/301-0.png | Bin 161 -> 0 bytes views/public/blockimages/items/302-0.png | Bin 205 -> 0 bytes views/public/blockimages/items/303-0.png | Bin 213 -> 0 bytes views/public/blockimages/items/304-0.png | Bin 174 -> 0 bytes views/public/blockimages/items/305-0.png | Bin 174 -> 0 bytes views/public/blockimages/items/306-0.png | Bin 168 -> 0 bytes views/public/blockimages/items/307-0.png | Bin 184 -> 0 bytes views/public/blockimages/items/308-0.png | Bin 134 -> 0 bytes views/public/blockimages/items/309-0.png | Bin 163 -> 0 bytes views/public/blockimages/items/31-0.png | Bin 173 -> 0 bytes views/public/blockimages/items/31-1.png | Bin 242 -> 0 bytes views/public/blockimages/items/31-2.png | Bin 174 -> 0 bytes views/public/blockimages/items/310-0.png | Bin 168 -> 0 bytes views/public/blockimages/items/311-0.png | Bin 194 -> 0 bytes views/public/blockimages/items/312-0.png | Bin 159 -> 0 bytes views/public/blockimages/items/313-0.png | Bin 176 -> 0 bytes views/public/blockimages/items/314-0.png | Bin 168 -> 0 bytes views/public/blockimages/items/315-0.png | Bin 194 -> 0 bytes views/public/blockimages/items/316-0.png | Bin 159 -> 0 bytes views/public/blockimages/items/317-0.png | Bin 176 -> 0 bytes views/public/blockimages/items/318-0.png | Bin 179 -> 0 bytes views/public/blockimages/items/319-0.png | Bin 231 -> 0 bytes views/public/blockimages/items/32-0.png | Bin 173 -> 0 bytes views/public/blockimages/items/320-0.png | Bin 488 -> 0 bytes views/public/blockimages/items/321-0.png | Bin 168 -> 0 bytes views/public/blockimages/items/322-0.png | Bin 196 -> 0 bytes views/public/blockimages/items/322-1.png | Bin 196 -> 0 bytes views/public/blockimages/items/323-0.png | Bin 187 -> 0 bytes views/public/blockimages/items/324-0.png | Bin 148 -> 0 bytes views/public/blockimages/items/325-0.png | Bin 197 -> 0 bytes views/public/blockimages/items/326-0.png | Bin 268 -> 0 bytes views/public/blockimages/items/327-0.png | Bin 325 -> 0 bytes views/public/blockimages/items/328-0.png | Bin 265 -> 0 bytes views/public/blockimages/items/329-0.png | Bin 206 -> 0 bytes views/public/blockimages/items/33-0.png | Bin 1785 -> 0 bytes views/public/blockimages/items/330-0.png | Bin 122 -> 0 bytes views/public/blockimages/items/331-0.png | Bin 199 -> 0 bytes views/public/blockimages/items/332-0.png | Bin 239 -> 0 bytes views/public/blockimages/items/333-0.png | Bin 270 -> 0 bytes views/public/blockimages/items/334-0.png | Bin 193 -> 0 bytes views/public/blockimages/items/335-0.png | Bin 196 -> 0 bytes views/public/blockimages/items/336-0.png | Bin 205 -> 0 bytes views/public/blockimages/items/337-0.png | Bin 191 -> 0 bytes views/public/blockimages/items/338-0.png | Bin 209 -> 0 bytes views/public/blockimages/items/339-0.png | Bin 173 -> 0 bytes views/public/blockimages/items/34-0.png | Bin 378 -> 0 bytes views/public/blockimages/items/340-0.png | Bin 226 -> 0 bytes views/public/blockimages/items/341-0.png | Bin 244 -> 0 bytes views/public/blockimages/items/342-0.png | Bin 239 -> 0 bytes views/public/blockimages/items/343-0.png | Bin 240 -> 0 bytes views/public/blockimages/items/344-0.png | Bin 182 -> 0 bytes views/public/blockimages/items/345-0.png | Bin 233 -> 0 bytes views/public/blockimages/items/346-0.png | Bin 200 -> 0 bytes views/public/blockimages/items/347-0.png | Bin 248 -> 0 bytes views/public/blockimages/items/348-0.png | Bin 199 -> 0 bytes views/public/blockimages/items/349-0.png | Bin 227 -> 0 bytes views/public/blockimages/items/349-1.png | Bin 236 -> 0 bytes views/public/blockimages/items/349-2.png | Bin 317 -> 0 bytes views/public/blockimages/items/349-3.png | Bin 637 -> 0 bytes views/public/blockimages/items/35-0.png | Bin 762 -> 0 bytes views/public/blockimages/items/35-1.png | Bin 872 -> 0 bytes views/public/blockimages/items/35-10.png | Bin 1027 -> 0 bytes views/public/blockimages/items/35-11.png | Bin 972 -> 0 bytes views/public/blockimages/items/35-12.png | Bin 834 -> 0 bytes views/public/blockimages/items/35-13.png | Bin 812 -> 0 bytes views/public/blockimages/items/35-14.png | Bin 974 -> 0 bytes views/public/blockimages/items/35-15.png | Bin 733 -> 0 bytes views/public/blockimages/items/35-2.png | Bin 1031 -> 0 bytes views/public/blockimages/items/35-3.png | Bin 1053 -> 0 bytes views/public/blockimages/items/35-4.png | Bin 998 -> 0 bytes views/public/blockimages/items/35-5.png | Bin 1010 -> 0 bytes views/public/blockimages/items/35-6.png | Bin 1056 -> 0 bytes views/public/blockimages/items/35-7.png | Bin 584 -> 0 bytes views/public/blockimages/items/35-8.png | Bin 1095 -> 0 bytes views/public/blockimages/items/35-9.png | Bin 957 -> 0 bytes views/public/blockimages/items/350-0.png | Bin 240 -> 0 bytes views/public/blockimages/items/350-1.png | Bin 230 -> 0 bytes views/public/blockimages/items/351-0.png | Bin 208 -> 0 bytes views/public/blockimages/items/351-1.png | Bin 191 -> 0 bytes views/public/blockimages/items/351-10.png | Bin 184 -> 0 bytes views/public/blockimages/items/351-11.png | Bin 221 -> 0 bytes views/public/blockimages/items/351-12.png | Bin 193 -> 0 bytes views/public/blockimages/items/351-13.png | Bin 185 -> 0 bytes views/public/blockimages/items/351-14.png | Bin 201 -> 0 bytes views/public/blockimages/items/351-15.png | Bin 223 -> 0 bytes views/public/blockimages/items/351-2.png | Bin 204 -> 0 bytes views/public/blockimages/items/351-3.png | Bin 203 -> 0 bytes views/public/blockimages/items/351-4.png | Bin 217 -> 0 bytes views/public/blockimages/items/351-5.png | Bin 185 -> 0 bytes views/public/blockimages/items/351-6.png | Bin 206 -> 0 bytes views/public/blockimages/items/351-7.png | Bin 204 -> 0 bytes views/public/blockimages/items/351-8.png | Bin 189 -> 0 bytes views/public/blockimages/items/351-9.png | Bin 184 -> 0 bytes views/public/blockimages/items/352-0.png | Bin 250 -> 0 bytes views/public/blockimages/items/353-0.png | Bin 193 -> 0 bytes views/public/blockimages/items/354-0.png | Bin 243 -> 0 bytes views/public/blockimages/items/355-0.png | Bin 216 -> 0 bytes views/public/blockimages/items/356-0.png | Bin 188 -> 0 bytes views/public/blockimages/items/357-0.png | Bin 218 -> 0 bytes views/public/blockimages/items/358-0.png | Bin 204 -> 0 bytes views/public/blockimages/items/359-0.png | Bin 218 -> 0 bytes views/public/blockimages/items/360-0.png | Bin 251 -> 0 bytes views/public/blockimages/items/361-0.png | Bin 156 -> 0 bytes views/public/blockimages/items/362-0.png | Bin 161 -> 0 bytes views/public/blockimages/items/363-0.png | Bin 296 -> 0 bytes views/public/blockimages/items/364-0.png | Bin 425 -> 0 bytes views/public/blockimages/items/365-0.png | Bin 357 -> 0 bytes views/public/blockimages/items/366-0.png | Bin 314 -> 0 bytes views/public/blockimages/items/367-0.png | Bin 529 -> 0 bytes views/public/blockimages/items/368-0.png | Bin 229 -> 0 bytes views/public/blockimages/items/369-0.png | Bin 213 -> 0 bytes views/public/blockimages/items/37-0.png | Bin 169 -> 0 bytes views/public/blockimages/items/370-0.png | Bin 151 -> 0 bytes views/public/blockimages/items/371-0.png | Bin 158 -> 0 bytes views/public/blockimages/items/372-0.png | Bin 168 -> 0 bytes views/public/blockimages/items/373-0.png | Bin 251 -> 0 bytes views/public/blockimages/items/374-0.png | Bin 190 -> 0 bytes views/public/blockimages/items/375-0.png | Bin 175 -> 0 bytes views/public/blockimages/items/376-0.png | Bin 312 -> 0 bytes views/public/blockimages/items/377-0.png | Bin 334 -> 0 bytes views/public/blockimages/items/378-0.png | Bin 515 -> 0 bytes views/public/blockimages/items/379-0.png | Bin 278 -> 0 bytes views/public/blockimages/items/38-0.png | Bin 194 -> 0 bytes views/public/blockimages/items/38-1.png | Bin 190 -> 0 bytes views/public/blockimages/items/38-2.png | Bin 216 -> 0 bytes views/public/blockimages/items/38-3.png | Bin 171 -> 0 bytes views/public/blockimages/items/38-4.png | Bin 209 -> 0 bytes views/public/blockimages/items/38-5.png | Bin 218 -> 0 bytes views/public/blockimages/items/38-6.png | Bin 209 -> 0 bytes views/public/blockimages/items/38-7.png | Bin 206 -> 0 bytes views/public/blockimages/items/38-8.png | Bin 198 -> 0 bytes views/public/blockimages/items/380-0.png | Bin 261 -> 0 bytes views/public/blockimages/items/381-0.png | Bin 543 -> 0 bytes views/public/blockimages/items/382-0.png | Bin 397 -> 0 bytes views/public/blockimages/items/383-100.png | Bin 424 -> 0 bytes views/public/blockimages/items/383-101.png | Bin 394 -> 0 bytes views/public/blockimages/items/383-102.png | Bin 420 -> 0 bytes views/public/blockimages/items/383-103.png | Bin 407 -> 0 bytes views/public/blockimages/items/383-105.png | Bin 416 -> 0 bytes views/public/blockimages/items/383-120.png | Bin 414 -> 0 bytes views/public/blockimages/items/383-23.png | Bin 411 -> 0 bytes views/public/blockimages/items/383-27.png | Bin 402 -> 0 bytes views/public/blockimages/items/383-28.png | Bin 407 -> 0 bytes views/public/blockimages/items/383-29.png | Bin 411 -> 0 bytes views/public/blockimages/items/383-31.png | Bin 410 -> 0 bytes views/public/blockimages/items/383-32.png | Bin 349 -> 0 bytes views/public/blockimages/items/383-34.png | Bin 382 -> 0 bytes views/public/blockimages/items/383-35.png | Bin 433 -> 0 bytes views/public/blockimages/items/383-36.png | Bin 410 -> 0 bytes views/public/blockimages/items/383-4.png | Bin 427 -> 0 bytes views/public/blockimages/items/383-5.png | Bin 338 -> 0 bytes views/public/blockimages/items/383-50.png | Bin 307 -> 0 bytes views/public/blockimages/items/383-51.png | Bin 375 -> 0 bytes views/public/blockimages/items/383-52.png | Bin 392 -> 0 bytes views/public/blockimages/items/383-54.png | Bin 411 -> 0 bytes views/public/blockimages/items/383-55.png | Bin 421 -> 0 bytes views/public/blockimages/items/383-56.png | Bin 398 -> 0 bytes views/public/blockimages/items/383-57.png | Bin 403 -> 0 bytes views/public/blockimages/items/383-58.png | Bin 215 -> 0 bytes views/public/blockimages/items/383-59.png | Bin 395 -> 0 bytes views/public/blockimages/items/383-6.png | Bin 419 -> 0 bytes views/public/blockimages/items/383-60.png | Bin 351 -> 0 bytes views/public/blockimages/items/383-61.png | Bin 422 -> 0 bytes views/public/blockimages/items/383-62.png | Bin 342 -> 0 bytes views/public/blockimages/items/383-65.png | Bin 339 -> 0 bytes views/public/blockimages/items/383-66.png | Bin 364 -> 0 bytes views/public/blockimages/items/383-67.png | Bin 258 -> 0 bytes views/public/blockimages/items/383-68.png | Bin 422 -> 0 bytes views/public/blockimages/items/383-69.png | Bin 405 -> 0 bytes views/public/blockimages/items/383-90.png | Bin 422 -> 0 bytes views/public/blockimages/items/383-91.png | Bin 416 -> 0 bytes views/public/blockimages/items/383-92.png | Bin 400 -> 0 bytes views/public/blockimages/items/383-93.png | Bin 394 -> 0 bytes views/public/blockimages/items/383-94.png | Bin 404 -> 0 bytes views/public/blockimages/items/383-95.png | Bin 418 -> 0 bytes views/public/blockimages/items/383-96.png | Bin 404 -> 0 bytes views/public/blockimages/items/383-98.png | Bin 406 -> 0 bytes views/public/blockimages/items/384-0.png | Bin 391 -> 0 bytes views/public/blockimages/items/385-0.png | Bin 285 -> 0 bytes views/public/blockimages/items/386-0.png | Bin 336 -> 0 bytes views/public/blockimages/items/387-0.png | Bin 267 -> 0 bytes views/public/blockimages/items/388-0.png | Bin 376 -> 0 bytes views/public/blockimages/items/389-0.png | Bin 427 -> 0 bytes views/public/blockimages/items/39-0.png | Bin 144 -> 0 bytes views/public/blockimages/items/390-0.png | Bin 451 -> 0 bytes views/public/blockimages/items/391-0.png | Bin 451 -> 0 bytes views/public/blockimages/items/392-0.png | Bin 290 -> 0 bytes views/public/blockimages/items/393-0.png | Bin 376 -> 0 bytes views/public/blockimages/items/394-0.png | Bin 410 -> 0 bytes views/public/blockimages/items/395-0.png | Bin 174 -> 0 bytes views/public/blockimages/items/396-0.png | Bin 205 -> 0 bytes views/public/blockimages/items/397-0.png | Bin 351 -> 0 bytes views/public/blockimages/items/397-1.png | Bin 531 -> 0 bytes views/public/blockimages/items/397-2.png | Bin 591 -> 0 bytes views/public/blockimages/items/397-3.png | Bin 590 -> 0 bytes views/public/blockimages/items/397-4.png | Bin 864 -> 0 bytes views/public/blockimages/items/397-5.png | Bin 545 -> 0 bytes views/public/blockimages/items/398-0.png | Bin 246 -> 0 bytes views/public/blockimages/items/399-0.png | Bin 213 -> 0 bytes views/public/blockimages/items/4-0.png | Bin 1089 -> 0 bytes views/public/blockimages/items/40-0.png | Bin 175 -> 0 bytes views/public/blockimages/items/400-0.png | Bin 302 -> 0 bytes views/public/blockimages/items/401-0.png | Bin 182 -> 0 bytes views/public/blockimages/items/402-0.png | Bin 198 -> 0 bytes views/public/blockimages/items/403-0.png | Bin 510 -> 0 bytes views/public/blockimages/items/404-0.png | Bin 207 -> 0 bytes views/public/blockimages/items/405-0.png | Bin 202 -> 0 bytes views/public/blockimages/items/406-0.png | Bin 363 -> 0 bytes views/public/blockimages/items/407-0.png | Bin 264 -> 0 bytes views/public/blockimages/items/408-0.png | Bin 235 -> 0 bytes views/public/blockimages/items/409-0.png | Bin 331 -> 0 bytes views/public/blockimages/items/41-0.png | Bin 1485 -> 0 bytes views/public/blockimages/items/410-0.png | Bin 330 -> 0 bytes views/public/blockimages/items/411-0.png | Bin 248 -> 0 bytes views/public/blockimages/items/412-0.png | Bin 249 -> 0 bytes views/public/blockimages/items/413-0.png | Bin 282 -> 0 bytes views/public/blockimages/items/414-0.png | Bin 180 -> 0 bytes views/public/blockimages/items/415-0.png | Bin 194 -> 0 bytes views/public/blockimages/items/416-0.png | Bin 245 -> 0 bytes views/public/blockimages/items/417-0.png | Bin 233 -> 0 bytes views/public/blockimages/items/418-0.png | Bin 233 -> 0 bytes views/public/blockimages/items/419-0.png | Bin 233 -> 0 bytes views/public/blockimages/items/42-0.png | Bin 563 -> 0 bytes views/public/blockimages/items/420-0.png | Bin 322 -> 0 bytes views/public/blockimages/items/421-0.png | Bin 309 -> 0 bytes views/public/blockimages/items/422-0.png | Bin 315 -> 0 bytes views/public/blockimages/items/423-0.png | Bin 237 -> 0 bytes views/public/blockimages/items/424-0.png | Bin 313 -> 0 bytes views/public/blockimages/items/425-0.png | Bin 346 -> 0 bytes views/public/blockimages/items/426-0.png | Bin 349 -> 0 bytes views/public/blockimages/items/427-0.png | Bin 155 -> 0 bytes views/public/blockimages/items/428-0.png | Bin 153 -> 0 bytes views/public/blockimages/items/429-0.png | Bin 153 -> 0 bytes views/public/blockimages/items/43-0.png | Bin 508 -> 0 bytes views/public/blockimages/items/43-1.png | Bin 1748 -> 0 bytes views/public/blockimages/items/43-2.png | Bin 530 -> 0 bytes views/public/blockimages/items/43-3.png | Bin 1089 -> 0 bytes views/public/blockimages/items/43-4.png | Bin 1726 -> 0 bytes views/public/blockimages/items/43-5.png | Bin 641 -> 0 bytes views/public/blockimages/items/43-6.png | Bin 1599 -> 0 bytes views/public/blockimages/items/43-7.png | Bin 796 -> 0 bytes views/public/blockimages/items/430-0.png | Bin 144 -> 0 bytes views/public/blockimages/items/431-0.png | Bin 138 -> 0 bytes views/public/blockimages/items/432-0.png | Bin 212 -> 0 bytes views/public/blockimages/items/433-0.png | Bin 408 -> 0 bytes views/public/blockimages/items/434-0.png | Bin 250 -> 0 bytes views/public/blockimages/items/435-0.png | Bin 165 -> 0 bytes views/public/blockimages/items/436-0.png | Bin 180 -> 0 bytes views/public/blockimages/items/437-0.png | Bin 328 -> 0 bytes views/public/blockimages/items/438-0.png | Bin 296 -> 0 bytes views/public/blockimages/items/439-0.png | Bin 226 -> 0 bytes views/public/blockimages/items/44-0.png | Bin 377 -> 0 bytes views/public/blockimages/items/44-1.png | Bin 1209 -> 0 bytes views/public/blockimages/items/44-2.png | Bin 412 -> 0 bytes views/public/blockimages/items/44-3.png | Bin 527 -> 0 bytes views/public/blockimages/items/44-4.png | Bin 832 -> 0 bytes views/public/blockimages/items/44-5.png | Bin 475 -> 0 bytes views/public/blockimages/items/44-6.png | Bin 563 -> 0 bytes views/public/blockimages/items/44-7.png | Bin 656 -> 0 bytes views/public/blockimages/items/440-0.png | Bin 225 -> 0 bytes views/public/blockimages/items/441-0.png | Bin 249 -> 0 bytes views/public/blockimages/items/442-0.png | Bin 408 -> 0 bytes views/public/blockimages/items/443-0.png | Bin 246 -> 0 bytes views/public/blockimages/items/444-0.png | Bin 263 -> 0 bytes views/public/blockimages/items/445-0.png | Bin 270 -> 0 bytes views/public/blockimages/items/446-0.png | Bin 270 -> 0 bytes views/public/blockimages/items/447-0.png | Bin 269 -> 0 bytes views/public/blockimages/items/448-0.png | Bin 263 -> 0 bytes views/public/blockimages/items/449-0.png | Bin 202 -> 0 bytes views/public/blockimages/items/45-0.png | Bin 1726 -> 0 bytes views/public/blockimages/items/450-0.png | Bin 234 -> 0 bytes views/public/blockimages/items/452-0.png | Bin 173 -> 0 bytes views/public/blockimages/items/453-0.png | Bin 257 -> 0 bytes views/public/blockimages/items/46-0.png | Bin 559 -> 0 bytes views/public/blockimages/items/47-0.png | Bin 755 -> 0 bytes views/public/blockimages/items/48-0.png | Bin 1385 -> 0 bytes views/public/blockimages/items/49-0.png | Bin 1112 -> 0 bytes views/public/blockimages/items/5-0.png | Bin 530 -> 0 bytes views/public/blockimages/items/5-1.png | Bin 548 -> 0 bytes views/public/blockimages/items/5-2.png | Bin 563 -> 0 bytes views/public/blockimages/items/5-3.png | Bin 541 -> 0 bytes views/public/blockimages/items/5-4.png | Bin 1234 -> 0 bytes views/public/blockimages/items/5-5.png | Bin 981 -> 0 bytes views/public/blockimages/items/50-0.png | Bin 197 -> 0 bytes views/public/blockimages/items/51-0.png | Bin 825 -> 0 bytes views/public/blockimages/items/52-0.png | Bin 792 -> 0 bytes views/public/blockimages/items/53-0.png | Bin 502 -> 0 bytes views/public/blockimages/items/54-0.png | Bin 934 -> 0 bytes views/public/blockimages/items/55-0.png | Bin 137 -> 0 bytes views/public/blockimages/items/56-0.png | Bin 561 -> 0 bytes views/public/blockimages/items/57-0.png | Bin 1112 -> 0 bytes views/public/blockimages/items/58-0.png | Bin 952 -> 0 bytes views/public/blockimages/items/59-0.png | Bin 752 -> 0 bytes views/public/blockimages/items/6-0.png | Bin 205 -> 0 bytes views/public/blockimages/items/6-1.png | Bin 209 -> 0 bytes views/public/blockimages/items/6-2.png | Bin 216 -> 0 bytes views/public/blockimages/items/6-3.png | Bin 356 -> 0 bytes views/public/blockimages/items/6-4.png | Bin 297 -> 0 bytes views/public/blockimages/items/6-5.png | Bin 309 -> 0 bytes views/public/blockimages/items/60-0.png | Bin 508 -> 0 bytes views/public/blockimages/items/61-0.png | Bin 1108 -> 0 bytes views/public/blockimages/items/62-0.png | Bin 1348 -> 0 bytes views/public/blockimages/items/63-0.png | Bin 187 -> 0 bytes views/public/blockimages/items/64-0.png | Bin 148 -> 0 bytes views/public/blockimages/items/65-0.png | Bin 275 -> 0 bytes views/public/blockimages/items/66-0.png | Bin 281 -> 0 bytes views/public/blockimages/items/67-0.png | Bin 681 -> 0 bytes views/public/blockimages/items/68-0.png | Bin 187 -> 0 bytes views/public/blockimages/items/69-0.png | Bin 165 -> 0 bytes views/public/blockimages/items/7-0.png | Bin 459 -> 0 bytes views/public/blockimages/items/70-0.png | Bin 328 -> 0 bytes views/public/blockimages/items/71-0.png | Bin 122 -> 0 bytes views/public/blockimages/items/72-0.png | Bin 349 -> 0 bytes views/public/blockimages/items/73-0.png | Bin 571 -> 0 bytes views/public/blockimages/items/74-0.png | Bin 571 -> 0 bytes views/public/blockimages/items/75-0.png | Bin 192 -> 0 bytes views/public/blockimages/items/76-0.png | Bin 206 -> 0 bytes views/public/blockimages/items/77-0.png | Bin 181 -> 0 bytes views/public/blockimages/items/78-0.png | Bin 421 -> 0 bytes views/public/blockimages/items/79-0.png | Bin 289 -> 0 bytes views/public/blockimages/items/8-0.png | Bin 940 -> 0 bytes views/public/blockimages/items/80-0.png | Bin 421 -> 0 bytes views/public/blockimages/items/81-0.png | Bin 815 -> 0 bytes views/public/blockimages/items/82-0.png | Bin 1405 -> 0 bytes views/public/blockimages/items/83-0.png | Bin 209 -> 0 bytes views/public/blockimages/items/84-0.png | Bin 884 -> 0 bytes views/public/blockimages/items/85-0.png | Bin 379 -> 0 bytes views/public/blockimages/items/86-0.png | Bin 458 -> 0 bytes views/public/blockimages/items/87-0.png | Bin 1562 -> 0 bytes views/public/blockimages/items/88-0.png | Bin 1474 -> 0 bytes views/public/blockimages/items/89-0.png | Bin 558 -> 0 bytes views/public/blockimages/items/9-0.png | Bin 940 -> 0 bytes views/public/blockimages/items/90-0.png | Bin 1596 -> 0 bytes views/public/blockimages/items/91-0.png | Bin 606 -> 0 bytes views/public/blockimages/items/92-0.png | Bin 197 -> 0 bytes views/public/blockimages/items/93-0.png | Bin 378 -> 0 bytes views/public/blockimages/items/94-0.png | Bin 391 -> 0 bytes views/public/blockimages/items/95-0.png | Bin 479 -> 0 bytes views/public/blockimages/items/95-1.png | Bin 492 -> 0 bytes views/public/blockimages/items/95-10.png | Bin 493 -> 0 bytes views/public/blockimages/items/95-11.png | Bin 493 -> 0 bytes views/public/blockimages/items/95-12.png | Bin 493 -> 0 bytes views/public/blockimages/items/95-13.png | Bin 493 -> 0 bytes views/public/blockimages/items/95-14.png | Bin 493 -> 0 bytes views/public/blockimages/items/95-15.png | Bin 465 -> 0 bytes views/public/blockimages/items/95-2.png | Bin 492 -> 0 bytes views/public/blockimages/items/95-3.png | Bin 492 -> 0 bytes views/public/blockimages/items/95-4.png | Bin 492 -> 0 bytes views/public/blockimages/items/95-5.png | Bin 493 -> 0 bytes views/public/blockimages/items/95-6.png | Bin 493 -> 0 bytes views/public/blockimages/items/95-7.png | Bin 476 -> 0 bytes views/public/blockimages/items/95-8.png | Bin 451 -> 0 bytes views/public/blockimages/items/95-9.png | Bin 493 -> 0 bytes views/public/blockimages/items/96-0.png | Bin 479 -> 0 bytes views/public/blockimages/items/97-0.png | Bin 459 -> 0 bytes views/public/blockimages/items/97-1.png | Bin 1089 -> 0 bytes views/public/blockimages/items/97-2.png | Bin 641 -> 0 bytes views/public/blockimages/items/97-3.png | Bin 1267 -> 0 bytes views/public/blockimages/items/97-4.png | Bin 691 -> 0 bytes views/public/blockimages/items/97-5.png | Bin 670 -> 0 bytes views/public/blockimages/items/98-0.png | Bin 641 -> 0 bytes views/public/blockimages/items/98-1.png | Bin 1831 -> 0 bytes views/public/blockimages/items/98-2.png | Bin 1260 -> 0 bytes views/public/blockimages/items/98-3.png | Bin 670 -> 0 bytes views/public/blockimages/items/99-0.png | Bin 1519 -> 0 bytes views/public/css/papy.css | 129 - views/public/css/style.css | 110 - views/public/favicon.ico | Bin 285739 -> 0 bytes views/public/js/main.js | 13 - views/routes/admin.js | 184 - views/routes/settings.js | 70 - views/schemas/inventory.js | 78 - views/schemas/item.js | 26 - views/schemas/listing.js | 34 - views/schemas/log.js | 23 - views/views/adminsettings.pug | 89 - views/views/bankf.pug | 97 - views/views/index.pug | 13 - views/views/layout.pug | 57 - views/views/login.pug | 25 - views/views/register.pug | 20 - views/views/settings.pug | 18 - views/views/setup.pug | 17 - 6142 files changed, 525896 deletions(-) delete mode 100644 views/Dockerfile delete mode 100644 views/config/admin.js delete mode 100644 views/config/auth.js delete mode 100644 views/helpers/functions.js delete mode 120000 views/node_modules/.bin/acorn delete mode 120000 views/node_modules/.bin/mime delete mode 120000 views/node_modules/.bin/parser delete mode 100644 views/node_modules/.package-lock.json delete mode 100644 views/node_modules/@babel/helper-validator-identifier/LICENSE delete mode 100644 views/node_modules/@babel/helper-validator-identifier/README.md delete mode 100644 views/node_modules/@babel/helper-validator-identifier/lib/identifier.js delete mode 100644 views/node_modules/@babel/helper-validator-identifier/lib/index.js delete mode 100644 views/node_modules/@babel/helper-validator-identifier/lib/keyword.js delete mode 100644 views/node_modules/@babel/helper-validator-identifier/package.json delete mode 100644 views/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js delete mode 100644 views/node_modules/@babel/parser/CHANGELOG.md delete mode 100644 views/node_modules/@babel/parser/LICENSE delete mode 100644 views/node_modules/@babel/parser/README.md delete mode 100755 views/node_modules/@babel/parser/bin/babel-parser.js delete mode 100644 views/node_modules/@babel/parser/lib/index.js delete mode 100644 views/node_modules/@babel/parser/lib/index.js.map delete mode 100644 views/node_modules/@babel/parser/package.json delete mode 100644 views/node_modules/@babel/parser/typings/babel-parser.d.ts delete mode 100644 views/node_modules/@babel/types/LICENSE delete mode 100644 views/node_modules/@babel/types/README.md delete mode 100644 views/node_modules/@babel/types/lib/asserts/assertNode.js delete mode 100644 views/node_modules/@babel/types/lib/asserts/generated/index.js delete mode 100644 views/node_modules/@babel/types/lib/ast-types/generated/index.js delete mode 100644 views/node_modules/@babel/types/lib/builders/builder.js delete mode 100644 views/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js delete mode 100644 views/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js delete mode 100644 views/node_modules/@babel/types/lib/builders/generated/index.js delete mode 100644 views/node_modules/@babel/types/lib/builders/generated/uppercase.js delete mode 100644 views/node_modules/@babel/types/lib/builders/react/buildChildren.js delete mode 100644 views/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js delete mode 100644 views/node_modules/@babel/types/lib/clone/clone.js delete mode 100644 views/node_modules/@babel/types/lib/clone/cloneDeep.js delete mode 100644 views/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js delete mode 100644 views/node_modules/@babel/types/lib/clone/cloneNode.js delete mode 100644 views/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js delete mode 100644 views/node_modules/@babel/types/lib/comments/addComment.js delete mode 100644 views/node_modules/@babel/types/lib/comments/addComments.js delete mode 100644 views/node_modules/@babel/types/lib/comments/inheritInnerComments.js delete mode 100644 views/node_modules/@babel/types/lib/comments/inheritLeadingComments.js delete mode 100644 views/node_modules/@babel/types/lib/comments/inheritTrailingComments.js delete mode 100644 views/node_modules/@babel/types/lib/comments/inheritsComments.js delete mode 100644 views/node_modules/@babel/types/lib/comments/removeComments.js delete mode 100644 views/node_modules/@babel/types/lib/constants/generated/index.js delete mode 100644 views/node_modules/@babel/types/lib/constants/index.js delete mode 100644 views/node_modules/@babel/types/lib/converters/Scope.js delete mode 100644 views/node_modules/@babel/types/lib/converters/ensureBlock.js delete mode 100644 views/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js delete mode 100644 views/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js delete mode 100644 views/node_modules/@babel/types/lib/converters/toBlock.js delete mode 100644 views/node_modules/@babel/types/lib/converters/toComputedKey.js delete mode 100644 views/node_modules/@babel/types/lib/converters/toExpression.js delete mode 100644 views/node_modules/@babel/types/lib/converters/toIdentifier.js delete mode 100644 views/node_modules/@babel/types/lib/converters/toKeyAlias.js delete mode 100644 views/node_modules/@babel/types/lib/converters/toSequenceExpression.js delete mode 100644 views/node_modules/@babel/types/lib/converters/toStatement.js delete mode 100644 views/node_modules/@babel/types/lib/converters/valueToNode.js delete mode 100644 views/node_modules/@babel/types/lib/definitions/core.js delete mode 100644 views/node_modules/@babel/types/lib/definitions/experimental.js delete mode 100644 views/node_modules/@babel/types/lib/definitions/flow.js delete mode 100644 views/node_modules/@babel/types/lib/definitions/index.js delete mode 100644 views/node_modules/@babel/types/lib/definitions/jsx.js delete mode 100644 views/node_modules/@babel/types/lib/definitions/misc.js delete mode 100644 views/node_modules/@babel/types/lib/definitions/placeholders.js delete mode 100644 views/node_modules/@babel/types/lib/definitions/typescript.js delete mode 100644 views/node_modules/@babel/types/lib/definitions/utils.js delete mode 100644 views/node_modules/@babel/types/lib/index-legacy.d.ts delete mode 100644 views/node_modules/@babel/types/lib/index.d.ts delete mode 100644 views/node_modules/@babel/types/lib/index.js delete mode 100644 views/node_modules/@babel/types/lib/index.js.flow delete mode 100644 views/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js delete mode 100644 views/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js delete mode 100644 views/node_modules/@babel/types/lib/modifications/inherits.js delete mode 100644 views/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js delete mode 100644 views/node_modules/@babel/types/lib/modifications/removeProperties.js delete mode 100644 views/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js delete mode 100644 views/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js delete mode 100644 views/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js delete mode 100644 views/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js delete mode 100644 views/node_modules/@babel/types/lib/traverse/traverse.js delete mode 100644 views/node_modules/@babel/types/lib/traverse/traverseFast.js delete mode 100644 views/node_modules/@babel/types/lib/utils/inherit.js delete mode 100644 views/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js delete mode 100644 views/node_modules/@babel/types/lib/utils/shallowEqual.js delete mode 100644 views/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js delete mode 100644 views/node_modules/@babel/types/lib/validators/generated/index.js delete mode 100644 views/node_modules/@babel/types/lib/validators/is.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isBinding.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isBlockScoped.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isImmutable.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isLet.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isNode.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isNodesEquivalent.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isPlaceholderType.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isReferenced.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isScope.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isSpecifierDefault.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isType.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isValidES3Identifier.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isValidIdentifier.js delete mode 100644 views/node_modules/@babel/types/lib/validators/isVar.js delete mode 100644 views/node_modules/@babel/types/lib/validators/matchesPattern.js delete mode 100644 views/node_modules/@babel/types/lib/validators/react/isCompatTag.js delete mode 100644 views/node_modules/@babel/types/lib/validators/react/isReactComponent.js delete mode 100644 views/node_modules/@babel/types/lib/validators/validate.js delete mode 100644 views/node_modules/@babel/types/package.json delete mode 100644 views/node_modules/@babel/types/scripts/generators/asserts.js delete mode 100644 views/node_modules/@babel/types/scripts/generators/ast-types.js delete mode 100644 views/node_modules/@babel/types/scripts/generators/builders.js delete mode 100644 views/node_modules/@babel/types/scripts/generators/constants.js delete mode 100644 views/node_modules/@babel/types/scripts/generators/docs.js delete mode 100644 views/node_modules/@babel/types/scripts/generators/flow.js delete mode 100644 views/node_modules/@babel/types/scripts/generators/typescript-legacy.js delete mode 100644 views/node_modules/@babel/types/scripts/generators/validators.js delete mode 100644 views/node_modules/@babel/types/scripts/package.json delete mode 100644 views/node_modules/@babel/types/scripts/utils/formatBuilderName.js delete mode 100644 views/node_modules/@babel/types/scripts/utils/lowerFirst.js delete mode 100644 views/node_modules/@babel/types/scripts/utils/stringifyValidator.js delete mode 100644 views/node_modules/@babel/types/scripts/utils/toFunctionName.js delete mode 100644 views/node_modules/@sindresorhus/is/dist/index.d.ts delete mode 100644 views/node_modules/@sindresorhus/is/dist/index.js delete mode 100644 views/node_modules/@sindresorhus/is/dist/types.d.ts delete mode 100644 views/node_modules/@sindresorhus/is/dist/types.js delete mode 100644 views/node_modules/@sindresorhus/is/license delete mode 100644 views/node_modules/@sindresorhus/is/package.json delete mode 100644 views/node_modules/@sindresorhus/is/readme.md delete mode 100644 views/node_modules/@szmarczak/http-timer/LICENSE delete mode 100644 views/node_modules/@szmarczak/http-timer/README.md delete mode 100644 views/node_modules/@szmarczak/http-timer/dist/source/index.d.ts delete mode 100644 views/node_modules/@szmarczak/http-timer/dist/source/index.js delete mode 100644 views/node_modules/@szmarczak/http-timer/package.json delete mode 100644 views/node_modules/@types/bson/LICENSE delete mode 100644 views/node_modules/@types/bson/README.md delete mode 100644 views/node_modules/@types/bson/index.d.ts delete mode 100644 views/node_modules/@types/bson/package.json delete mode 100644 views/node_modules/@types/cacheable-request/LICENSE delete mode 100644 views/node_modules/@types/cacheable-request/README.md delete mode 100644 views/node_modules/@types/cacheable-request/index.d.ts delete mode 100644 views/node_modules/@types/cacheable-request/package.json delete mode 100644 views/node_modules/@types/http-cache-semantics/LICENSE delete mode 100644 views/node_modules/@types/http-cache-semantics/README.md delete mode 100644 views/node_modules/@types/http-cache-semantics/index.d.ts delete mode 100644 views/node_modules/@types/http-cache-semantics/package.json delete mode 100644 views/node_modules/@types/keyv/LICENSE delete mode 100644 views/node_modules/@types/keyv/README.md delete mode 100644 views/node_modules/@types/keyv/index.d.ts delete mode 100644 views/node_modules/@types/keyv/package.json delete mode 100755 views/node_modules/@types/mongodb/LICENSE delete mode 100755 views/node_modules/@types/mongodb/README.md delete mode 100755 views/node_modules/@types/mongodb/index.d.ts delete mode 100755 views/node_modules/@types/mongodb/package.json delete mode 100755 views/node_modules/@types/node/LICENSE delete mode 100755 views/node_modules/@types/node/README.md delete mode 100755 views/node_modules/@types/node/assert.d.ts delete mode 100755 views/node_modules/@types/node/async_hooks.d.ts delete mode 100755 views/node_modules/@types/node/base.d.ts delete mode 100755 views/node_modules/@types/node/buffer.d.ts delete mode 100755 views/node_modules/@types/node/child_process.d.ts delete mode 100755 views/node_modules/@types/node/cluster.d.ts delete mode 100755 views/node_modules/@types/node/console.d.ts delete mode 100755 views/node_modules/@types/node/constants.d.ts delete mode 100755 views/node_modules/@types/node/crypto.d.ts delete mode 100755 views/node_modules/@types/node/dgram.d.ts delete mode 100755 views/node_modules/@types/node/dns.d.ts delete mode 100755 views/node_modules/@types/node/domain.d.ts delete mode 100755 views/node_modules/@types/node/events.d.ts delete mode 100755 views/node_modules/@types/node/fs.d.ts delete mode 100755 views/node_modules/@types/node/fs/promises.d.ts delete mode 100755 views/node_modules/@types/node/globals.d.ts delete mode 100755 views/node_modules/@types/node/globals.global.d.ts delete mode 100755 views/node_modules/@types/node/http.d.ts delete mode 100755 views/node_modules/@types/node/http2.d.ts delete mode 100755 views/node_modules/@types/node/https.d.ts delete mode 100755 views/node_modules/@types/node/index.d.ts delete mode 100755 views/node_modules/@types/node/inspector.d.ts delete mode 100755 views/node_modules/@types/node/module.d.ts delete mode 100755 views/node_modules/@types/node/net.d.ts delete mode 100755 views/node_modules/@types/node/os.d.ts delete mode 100755 views/node_modules/@types/node/package.json delete mode 100755 views/node_modules/@types/node/path.d.ts delete mode 100755 views/node_modules/@types/node/perf_hooks.d.ts delete mode 100755 views/node_modules/@types/node/process.d.ts delete mode 100755 views/node_modules/@types/node/punycode.d.ts delete mode 100755 views/node_modules/@types/node/querystring.d.ts delete mode 100755 views/node_modules/@types/node/readline.d.ts delete mode 100755 views/node_modules/@types/node/repl.d.ts delete mode 100755 views/node_modules/@types/node/stream.d.ts delete mode 100755 views/node_modules/@types/node/string_decoder.d.ts delete mode 100755 views/node_modules/@types/node/timers.d.ts delete mode 100755 views/node_modules/@types/node/tls.d.ts delete mode 100755 views/node_modules/@types/node/trace_events.d.ts delete mode 100755 views/node_modules/@types/node/ts3.6/assert.d.ts delete mode 100755 views/node_modules/@types/node/ts3.6/base.d.ts delete mode 100755 views/node_modules/@types/node/ts3.6/index.d.ts delete mode 100755 views/node_modules/@types/node/tty.d.ts delete mode 100755 views/node_modules/@types/node/url.d.ts delete mode 100755 views/node_modules/@types/node/util.d.ts delete mode 100755 views/node_modules/@types/node/v8.d.ts delete mode 100755 views/node_modules/@types/node/vm.d.ts delete mode 100755 views/node_modules/@types/node/wasi.d.ts delete mode 100755 views/node_modules/@types/node/worker_threads.d.ts delete mode 100755 views/node_modules/@types/node/zlib.d.ts delete mode 100644 views/node_modules/@types/responselike/LICENSE delete mode 100644 views/node_modules/@types/responselike/README.md delete mode 100644 views/node_modules/@types/responselike/index.d.ts delete mode 100644 views/node_modules/@types/responselike/package.json delete mode 100755 views/node_modules/@types/validator/LICENSE delete mode 100755 views/node_modules/@types/validator/README.md delete mode 100755 views/node_modules/@types/validator/es/lib/blacklist.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/contains.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/equals.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/escape.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isAfter.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isAlpha.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isAlphanumeric.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isAscii.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isBIC.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isBase32.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isBase64.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isBefore.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isBoolean.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isBtcAddress.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isByteLength.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isCreditCard.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isCurrency.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isDataURI.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isDate.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isDecimal.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isDivisibleBy.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isEAN.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isEmail.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isEmpty.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isEthereumAddress.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isFQDN.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isFloat.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isFullWidth.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isHSL.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isHalfWidth.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isHash.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isHexColor.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isHexadecimal.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isIBAN.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isIP.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isIPRange.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isISBN.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isISIN.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isISO31661Alpha2.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isISO31661Alpha3.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isISO8601.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isISRC.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isISSN.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isIdentityCard.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isIn.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isInt.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isJSON.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isJWT.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isLatLong.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isLength.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isLocale.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isLowercase.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isMACAddress.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isMD5.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isMagnetURI.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isMimeType.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isMobilePhone.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isMongoId.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isMultibyte.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isNumeric.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isOctal.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isPassportNumber.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isPort.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isPostalCode.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isRFC3339.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isRgbColor.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isSemVer.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isSlug.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isStrongPassword.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isSurrogatePair.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isURL.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isUUID.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isUppercase.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isVariableWidth.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/isWhitelisted.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/ltrim.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/matches.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/normalizeEmail.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/rtrim.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/stripLow.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/toBoolean.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/toDate.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/toFloat.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/toInt.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/trim.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/unescape.d.ts delete mode 100755 views/node_modules/@types/validator/es/lib/whitelist.d.ts delete mode 100755 views/node_modules/@types/validator/index.d.ts delete mode 100755 views/node_modules/@types/validator/lib/blacklist.d.ts delete mode 100755 views/node_modules/@types/validator/lib/contains.d.ts delete mode 100755 views/node_modules/@types/validator/lib/equals.d.ts delete mode 100755 views/node_modules/@types/validator/lib/escape.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isAfter.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isAlpha.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isAlphanumeric.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isAscii.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isBIC.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isBase32.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isBase64.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isBefore.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isBoolean.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isBtcAddress.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isByteLength.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isCreditCard.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isCurrency.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isDataURI.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isDate.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isDecimal.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isDivisibleBy.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isEAN.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isEmail.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isEmpty.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isEthereumAddress.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isFQDN.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isFloat.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isFullWidth.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isHSL.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isHalfWidth.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isHash.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isHexColor.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isHexadecimal.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isIBAN.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isIP.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isIPRange.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isISBN.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isISIN.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isISO31661Alpha2.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isISO31661Alpha3.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isISO8601.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isISRC.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isISSN.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isIdentityCard.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isIn.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isInt.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isJSON.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isJWT.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isLatLong.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isLength.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isLocale.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isLowercase.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isMACAddress.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isMD5.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isMagnetURI.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isMimeType.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isMobilePhone.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isMongoId.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isMultibyte.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isNumeric.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isOctal.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isPassportNumber.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isPort.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isPostalCode.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isRFC3339.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isRgbColor.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isSemVer.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isSlug.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isStrongPassword.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isSurrogatePair.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isURL.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isUUID.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isUppercase.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isVariableWidth.d.ts delete mode 100755 views/node_modules/@types/validator/lib/isWhitelisted.d.ts delete mode 100755 views/node_modules/@types/validator/lib/ltrim.d.ts delete mode 100755 views/node_modules/@types/validator/lib/matches.d.ts delete mode 100755 views/node_modules/@types/validator/lib/normalizeEmail.d.ts delete mode 100755 views/node_modules/@types/validator/lib/rtrim.d.ts delete mode 100755 views/node_modules/@types/validator/lib/stripLow.d.ts delete mode 100755 views/node_modules/@types/validator/lib/toBoolean.d.ts delete mode 100755 views/node_modules/@types/validator/lib/toDate.d.ts delete mode 100755 views/node_modules/@types/validator/lib/toFloat.d.ts delete mode 100755 views/node_modules/@types/validator/lib/toInt.d.ts delete mode 100755 views/node_modules/@types/validator/lib/trim.d.ts delete mode 100755 views/node_modules/@types/validator/lib/unescape.d.ts delete mode 100755 views/node_modules/@types/validator/lib/whitelist.d.ts delete mode 100755 views/node_modules/@types/validator/package.json delete mode 100644 views/node_modules/accepts/HISTORY.md delete mode 100644 views/node_modules/accepts/LICENSE delete mode 100644 views/node_modules/accepts/README.md delete mode 100644 views/node_modules/accepts/index.js delete mode 100644 views/node_modules/accepts/package.json delete mode 100644 views/node_modules/acorn/CHANGELOG.md delete mode 100644 views/node_modules/acorn/LICENSE delete mode 100644 views/node_modules/acorn/README.md delete mode 100755 views/node_modules/acorn/bin/acorn delete mode 100644 views/node_modules/acorn/dist/acorn.d.ts delete mode 100644 views/node_modules/acorn/dist/acorn.js delete mode 100644 views/node_modules/acorn/dist/acorn.js.map delete mode 100644 views/node_modules/acorn/dist/acorn.mjs delete mode 100644 views/node_modules/acorn/dist/acorn.mjs.d.ts delete mode 100644 views/node_modules/acorn/dist/acorn.mjs.map delete mode 100644 views/node_modules/acorn/dist/bin.js delete mode 100644 views/node_modules/acorn/package.json delete mode 100644 views/node_modules/array-flatten/LICENSE delete mode 100644 views/node_modules/array-flatten/README.md delete mode 100644 views/node_modules/array-flatten/array-flatten.js delete mode 100644 views/node_modules/array-flatten/package.json delete mode 100644 views/node_modules/asap/CHANGES.md delete mode 100644 views/node_modules/asap/LICENSE.md delete mode 100644 views/node_modules/asap/README.md delete mode 100644 views/node_modules/asap/asap.js delete mode 100644 views/node_modules/asap/browser-asap.js delete mode 100644 views/node_modules/asap/browser-raw.js delete mode 100644 views/node_modules/asap/package.json delete mode 100644 views/node_modules/asap/raw.js delete mode 100644 views/node_modules/assert-never/README.md delete mode 100644 views/node_modules/assert-never/index.d.ts delete mode 100644 views/node_modules/assert-never/index.js delete mode 100644 views/node_modules/assert-never/index.ts delete mode 100644 views/node_modules/assert-never/package.json delete mode 100644 views/node_modules/axios/CHANGELOG.md delete mode 100644 views/node_modules/axios/LICENSE delete mode 100755 views/node_modules/axios/README.md delete mode 100644 views/node_modules/axios/UPGRADE_GUIDE.md delete mode 100644 views/node_modules/axios/dist/axios.js delete mode 100644 views/node_modules/axios/dist/axios.map delete mode 100644 views/node_modules/axios/dist/axios.min.js delete mode 100644 views/node_modules/axios/dist/axios.min.map delete mode 100644 views/node_modules/axios/index.d.ts delete mode 100644 views/node_modules/axios/index.js delete mode 100644 views/node_modules/axios/lib/adapters/README.md delete mode 100755 views/node_modules/axios/lib/adapters/http.js delete mode 100644 views/node_modules/axios/lib/adapters/xhr.js delete mode 100644 views/node_modules/axios/lib/axios.js delete mode 100644 views/node_modules/axios/lib/cancel/Cancel.js delete mode 100644 views/node_modules/axios/lib/cancel/CancelToken.js delete mode 100644 views/node_modules/axios/lib/cancel/isCancel.js delete mode 100644 views/node_modules/axios/lib/core/Axios.js delete mode 100644 views/node_modules/axios/lib/core/InterceptorManager.js delete mode 100644 views/node_modules/axios/lib/core/README.md delete mode 100644 views/node_modules/axios/lib/core/buildFullPath.js delete mode 100644 views/node_modules/axios/lib/core/createError.js delete mode 100644 views/node_modules/axios/lib/core/dispatchRequest.js delete mode 100644 views/node_modules/axios/lib/core/enhanceError.js delete mode 100644 views/node_modules/axios/lib/core/mergeConfig.js delete mode 100644 views/node_modules/axios/lib/core/settle.js delete mode 100644 views/node_modules/axios/lib/core/transformData.js delete mode 100644 views/node_modules/axios/lib/defaults.js delete mode 100644 views/node_modules/axios/lib/helpers/README.md delete mode 100644 views/node_modules/axios/lib/helpers/bind.js delete mode 100644 views/node_modules/axios/lib/helpers/buildURL.js delete mode 100644 views/node_modules/axios/lib/helpers/combineURLs.js delete mode 100644 views/node_modules/axios/lib/helpers/cookies.js delete mode 100644 views/node_modules/axios/lib/helpers/deprecatedMethod.js delete mode 100644 views/node_modules/axios/lib/helpers/isAbsoluteURL.js delete mode 100644 views/node_modules/axios/lib/helpers/isAxiosError.js delete mode 100644 views/node_modules/axios/lib/helpers/isURLSameOrigin.js delete mode 100644 views/node_modules/axios/lib/helpers/normalizeHeaderName.js delete mode 100644 views/node_modules/axios/lib/helpers/parseHeaders.js delete mode 100644 views/node_modules/axios/lib/helpers/spread.js delete mode 100644 views/node_modules/axios/lib/utils.js delete mode 100644 views/node_modules/axios/package.json delete mode 100644 views/node_modules/babel-walk/LICENSE.md delete mode 100644 views/node_modules/babel-walk/README.md delete mode 100644 views/node_modules/babel-walk/lib/.tsbuildinfo delete mode 100644 views/node_modules/babel-walk/lib/explode.d.ts delete mode 100644 views/node_modules/babel-walk/lib/explode.js delete mode 100644 views/node_modules/babel-walk/lib/explode.js.map delete mode 100644 views/node_modules/babel-walk/lib/index.d.ts delete mode 100644 views/node_modules/babel-walk/lib/index.js delete mode 100644 views/node_modules/babel-walk/lib/index.js.map delete mode 100644 views/node_modules/babel-walk/lib/test.d.ts delete mode 100644 views/node_modules/babel-walk/lib/test.js delete mode 100644 views/node_modules/babel-walk/lib/test.js.map delete mode 100644 views/node_modules/babel-walk/package.json delete mode 100644 views/node_modules/bl/.jshintrc delete mode 100644 views/node_modules/bl/.travis.yml delete mode 100644 views/node_modules/bl/LICENSE.md delete mode 100644 views/node_modules/bl/README.md delete mode 100644 views/node_modules/bl/bl.js delete mode 100644 views/node_modules/bl/package.json delete mode 100644 views/node_modules/bl/test/indexOf.js delete mode 100644 views/node_modules/bl/test/test.js delete mode 100644 views/node_modules/bluebird/LICENSE delete mode 100644 views/node_modules/bluebird/README.md delete mode 100644 views/node_modules/bluebird/changelog.md delete mode 100644 views/node_modules/bluebird/js/browser/bluebird.core.js delete mode 100644 views/node_modules/bluebird/js/browser/bluebird.core.min.js delete mode 100644 views/node_modules/bluebird/js/browser/bluebird.js delete mode 100644 views/node_modules/bluebird/js/browser/bluebird.min.js delete mode 100644 views/node_modules/bluebird/js/release/any.js delete mode 100644 views/node_modules/bluebird/js/release/assert.js delete mode 100644 views/node_modules/bluebird/js/release/async.js delete mode 100644 views/node_modules/bluebird/js/release/bind.js delete mode 100644 views/node_modules/bluebird/js/release/bluebird.js delete mode 100644 views/node_modules/bluebird/js/release/call_get.js delete mode 100644 views/node_modules/bluebird/js/release/cancel.js delete mode 100644 views/node_modules/bluebird/js/release/catch_filter.js delete mode 100644 views/node_modules/bluebird/js/release/context.js delete mode 100644 views/node_modules/bluebird/js/release/debuggability.js delete mode 100644 views/node_modules/bluebird/js/release/direct_resolve.js delete mode 100644 views/node_modules/bluebird/js/release/each.js delete mode 100644 views/node_modules/bluebird/js/release/errors.js delete mode 100644 views/node_modules/bluebird/js/release/es5.js delete mode 100644 views/node_modules/bluebird/js/release/filter.js delete mode 100644 views/node_modules/bluebird/js/release/finally.js delete mode 100644 views/node_modules/bluebird/js/release/generators.js delete mode 100644 views/node_modules/bluebird/js/release/join.js delete mode 100644 views/node_modules/bluebird/js/release/map.js delete mode 100644 views/node_modules/bluebird/js/release/method.js delete mode 100644 views/node_modules/bluebird/js/release/nodeback.js delete mode 100644 views/node_modules/bluebird/js/release/nodeify.js delete mode 100644 views/node_modules/bluebird/js/release/promise.js delete mode 100644 views/node_modules/bluebird/js/release/promise_array.js delete mode 100644 views/node_modules/bluebird/js/release/promisify.js delete mode 100644 views/node_modules/bluebird/js/release/props.js delete mode 100644 views/node_modules/bluebird/js/release/queue.js delete mode 100644 views/node_modules/bluebird/js/release/race.js delete mode 100644 views/node_modules/bluebird/js/release/reduce.js delete mode 100644 views/node_modules/bluebird/js/release/schedule.js delete mode 100644 views/node_modules/bluebird/js/release/settle.js delete mode 100644 views/node_modules/bluebird/js/release/some.js delete mode 100644 views/node_modules/bluebird/js/release/synchronous_inspection.js delete mode 100644 views/node_modules/bluebird/js/release/thenables.js delete mode 100644 views/node_modules/bluebird/js/release/timers.js delete mode 100644 views/node_modules/bluebird/js/release/using.js delete mode 100644 views/node_modules/bluebird/js/release/util.js delete mode 100644 views/node_modules/bluebird/package.json delete mode 100644 views/node_modules/body-parser/HISTORY.md delete mode 100644 views/node_modules/body-parser/LICENSE delete mode 100644 views/node_modules/body-parser/README.md delete mode 100644 views/node_modules/body-parser/index.js delete mode 100644 views/node_modules/body-parser/lib/read.js delete mode 100644 views/node_modules/body-parser/lib/types/json.js delete mode 100644 views/node_modules/body-parser/lib/types/raw.js delete mode 100644 views/node_modules/body-parser/lib/types/text.js delete mode 100644 views/node_modules/body-parser/lib/types/urlencoded.js delete mode 100644 views/node_modules/body-parser/package.json delete mode 100644 views/node_modules/bson/HISTORY.md delete mode 100644 views/node_modules/bson/LICENSE.md delete mode 100644 views/node_modules/bson/README.md delete mode 100644 views/node_modules/bson/bower.json delete mode 100644 views/node_modules/bson/browser_build/bson.js delete mode 100644 views/node_modules/bson/browser_build/package.json delete mode 100644 views/node_modules/bson/index.js delete mode 100644 views/node_modules/bson/lib/bson/binary.js delete mode 100644 views/node_modules/bson/lib/bson/bson.js delete mode 100644 views/node_modules/bson/lib/bson/code.js delete mode 100644 views/node_modules/bson/lib/bson/db_ref.js delete mode 100644 views/node_modules/bson/lib/bson/decimal128.js delete mode 100644 views/node_modules/bson/lib/bson/double.js delete mode 100644 views/node_modules/bson/lib/bson/float_parser.js delete mode 100644 views/node_modules/bson/lib/bson/int_32.js delete mode 100644 views/node_modules/bson/lib/bson/long.js delete mode 100644 views/node_modules/bson/lib/bson/map.js delete mode 100644 views/node_modules/bson/lib/bson/max_key.js delete mode 100644 views/node_modules/bson/lib/bson/min_key.js delete mode 100644 views/node_modules/bson/lib/bson/objectid.js delete mode 100644 views/node_modules/bson/lib/bson/parser/calculate_size.js delete mode 100644 views/node_modules/bson/lib/bson/parser/deserializer.js delete mode 100644 views/node_modules/bson/lib/bson/parser/serializer.js delete mode 100644 views/node_modules/bson/lib/bson/parser/utils.js delete mode 100644 views/node_modules/bson/lib/bson/regexp.js delete mode 100644 views/node_modules/bson/lib/bson/symbol.js delete mode 100644 views/node_modules/bson/lib/bson/timestamp.js delete mode 100644 views/node_modules/bson/package.json delete mode 100644 views/node_modules/bytes/History.md delete mode 100644 views/node_modules/bytes/LICENSE delete mode 100644 views/node_modules/bytes/Readme.md delete mode 100644 views/node_modules/bytes/index.js delete mode 100644 views/node_modules/bytes/package.json delete mode 100755 views/node_modules/cacheable-lookup/LICENSE delete mode 100755 views/node_modules/cacheable-lookup/README.md delete mode 100755 views/node_modules/cacheable-lookup/index.d.ts delete mode 100755 views/node_modules/cacheable-lookup/package.json delete mode 100755 views/node_modules/cacheable-lookup/source/index.js delete mode 100644 views/node_modules/cacheable-request/LICENSE delete mode 100644 views/node_modules/cacheable-request/README.md delete mode 100644 views/node_modules/cacheable-request/package.json delete mode 100644 views/node_modules/cacheable-request/src/index.js delete mode 100644 views/node_modules/call-bind/.eslintignore delete mode 100644 views/node_modules/call-bind/.eslintrc delete mode 100644 views/node_modules/call-bind/.github/FUNDING.yml delete mode 100644 views/node_modules/call-bind/.nycrc delete mode 100644 views/node_modules/call-bind/CHANGELOG.md delete mode 100644 views/node_modules/call-bind/LICENSE delete mode 100644 views/node_modules/call-bind/README.md delete mode 100644 views/node_modules/call-bind/callBound.js delete mode 100644 views/node_modules/call-bind/index.js delete mode 100644 views/node_modules/call-bind/package.json delete mode 100644 views/node_modules/call-bind/test/callBound.js delete mode 100644 views/node_modules/call-bind/test/index.js delete mode 100644 views/node_modules/ccash-client-js/README.md delete mode 100644 views/node_modules/ccash-client-js/dist/CCashClient.d.ts delete mode 100644 views/node_modules/ccash-client-js/dist/CCashClient.exceptions.d.ts delete mode 100644 views/node_modules/ccash-client-js/dist/CCashClient.exceptions.js delete mode 100644 views/node_modules/ccash-client-js/dist/CCashClient.js delete mode 100644 views/node_modules/ccash-client-js/dist/CCashClient.types.d.ts delete mode 100644 views/node_modules/ccash-client-js/dist/CCashClient.types.js delete mode 100644 views/node_modules/ccash-client-js/dist/Exception.d.ts delete mode 100644 views/node_modules/ccash-client-js/dist/Exception.js delete mode 100644 views/node_modules/ccash-client-js/dist/User.d.ts delete mode 100644 views/node_modules/ccash-client-js/dist/User.js delete mode 100644 views/node_modules/ccash-client-js/dist/exceptions.d.ts delete mode 100644 views/node_modules/ccash-client-js/dist/exceptions.js delete mode 100644 views/node_modules/ccash-client-js/dist/index.d.ts delete mode 100644 views/node_modules/ccash-client-js/dist/index.js delete mode 100644 views/node_modules/ccash-client-js/dist/responses.d.ts delete mode 100644 views/node_modules/ccash-client-js/dist/responses.js delete mode 100644 views/node_modules/ccash-client-js/node_modules/debug/LICENSE delete mode 100644 views/node_modules/ccash-client-js/node_modules/debug/README.md delete mode 100644 views/node_modules/ccash-client-js/node_modules/debug/package.json delete mode 100644 views/node_modules/ccash-client-js/node_modules/debug/src/browser.js delete mode 100644 views/node_modules/ccash-client-js/node_modules/debug/src/common.js delete mode 100644 views/node_modules/ccash-client-js/node_modules/debug/src/index.js delete mode 100644 views/node_modules/ccash-client-js/node_modules/debug/src/node.js delete mode 100644 views/node_modules/ccash-client-js/node_modules/ms/index.js delete mode 100644 views/node_modules/ccash-client-js/node_modules/ms/license.md delete mode 100644 views/node_modules/ccash-client-js/node_modules/ms/package.json delete mode 100644 views/node_modules/ccash-client-js/node_modules/ms/readme.md delete mode 100644 views/node_modules/ccash-client-js/package.json delete mode 100644 views/node_modules/character-parser/.npmignore delete mode 100644 views/node_modules/character-parser/LICENSE delete mode 100644 views/node_modules/character-parser/README.md delete mode 100644 views/node_modules/character-parser/index.js delete mode 100644 views/node_modules/character-parser/package.json delete mode 100644 views/node_modules/class-transformer/LICENSE delete mode 100644 views/node_modules/class-transformer/README.md delete mode 100644 views/node_modules/class-transformer/bundles/class-transformer.umd.js delete mode 100644 views/node_modules/class-transformer/bundles/class-transformer.umd.js.map delete mode 100644 views/node_modules/class-transformer/bundles/class-transformer.umd.min.js delete mode 100644 views/node_modules/class-transformer/bundles/class-transformer.umd.min.js.map delete mode 100644 views/node_modules/class-transformer/cjs/ClassTransformer.js delete mode 100644 views/node_modules/class-transformer/cjs/ClassTransformer.js.map delete mode 100644 views/node_modules/class-transformer/cjs/MetadataStorage.js delete mode 100644 views/node_modules/class-transformer/cjs/MetadataStorage.js.map delete mode 100644 views/node_modules/class-transformer/cjs/TransformOperationExecutor.js delete mode 100644 views/node_modules/class-transformer/cjs/TransformOperationExecutor.js.map delete mode 100644 views/node_modules/class-transformer/cjs/constants/default-options.constant.js delete mode 100644 views/node_modules/class-transformer/cjs/constants/default-options.constant.js.map delete mode 100644 views/node_modules/class-transformer/cjs/decorators/exclude.decorator.js delete mode 100644 views/node_modules/class-transformer/cjs/decorators/exclude.decorator.js.map delete mode 100644 views/node_modules/class-transformer/cjs/decorators/expose.decorator.js delete mode 100644 views/node_modules/class-transformer/cjs/decorators/expose.decorator.js.map delete mode 100644 views/node_modules/class-transformer/cjs/decorators/index.js delete mode 100644 views/node_modules/class-transformer/cjs/decorators/index.js.map delete mode 100644 views/node_modules/class-transformer/cjs/decorators/transform-class-to-class.decorator.js delete mode 100644 views/node_modules/class-transformer/cjs/decorators/transform-class-to-class.decorator.js.map delete mode 100644 views/node_modules/class-transformer/cjs/decorators/transform-class-to-plain.decorator.js delete mode 100644 views/node_modules/class-transformer/cjs/decorators/transform-class-to-plain.decorator.js.map delete mode 100644 views/node_modules/class-transformer/cjs/decorators/transform-plain-to-class.decorator.js delete mode 100644 views/node_modules/class-transformer/cjs/decorators/transform-plain-to-class.decorator.js.map delete mode 100644 views/node_modules/class-transformer/cjs/decorators/transform.decorator.js delete mode 100644 views/node_modules/class-transformer/cjs/decorators/transform.decorator.js.map delete mode 100644 views/node_modules/class-transformer/cjs/decorators/type.decorator.js delete mode 100644 views/node_modules/class-transformer/cjs/decorators/type.decorator.js.map delete mode 100644 views/node_modules/class-transformer/cjs/enums/index.js delete mode 100644 views/node_modules/class-transformer/cjs/enums/index.js.map delete mode 100644 views/node_modules/class-transformer/cjs/enums/transformation-type.enum.js delete mode 100644 views/node_modules/class-transformer/cjs/enums/transformation-type.enum.js.map delete mode 100644 views/node_modules/class-transformer/cjs/index.js delete mode 100644 views/node_modules/class-transformer/cjs/index.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/class-constructor.type.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/class-constructor.type.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/class-transformer-options.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/class-transformer-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/decorator-options/exclude-options.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/decorator-options/exclude-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/decorator-options/expose-options.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/decorator-options/expose-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/decorator-options/transform-options.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/decorator-options/transform-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-discriminator-descriptor.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-options.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/index.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/index.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/metadata/exclude-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/metadata/exclude-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/metadata/expose-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/metadata/expose-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/metadata/transform-fn-params.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/metadata/transform-fn-params.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/metadata/transform-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/metadata/transform-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/metadata/type-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/metadata/type-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/target-map.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/target-map.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/type-help-options.interface.js delete mode 100644 views/node_modules/class-transformer/cjs/interfaces/type-help-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/cjs/storage.js delete mode 100644 views/node_modules/class-transformer/cjs/storage.js.map delete mode 100644 views/node_modules/class-transformer/cjs/utils/get-global.util.js delete mode 100644 views/node_modules/class-transformer/cjs/utils/get-global.util.js.map delete mode 100644 views/node_modules/class-transformer/cjs/utils/get-global.util.spect.js delete mode 100644 views/node_modules/class-transformer/cjs/utils/get-global.util.spect.js.map delete mode 100644 views/node_modules/class-transformer/cjs/utils/index.js delete mode 100644 views/node_modules/class-transformer/cjs/utils/index.js.map delete mode 100644 views/node_modules/class-transformer/cjs/utils/is-promise.util.js delete mode 100644 views/node_modules/class-transformer/cjs/utils/is-promise.util.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/ClassTransformer.js delete mode 100644 views/node_modules/class-transformer/esm2015/ClassTransformer.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/MetadataStorage.js delete mode 100644 views/node_modules/class-transformer/esm2015/MetadataStorage.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/TransformOperationExecutor.js delete mode 100644 views/node_modules/class-transformer/esm2015/TransformOperationExecutor.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/constants/default-options.constant.js delete mode 100644 views/node_modules/class-transformer/esm2015/constants/default-options.constant.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/exclude.decorator.js delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/exclude.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/expose.decorator.js delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/expose.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/index.js delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/index.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/transform-class-to-class.decorator.js delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/transform-class-to-class.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/transform-class-to-plain.decorator.js delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/transform-class-to-plain.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/transform-plain-to-class.decorator.js delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/transform-plain-to-class.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/transform.decorator.js delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/transform.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/type.decorator.js delete mode 100644 views/node_modules/class-transformer/esm2015/decorators/type.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/enums/index.js delete mode 100644 views/node_modules/class-transformer/esm2015/enums/index.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/enums/transformation-type.enum.js delete mode 100644 views/node_modules/class-transformer/esm2015/enums/transformation-type.enum.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/index.js delete mode 100644 views/node_modules/class-transformer/esm2015/index.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/class-constructor.type.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/class-constructor.type.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/class-transformer-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/class-transformer-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/decorator-options/exclude-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/decorator-options/exclude-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/decorator-options/expose-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/decorator-options/expose-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/decorator-options/transform-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/decorator-options/transform-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-discriminator-descriptor.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/index.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/index.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/metadata/exclude-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/metadata/exclude-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/metadata/expose-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/metadata/expose-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-fn-params.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-fn-params.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/metadata/type-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/metadata/type-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/target-map.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/target-map.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/type-help-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm2015/interfaces/type-help-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/storage.js delete mode 100644 views/node_modules/class-transformer/esm2015/storage.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/utils/get-global.util.js delete mode 100644 views/node_modules/class-transformer/esm2015/utils/get-global.util.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/utils/get-global.util.spect.js delete mode 100644 views/node_modules/class-transformer/esm2015/utils/get-global.util.spect.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/utils/index.js delete mode 100644 views/node_modules/class-transformer/esm2015/utils/index.js.map delete mode 100644 views/node_modules/class-transformer/esm2015/utils/is-promise.util.js delete mode 100644 views/node_modules/class-transformer/esm2015/utils/is-promise.util.js.map delete mode 100644 views/node_modules/class-transformer/esm5/ClassTransformer.js delete mode 100644 views/node_modules/class-transformer/esm5/ClassTransformer.js.map delete mode 100644 views/node_modules/class-transformer/esm5/MetadataStorage.js delete mode 100644 views/node_modules/class-transformer/esm5/MetadataStorage.js.map delete mode 100644 views/node_modules/class-transformer/esm5/TransformOperationExecutor.js delete mode 100644 views/node_modules/class-transformer/esm5/TransformOperationExecutor.js.map delete mode 100644 views/node_modules/class-transformer/esm5/constants/default-options.constant.js delete mode 100644 views/node_modules/class-transformer/esm5/constants/default-options.constant.js.map delete mode 100644 views/node_modules/class-transformer/esm5/decorators/exclude.decorator.js delete mode 100644 views/node_modules/class-transformer/esm5/decorators/exclude.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm5/decorators/expose.decorator.js delete mode 100644 views/node_modules/class-transformer/esm5/decorators/expose.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm5/decorators/index.js delete mode 100644 views/node_modules/class-transformer/esm5/decorators/index.js.map delete mode 100644 views/node_modules/class-transformer/esm5/decorators/transform-class-to-class.decorator.js delete mode 100644 views/node_modules/class-transformer/esm5/decorators/transform-class-to-class.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm5/decorators/transform-class-to-plain.decorator.js delete mode 100644 views/node_modules/class-transformer/esm5/decorators/transform-class-to-plain.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm5/decorators/transform-plain-to-class.decorator.js delete mode 100644 views/node_modules/class-transformer/esm5/decorators/transform-plain-to-class.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm5/decorators/transform.decorator.js delete mode 100644 views/node_modules/class-transformer/esm5/decorators/transform.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm5/decorators/type.decorator.js delete mode 100644 views/node_modules/class-transformer/esm5/decorators/type.decorator.js.map delete mode 100644 views/node_modules/class-transformer/esm5/enums/index.js delete mode 100644 views/node_modules/class-transformer/esm5/enums/index.js.map delete mode 100644 views/node_modules/class-transformer/esm5/enums/transformation-type.enum.js delete mode 100644 views/node_modules/class-transformer/esm5/enums/transformation-type.enum.js.map delete mode 100644 views/node_modules/class-transformer/esm5/index.js delete mode 100644 views/node_modules/class-transformer/esm5/index.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/class-constructor.type.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/class-constructor.type.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/class-transformer-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/class-transformer-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/decorator-options/exclude-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/decorator-options/exclude-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/decorator-options/expose-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/decorator-options/expose-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/decorator-options/transform-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/decorator-options/transform-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-discriminator-descriptor.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/index.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/index.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/metadata/exclude-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/metadata/exclude-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/metadata/expose-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/metadata/expose-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/metadata/transform-fn-params.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/metadata/transform-fn-params.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/metadata/transform-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/metadata/transform-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/metadata/type-metadata.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/metadata/type-metadata.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/target-map.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/target-map.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/type-help-options.interface.js delete mode 100644 views/node_modules/class-transformer/esm5/interfaces/type-help-options.interface.js.map delete mode 100644 views/node_modules/class-transformer/esm5/storage.js delete mode 100644 views/node_modules/class-transformer/esm5/storage.js.map delete mode 100644 views/node_modules/class-transformer/esm5/utils/get-global.util.js delete mode 100644 views/node_modules/class-transformer/esm5/utils/get-global.util.js.map delete mode 100644 views/node_modules/class-transformer/esm5/utils/get-global.util.spect.js delete mode 100644 views/node_modules/class-transformer/esm5/utils/get-global.util.spect.js.map delete mode 100644 views/node_modules/class-transformer/esm5/utils/index.js delete mode 100644 views/node_modules/class-transformer/esm5/utils/index.js.map delete mode 100644 views/node_modules/class-transformer/esm5/utils/is-promise.util.js delete mode 100644 views/node_modules/class-transformer/esm5/utils/is-promise.util.js.map delete mode 100644 views/node_modules/class-transformer/package.json delete mode 100644 views/node_modules/class-transformer/types/ClassTransformer.d.ts delete mode 100644 views/node_modules/class-transformer/types/MetadataStorage.d.ts delete mode 100644 views/node_modules/class-transformer/types/TransformOperationExecutor.d.ts delete mode 100644 views/node_modules/class-transformer/types/constants/default-options.constant.d.ts delete mode 100644 views/node_modules/class-transformer/types/decorators/exclude.decorator.d.ts delete mode 100644 views/node_modules/class-transformer/types/decorators/expose.decorator.d.ts delete mode 100644 views/node_modules/class-transformer/types/decorators/index.d.ts delete mode 100644 views/node_modules/class-transformer/types/decorators/transform-class-to-class.decorator.d.ts delete mode 100644 views/node_modules/class-transformer/types/decorators/transform-class-to-plain.decorator.d.ts delete mode 100644 views/node_modules/class-transformer/types/decorators/transform-plain-to-class.decorator.d.ts delete mode 100644 views/node_modules/class-transformer/types/decorators/transform.decorator.d.ts delete mode 100644 views/node_modules/class-transformer/types/decorators/type.decorator.d.ts delete mode 100644 views/node_modules/class-transformer/types/enums/index.d.ts delete mode 100644 views/node_modules/class-transformer/types/enums/transformation-type.enum.d.ts delete mode 100644 views/node_modules/class-transformer/types/index.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/class-constructor.type.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/class-transformer-options.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/decorator-options/exclude-options.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/decorator-options/expose-options.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/decorator-options/transform-options.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/decorator-options/type-discriminator-descriptor.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/decorator-options/type-options.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/index.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/metadata/exclude-metadata.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/metadata/expose-metadata.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/metadata/transform-fn-params.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/metadata/transform-metadata.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/metadata/type-metadata.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/target-map.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/interfaces/type-help-options.interface.d.ts delete mode 100644 views/node_modules/class-transformer/types/storage.d.ts delete mode 100644 views/node_modules/class-transformer/types/utils/get-global.util.d.ts delete mode 100644 views/node_modules/class-transformer/types/utils/get-global.util.spect.d.ts delete mode 100644 views/node_modules/class-transformer/types/utils/index.d.ts delete mode 100644 views/node_modules/class-transformer/types/utils/is-promise.util.d.ts delete mode 100644 views/node_modules/class-validator/LICENSE delete mode 100644 views/node_modules/class-validator/README.md delete mode 100644 views/node_modules/class-validator/bundles/class-validator.umd.js delete mode 100644 views/node_modules/class-validator/bundles/class-validator.umd.js.map delete mode 100644 views/node_modules/class-validator/bundles/class-validator.umd.min.js delete mode 100644 views/node_modules/class-validator/bundles/class-validator.umd.min.js.map delete mode 100644 views/node_modules/class-validator/cjs/container.js delete mode 100644 views/node_modules/class-validator/cjs/container.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/ValidationOptions.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/ValidationOptions.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayContains.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayContains.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayMaxSize.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayMaxSize.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayMinSize.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayMinSize.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayNotContains.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayNotContains.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayNotEmpty.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayNotEmpty.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayUnique.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/array/ArrayUnique.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/Allow.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/Allow.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/Equals.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/Equals.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsDefined.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsDefined.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsEmpty.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsEmpty.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsIn.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsIn.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsLatLong.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsLatLong.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsLatitude.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsLatitude.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsLongitude.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsLongitude.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsNotEmpty.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsNotEmpty.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsNotIn.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsNotIn.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsOptional.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/IsOptional.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/NotEquals.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/NotEquals.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/Validate.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/Validate.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/ValidateBy.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/ValidateBy.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/ValidateIf.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/ValidateIf.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/ValidateNested.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/ValidateNested.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/ValidatePromise.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/common/ValidatePromise.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/date/MaxDate.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/date/MaxDate.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/date/MinDate.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/date/MinDate.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/decorators.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/decorators.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/number/IsDivisibleBy.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/number/IsDivisibleBy.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/number/IsNegative.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/number/IsNegative.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/number/IsPositive.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/number/IsPositive.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/number/Max.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/number/Max.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/number/Min.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/number/Min.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/object/IsInstance.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/object/IsInstance.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/object/IsNotEmptyObject.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/object/IsNotEmptyObject.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/Contains.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/Contains.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsAlpha.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsAlpha.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsAlphanumeric.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsAlphanumeric.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsAscii.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsAscii.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsBIC.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsBIC.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsBase32.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsBase32.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsBase64.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsBase64.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsBooleanString.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsBooleanString.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsBtcAddress.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsBtcAddress.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsByteLength.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsByteLength.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsCreditCard.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsCreditCard.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsCurrency.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsCurrency.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsDataURI.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsDataURI.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsDateString.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsDateString.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsDecimal.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsDecimal.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsEAN.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsEAN.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsEmail.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsEmail.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsEthereumAddress.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsEthereumAddress.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsFQDN.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsFQDN.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsFirebasePushId.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsFirebasePushId.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsFullWidth.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsFullWidth.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsHSL.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsHSL.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsHalfWidth.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsHalfWidth.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsHash.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsHash.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsHexColor.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsHexColor.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsHexadecimal.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsHexadecimal.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsIBAN.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsIBAN.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsIP.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsIP.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISBN.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISBN.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISIN.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISIN.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha2.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha2.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha3.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha3.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISO8601.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISO8601.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISRC.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISRC.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISSN.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsISSN.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsIdentityCard.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsIdentityCard.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsJSON.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsJSON.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsJWT.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsJWT.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsLocale.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsLocale.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsLowercase.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsLowercase.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMacAddress.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMacAddress.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMagnetURI.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMagnetURI.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMilitaryTime.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMilitaryTime.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMimeType.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMimeType.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMobilePhone.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMobilePhone.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMongoId.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMongoId.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMultibyte.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsMultibyte.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsNumberString.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsNumberString.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsOctal.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsOctal.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsPassportNumber.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsPassportNumber.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsPhoneNumber.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsPhoneNumber.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsPort.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsPort.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsPostalCode.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsPostalCode.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsRFC3339.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsRFC3339.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsRgbColor.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsRgbColor.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsSemVer.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsSemVer.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsSurrogatePair.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsSurrogatePair.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsUUID.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsUUID.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsUppercase.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsUppercase.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsUrl.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsUrl.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsVariableWidth.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/IsVariableWidth.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/Length.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/Length.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/Matches.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/Matches.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/MaxLength.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/MaxLength.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/MinLength.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/MinLength.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/NotContains.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/string/NotContains.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsArray.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsArray.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsBoolean.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsBoolean.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsDate.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsDate.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsEnum.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsEnum.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsInt.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsInt.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsNumber.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsNumber.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsObject.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsObject.js.map delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsString.js delete mode 100644 views/node_modules/class-validator/cjs/decorator/typechecker/IsString.js.map delete mode 100644 views/node_modules/class-validator/cjs/index.js delete mode 100644 views/node_modules/class-validator/cjs/index.js.map delete mode 100644 views/node_modules/class-validator/cjs/metadata/ConstraintMetadata.js delete mode 100644 views/node_modules/class-validator/cjs/metadata/ConstraintMetadata.js.map delete mode 100644 views/node_modules/class-validator/cjs/metadata/MetadataStorage.js delete mode 100644 views/node_modules/class-validator/cjs/metadata/MetadataStorage.js.map delete mode 100644 views/node_modules/class-validator/cjs/metadata/ValidationMetadata.js delete mode 100644 views/node_modules/class-validator/cjs/metadata/ValidationMetadata.js.map delete mode 100644 views/node_modules/class-validator/cjs/metadata/ValidationMetadataArgs.js delete mode 100644 views/node_modules/class-validator/cjs/metadata/ValidationMetadataArgs.js.map delete mode 100644 views/node_modules/class-validator/cjs/register-decorator.js delete mode 100644 views/node_modules/class-validator/cjs/register-decorator.js.map delete mode 100644 views/node_modules/class-validator/cjs/utils/convert-to-array.util.js delete mode 100644 views/node_modules/class-validator/cjs/utils/convert-to-array.util.js.map delete mode 100644 views/node_modules/class-validator/cjs/utils/get-global.util.js delete mode 100644 views/node_modules/class-validator/cjs/utils/get-global.util.js.map delete mode 100644 views/node_modules/class-validator/cjs/utils/index.js delete mode 100644 views/node_modules/class-validator/cjs/utils/index.js.map delete mode 100644 views/node_modules/class-validator/cjs/utils/is-promise.util.js delete mode 100644 views/node_modules/class-validator/cjs/utils/is-promise.util.js.map delete mode 100644 views/node_modules/class-validator/cjs/validation-schema/ValidationSchema.js delete mode 100644 views/node_modules/class-validator/cjs/validation-schema/ValidationSchema.js.map delete mode 100644 views/node_modules/class-validator/cjs/validation-schema/ValidationSchemaToMetadataTransformer.js delete mode 100644 views/node_modules/class-validator/cjs/validation-schema/ValidationSchemaToMetadataTransformer.js.map delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidationArguments.js delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidationArguments.js.map delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidationError.js delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidationError.js.map delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidationExecutor.js delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidationExecutor.js.map delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidationTypes.js delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidationTypes.js.map delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidationUtils.js delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidationUtils.js.map delete mode 100644 views/node_modules/class-validator/cjs/validation/Validator.js delete mode 100644 views/node_modules/class-validator/cjs/validation/Validator.js.map delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidatorConstraintInterface.js delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidatorConstraintInterface.js.map delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidatorOptions.js delete mode 100644 views/node_modules/class-validator/cjs/validation/ValidatorOptions.js.map delete mode 100644 views/node_modules/class-validator/esm2015/container.js delete mode 100644 views/node_modules/class-validator/esm2015/container.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/ValidationOptions.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/ValidationOptions.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayContains.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayContains.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayMaxSize.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayMaxSize.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayMinSize.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayMinSize.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayNotContains.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayNotContains.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayNotEmpty.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayNotEmpty.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayUnique.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/array/ArrayUnique.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/Allow.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/Allow.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/Equals.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/Equals.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsDefined.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsDefined.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsEmpty.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsEmpty.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsIn.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsIn.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsLatLong.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsLatLong.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsLatitude.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsLatitude.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsLongitude.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsLongitude.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsNotEmpty.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsNotEmpty.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsNotIn.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsNotIn.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsOptional.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/IsOptional.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/NotEquals.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/NotEquals.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/Validate.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/Validate.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/ValidateBy.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/ValidateBy.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/ValidateIf.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/ValidateIf.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/ValidateNested.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/ValidateNested.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/ValidatePromise.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/common/ValidatePromise.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/date/MaxDate.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/date/MaxDate.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/date/MinDate.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/date/MinDate.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/decorators.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/decorators.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/number/IsDivisibleBy.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/number/IsDivisibleBy.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/number/IsNegative.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/number/IsNegative.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/number/IsPositive.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/number/IsPositive.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/number/Max.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/number/Max.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/number/Min.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/number/Min.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/object/IsInstance.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/object/IsInstance.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/object/IsNotEmptyObject.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/object/IsNotEmptyObject.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/Contains.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/Contains.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsAlpha.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsAlpha.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsAlphanumeric.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsAlphanumeric.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsAscii.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsAscii.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsBIC.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsBIC.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsBase32.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsBase32.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsBase64.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsBase64.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsBooleanString.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsBooleanString.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsBtcAddress.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsBtcAddress.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsByteLength.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsByteLength.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsCreditCard.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsCreditCard.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsCurrency.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsCurrency.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsDataURI.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsDataURI.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsDateString.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsDateString.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsDecimal.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsDecimal.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsEAN.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsEAN.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsEmail.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsEmail.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsEthereumAddress.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsEthereumAddress.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsFQDN.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsFQDN.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsFirebasePushId.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsFirebasePushId.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsFullWidth.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsFullWidth.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsHSL.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsHSL.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsHalfWidth.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsHalfWidth.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsHash.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsHash.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsHexColor.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsHexColor.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsHexadecimal.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsHexadecimal.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsIBAN.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsIBAN.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsIP.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsIP.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISBN.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISBN.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISIN.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISIN.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha2.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha2.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha3.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha3.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISO8601.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISO8601.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISRC.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISRC.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISSN.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsISSN.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsIdentityCard.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsIdentityCard.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsJSON.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsJSON.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsJWT.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsJWT.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsLocale.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsLocale.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsLowercase.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsLowercase.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMacAddress.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMacAddress.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMagnetURI.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMagnetURI.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMilitaryTime.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMilitaryTime.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMimeType.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMimeType.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMobilePhone.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMobilePhone.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMongoId.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMongoId.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMultibyte.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsMultibyte.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsNumberString.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsNumberString.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsOctal.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsOctal.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsPassportNumber.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsPassportNumber.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsPhoneNumber.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsPhoneNumber.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsPort.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsPort.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsPostalCode.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsPostalCode.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsRFC3339.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsRFC3339.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsRgbColor.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsRgbColor.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsSemVer.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsSemVer.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsSurrogatePair.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsSurrogatePair.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsUUID.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsUUID.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsUppercase.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsUppercase.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsUrl.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsUrl.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsVariableWidth.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/IsVariableWidth.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/Length.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/Length.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/Matches.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/Matches.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/MaxLength.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/MaxLength.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/MinLength.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/MinLength.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/NotContains.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/string/NotContains.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsArray.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsArray.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsBoolean.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsBoolean.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsDate.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsDate.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsEnum.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsEnum.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsInt.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsInt.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsNumber.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsNumber.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsObject.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsObject.js.map delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsString.js delete mode 100644 views/node_modules/class-validator/esm2015/decorator/typechecker/IsString.js.map delete mode 100644 views/node_modules/class-validator/esm2015/index.js delete mode 100644 views/node_modules/class-validator/esm2015/index.js.map delete mode 100644 views/node_modules/class-validator/esm2015/metadata/ConstraintMetadata.js delete mode 100644 views/node_modules/class-validator/esm2015/metadata/ConstraintMetadata.js.map delete mode 100644 views/node_modules/class-validator/esm2015/metadata/MetadataStorage.js delete mode 100644 views/node_modules/class-validator/esm2015/metadata/MetadataStorage.js.map delete mode 100644 views/node_modules/class-validator/esm2015/metadata/ValidationMetadata.js delete mode 100644 views/node_modules/class-validator/esm2015/metadata/ValidationMetadata.js.map delete mode 100644 views/node_modules/class-validator/esm2015/metadata/ValidationMetadataArgs.js delete mode 100644 views/node_modules/class-validator/esm2015/metadata/ValidationMetadataArgs.js.map delete mode 100644 views/node_modules/class-validator/esm2015/register-decorator.js delete mode 100644 views/node_modules/class-validator/esm2015/register-decorator.js.map delete mode 100644 views/node_modules/class-validator/esm2015/utils/convert-to-array.util.js delete mode 100644 views/node_modules/class-validator/esm2015/utils/convert-to-array.util.js.map delete mode 100644 views/node_modules/class-validator/esm2015/utils/get-global.util.js delete mode 100644 views/node_modules/class-validator/esm2015/utils/get-global.util.js.map delete mode 100644 views/node_modules/class-validator/esm2015/utils/index.js delete mode 100644 views/node_modules/class-validator/esm2015/utils/index.js.map delete mode 100644 views/node_modules/class-validator/esm2015/utils/is-promise.util.js delete mode 100644 views/node_modules/class-validator/esm2015/utils/is-promise.util.js.map delete mode 100644 views/node_modules/class-validator/esm2015/validation-schema/ValidationSchema.js delete mode 100644 views/node_modules/class-validator/esm2015/validation-schema/ValidationSchema.js.map delete mode 100644 views/node_modules/class-validator/esm2015/validation-schema/ValidationSchemaToMetadataTransformer.js delete mode 100644 views/node_modules/class-validator/esm2015/validation-schema/ValidationSchemaToMetadataTransformer.js.map delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidationArguments.js delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidationArguments.js.map delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidationError.js delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidationError.js.map delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidationExecutor.js delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidationExecutor.js.map delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidationTypes.js delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidationTypes.js.map delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidationUtils.js delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidationUtils.js.map delete mode 100644 views/node_modules/class-validator/esm2015/validation/Validator.js delete mode 100644 views/node_modules/class-validator/esm2015/validation/Validator.js.map delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidatorConstraintInterface.js delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidatorConstraintInterface.js.map delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidatorOptions.js delete mode 100644 views/node_modules/class-validator/esm2015/validation/ValidatorOptions.js.map delete mode 100644 views/node_modules/class-validator/esm5/container.js delete mode 100644 views/node_modules/class-validator/esm5/container.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/ValidationOptions.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/ValidationOptions.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayContains.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayContains.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayMaxSize.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayMaxSize.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayMinSize.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayMinSize.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayNotContains.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayNotContains.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayNotEmpty.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayNotEmpty.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayUnique.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/array/ArrayUnique.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/Allow.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/Allow.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/Equals.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/Equals.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsDefined.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsDefined.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsEmpty.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsEmpty.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsIn.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsIn.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsLatLong.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsLatLong.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsLatitude.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsLatitude.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsLongitude.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsLongitude.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsNotEmpty.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsNotEmpty.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsNotIn.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsNotIn.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsOptional.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/IsOptional.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/NotEquals.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/NotEquals.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/Validate.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/Validate.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/ValidateBy.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/ValidateBy.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/ValidateIf.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/ValidateIf.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/ValidateNested.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/ValidateNested.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/ValidatePromise.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/common/ValidatePromise.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/date/MaxDate.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/date/MaxDate.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/date/MinDate.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/date/MinDate.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/decorators.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/decorators.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/number/IsDivisibleBy.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/number/IsDivisibleBy.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/number/IsNegative.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/number/IsNegative.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/number/IsPositive.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/number/IsPositive.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/number/Max.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/number/Max.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/number/Min.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/number/Min.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/object/IsInstance.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/object/IsInstance.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/object/IsNotEmptyObject.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/object/IsNotEmptyObject.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/Contains.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/Contains.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsAlpha.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsAlpha.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsAlphanumeric.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsAlphanumeric.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsAscii.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsAscii.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsBIC.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsBIC.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsBase32.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsBase32.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsBase64.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsBase64.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsBooleanString.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsBooleanString.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsBtcAddress.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsBtcAddress.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsByteLength.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsByteLength.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsCreditCard.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsCreditCard.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsCurrency.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsCurrency.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsDataURI.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsDataURI.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsDateString.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsDateString.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsDecimal.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsDecimal.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsEAN.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsEAN.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsEmail.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsEmail.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsEthereumAddress.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsEthereumAddress.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsFQDN.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsFQDN.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsFirebasePushId.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsFirebasePushId.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsFullWidth.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsFullWidth.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsHSL.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsHSL.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsHalfWidth.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsHalfWidth.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsHash.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsHash.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsHexColor.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsHexColor.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsHexadecimal.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsHexadecimal.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsIBAN.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsIBAN.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsIP.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsIP.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISBN.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISBN.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISIN.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISIN.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha2.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha2.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha3.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha3.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISO8601.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISO8601.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISRC.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISRC.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISSN.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsISSN.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsIdentityCard.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsIdentityCard.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsJSON.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsJSON.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsJWT.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsJWT.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsLocale.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsLocale.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsLowercase.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsLowercase.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMacAddress.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMacAddress.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMagnetURI.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMagnetURI.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMilitaryTime.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMilitaryTime.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMimeType.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMimeType.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMobilePhone.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMobilePhone.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMongoId.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMongoId.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMultibyte.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsMultibyte.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsNumberString.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsNumberString.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsOctal.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsOctal.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsPassportNumber.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsPassportNumber.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsPhoneNumber.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsPhoneNumber.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsPort.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsPort.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsPostalCode.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsPostalCode.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsRFC3339.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsRFC3339.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsRgbColor.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsRgbColor.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsSemVer.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsSemVer.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsSurrogatePair.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsSurrogatePair.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsUUID.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsUUID.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsUppercase.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsUppercase.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsUrl.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsUrl.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsVariableWidth.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/IsVariableWidth.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/Length.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/Length.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/Matches.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/Matches.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/MaxLength.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/MaxLength.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/MinLength.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/MinLength.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/NotContains.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/string/NotContains.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsArray.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsArray.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsBoolean.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsBoolean.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsDate.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsDate.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsEnum.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsEnum.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsInt.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsInt.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsNumber.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsNumber.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsObject.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsObject.js.map delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsString.js delete mode 100644 views/node_modules/class-validator/esm5/decorator/typechecker/IsString.js.map delete mode 100644 views/node_modules/class-validator/esm5/index.js delete mode 100644 views/node_modules/class-validator/esm5/index.js.map delete mode 100644 views/node_modules/class-validator/esm5/metadata/ConstraintMetadata.js delete mode 100644 views/node_modules/class-validator/esm5/metadata/ConstraintMetadata.js.map delete mode 100644 views/node_modules/class-validator/esm5/metadata/MetadataStorage.js delete mode 100644 views/node_modules/class-validator/esm5/metadata/MetadataStorage.js.map delete mode 100644 views/node_modules/class-validator/esm5/metadata/ValidationMetadata.js delete mode 100644 views/node_modules/class-validator/esm5/metadata/ValidationMetadata.js.map delete mode 100644 views/node_modules/class-validator/esm5/metadata/ValidationMetadataArgs.js delete mode 100644 views/node_modules/class-validator/esm5/metadata/ValidationMetadataArgs.js.map delete mode 100644 views/node_modules/class-validator/esm5/register-decorator.js delete mode 100644 views/node_modules/class-validator/esm5/register-decorator.js.map delete mode 100644 views/node_modules/class-validator/esm5/utils/convert-to-array.util.js delete mode 100644 views/node_modules/class-validator/esm5/utils/convert-to-array.util.js.map delete mode 100644 views/node_modules/class-validator/esm5/utils/get-global.util.js delete mode 100644 views/node_modules/class-validator/esm5/utils/get-global.util.js.map delete mode 100644 views/node_modules/class-validator/esm5/utils/index.js delete mode 100644 views/node_modules/class-validator/esm5/utils/index.js.map delete mode 100644 views/node_modules/class-validator/esm5/utils/is-promise.util.js delete mode 100644 views/node_modules/class-validator/esm5/utils/is-promise.util.js.map delete mode 100644 views/node_modules/class-validator/esm5/validation-schema/ValidationSchema.js delete mode 100644 views/node_modules/class-validator/esm5/validation-schema/ValidationSchema.js.map delete mode 100644 views/node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js delete mode 100644 views/node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js.map delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidationArguments.js delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidationArguments.js.map delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidationError.js delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidationError.js.map delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidationExecutor.js delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidationExecutor.js.map delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidationTypes.js delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidationTypes.js.map delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidationUtils.js delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidationUtils.js.map delete mode 100644 views/node_modules/class-validator/esm5/validation/Validator.js delete mode 100644 views/node_modules/class-validator/esm5/validation/Validator.js.map delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidatorConstraintInterface.js delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidatorConstraintInterface.js.map delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidatorOptions.js delete mode 100644 views/node_modules/class-validator/esm5/validation/ValidatorOptions.js.map delete mode 100644 views/node_modules/class-validator/package.json delete mode 100644 views/node_modules/class-validator/types/container.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/ValidationOptions.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/array/ArrayContains.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/array/ArrayMaxSize.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/array/ArrayMinSize.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/array/ArrayNotContains.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/array/ArrayNotEmpty.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/array/ArrayUnique.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/Allow.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/Equals.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/IsDefined.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/IsEmpty.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/IsIn.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/IsLatLong.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/IsLatitude.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/IsLongitude.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/IsNotEmpty.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/IsNotIn.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/IsOptional.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/NotEquals.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/Validate.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/ValidateBy.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/ValidateIf.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/ValidateNested.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/common/ValidatePromise.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/date/MaxDate.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/date/MinDate.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/decorators.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/number/IsDivisibleBy.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/number/IsNegative.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/number/IsPositive.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/number/Max.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/number/Min.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/object/IsInstance.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/object/IsNotEmptyObject.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/Contains.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsAlpha.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsAlphanumeric.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsAscii.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsBIC.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsBase32.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsBase64.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsBooleanString.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsBtcAddress.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsByteLength.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsCreditCard.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsCurrency.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsDataURI.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsDateString.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsDecimal.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsEAN.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsEmail.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsEthereumAddress.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsFQDN.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsFirebasePushId.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsFullWidth.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsHSL.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsHalfWidth.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsHash.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsHexColor.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsHexadecimal.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsIBAN.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsIP.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsISBN.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsISIN.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsISO31661Alpha2.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsISO31661Alpha3.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsISO8601.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsISRC.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsISSN.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsIdentityCard.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsJSON.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsJWT.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsLocale.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsLowercase.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsMacAddress.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsMagnetURI.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsMilitaryTime.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsMimeType.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsMobilePhone.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsMongoId.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsMultibyte.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsNumberString.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsOctal.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsPassportNumber.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsPhoneNumber.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsPort.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsPostalCode.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsRFC3339.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsRgbColor.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsSemVer.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsSurrogatePair.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsUUID.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsUppercase.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsUrl.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/IsVariableWidth.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/Length.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/Matches.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/MaxLength.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/MinLength.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/string/NotContains.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/typechecker/IsArray.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/typechecker/IsBoolean.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/typechecker/IsDate.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/typechecker/IsEnum.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/typechecker/IsInt.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/typechecker/IsNumber.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/typechecker/IsObject.d.ts delete mode 100644 views/node_modules/class-validator/types/decorator/typechecker/IsString.d.ts delete mode 100644 views/node_modules/class-validator/types/index.d.ts delete mode 100644 views/node_modules/class-validator/types/metadata/ConstraintMetadata.d.ts delete mode 100644 views/node_modules/class-validator/types/metadata/MetadataStorage.d.ts delete mode 100644 views/node_modules/class-validator/types/metadata/ValidationMetadata.d.ts delete mode 100644 views/node_modules/class-validator/types/metadata/ValidationMetadataArgs.d.ts delete mode 100644 views/node_modules/class-validator/types/register-decorator.d.ts delete mode 100644 views/node_modules/class-validator/types/utils/convert-to-array.util.d.ts delete mode 100644 views/node_modules/class-validator/types/utils/get-global.util.d.ts delete mode 100644 views/node_modules/class-validator/types/utils/index.d.ts delete mode 100644 views/node_modules/class-validator/types/utils/is-promise.util.d.ts delete mode 100644 views/node_modules/class-validator/types/validation-schema/ValidationSchema.d.ts delete mode 100644 views/node_modules/class-validator/types/validation-schema/ValidationSchemaToMetadataTransformer.d.ts delete mode 100644 views/node_modules/class-validator/types/validation/ValidationArguments.d.ts delete mode 100644 views/node_modules/class-validator/types/validation/ValidationError.d.ts delete mode 100644 views/node_modules/class-validator/types/validation/ValidationExecutor.d.ts delete mode 100644 views/node_modules/class-validator/types/validation/ValidationTypes.d.ts delete mode 100644 views/node_modules/class-validator/types/validation/ValidationUtils.d.ts delete mode 100644 views/node_modules/class-validator/types/validation/Validator.d.ts delete mode 100644 views/node_modules/class-validator/types/validation/ValidatorConstraintInterface.d.ts delete mode 100644 views/node_modules/class-validator/types/validation/ValidatorOptions.d.ts delete mode 100644 views/node_modules/clone-response/LICENSE delete mode 100644 views/node_modules/clone-response/README.md delete mode 100644 views/node_modules/clone-response/package.json delete mode 100644 views/node_modules/clone-response/src/index.js delete mode 100644 views/node_modules/connect-flash/.travis.yml delete mode 100644 views/node_modules/connect-flash/LICENSE delete mode 100644 views/node_modules/connect-flash/README.md delete mode 100644 views/node_modules/connect-flash/lib/flash.js delete mode 100644 views/node_modules/connect-flash/lib/index.js delete mode 100644 views/node_modules/connect-flash/package.json delete mode 100644 views/node_modules/constantinople/.editorconfig delete mode 100644 views/node_modules/constantinople/.gitattributes delete mode 100644 views/node_modules/constantinople/.prettierrc delete mode 100644 views/node_modules/constantinople/.travis.yml delete mode 100644 views/node_modules/constantinople/LICENSE delete mode 100644 views/node_modules/constantinople/README.md delete mode 100644 views/node_modules/constantinople/lib/binaryOperation.d.ts delete mode 100644 views/node_modules/constantinople/lib/binaryOperation.js delete mode 100644 views/node_modules/constantinople/lib/index.d.ts delete mode 100644 views/node_modules/constantinople/lib/index.js delete mode 100644 views/node_modules/constantinople/package.json delete mode 100644 views/node_modules/constantinople/src/binaryOperation.ts delete mode 100644 views/node_modules/constantinople/src/index.ts delete mode 100644 views/node_modules/constantinople/test/index.js delete mode 100644 views/node_modules/constantinople/tsconfig.json delete mode 100644 views/node_modules/content-disposition/HISTORY.md delete mode 100644 views/node_modules/content-disposition/LICENSE delete mode 100644 views/node_modules/content-disposition/README.md delete mode 100644 views/node_modules/content-disposition/index.js delete mode 100644 views/node_modules/content-disposition/package.json delete mode 100644 views/node_modules/content-type/HISTORY.md delete mode 100644 views/node_modules/content-type/LICENSE delete mode 100644 views/node_modules/content-type/README.md delete mode 100644 views/node_modules/content-type/index.js delete mode 100644 views/node_modules/content-type/package.json delete mode 100644 views/node_modules/cookie-signature/.npmignore delete mode 100644 views/node_modules/cookie-signature/History.md delete mode 100644 views/node_modules/cookie-signature/Readme.md delete mode 100644 views/node_modules/cookie-signature/index.js delete mode 100644 views/node_modules/cookie-signature/package.json delete mode 100644 views/node_modules/cookie/HISTORY.md delete mode 100644 views/node_modules/cookie/LICENSE delete mode 100644 views/node_modules/cookie/README.md delete mode 100644 views/node_modules/cookie/index.js delete mode 100644 views/node_modules/cookie/package.json delete mode 100644 views/node_modules/core-util-is/LICENSE delete mode 100644 views/node_modules/core-util-is/README.md delete mode 100644 views/node_modules/core-util-is/float.patch delete mode 100644 views/node_modules/core-util-is/lib/util.js delete mode 100644 views/node_modules/core-util-is/package.json delete mode 100644 views/node_modules/core-util-is/test.js delete mode 100644 views/node_modules/debug/.coveralls.yml delete mode 100644 views/node_modules/debug/.eslintrc delete mode 100644 views/node_modules/debug/.npmignore delete mode 100644 views/node_modules/debug/.travis.yml delete mode 100644 views/node_modules/debug/CHANGELOG.md delete mode 100644 views/node_modules/debug/LICENSE delete mode 100644 views/node_modules/debug/Makefile delete mode 100644 views/node_modules/debug/README.md delete mode 100644 views/node_modules/debug/component.json delete mode 100644 views/node_modules/debug/karma.conf.js delete mode 100644 views/node_modules/debug/node.js delete mode 100644 views/node_modules/debug/package.json delete mode 100644 views/node_modules/debug/src/browser.js delete mode 100644 views/node_modules/debug/src/debug.js delete mode 100644 views/node_modules/debug/src/index.js delete mode 100644 views/node_modules/debug/src/inspector-log.js delete mode 100644 views/node_modules/debug/src/node.js delete mode 100644 views/node_modules/decompress-response/index.d.ts delete mode 100644 views/node_modules/decompress-response/index.js delete mode 100644 views/node_modules/decompress-response/license delete mode 100644 views/node_modules/decompress-response/node_modules/mimic-response/index.d.ts delete mode 100644 views/node_modules/decompress-response/node_modules/mimic-response/index.js delete mode 100644 views/node_modules/decompress-response/node_modules/mimic-response/license delete mode 100644 views/node_modules/decompress-response/node_modules/mimic-response/package.json delete mode 100644 views/node_modules/decompress-response/node_modules/mimic-response/readme.md delete mode 100644 views/node_modules/decompress-response/package.json delete mode 100644 views/node_modules/decompress-response/readme.md delete mode 100644 views/node_modules/defer-to-connect/LICENSE delete mode 100644 views/node_modules/defer-to-connect/README.md delete mode 100644 views/node_modules/defer-to-connect/dist/source/index.d.ts delete mode 100644 views/node_modules/defer-to-connect/dist/source/index.js delete mode 100644 views/node_modules/defer-to-connect/package.json delete mode 100644 views/node_modules/denque/CHANGELOG.md delete mode 100644 views/node_modules/denque/LICENSE delete mode 100644 views/node_modules/denque/README.md delete mode 100644 views/node_modules/denque/index.d.ts delete mode 100644 views/node_modules/denque/index.js delete mode 100644 views/node_modules/denque/package.json delete mode 100644 views/node_modules/depd/History.md delete mode 100644 views/node_modules/depd/LICENSE delete mode 100644 views/node_modules/depd/Readme.md delete mode 100644 views/node_modules/depd/index.js delete mode 100644 views/node_modules/depd/lib/browser/index.js delete mode 100644 views/node_modules/depd/lib/compat/callsite-tostring.js delete mode 100644 views/node_modules/depd/lib/compat/event-listener-count.js delete mode 100644 views/node_modules/depd/lib/compat/index.js delete mode 100644 views/node_modules/depd/package.json delete mode 100644 views/node_modules/destroy/LICENSE delete mode 100644 views/node_modules/destroy/README.md delete mode 100644 views/node_modules/destroy/index.js delete mode 100644 views/node_modules/destroy/package.json delete mode 100644 views/node_modules/doctypes/.npmignore delete mode 100644 views/node_modules/doctypes/.travis.yml delete mode 100644 views/node_modules/doctypes/HISTORY.md delete mode 100644 views/node_modules/doctypes/LICENSE delete mode 100644 views/node_modules/doctypes/README.md delete mode 100644 views/node_modules/doctypes/index.js delete mode 100644 views/node_modules/doctypes/package.json delete mode 100644 views/node_modules/doctypes/test.js delete mode 100644 views/node_modules/dotenv/CHANGELOG.md delete mode 100644 views/node_modules/dotenv/LICENSE delete mode 100644 views/node_modules/dotenv/README.md delete mode 100644 views/node_modules/dotenv/config.js delete mode 100644 views/node_modules/dotenv/lib/cli-options.js delete mode 100644 views/node_modules/dotenv/lib/env-options.js delete mode 100644 views/node_modules/dotenv/lib/main.js delete mode 100644 views/node_modules/dotenv/package.json delete mode 100644 views/node_modules/dotenv/types/index.d.ts delete mode 100644 views/node_modules/dotenv/types/test.ts delete mode 100644 views/node_modules/dotenv/types/tsconfig.json delete mode 100644 views/node_modules/dotenv/types/tslint.json delete mode 100644 views/node_modules/ee-first/LICENSE delete mode 100644 views/node_modules/ee-first/README.md delete mode 100644 views/node_modules/ee-first/index.js delete mode 100644 views/node_modules/ee-first/package.json delete mode 100644 views/node_modules/encodeurl/HISTORY.md delete mode 100644 views/node_modules/encodeurl/LICENSE delete mode 100644 views/node_modules/encodeurl/README.md delete mode 100644 views/node_modules/encodeurl/index.js delete mode 100644 views/node_modules/encodeurl/package.json delete mode 100644 views/node_modules/end-of-stream/LICENSE delete mode 100644 views/node_modules/end-of-stream/README.md delete mode 100644 views/node_modules/end-of-stream/index.js delete mode 100644 views/node_modules/end-of-stream/package.json delete mode 100644 views/node_modules/escape-html/LICENSE delete mode 100644 views/node_modules/escape-html/Readme.md delete mode 100644 views/node_modules/escape-html/index.js delete mode 100644 views/node_modules/escape-html/package.json delete mode 100644 views/node_modules/etag/HISTORY.md delete mode 100644 views/node_modules/etag/LICENSE delete mode 100644 views/node_modules/etag/README.md delete mode 100644 views/node_modules/etag/index.js delete mode 100644 views/node_modules/etag/package.json delete mode 100644 views/node_modules/express-messages/.npmignore delete mode 100644 views/node_modules/express-messages/History.md delete mode 100644 views/node_modules/express-messages/Readme.md delete mode 100644 views/node_modules/express-messages/index.js delete mode 100644 views/node_modules/express-messages/package.json delete mode 100644 views/node_modules/express-session/HISTORY.md delete mode 100644 views/node_modules/express-session/LICENSE delete mode 100644 views/node_modules/express-session/README.md delete mode 100644 views/node_modules/express-session/index.js delete mode 100644 views/node_modules/express-session/node_modules/depd/History.md delete mode 100644 views/node_modules/express-session/node_modules/depd/LICENSE delete mode 100644 views/node_modules/express-session/node_modules/depd/Readme.md delete mode 100644 views/node_modules/express-session/node_modules/depd/index.js delete mode 100644 views/node_modules/express-session/node_modules/depd/lib/browser/index.js delete mode 100644 views/node_modules/express-session/node_modules/depd/package.json delete mode 100644 views/node_modules/express-session/node_modules/safe-buffer/LICENSE delete mode 100644 views/node_modules/express-session/node_modules/safe-buffer/README.md delete mode 100644 views/node_modules/express-session/node_modules/safe-buffer/index.d.ts delete mode 100644 views/node_modules/express-session/node_modules/safe-buffer/index.js delete mode 100644 views/node_modules/express-session/node_modules/safe-buffer/package.json delete mode 100644 views/node_modules/express-session/package.json delete mode 100644 views/node_modules/express-session/session/cookie.js delete mode 100644 views/node_modules/express-session/session/memory.js delete mode 100644 views/node_modules/express-session/session/session.js delete mode 100644 views/node_modules/express-session/session/store.js delete mode 100644 views/node_modules/express-validator/CONTRIBUTING.md delete mode 100644 views/node_modules/express-validator/LICENSE delete mode 100644 views/node_modules/express-validator/README.md delete mode 100644 views/node_modules/express-validator/UPGRADE_GUIDE.md delete mode 100644 views/node_modules/express-validator/check/check.d.ts delete mode 100644 views/node_modules/express-validator/check/check.js delete mode 100644 views/node_modules/express-validator/check/index.d.ts delete mode 100644 views/node_modules/express-validator/check/index.js delete mode 100644 views/node_modules/express-validator/check/location.d.ts delete mode 100644 views/node_modules/express-validator/check/one-of.d.ts delete mode 100644 views/node_modules/express-validator/check/one-of.js delete mode 100644 views/node_modules/express-validator/check/runner.js delete mode 100644 views/node_modules/express-validator/check/schema.d.ts delete mode 100644 views/node_modules/express-validator/check/schema.js delete mode 100644 views/node_modules/express-validator/check/validation-chain-builders.d.ts delete mode 100644 views/node_modules/express-validator/check/validation-chain-builders.js delete mode 100644 views/node_modules/express-validator/check/validation-result.d.ts delete mode 100644 views/node_modules/express-validator/check/validation-result.js delete mode 100644 views/node_modules/express-validator/docs/api-check.md delete mode 100644 views/node_modules/express-validator/docs/api-filter.md delete mode 100644 views/node_modules/express-validator/docs/api-legacy.md delete mode 100644 views/node_modules/express-validator/docs/api-sanitization-chain.md delete mode 100644 views/node_modules/express-validator/docs/api-validation-chain.md delete mode 100644 views/node_modules/express-validator/docs/api-validation-result.md delete mode 100644 views/node_modules/express-validator/docs/feature-custom-validators-sanitizers.md delete mode 100644 views/node_modules/express-validator/docs/feature-error-messages.md delete mode 100644 views/node_modules/express-validator/docs/feature-sanitization.md delete mode 100644 views/node_modules/express-validator/docs/feature-schema-validation.md delete mode 100644 views/node_modules/express-validator/docs/feature-whole-body-validation.md delete mode 100644 views/node_modules/express-validator/docs/feature-wildcards.md delete mode 100644 views/node_modules/express-validator/docs/index.md delete mode 100644 views/node_modules/express-validator/filter/index.d.ts delete mode 100644 views/node_modules/express-validator/filter/index.js delete mode 100644 views/node_modules/express-validator/filter/matched-data.d.ts delete mode 100644 views/node_modules/express-validator/filter/matched-data.js delete mode 100644 views/node_modules/express-validator/filter/sanitization-chain-builders.d.ts delete mode 100644 views/node_modules/express-validator/filter/sanitization-chain-builders.js delete mode 100644 views/node_modules/express-validator/filter/sanitize.d.ts delete mode 100644 views/node_modules/express-validator/filter/sanitize.js delete mode 100644 views/node_modules/express-validator/index.d.ts delete mode 100644 views/node_modules/express-validator/index.js delete mode 100644 views/node_modules/express-validator/lib/chain-creator.js delete mode 100644 views/node_modules/express-validator/lib/custom-methods.js delete mode 100644 views/node_modules/express-validator/lib/express_validator.js delete mode 100644 views/node_modules/express-validator/lib/legacy-runner.js delete mode 100644 views/node_modules/express-validator/lib/utils.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/CHANGELOG.md delete mode 100644 views/node_modules/express-validator/node_modules/validator/LICENSE delete mode 100644 views/node_modules/express-validator/node_modules/validator/README.md delete mode 100644 views/node_modules/express-validator/node_modules/validator/index.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/alpha.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/blacklist.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/contains.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/equals.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/escape.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isAfter.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isAlpha.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isAlphanumeric.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isAscii.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isBase64.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isBefore.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isBoolean.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isByteLength.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isCreditCard.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isCurrency.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isDataURI.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isDecimal.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isDivisibleBy.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isEmail.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isEmpty.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isFQDN.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isFloat.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isFullWidth.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isHalfWidth.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isHash.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isHexColor.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isHexadecimal.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isIP.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isIPRange.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isISBN.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isISIN.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isISO31661Alpha2.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isISO31661Alpha3.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isISO8601.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isISRC.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isISSN.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isIdentityCard.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isIn.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isInt.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isJSON.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isJWT.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isLatLong.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isLength.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isLowercase.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isMACAddress.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isMD5.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isMagnetURI.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isMimeType.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isMobilePhone.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isMongoId.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isMultibyte.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isNumeric.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isPort.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isPostalCode.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isRFC3339.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isSurrogatePair.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isURL.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isUUID.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isUppercase.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isVariableWidth.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/isWhitelisted.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/ltrim.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/matches.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/normalizeEmail.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/rtrim.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/stripLow.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/toBoolean.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/toDate.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/toFloat.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/toInt.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/trim.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/unescape.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/util/assertString.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/util/includes.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/util/merge.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/util/toString.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/lib/whitelist.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/package.json delete mode 100644 views/node_modules/express-validator/node_modules/validator/validator.js delete mode 100644 views/node_modules/express-validator/node_modules/validator/validator.min.js delete mode 100644 views/node_modules/express-validator/package.json delete mode 100644 views/node_modules/express-validator/tsconfig.json delete mode 100644 views/node_modules/express-validator/tst.js delete mode 100644 views/node_modules/express-validator/utils/constants.js delete mode 100644 views/node_modules/express-validator/utils/filters.js delete mode 100644 views/node_modules/express-validator/utils/format-param-output.js delete mode 100644 views/node_modules/express-validator/utils/persist-values.js delete mode 100644 views/node_modules/express-validator/utils/select-fields.js delete mode 100644 views/node_modules/express-validator/utils/to-string.js delete mode 100644 views/node_modules/express-validator/website/core/Footer.js delete mode 100644 views/node_modules/express-validator/website/i18n/en.json delete mode 100644 views/node_modules/express-validator/website/node_modules/.cache/@babel/register/.babel.7.1.2.development.json delete mode 100644 views/node_modules/express-validator/website/package.json delete mode 100644 views/node_modules/express-validator/website/pages/en/versions.js delete mode 100644 views/node_modules/express-validator/website/sidebars.json delete mode 100644 views/node_modules/express-validator/website/siteConfig.js delete mode 100644 views/node_modules/express-validator/website/static/css/custom.css delete mode 100644 views/node_modules/express-validator/website/static/img/favicon.png delete mode 100644 views/node_modules/express-validator/website/static/img/favicon/favicon.ico delete mode 100644 views/node_modules/express-validator/website/static/img/logo.svg delete mode 100644 views/node_modules/express-validator/website/static/index.html delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/api-check.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/api-filter.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/api-legacy.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/api-sanitization-chain.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/api-validation-chain.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/api-validation-result.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/feature-custom-validators-sanitizers.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/feature-error-messages.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/feature-sanitization.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/feature-schema-validation.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/feature-whole-body-validation.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/feature-wildcards.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.2.0/index.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.3.0/api-filter.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.3.0/api-validation-chain.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.3.0/feature-custom-validators-sanitizers.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.3.1/api-check.md delete mode 100644 views/node_modules/express-validator/website/versioned_docs/version-5.3.1/feature-error-messages.md delete mode 100644 views/node_modules/express-validator/website/versioned_sidebars/version-5.2.0-sidebars.json delete mode 100644 views/node_modules/express-validator/website/versions.json delete mode 100644 views/node_modules/express/History.md delete mode 100644 views/node_modules/express/LICENSE delete mode 100644 views/node_modules/express/Readme.md delete mode 100644 views/node_modules/express/index.js delete mode 100644 views/node_modules/express/lib/application.js delete mode 100644 views/node_modules/express/lib/express.js delete mode 100644 views/node_modules/express/lib/middleware/init.js delete mode 100644 views/node_modules/express/lib/middleware/query.js delete mode 100644 views/node_modules/express/lib/request.js delete mode 100644 views/node_modules/express/lib/response.js delete mode 100644 views/node_modules/express/lib/router/index.js delete mode 100644 views/node_modules/express/lib/router/layer.js delete mode 100644 views/node_modules/express/lib/router/route.js delete mode 100644 views/node_modules/express/lib/utils.js delete mode 100644 views/node_modules/express/lib/view.js delete mode 100644 views/node_modules/express/package.json delete mode 100644 views/node_modules/finalhandler/HISTORY.md delete mode 100644 views/node_modules/finalhandler/LICENSE delete mode 100644 views/node_modules/finalhandler/README.md delete mode 100644 views/node_modules/finalhandler/index.js delete mode 100644 views/node_modules/finalhandler/package.json delete mode 100644 views/node_modules/follow-redirects/LICENSE delete mode 100644 views/node_modules/follow-redirects/README.md delete mode 100644 views/node_modules/follow-redirects/debug.js delete mode 100644 views/node_modules/follow-redirects/http.js delete mode 100644 views/node_modules/follow-redirects/https.js delete mode 100644 views/node_modules/follow-redirects/index.js delete mode 100644 views/node_modules/follow-redirects/package.json delete mode 100644 views/node_modules/forwarded/HISTORY.md delete mode 100644 views/node_modules/forwarded/LICENSE delete mode 100644 views/node_modules/forwarded/README.md delete mode 100644 views/node_modules/forwarded/index.js delete mode 100644 views/node_modules/forwarded/package.json delete mode 100644 views/node_modules/fresh/HISTORY.md delete mode 100644 views/node_modules/fresh/LICENSE delete mode 100644 views/node_modules/fresh/README.md delete mode 100644 views/node_modules/fresh/index.js delete mode 100644 views/node_modules/fresh/package.json delete mode 100644 views/node_modules/function-bind/.editorconfig delete mode 100644 views/node_modules/function-bind/.eslintrc delete mode 100644 views/node_modules/function-bind/.jscs.json delete mode 100644 views/node_modules/function-bind/.npmignore delete mode 100644 views/node_modules/function-bind/.travis.yml delete mode 100644 views/node_modules/function-bind/LICENSE delete mode 100644 views/node_modules/function-bind/README.md delete mode 100644 views/node_modules/function-bind/implementation.js delete mode 100644 views/node_modules/function-bind/index.js delete mode 100644 views/node_modules/function-bind/package.json delete mode 100644 views/node_modules/function-bind/test/.eslintrc delete mode 100644 views/node_modules/function-bind/test/index.js delete mode 100644 views/node_modules/get-intrinsic/.eslintignore delete mode 100644 views/node_modules/get-intrinsic/.eslintrc delete mode 100644 views/node_modules/get-intrinsic/.github/FUNDING.yml delete mode 100644 views/node_modules/get-intrinsic/.nycrc delete mode 100644 views/node_modules/get-intrinsic/CHANGELOG.md delete mode 100644 views/node_modules/get-intrinsic/LICENSE delete mode 100644 views/node_modules/get-intrinsic/README.md delete mode 100644 views/node_modules/get-intrinsic/index.js delete mode 100644 views/node_modules/get-intrinsic/package.json delete mode 100644 views/node_modules/get-intrinsic/test/GetIntrinsic.js delete mode 100644 views/node_modules/get-stream/buffer-stream.js delete mode 100644 views/node_modules/get-stream/index.d.ts delete mode 100644 views/node_modules/get-stream/index.js delete mode 100644 views/node_modules/get-stream/license delete mode 100644 views/node_modules/get-stream/package.json delete mode 100644 views/node_modules/get-stream/readme.md delete mode 100644 views/node_modules/got/dist/source/as-promise/create-rejection.d.ts delete mode 100644 views/node_modules/got/dist/source/as-promise/create-rejection.js delete mode 100644 views/node_modules/got/dist/source/as-promise/index.d.ts delete mode 100644 views/node_modules/got/dist/source/as-promise/index.js delete mode 100644 views/node_modules/got/dist/source/as-promise/normalize-arguments.d.ts delete mode 100644 views/node_modules/got/dist/source/as-promise/normalize-arguments.js delete mode 100644 views/node_modules/got/dist/source/as-promise/parse-body.d.ts delete mode 100644 views/node_modules/got/dist/source/as-promise/parse-body.js delete mode 100644 views/node_modules/got/dist/source/as-promise/types.d.ts delete mode 100644 views/node_modules/got/dist/source/as-promise/types.js delete mode 100644 views/node_modules/got/dist/source/core/calculate-retry-delay.d.ts delete mode 100644 views/node_modules/got/dist/source/core/calculate-retry-delay.js delete mode 100644 views/node_modules/got/dist/source/core/index.d.ts delete mode 100644 views/node_modules/got/dist/source/core/index.js delete mode 100644 views/node_modules/got/dist/source/core/utils/dns-ip-version.d.ts delete mode 100644 views/node_modules/got/dist/source/core/utils/dns-ip-version.js delete mode 100644 views/node_modules/got/dist/source/core/utils/get-body-size.d.ts delete mode 100644 views/node_modules/got/dist/source/core/utils/get-body-size.js delete mode 100644 views/node_modules/got/dist/source/core/utils/get-buffer.d.ts delete mode 100644 views/node_modules/got/dist/source/core/utils/get-buffer.js delete mode 100644 views/node_modules/got/dist/source/core/utils/is-form-data.d.ts delete mode 100644 views/node_modules/got/dist/source/core/utils/is-form-data.js delete mode 100644 views/node_modules/got/dist/source/core/utils/is-response-ok.d.ts delete mode 100644 views/node_modules/got/dist/source/core/utils/is-response-ok.js delete mode 100644 views/node_modules/got/dist/source/core/utils/options-to-url.d.ts delete mode 100644 views/node_modules/got/dist/source/core/utils/options-to-url.js delete mode 100644 views/node_modules/got/dist/source/core/utils/proxy-events.d.ts delete mode 100644 views/node_modules/got/dist/source/core/utils/proxy-events.js delete mode 100644 views/node_modules/got/dist/source/core/utils/timed-out.d.ts delete mode 100644 views/node_modules/got/dist/source/core/utils/timed-out.js delete mode 100644 views/node_modules/got/dist/source/core/utils/unhandle.d.ts delete mode 100644 views/node_modules/got/dist/source/core/utils/unhandle.js delete mode 100644 views/node_modules/got/dist/source/core/utils/url-to-options.d.ts delete mode 100644 views/node_modules/got/dist/source/core/utils/url-to-options.js delete mode 100644 views/node_modules/got/dist/source/core/utils/weakable-map.d.ts delete mode 100644 views/node_modules/got/dist/source/core/utils/weakable-map.js delete mode 100644 views/node_modules/got/dist/source/create.d.ts delete mode 100644 views/node_modules/got/dist/source/create.js delete mode 100644 views/node_modules/got/dist/source/index.d.ts delete mode 100644 views/node_modules/got/dist/source/index.js delete mode 100644 views/node_modules/got/dist/source/types.d.ts delete mode 100644 views/node_modules/got/dist/source/types.js delete mode 100644 views/node_modules/got/dist/source/utils/deep-freeze.d.ts delete mode 100644 views/node_modules/got/dist/source/utils/deep-freeze.js delete mode 100644 views/node_modules/got/dist/source/utils/deprecation-warning.d.ts delete mode 100644 views/node_modules/got/dist/source/utils/deprecation-warning.js delete mode 100644 views/node_modules/got/license delete mode 100644 views/node_modules/got/package.json delete mode 100644 views/node_modules/got/readme.md delete mode 100644 views/node_modules/has-symbols/.eslintignore delete mode 100644 views/node_modules/has-symbols/.eslintrc delete mode 100644 views/node_modules/has-symbols/.github/FUNDING.yml delete mode 100644 views/node_modules/has-symbols/.nycrc delete mode 100644 views/node_modules/has-symbols/CHANGELOG.md delete mode 100644 views/node_modules/has-symbols/LICENSE delete mode 100644 views/node_modules/has-symbols/README.md delete mode 100644 views/node_modules/has-symbols/index.js delete mode 100644 views/node_modules/has-symbols/package.json delete mode 100644 views/node_modules/has-symbols/shams.js delete mode 100644 views/node_modules/has-symbols/test/index.js delete mode 100644 views/node_modules/has-symbols/test/shams/core-js.js delete mode 100644 views/node_modules/has-symbols/test/shams/get-own-property-symbols.js delete mode 100644 views/node_modules/has-symbols/test/tests.js delete mode 100644 views/node_modules/has/LICENSE-MIT delete mode 100644 views/node_modules/has/README.md delete mode 100644 views/node_modules/has/package.json delete mode 100644 views/node_modules/has/src/index.js delete mode 100644 views/node_modules/has/test/index.js delete mode 100644 views/node_modules/http-cache-semantics/LICENSE delete mode 100644 views/node_modules/http-cache-semantics/README.md delete mode 100644 views/node_modules/http-cache-semantics/index.js delete mode 100644 views/node_modules/http-cache-semantics/package.json delete mode 100644 views/node_modules/http-errors/HISTORY.md delete mode 100644 views/node_modules/http-errors/LICENSE delete mode 100644 views/node_modules/http-errors/README.md delete mode 100644 views/node_modules/http-errors/index.js delete mode 100644 views/node_modules/http-errors/package.json delete mode 100644 views/node_modules/http2-wrapper/LICENSE delete mode 100644 views/node_modules/http2-wrapper/README.md delete mode 100644 views/node_modules/http2-wrapper/package.json delete mode 100644 views/node_modules/http2-wrapper/source/agent.js delete mode 100644 views/node_modules/http2-wrapper/source/auto.js delete mode 100644 views/node_modules/http2-wrapper/source/client-request.js delete mode 100644 views/node_modules/http2-wrapper/source/incoming-message.js delete mode 100644 views/node_modules/http2-wrapper/source/index.js delete mode 100644 views/node_modules/http2-wrapper/source/utils/calculate-server-name.js delete mode 100644 views/node_modules/http2-wrapper/source/utils/errors.js delete mode 100644 views/node_modules/http2-wrapper/source/utils/is-request-pseudo-header.js delete mode 100644 views/node_modules/http2-wrapper/source/utils/proxy-events.js delete mode 100644 views/node_modules/http2-wrapper/source/utils/url-to-options.js delete mode 100644 views/node_modules/https/package.json delete mode 100644 views/node_modules/iconv-lite/Changelog.md delete mode 100644 views/node_modules/iconv-lite/LICENSE delete mode 100644 views/node_modules/iconv-lite/README.md delete mode 100644 views/node_modules/iconv-lite/encodings/dbcs-codec.js delete mode 100644 views/node_modules/iconv-lite/encodings/dbcs-data.js delete mode 100644 views/node_modules/iconv-lite/encodings/index.js delete mode 100644 views/node_modules/iconv-lite/encodings/internal.js delete mode 100644 views/node_modules/iconv-lite/encodings/sbcs-codec.js delete mode 100644 views/node_modules/iconv-lite/encodings/sbcs-data-generated.js delete mode 100644 views/node_modules/iconv-lite/encodings/sbcs-data.js delete mode 100644 views/node_modules/iconv-lite/encodings/tables/big5-added.json delete mode 100644 views/node_modules/iconv-lite/encodings/tables/cp936.json delete mode 100644 views/node_modules/iconv-lite/encodings/tables/cp949.json delete mode 100644 views/node_modules/iconv-lite/encodings/tables/cp950.json delete mode 100644 views/node_modules/iconv-lite/encodings/tables/eucjp.json delete mode 100644 views/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json delete mode 100644 views/node_modules/iconv-lite/encodings/tables/gbk-added.json delete mode 100644 views/node_modules/iconv-lite/encodings/tables/shiftjis.json delete mode 100644 views/node_modules/iconv-lite/encodings/utf16.js delete mode 100644 views/node_modules/iconv-lite/encodings/utf7.js delete mode 100644 views/node_modules/iconv-lite/lib/bom-handling.js delete mode 100644 views/node_modules/iconv-lite/lib/extend-node.js delete mode 100644 views/node_modules/iconv-lite/lib/index.d.ts delete mode 100644 views/node_modules/iconv-lite/lib/index.js delete mode 100644 views/node_modules/iconv-lite/lib/streams.js delete mode 100644 views/node_modules/iconv-lite/package.json delete mode 100644 views/node_modules/inherits/LICENSE delete mode 100644 views/node_modules/inherits/README.md delete mode 100644 views/node_modules/inherits/inherits.js delete mode 100644 views/node_modules/inherits/inherits_browser.js delete mode 100644 views/node_modules/inherits/package.json delete mode 100644 views/node_modules/ipaddr.js/LICENSE delete mode 100644 views/node_modules/ipaddr.js/README.md delete mode 100644 views/node_modules/ipaddr.js/ipaddr.min.js delete mode 100644 views/node_modules/ipaddr.js/lib/ipaddr.js delete mode 100644 views/node_modules/ipaddr.js/lib/ipaddr.js.d.ts delete mode 100644 views/node_modules/ipaddr.js/package.json delete mode 100644 views/node_modules/is-core-module/.eslintignore delete mode 100644 views/node_modules/is-core-module/.eslintrc delete mode 100644 views/node_modules/is-core-module/.github/FUNDING.yml delete mode 100644 views/node_modules/is-core-module/.github/workflows/node-4+.yml delete mode 100644 views/node_modules/is-core-module/.github/workflows/node-iojs.yml delete mode 100644 views/node_modules/is-core-module/.github/workflows/node-pretest.yml delete mode 100644 views/node_modules/is-core-module/.github/workflows/node-zero.yml delete mode 100644 views/node_modules/is-core-module/.github/workflows/rebase.yml delete mode 100644 views/node_modules/is-core-module/.github/workflows/require-allow-edits.yml delete mode 100644 views/node_modules/is-core-module/.nycrc delete mode 100644 views/node_modules/is-core-module/CHANGELOG.md delete mode 100644 views/node_modules/is-core-module/LICENSE delete mode 100644 views/node_modules/is-core-module/README.md delete mode 100644 views/node_modules/is-core-module/core.json delete mode 100644 views/node_modules/is-core-module/index.js delete mode 100644 views/node_modules/is-core-module/package.json delete mode 100644 views/node_modules/is-core-module/test/index.js delete mode 100644 views/node_modules/is-expression/CHANGELOG.md delete mode 100644 views/node_modules/is-expression/LICENSE.md delete mode 100644 views/node_modules/is-expression/README.md delete mode 100644 views/node_modules/is-expression/index.js delete mode 100644 views/node_modules/is-expression/package.json delete mode 100644 views/node_modules/is-promise/LICENSE delete mode 100644 views/node_modules/is-promise/index.js delete mode 100644 views/node_modules/is-promise/index.mjs delete mode 100644 views/node_modules/is-promise/package.json delete mode 100644 views/node_modules/is-promise/readme.md delete mode 100644 views/node_modules/is-regex/.editorconfig delete mode 100644 views/node_modules/is-regex/.eslintignore delete mode 100644 views/node_modules/is-regex/.eslintrc delete mode 100644 views/node_modules/is-regex/.nycrc delete mode 100644 views/node_modules/is-regex/CHANGELOG.md delete mode 100644 views/node_modules/is-regex/LICENSE delete mode 100644 views/node_modules/is-regex/README.md delete mode 100644 views/node_modules/is-regex/index.js delete mode 100644 views/node_modules/is-regex/package.json delete mode 100644 views/node_modules/is-regex/test/index.js delete mode 100644 views/node_modules/isarray/.npmignore delete mode 100644 views/node_modules/isarray/.travis.yml delete mode 100644 views/node_modules/isarray/Makefile delete mode 100644 views/node_modules/isarray/README.md delete mode 100644 views/node_modules/isarray/component.json delete mode 100644 views/node_modules/isarray/index.js delete mode 100644 views/node_modules/isarray/package.json delete mode 100644 views/node_modules/isarray/test.js delete mode 100644 views/node_modules/js-stringify/.npmignore delete mode 100644 views/node_modules/js-stringify/.travis.yml delete mode 100644 views/node_modules/js-stringify/LICENSE delete mode 100644 views/node_modules/js-stringify/README.md delete mode 100644 views/node_modules/js-stringify/index.js delete mode 100644 views/node_modules/js-stringify/package.json delete mode 100644 views/node_modules/js-stringify/test/index.js delete mode 100644 views/node_modules/json-buffer/.travis.yml delete mode 100644 views/node_modules/json-buffer/LICENSE delete mode 100644 views/node_modules/json-buffer/README.md delete mode 100644 views/node_modules/json-buffer/index.js delete mode 100644 views/node_modules/json-buffer/package.json delete mode 100644 views/node_modules/json-buffer/test/index.js delete mode 100644 views/node_modules/jstransformer/CHANGELOG.md delete mode 100644 views/node_modules/jstransformer/LICENSE.md delete mode 100644 views/node_modules/jstransformer/README.md delete mode 100644 views/node_modules/jstransformer/index.js delete mode 100644 views/node_modules/jstransformer/package.json delete mode 100644 views/node_modules/kareem/.travis.yml delete mode 100644 views/node_modules/kareem/CHANGELOG.md delete mode 100644 views/node_modules/kareem/LICENSE delete mode 100644 views/node_modules/kareem/Makefile delete mode 100644 views/node_modules/kareem/README.md delete mode 100644 views/node_modules/kareem/docs.js delete mode 100644 views/node_modules/kareem/gulpfile.js delete mode 100644 views/node_modules/kareem/index.js delete mode 100644 views/node_modules/kareem/package.json delete mode 100644 views/node_modules/kareem/test/examples.test.js delete mode 100644 views/node_modules/kareem/test/misc.test.js delete mode 100644 views/node_modules/kareem/test/post.test.js delete mode 100644 views/node_modules/kareem/test/pre.test.js delete mode 100644 views/node_modules/kareem/test/wrap.test.js delete mode 100644 views/node_modules/keyv/LICENSE delete mode 100644 views/node_modules/keyv/README.md delete mode 100644 views/node_modules/keyv/package.json delete mode 100644 views/node_modules/keyv/src/index.js delete mode 100644 views/node_modules/libphonenumber-js/.gitlab-ci.yml delete mode 100644 views/node_modules/libphonenumber-js/.nycrc delete mode 100644 views/node_modules/libphonenumber-js/AUTHORS delete mode 100644 views/node_modules/libphonenumber-js/CHANGELOG.md delete mode 100644 views/node_modules/libphonenumber-js/LICENSE delete mode 100644 views/node_modules/libphonenumber-js/LICENSE.Apache delete mode 100644 views/node_modules/libphonenumber-js/METADATA.md delete mode 100644 views/node_modules/libphonenumber-js/README.md delete mode 100644 views/node_modules/libphonenumber-js/autoupdate.cmd delete mode 100644 views/node_modules/libphonenumber-js/autoupdate.sh delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouType.js delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouType.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouType.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouType.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeFormatter.complete.js delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeFormatter.complete.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeFormatter.js delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeFormatter.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeFormatter.util.js delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeFormatter.util.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeFormatter.util.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeFormatter.util.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeParser.js delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeParser.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeState.js delete mode 100644 views/node_modules/libphonenumber-js/build/AsYouTypeState.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/ParseError.js delete mode 100644 views/node_modules/libphonenumber-js/build/ParseError.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/PhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/build/PhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/PhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/PhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/PhoneNumberMatcher.js delete mode 100644 views/node_modules/libphonenumber-js/build/PhoneNumberMatcher.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/PhoneNumberMatcher.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/PhoneNumberMatcher.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/constants.js delete mode 100644 views/node_modules/libphonenumber-js/build/constants.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/LRUCache.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/LRUCache.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/Leniency.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/Leniency.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/Leniency.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/Leniency.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/RegExpCache.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/RegExpCache.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/isValidCandidate.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/isValidCandidate.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/isValidPreCandidate.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/isValidPreCandidate.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/parsePreCandidate.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/parsePreCandidate.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/utf-8.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/utf-8.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/util.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/util.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/util.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers/util.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers_.js delete mode 100644 views/node_modules/libphonenumber-js/build/findNumbers_.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findPhoneNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/build/findPhoneNumbers.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findPhoneNumbers.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/findPhoneNumbers.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/build/findPhoneNumbersInText.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findPhoneNumbersInText.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/findPhoneNumbersInText.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/findPhoneNumbers_.js delete mode 100644 views/node_modules/libphonenumber-js/build/findPhoneNumbers_.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/format.js delete mode 100644 views/node_modules/libphonenumber-js/build/format.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/format.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/format.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/formatIncompletePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/build/formatIncompletePhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/formatIncompletePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/formatIncompletePhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/formatNumberForMobileDialing.js delete mode 100644 views/node_modules/libphonenumber-js/build/formatNumberForMobileDialing.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/formatNumberForMobileDialing.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/formatNumberForMobileDialing.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/format_.js delete mode 100644 views/node_modules/libphonenumber-js/build/format_.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/getCountries.js delete mode 100644 views/node_modules/libphonenumber-js/build/getCountries.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/getCountries.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/getCountries.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/getCountryCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/build/getCountryCallingCode.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/getCountryCallingCode.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/getCountryCallingCode.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/getExampleNumber.js delete mode 100644 views/node_modules/libphonenumber-js/build/getExampleNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/getExampleNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/getExampleNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/getNumberType.js delete mode 100644 views/node_modules/libphonenumber-js/build/getNumberType.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/getNumberType.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/getNumberType.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/RFC3966.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/RFC3966.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/RFC3966.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/RFC3966.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/applyInternationalSeparatorStyle.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/applyInternationalSeparatorStyle.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/applyInternationalSeparatorStyle.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/applyInternationalSeparatorStyle.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/checkNumberLength.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/checkNumberLength.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/checkNumberLength.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/checkNumberLength.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extension/createExtensionPattern.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extension/createExtensionPattern.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extension/extractExtension.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extension/extractExtension.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractCountryCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractCountryCallingCode.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractCountryCallingCode.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractCountryCallingCode.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractNationalNumber.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractNationalNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractNationalNumberFromPossiblyIncompleteNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/extractNationalNumberFromPossiblyIncompleteNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/formatNationalNumberUsingFormat.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/formatNationalNumberUsingFormat.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/getCountryByCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/getCountryByCallingCode.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/getIddPrefix.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/getIddPrefix.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/getNumberType.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/getNumberType.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/isViablePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/isViablePhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/matchesEntirely.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/matchesEntirely.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/matchesEntirely.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/matchesEntirely.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/mergeArrays.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/mergeArrays.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/mergeArrays.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/mergeArrays.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/parseDigits.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/parseDigits.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/parseDigits.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/parseDigits.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/stripIddPrefix.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/stripIddPrefix.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/stripIddPrefix.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/helpers/stripIddPrefix.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/isPossibleNumber.js delete mode 100644 views/node_modules/libphonenumber-js/build/isPossibleNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/isPossibleNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/isPossibleNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/isPossibleNumber_.js delete mode 100644 views/node_modules/libphonenumber-js/build/isPossibleNumber_.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/isPossiblePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/build/isPossiblePhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/isPossiblePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/isPossiblePhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/isValidNumberForRegion.js delete mode 100644 views/node_modules/libphonenumber-js/build/isValidNumberForRegion.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/isValidNumberForRegion.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/isValidNumberForRegion.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/isValidNumberForRegion_.js delete mode 100644 views/node_modules/libphonenumber-js/build/isValidNumberForRegion_.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/isValidPhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/build/isValidPhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/isValidPhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/isValidPhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/metadata.js delete mode 100644 views/node_modules/libphonenumber-js/build/metadata.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/metadata.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/metadata.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/parse.js delete mode 100644 views/node_modules/libphonenumber-js/build/parse.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/parse.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/parse.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/parseIncompletePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/build/parseIncompletePhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/parseIncompletePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/parseIncompletePhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumberFromString.js delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumberFromString.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumberFromString.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumberFromString.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumberFromString_.js delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumberFromString_.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumber_.js delete mode 100644 views/node_modules/libphonenumber-js/build/parsePhoneNumber_.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/parse_.js delete mode 100644 views/node_modules/libphonenumber-js/build/parse_.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/searchNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/build/searchNumbers.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/searchNumbers.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/searchNumbers.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/searchPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/build/searchPhoneNumbersInText.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/searchPhoneNumbersInText.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/searchPhoneNumbersInText.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/tools/semver-compare.js delete mode 100644 views/node_modules/libphonenumber-js/build/tools/semver-compare.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/tools/semver-compare.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/tools/semver-compare.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/validate.js delete mode 100644 views/node_modules/libphonenumber-js/build/validate.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/validate.test.js delete mode 100644 views/node_modules/libphonenumber-js/build/validate.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/build/validate_.js delete mode 100644 views/node_modules/libphonenumber-js/build/validate_.js.map delete mode 100644 views/node_modules/libphonenumber-js/bundle/libphonenumber-js.min.js delete mode 100644 views/node_modules/libphonenumber-js/bundle/libphonenumber-js.min.js.map delete mode 100644 views/node_modules/libphonenumber-js/bundle/libphonenumber-max.js delete mode 100644 views/node_modules/libphonenumber-js/bundle/libphonenumber-max.js.map delete mode 100644 views/node_modules/libphonenumber-js/bundle/libphonenumber-min.js delete mode 100644 views/node_modules/libphonenumber-js/bundle/libphonenumber-min.js.map delete mode 100644 views/node_modules/libphonenumber-js/bundle/libphonenumber-mobile.js delete mode 100644 views/node_modules/libphonenumber-js/bundle/libphonenumber-mobile.js.map delete mode 100644 views/node_modules/libphonenumber-js/core/index.commonjs.js delete mode 100644 views/node_modules/libphonenumber-js/core/index.d.ts delete mode 100644 views/node_modules/libphonenumber-js/core/index.js delete mode 100644 views/node_modules/libphonenumber-js/core/package.json delete mode 100644 views/node_modules/libphonenumber-js/custom.d.ts delete mode 100644 views/node_modules/libphonenumber-js/custom.js delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouType.js delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouType.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouType.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouType.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeParser.js delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeParser.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeState.js delete mode 100644 views/node_modules/libphonenumber-js/es6/AsYouTypeState.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/ParseError.js delete mode 100644 views/node_modules/libphonenumber-js/es6/ParseError.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/PhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/es6/PhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/PhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/PhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/PhoneNumberMatcher.js delete mode 100644 views/node_modules/libphonenumber-js/es6/PhoneNumberMatcher.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/PhoneNumberMatcher.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/PhoneNumberMatcher.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/constants.js delete mode 100644 views/node_modules/libphonenumber-js/es6/constants.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/LRUCache.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/LRUCache.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/Leniency.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/Leniency.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/Leniency.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/Leniency.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/RegExpCache.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/RegExpCache.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/isValidCandidate.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/isValidCandidate.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/isValidPreCandidate.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/isValidPreCandidate.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/parsePreCandidate.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/parsePreCandidate.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/utf-8.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/utf-8.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/util.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/util.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/util.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers/util.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers_.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findNumbers_.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findPhoneNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findPhoneNumbers.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findPhoneNumbers.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findPhoneNumbers.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findPhoneNumbersInText.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findPhoneNumbersInText.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findPhoneNumbersInText.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/findPhoneNumbers_.js delete mode 100644 views/node_modules/libphonenumber-js/es6/findPhoneNumbers_.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/format.js delete mode 100644 views/node_modules/libphonenumber-js/es6/format.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/format.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/format.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/formatIncompletePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/es6/formatIncompletePhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/formatIncompletePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/formatIncompletePhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/formatNumberForMobileDialing.js delete mode 100644 views/node_modules/libphonenumber-js/es6/formatNumberForMobileDialing.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/formatNumberForMobileDialing.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/formatNumberForMobileDialing.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/format_.js delete mode 100644 views/node_modules/libphonenumber-js/es6/format_.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/getCountries.js delete mode 100644 views/node_modules/libphonenumber-js/es6/getCountries.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/getCountries.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/getCountries.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/getCountryCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/es6/getCountryCallingCode.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/getCountryCallingCode.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/getCountryCallingCode.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/getExampleNumber.js delete mode 100644 views/node_modules/libphonenumber-js/es6/getExampleNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/getExampleNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/getExampleNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/getNumberType.js delete mode 100644 views/node_modules/libphonenumber-js/es6/getNumberType.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/getNumberType.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/getNumberType.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/RFC3966.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/RFC3966.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/RFC3966.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/RFC3966.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/checkNumberLength.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/getNumberType.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/getNumberType.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/matchesEntirely.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/mergeArrays.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/mergeArrays.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/mergeArrays.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/mergeArrays.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/parseDigits.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/parseDigits.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/parseDigits.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/parseDigits.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/isPossibleNumber.js delete mode 100644 views/node_modules/libphonenumber-js/es6/isPossibleNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/isPossibleNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/isPossibleNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/isPossibleNumber_.js delete mode 100644 views/node_modules/libphonenumber-js/es6/isPossibleNumber_.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/isPossiblePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/es6/isPossiblePhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/isPossiblePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/isPossiblePhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/isValidNumberForRegion.js delete mode 100644 views/node_modules/libphonenumber-js/es6/isValidNumberForRegion.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/isValidNumberForRegion.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/isValidNumberForRegion.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/isValidNumberForRegion_.js delete mode 100644 views/node_modules/libphonenumber-js/es6/isValidNumberForRegion_.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/isValidPhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/es6/isValidPhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/isValidPhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/isValidPhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/metadata.js delete mode 100644 views/node_modules/libphonenumber-js/es6/metadata.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/metadata.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/metadata.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/parse.js delete mode 100644 views/node_modules/libphonenumber-js/es6/parse.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/parse.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/parse.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumber.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumber.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumberFromString.js delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumberFromString.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumberFromString.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumberFromString.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumberFromString_.js delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumberFromString_.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumber_.js delete mode 100644 views/node_modules/libphonenumber-js/es6/parsePhoneNumber_.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/parse_.js delete mode 100644 views/node_modules/libphonenumber-js/es6/parse_.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/searchNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/es6/searchNumbers.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/searchNumbers.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/searchNumbers.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/searchPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/es6/searchPhoneNumbersInText.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/searchPhoneNumbersInText.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/searchPhoneNumbersInText.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/tools/semver-compare.js delete mode 100644 views/node_modules/libphonenumber-js/es6/tools/semver-compare.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/tools/semver-compare.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/tools/semver-compare.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/validate.js delete mode 100644 views/node_modules/libphonenumber-js/es6/validate.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/validate.test.js delete mode 100644 views/node_modules/libphonenumber-js/es6/validate.test.js.map delete mode 100644 views/node_modules/libphonenumber-js/es6/validate_.js delete mode 100644 views/node_modules/libphonenumber-js/es6/validate_.js.map delete mode 100644 views/node_modules/libphonenumber-js/examples.mobile.json delete mode 100644 views/node_modules/libphonenumber-js/examples.mobile.json.js delete mode 100644 views/node_modules/libphonenumber-js/index.common.js delete mode 100644 views/node_modules/libphonenumber-js/index.d.ts delete mode 100644 views/node_modules/libphonenumber-js/index.es6.exports/PhoneNumberSearch.js delete mode 100644 views/node_modules/libphonenumber-js/index.es6.exports/findPhoneNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/index.es6.exports/format.js delete mode 100644 views/node_modules/libphonenumber-js/index.es6.exports/getNumberType.js delete mode 100644 views/node_modules/libphonenumber-js/index.es6.exports/isPossibleNumber.js delete mode 100644 views/node_modules/libphonenumber-js/index.es6.exports/isValidNumber.js delete mode 100644 views/node_modules/libphonenumber-js/index.es6.exports/isValidNumberForRegion.js delete mode 100644 views/node_modules/libphonenumber-js/index.es6.exports/parse.js delete mode 100644 views/node_modules/libphonenumber-js/index.es6.exports/searchPhoneNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/index.es6.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/AsYouType.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/Metadata.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/PhoneNumberMatcher.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/findNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/findPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/formatIncompletePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/getCountries.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/getCountryCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/getExampleNumber.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/getExtPrefix.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/isPossiblePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/isSupportedCountry.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/isValidPhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/parsePhoneNumberFromString.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/parsePhoneNumberWithError.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/searchNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/max/exports/searchPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/max/index.commonjs.js delete mode 100644 views/node_modules/libphonenumber-js/max/index.js delete mode 100644 views/node_modules/libphonenumber-js/max/metadata.js delete mode 100644 views/node_modules/libphonenumber-js/max/package.json delete mode 100644 views/node_modules/libphonenumber-js/metadata.full.json delete mode 100644 views/node_modules/libphonenumber-js/metadata.full.json.js delete mode 100644 views/node_modules/libphonenumber-js/metadata.min.json delete mode 100644 views/node_modules/libphonenumber-js/metadata.min.json.js delete mode 100644 views/node_modules/libphonenumber-js/metadata.mobile.json delete mode 100644 views/node_modules/libphonenumber-js/metadata.mobile.json.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/AsYouType.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/Metadata.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/PhoneNumberMatcher.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/findNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/findPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/formatIncompletePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/getCountries.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/getCountryCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/getExampleNumber.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/getExtPrefix.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/isPossiblePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/isSupportedCountry.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/isValidPhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/parsePhoneNumberFromString.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/parsePhoneNumberWithError.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/searchNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/min/exports/searchPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/min/index.commonjs.js delete mode 100644 views/node_modules/libphonenumber-js/min/index.d.ts delete mode 100644 views/node_modules/libphonenumber-js/min/index.js delete mode 100644 views/node_modules/libphonenumber-js/min/metadata.js delete mode 100644 views/node_modules/libphonenumber-js/min/package.json delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/AsYouType.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/Metadata.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/PhoneNumberMatcher.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/findNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/findPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/formatIncompletePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/getCountries.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/getCountryCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/getExampleNumber.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/getExtPrefix.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/isPossiblePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/isSupportedCountry.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/isValidPhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/parsePhoneNumberFromString.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/parsePhoneNumberWithError.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/searchNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/exports/searchPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/index.commonjs.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/index.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/metadata.js delete mode 100644 views/node_modules/libphonenumber-js/mobile/package.json delete mode 100644 views/node_modules/libphonenumber-js/package.json delete mode 100644 views/node_modules/libphonenumber-js/rollup.config.js delete mode 100644 views/node_modules/libphonenumber-js/runnable/download.js delete mode 100644 views/node_modules/libphonenumber-js/runnable/generate-country-codes.js delete mode 100644 views/node_modules/libphonenumber-js/runnable/generate.js delete mode 100644 views/node_modules/libphonenumber-js/runnable/json-to-js.js delete mode 100644 views/node_modules/libphonenumber-js/runnable/metadata-branch.js delete mode 100644 views/node_modules/libphonenumber-js/runnable/metadata-update-and-push-and-pull-request.js delete mode 100644 views/node_modules/libphonenumber-js/runnable/metadata-update-and-push.js delete mode 100644 views/node_modules/libphonenumber-js/runnable/metadata-update-and-release.js delete mode 100644 views/node_modules/libphonenumber-js/runnable/modules/commit.js delete mode 100644 views/node_modules/libphonenumber-js/runnable/modules/exec.js delete mode 100644 views/node_modules/libphonenumber-js/runnable/modules/update-metadata.js delete mode 100644 views/node_modules/libphonenumber-js/source/AsYouType.js delete mode 100644 views/node_modules/libphonenumber-js/source/AsYouType.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/AsYouTypeFormatter.complete.js delete mode 100644 views/node_modules/libphonenumber-js/source/AsYouTypeFormatter.js delete mode 100644 views/node_modules/libphonenumber-js/source/AsYouTypeFormatter.util.js delete mode 100644 views/node_modules/libphonenumber-js/source/AsYouTypeFormatter.util.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/AsYouTypeParser.js delete mode 100644 views/node_modules/libphonenumber-js/source/AsYouTypeState.js delete mode 100644 views/node_modules/libphonenumber-js/source/ParseError.js delete mode 100644 views/node_modules/libphonenumber-js/source/PhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/source/PhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/PhoneNumberMatcher.js delete mode 100644 views/node_modules/libphonenumber-js/source/PhoneNumberMatcher.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/constants.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers/LRUCache.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers/Leniency.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers/Leniency.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers/RegExpCache.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers/isValidCandidate.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers/isValidPreCandidate.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers/parsePreCandidate.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers/utf-8.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers/util.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers/util.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/findNumbers_.js delete mode 100644 views/node_modules/libphonenumber-js/source/findPhoneNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/source/findPhoneNumbers.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/findPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/source/findPhoneNumbersInText.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/findPhoneNumbers_.js delete mode 100644 views/node_modules/libphonenumber-js/source/format.js delete mode 100644 views/node_modules/libphonenumber-js/source/format.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/formatIncompletePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/source/formatIncompletePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/formatNumberForMobileDialing.js delete mode 100644 views/node_modules/libphonenumber-js/source/formatNumberForMobileDialing.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/format_.js delete mode 100644 views/node_modules/libphonenumber-js/source/getCountries.js delete mode 100644 views/node_modules/libphonenumber-js/source/getCountries.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/getCountryCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/source/getCountryCallingCode.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/getExampleNumber.js delete mode 100644 views/node_modules/libphonenumber-js/source/getExampleNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/getNumberType.js delete mode 100644 views/node_modules/libphonenumber-js/source/getNumberType.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/RFC3966.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/RFC3966.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/applyInternationalSeparatorStyle.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/applyInternationalSeparatorStyle.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/checkNumberLength.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/checkNumberLength.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/extension/createExtensionPattern.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/extension/extractExtension.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/extractCountryCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/extractCountryCallingCode.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/extractNationalNumber.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/extractNationalNumberFromPossiblyIncompleteNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/formatNationalNumberUsingFormat.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/getCountryByCallingCode.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/getIddPrefix.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/getNumberType.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/isViablePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/matchesEntirely.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/matchesEntirely.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/mergeArrays.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/mergeArrays.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/parseDigits.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/parseDigits.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/stripIddPrefix.js delete mode 100644 views/node_modules/libphonenumber-js/source/helpers/stripIddPrefix.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/isPossibleNumber.js delete mode 100644 views/node_modules/libphonenumber-js/source/isPossibleNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/isPossibleNumber_.js delete mode 100644 views/node_modules/libphonenumber-js/source/isPossiblePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/source/isPossiblePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/isValidNumberForRegion.js delete mode 100644 views/node_modules/libphonenumber-js/source/isValidNumberForRegion.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/isValidNumberForRegion_.js delete mode 100644 views/node_modules/libphonenumber-js/source/isValidPhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/source/isValidPhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/metadata.js delete mode 100644 views/node_modules/libphonenumber-js/source/metadata.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/parse.js delete mode 100644 views/node_modules/libphonenumber-js/source/parse.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/parsePhoneNumber.js delete mode 100644 views/node_modules/libphonenumber-js/source/parsePhoneNumber.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/parsePhoneNumberFromString.js delete mode 100644 views/node_modules/libphonenumber-js/source/parsePhoneNumberFromString.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/parsePhoneNumberFromString_.js delete mode 100644 views/node_modules/libphonenumber-js/source/parsePhoneNumber_.js delete mode 100644 views/node_modules/libphonenumber-js/source/parse_.js delete mode 100644 views/node_modules/libphonenumber-js/source/searchNumbers.js delete mode 100644 views/node_modules/libphonenumber-js/source/searchNumbers.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/searchPhoneNumbersInText.js delete mode 100644 views/node_modules/libphonenumber-js/source/searchPhoneNumbersInText.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/tools/semver-compare.js delete mode 100644 views/node_modules/libphonenumber-js/source/tools/semver-compare.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/validate.js delete mode 100644 views/node_modules/libphonenumber-js/source/validate.test.js delete mode 100644 views/node_modules/libphonenumber-js/source/validate_.js delete mode 100644 views/node_modules/libphonenumber-js/types.d.ts delete mode 100644 views/node_modules/lodash/LICENSE delete mode 100644 views/node_modules/lodash/README.md delete mode 100644 views/node_modules/lodash/_DataView.js delete mode 100644 views/node_modules/lodash/_Hash.js delete mode 100644 views/node_modules/lodash/_LazyWrapper.js delete mode 100644 views/node_modules/lodash/_ListCache.js delete mode 100644 views/node_modules/lodash/_LodashWrapper.js delete mode 100644 views/node_modules/lodash/_Map.js delete mode 100644 views/node_modules/lodash/_MapCache.js delete mode 100644 views/node_modules/lodash/_Promise.js delete mode 100644 views/node_modules/lodash/_Set.js delete mode 100644 views/node_modules/lodash/_SetCache.js delete mode 100644 views/node_modules/lodash/_Stack.js delete mode 100644 views/node_modules/lodash/_Symbol.js delete mode 100644 views/node_modules/lodash/_Uint8Array.js delete mode 100644 views/node_modules/lodash/_WeakMap.js delete mode 100644 views/node_modules/lodash/_apply.js delete mode 100644 views/node_modules/lodash/_arrayAggregator.js delete mode 100644 views/node_modules/lodash/_arrayEach.js delete mode 100644 views/node_modules/lodash/_arrayEachRight.js delete mode 100644 views/node_modules/lodash/_arrayEvery.js delete mode 100644 views/node_modules/lodash/_arrayFilter.js delete mode 100644 views/node_modules/lodash/_arrayIncludes.js delete mode 100644 views/node_modules/lodash/_arrayIncludesWith.js delete mode 100644 views/node_modules/lodash/_arrayLikeKeys.js delete mode 100644 views/node_modules/lodash/_arrayMap.js delete mode 100644 views/node_modules/lodash/_arrayPush.js delete mode 100644 views/node_modules/lodash/_arrayReduce.js delete mode 100644 views/node_modules/lodash/_arrayReduceRight.js delete mode 100644 views/node_modules/lodash/_arraySample.js delete mode 100644 views/node_modules/lodash/_arraySampleSize.js delete mode 100644 views/node_modules/lodash/_arrayShuffle.js delete mode 100644 views/node_modules/lodash/_arraySome.js delete mode 100644 views/node_modules/lodash/_asciiSize.js delete mode 100644 views/node_modules/lodash/_asciiToArray.js delete mode 100644 views/node_modules/lodash/_asciiWords.js delete mode 100644 views/node_modules/lodash/_assignMergeValue.js delete mode 100644 views/node_modules/lodash/_assignValue.js delete mode 100644 views/node_modules/lodash/_assocIndexOf.js delete mode 100644 views/node_modules/lodash/_baseAggregator.js delete mode 100644 views/node_modules/lodash/_baseAssign.js delete mode 100644 views/node_modules/lodash/_baseAssignIn.js delete mode 100644 views/node_modules/lodash/_baseAssignValue.js delete mode 100644 views/node_modules/lodash/_baseAt.js delete mode 100644 views/node_modules/lodash/_baseClamp.js delete mode 100644 views/node_modules/lodash/_baseClone.js delete mode 100644 views/node_modules/lodash/_baseConforms.js delete mode 100644 views/node_modules/lodash/_baseConformsTo.js delete mode 100644 views/node_modules/lodash/_baseCreate.js delete mode 100644 views/node_modules/lodash/_baseDelay.js delete mode 100644 views/node_modules/lodash/_baseDifference.js delete mode 100644 views/node_modules/lodash/_baseEach.js delete mode 100644 views/node_modules/lodash/_baseEachRight.js delete mode 100644 views/node_modules/lodash/_baseEvery.js delete mode 100644 views/node_modules/lodash/_baseExtremum.js delete mode 100644 views/node_modules/lodash/_baseFill.js delete mode 100644 views/node_modules/lodash/_baseFilter.js delete mode 100644 views/node_modules/lodash/_baseFindIndex.js delete mode 100644 views/node_modules/lodash/_baseFindKey.js delete mode 100644 views/node_modules/lodash/_baseFlatten.js delete mode 100644 views/node_modules/lodash/_baseFor.js delete mode 100644 views/node_modules/lodash/_baseForOwn.js delete mode 100644 views/node_modules/lodash/_baseForOwnRight.js delete mode 100644 views/node_modules/lodash/_baseForRight.js delete mode 100644 views/node_modules/lodash/_baseFunctions.js delete mode 100644 views/node_modules/lodash/_baseGet.js delete mode 100644 views/node_modules/lodash/_baseGetAllKeys.js delete mode 100644 views/node_modules/lodash/_baseGetTag.js delete mode 100644 views/node_modules/lodash/_baseGt.js delete mode 100644 views/node_modules/lodash/_baseHas.js delete mode 100644 views/node_modules/lodash/_baseHasIn.js delete mode 100644 views/node_modules/lodash/_baseInRange.js delete mode 100644 views/node_modules/lodash/_baseIndexOf.js delete mode 100644 views/node_modules/lodash/_baseIndexOfWith.js delete mode 100644 views/node_modules/lodash/_baseIntersection.js delete mode 100644 views/node_modules/lodash/_baseInverter.js delete mode 100644 views/node_modules/lodash/_baseInvoke.js delete mode 100644 views/node_modules/lodash/_baseIsArguments.js delete mode 100644 views/node_modules/lodash/_baseIsArrayBuffer.js delete mode 100644 views/node_modules/lodash/_baseIsDate.js delete mode 100644 views/node_modules/lodash/_baseIsEqual.js delete mode 100644 views/node_modules/lodash/_baseIsEqualDeep.js delete mode 100644 views/node_modules/lodash/_baseIsMap.js delete mode 100644 views/node_modules/lodash/_baseIsMatch.js delete mode 100644 views/node_modules/lodash/_baseIsNaN.js delete mode 100644 views/node_modules/lodash/_baseIsNative.js delete mode 100644 views/node_modules/lodash/_baseIsRegExp.js delete mode 100644 views/node_modules/lodash/_baseIsSet.js delete mode 100644 views/node_modules/lodash/_baseIsTypedArray.js delete mode 100644 views/node_modules/lodash/_baseIteratee.js delete mode 100644 views/node_modules/lodash/_baseKeys.js delete mode 100644 views/node_modules/lodash/_baseKeysIn.js delete mode 100644 views/node_modules/lodash/_baseLodash.js delete mode 100644 views/node_modules/lodash/_baseLt.js delete mode 100644 views/node_modules/lodash/_baseMap.js delete mode 100644 views/node_modules/lodash/_baseMatches.js delete mode 100644 views/node_modules/lodash/_baseMatchesProperty.js delete mode 100644 views/node_modules/lodash/_baseMean.js delete mode 100644 views/node_modules/lodash/_baseMerge.js delete mode 100644 views/node_modules/lodash/_baseMergeDeep.js delete mode 100644 views/node_modules/lodash/_baseNth.js delete mode 100644 views/node_modules/lodash/_baseOrderBy.js delete mode 100644 views/node_modules/lodash/_basePick.js delete mode 100644 views/node_modules/lodash/_basePickBy.js delete mode 100644 views/node_modules/lodash/_baseProperty.js delete mode 100644 views/node_modules/lodash/_basePropertyDeep.js delete mode 100644 views/node_modules/lodash/_basePropertyOf.js delete mode 100644 views/node_modules/lodash/_basePullAll.js delete mode 100644 views/node_modules/lodash/_basePullAt.js delete mode 100644 views/node_modules/lodash/_baseRandom.js delete mode 100644 views/node_modules/lodash/_baseRange.js delete mode 100644 views/node_modules/lodash/_baseReduce.js delete mode 100644 views/node_modules/lodash/_baseRepeat.js delete mode 100644 views/node_modules/lodash/_baseRest.js delete mode 100644 views/node_modules/lodash/_baseSample.js delete mode 100644 views/node_modules/lodash/_baseSampleSize.js delete mode 100644 views/node_modules/lodash/_baseSet.js delete mode 100644 views/node_modules/lodash/_baseSetData.js delete mode 100644 views/node_modules/lodash/_baseSetToString.js delete mode 100644 views/node_modules/lodash/_baseShuffle.js delete mode 100644 views/node_modules/lodash/_baseSlice.js delete mode 100644 views/node_modules/lodash/_baseSome.js delete mode 100644 views/node_modules/lodash/_baseSortBy.js delete mode 100644 views/node_modules/lodash/_baseSortedIndex.js delete mode 100644 views/node_modules/lodash/_baseSortedIndexBy.js delete mode 100644 views/node_modules/lodash/_baseSortedUniq.js delete mode 100644 views/node_modules/lodash/_baseSum.js delete mode 100644 views/node_modules/lodash/_baseTimes.js delete mode 100644 views/node_modules/lodash/_baseToNumber.js delete mode 100644 views/node_modules/lodash/_baseToPairs.js delete mode 100644 views/node_modules/lodash/_baseToString.js delete mode 100644 views/node_modules/lodash/_baseTrim.js delete mode 100644 views/node_modules/lodash/_baseUnary.js delete mode 100644 views/node_modules/lodash/_baseUniq.js delete mode 100644 views/node_modules/lodash/_baseUnset.js delete mode 100644 views/node_modules/lodash/_baseUpdate.js delete mode 100644 views/node_modules/lodash/_baseValues.js delete mode 100644 views/node_modules/lodash/_baseWhile.js delete mode 100644 views/node_modules/lodash/_baseWrapperValue.js delete mode 100644 views/node_modules/lodash/_baseXor.js delete mode 100644 views/node_modules/lodash/_baseZipObject.js delete mode 100644 views/node_modules/lodash/_cacheHas.js delete mode 100644 views/node_modules/lodash/_castArrayLikeObject.js delete mode 100644 views/node_modules/lodash/_castFunction.js delete mode 100644 views/node_modules/lodash/_castPath.js delete mode 100644 views/node_modules/lodash/_castRest.js delete mode 100644 views/node_modules/lodash/_castSlice.js delete mode 100644 views/node_modules/lodash/_charsEndIndex.js delete mode 100644 views/node_modules/lodash/_charsStartIndex.js delete mode 100644 views/node_modules/lodash/_cloneArrayBuffer.js delete mode 100644 views/node_modules/lodash/_cloneBuffer.js delete mode 100644 views/node_modules/lodash/_cloneDataView.js delete mode 100644 views/node_modules/lodash/_cloneRegExp.js delete mode 100644 views/node_modules/lodash/_cloneSymbol.js delete mode 100644 views/node_modules/lodash/_cloneTypedArray.js delete mode 100644 views/node_modules/lodash/_compareAscending.js delete mode 100644 views/node_modules/lodash/_compareMultiple.js delete mode 100644 views/node_modules/lodash/_composeArgs.js delete mode 100644 views/node_modules/lodash/_composeArgsRight.js delete mode 100644 views/node_modules/lodash/_copyArray.js delete mode 100644 views/node_modules/lodash/_copyObject.js delete mode 100644 views/node_modules/lodash/_copySymbols.js delete mode 100644 views/node_modules/lodash/_copySymbolsIn.js delete mode 100644 views/node_modules/lodash/_coreJsData.js delete mode 100644 views/node_modules/lodash/_countHolders.js delete mode 100644 views/node_modules/lodash/_createAggregator.js delete mode 100644 views/node_modules/lodash/_createAssigner.js delete mode 100644 views/node_modules/lodash/_createBaseEach.js delete mode 100644 views/node_modules/lodash/_createBaseFor.js delete mode 100644 views/node_modules/lodash/_createBind.js delete mode 100644 views/node_modules/lodash/_createCaseFirst.js delete mode 100644 views/node_modules/lodash/_createCompounder.js delete mode 100644 views/node_modules/lodash/_createCtor.js delete mode 100644 views/node_modules/lodash/_createCurry.js delete mode 100644 views/node_modules/lodash/_createFind.js delete mode 100644 views/node_modules/lodash/_createFlow.js delete mode 100644 views/node_modules/lodash/_createHybrid.js delete mode 100644 views/node_modules/lodash/_createInverter.js delete mode 100644 views/node_modules/lodash/_createMathOperation.js delete mode 100644 views/node_modules/lodash/_createOver.js delete mode 100644 views/node_modules/lodash/_createPadding.js delete mode 100644 views/node_modules/lodash/_createPartial.js delete mode 100644 views/node_modules/lodash/_createRange.js delete mode 100644 views/node_modules/lodash/_createRecurry.js delete mode 100644 views/node_modules/lodash/_createRelationalOperation.js delete mode 100644 views/node_modules/lodash/_createRound.js delete mode 100644 views/node_modules/lodash/_createSet.js delete mode 100644 views/node_modules/lodash/_createToPairs.js delete mode 100644 views/node_modules/lodash/_createWrap.js delete mode 100644 views/node_modules/lodash/_customDefaultsAssignIn.js delete mode 100644 views/node_modules/lodash/_customDefaultsMerge.js delete mode 100644 views/node_modules/lodash/_customOmitClone.js delete mode 100644 views/node_modules/lodash/_deburrLetter.js delete mode 100644 views/node_modules/lodash/_defineProperty.js delete mode 100644 views/node_modules/lodash/_equalArrays.js delete mode 100644 views/node_modules/lodash/_equalByTag.js delete mode 100644 views/node_modules/lodash/_equalObjects.js delete mode 100644 views/node_modules/lodash/_escapeHtmlChar.js delete mode 100644 views/node_modules/lodash/_escapeStringChar.js delete mode 100644 views/node_modules/lodash/_flatRest.js delete mode 100644 views/node_modules/lodash/_freeGlobal.js delete mode 100644 views/node_modules/lodash/_getAllKeys.js delete mode 100644 views/node_modules/lodash/_getAllKeysIn.js delete mode 100644 views/node_modules/lodash/_getData.js delete mode 100644 views/node_modules/lodash/_getFuncName.js delete mode 100644 views/node_modules/lodash/_getHolder.js delete mode 100644 views/node_modules/lodash/_getMapData.js delete mode 100644 views/node_modules/lodash/_getMatchData.js delete mode 100644 views/node_modules/lodash/_getNative.js delete mode 100644 views/node_modules/lodash/_getPrototype.js delete mode 100644 views/node_modules/lodash/_getRawTag.js delete mode 100644 views/node_modules/lodash/_getSymbols.js delete mode 100644 views/node_modules/lodash/_getSymbolsIn.js delete mode 100644 views/node_modules/lodash/_getTag.js delete mode 100644 views/node_modules/lodash/_getValue.js delete mode 100644 views/node_modules/lodash/_getView.js delete mode 100644 views/node_modules/lodash/_getWrapDetails.js delete mode 100644 views/node_modules/lodash/_hasPath.js delete mode 100644 views/node_modules/lodash/_hasUnicode.js delete mode 100644 views/node_modules/lodash/_hasUnicodeWord.js delete mode 100644 views/node_modules/lodash/_hashClear.js delete mode 100644 views/node_modules/lodash/_hashDelete.js delete mode 100644 views/node_modules/lodash/_hashGet.js delete mode 100644 views/node_modules/lodash/_hashHas.js delete mode 100644 views/node_modules/lodash/_hashSet.js delete mode 100644 views/node_modules/lodash/_initCloneArray.js delete mode 100644 views/node_modules/lodash/_initCloneByTag.js delete mode 100644 views/node_modules/lodash/_initCloneObject.js delete mode 100644 views/node_modules/lodash/_insertWrapDetails.js delete mode 100644 views/node_modules/lodash/_isFlattenable.js delete mode 100644 views/node_modules/lodash/_isIndex.js delete mode 100644 views/node_modules/lodash/_isIterateeCall.js delete mode 100644 views/node_modules/lodash/_isKey.js delete mode 100644 views/node_modules/lodash/_isKeyable.js delete mode 100644 views/node_modules/lodash/_isLaziable.js delete mode 100644 views/node_modules/lodash/_isMaskable.js delete mode 100644 views/node_modules/lodash/_isMasked.js delete mode 100644 views/node_modules/lodash/_isPrototype.js delete mode 100644 views/node_modules/lodash/_isStrictComparable.js delete mode 100644 views/node_modules/lodash/_iteratorToArray.js delete mode 100644 views/node_modules/lodash/_lazyClone.js delete mode 100644 views/node_modules/lodash/_lazyReverse.js delete mode 100644 views/node_modules/lodash/_lazyValue.js delete mode 100644 views/node_modules/lodash/_listCacheClear.js delete mode 100644 views/node_modules/lodash/_listCacheDelete.js delete mode 100644 views/node_modules/lodash/_listCacheGet.js delete mode 100644 views/node_modules/lodash/_listCacheHas.js delete mode 100644 views/node_modules/lodash/_listCacheSet.js delete mode 100644 views/node_modules/lodash/_mapCacheClear.js delete mode 100644 views/node_modules/lodash/_mapCacheDelete.js delete mode 100644 views/node_modules/lodash/_mapCacheGet.js delete mode 100644 views/node_modules/lodash/_mapCacheHas.js delete mode 100644 views/node_modules/lodash/_mapCacheSet.js delete mode 100644 views/node_modules/lodash/_mapToArray.js delete mode 100644 views/node_modules/lodash/_matchesStrictComparable.js delete mode 100644 views/node_modules/lodash/_memoizeCapped.js delete mode 100644 views/node_modules/lodash/_mergeData.js delete mode 100644 views/node_modules/lodash/_metaMap.js delete mode 100644 views/node_modules/lodash/_nativeCreate.js delete mode 100644 views/node_modules/lodash/_nativeKeys.js delete mode 100644 views/node_modules/lodash/_nativeKeysIn.js delete mode 100644 views/node_modules/lodash/_nodeUtil.js delete mode 100644 views/node_modules/lodash/_objectToString.js delete mode 100644 views/node_modules/lodash/_overArg.js delete mode 100644 views/node_modules/lodash/_overRest.js delete mode 100644 views/node_modules/lodash/_parent.js delete mode 100644 views/node_modules/lodash/_reEscape.js delete mode 100644 views/node_modules/lodash/_reEvaluate.js delete mode 100644 views/node_modules/lodash/_reInterpolate.js delete mode 100644 views/node_modules/lodash/_realNames.js delete mode 100644 views/node_modules/lodash/_reorder.js delete mode 100644 views/node_modules/lodash/_replaceHolders.js delete mode 100644 views/node_modules/lodash/_root.js delete mode 100644 views/node_modules/lodash/_safeGet.js delete mode 100644 views/node_modules/lodash/_setCacheAdd.js delete mode 100644 views/node_modules/lodash/_setCacheHas.js delete mode 100644 views/node_modules/lodash/_setData.js delete mode 100644 views/node_modules/lodash/_setToArray.js delete mode 100644 views/node_modules/lodash/_setToPairs.js delete mode 100644 views/node_modules/lodash/_setToString.js delete mode 100644 views/node_modules/lodash/_setWrapToString.js delete mode 100644 views/node_modules/lodash/_shortOut.js delete mode 100644 views/node_modules/lodash/_shuffleSelf.js delete mode 100644 views/node_modules/lodash/_stackClear.js delete mode 100644 views/node_modules/lodash/_stackDelete.js delete mode 100644 views/node_modules/lodash/_stackGet.js delete mode 100644 views/node_modules/lodash/_stackHas.js delete mode 100644 views/node_modules/lodash/_stackSet.js delete mode 100644 views/node_modules/lodash/_strictIndexOf.js delete mode 100644 views/node_modules/lodash/_strictLastIndexOf.js delete mode 100644 views/node_modules/lodash/_stringSize.js delete mode 100644 views/node_modules/lodash/_stringToArray.js delete mode 100644 views/node_modules/lodash/_stringToPath.js delete mode 100644 views/node_modules/lodash/_toKey.js delete mode 100644 views/node_modules/lodash/_toSource.js delete mode 100644 views/node_modules/lodash/_trimmedEndIndex.js delete mode 100644 views/node_modules/lodash/_unescapeHtmlChar.js delete mode 100644 views/node_modules/lodash/_unicodeSize.js delete mode 100644 views/node_modules/lodash/_unicodeToArray.js delete mode 100644 views/node_modules/lodash/_unicodeWords.js delete mode 100644 views/node_modules/lodash/_updateWrapDetails.js delete mode 100644 views/node_modules/lodash/_wrapperClone.js delete mode 100644 views/node_modules/lodash/add.js delete mode 100644 views/node_modules/lodash/after.js delete mode 100644 views/node_modules/lodash/array.js delete mode 100644 views/node_modules/lodash/ary.js delete mode 100644 views/node_modules/lodash/assign.js delete mode 100644 views/node_modules/lodash/assignIn.js delete mode 100644 views/node_modules/lodash/assignInWith.js delete mode 100644 views/node_modules/lodash/assignWith.js delete mode 100644 views/node_modules/lodash/at.js delete mode 100644 views/node_modules/lodash/attempt.js delete mode 100644 views/node_modules/lodash/before.js delete mode 100644 views/node_modules/lodash/bind.js delete mode 100644 views/node_modules/lodash/bindAll.js delete mode 100644 views/node_modules/lodash/bindKey.js delete mode 100644 views/node_modules/lodash/camelCase.js delete mode 100644 views/node_modules/lodash/capitalize.js delete mode 100644 views/node_modules/lodash/castArray.js delete mode 100644 views/node_modules/lodash/ceil.js delete mode 100644 views/node_modules/lodash/chain.js delete mode 100644 views/node_modules/lodash/chunk.js delete mode 100644 views/node_modules/lodash/clamp.js delete mode 100644 views/node_modules/lodash/clone.js delete mode 100644 views/node_modules/lodash/cloneDeep.js delete mode 100644 views/node_modules/lodash/cloneDeepWith.js delete mode 100644 views/node_modules/lodash/cloneWith.js delete mode 100644 views/node_modules/lodash/collection.js delete mode 100644 views/node_modules/lodash/commit.js delete mode 100644 views/node_modules/lodash/compact.js delete mode 100644 views/node_modules/lodash/concat.js delete mode 100644 views/node_modules/lodash/cond.js delete mode 100644 views/node_modules/lodash/conforms.js delete mode 100644 views/node_modules/lodash/conformsTo.js delete mode 100644 views/node_modules/lodash/constant.js delete mode 100644 views/node_modules/lodash/core.js delete mode 100644 views/node_modules/lodash/core.min.js delete mode 100644 views/node_modules/lodash/countBy.js delete mode 100644 views/node_modules/lodash/create.js delete mode 100644 views/node_modules/lodash/curry.js delete mode 100644 views/node_modules/lodash/curryRight.js delete mode 100644 views/node_modules/lodash/date.js delete mode 100644 views/node_modules/lodash/debounce.js delete mode 100644 views/node_modules/lodash/deburr.js delete mode 100644 views/node_modules/lodash/defaultTo.js delete mode 100644 views/node_modules/lodash/defaults.js delete mode 100644 views/node_modules/lodash/defaultsDeep.js delete mode 100644 views/node_modules/lodash/defer.js delete mode 100644 views/node_modules/lodash/delay.js delete mode 100644 views/node_modules/lodash/difference.js delete mode 100644 views/node_modules/lodash/differenceBy.js delete mode 100644 views/node_modules/lodash/differenceWith.js delete mode 100644 views/node_modules/lodash/divide.js delete mode 100644 views/node_modules/lodash/drop.js delete mode 100644 views/node_modules/lodash/dropRight.js delete mode 100644 views/node_modules/lodash/dropRightWhile.js delete mode 100644 views/node_modules/lodash/dropWhile.js delete mode 100644 views/node_modules/lodash/each.js delete mode 100644 views/node_modules/lodash/eachRight.js delete mode 100644 views/node_modules/lodash/endsWith.js delete mode 100644 views/node_modules/lodash/entries.js delete mode 100644 views/node_modules/lodash/entriesIn.js delete mode 100644 views/node_modules/lodash/eq.js delete mode 100644 views/node_modules/lodash/escape.js delete mode 100644 views/node_modules/lodash/escapeRegExp.js delete mode 100644 views/node_modules/lodash/every.js delete mode 100644 views/node_modules/lodash/extend.js delete mode 100644 views/node_modules/lodash/extendWith.js delete mode 100644 views/node_modules/lodash/fill.js delete mode 100644 views/node_modules/lodash/filter.js delete mode 100644 views/node_modules/lodash/find.js delete mode 100644 views/node_modules/lodash/findIndex.js delete mode 100644 views/node_modules/lodash/findKey.js delete mode 100644 views/node_modules/lodash/findLast.js delete mode 100644 views/node_modules/lodash/findLastIndex.js delete mode 100644 views/node_modules/lodash/findLastKey.js delete mode 100644 views/node_modules/lodash/first.js delete mode 100644 views/node_modules/lodash/flake.lock delete mode 100644 views/node_modules/lodash/flake.nix delete mode 100644 views/node_modules/lodash/flatMap.js delete mode 100644 views/node_modules/lodash/flatMapDeep.js delete mode 100644 views/node_modules/lodash/flatMapDepth.js delete mode 100644 views/node_modules/lodash/flatten.js delete mode 100644 views/node_modules/lodash/flattenDeep.js delete mode 100644 views/node_modules/lodash/flattenDepth.js delete mode 100644 views/node_modules/lodash/flip.js delete mode 100644 views/node_modules/lodash/floor.js delete mode 100644 views/node_modules/lodash/flow.js delete mode 100644 views/node_modules/lodash/flowRight.js delete mode 100644 views/node_modules/lodash/forEach.js delete mode 100644 views/node_modules/lodash/forEachRight.js delete mode 100644 views/node_modules/lodash/forIn.js delete mode 100644 views/node_modules/lodash/forInRight.js delete mode 100644 views/node_modules/lodash/forOwn.js delete mode 100644 views/node_modules/lodash/forOwnRight.js delete mode 100644 views/node_modules/lodash/fp.js delete mode 100644 views/node_modules/lodash/fp/F.js delete mode 100644 views/node_modules/lodash/fp/T.js delete mode 100644 views/node_modules/lodash/fp/__.js delete mode 100644 views/node_modules/lodash/fp/_baseConvert.js delete mode 100644 views/node_modules/lodash/fp/_convertBrowser.js delete mode 100644 views/node_modules/lodash/fp/_falseOptions.js delete mode 100644 views/node_modules/lodash/fp/_mapping.js delete mode 100644 views/node_modules/lodash/fp/_util.js delete mode 100644 views/node_modules/lodash/fp/add.js delete mode 100644 views/node_modules/lodash/fp/after.js delete mode 100644 views/node_modules/lodash/fp/all.js delete mode 100644 views/node_modules/lodash/fp/allPass.js delete mode 100644 views/node_modules/lodash/fp/always.js delete mode 100644 views/node_modules/lodash/fp/any.js delete mode 100644 views/node_modules/lodash/fp/anyPass.js delete mode 100644 views/node_modules/lodash/fp/apply.js delete mode 100644 views/node_modules/lodash/fp/array.js delete mode 100644 views/node_modules/lodash/fp/ary.js delete mode 100644 views/node_modules/lodash/fp/assign.js delete mode 100644 views/node_modules/lodash/fp/assignAll.js delete mode 100644 views/node_modules/lodash/fp/assignAllWith.js delete mode 100644 views/node_modules/lodash/fp/assignIn.js delete mode 100644 views/node_modules/lodash/fp/assignInAll.js delete mode 100644 views/node_modules/lodash/fp/assignInAllWith.js delete mode 100644 views/node_modules/lodash/fp/assignInWith.js delete mode 100644 views/node_modules/lodash/fp/assignWith.js delete mode 100644 views/node_modules/lodash/fp/assoc.js delete mode 100644 views/node_modules/lodash/fp/assocPath.js delete mode 100644 views/node_modules/lodash/fp/at.js delete mode 100644 views/node_modules/lodash/fp/attempt.js delete mode 100644 views/node_modules/lodash/fp/before.js delete mode 100644 views/node_modules/lodash/fp/bind.js delete mode 100644 views/node_modules/lodash/fp/bindAll.js delete mode 100644 views/node_modules/lodash/fp/bindKey.js delete mode 100644 views/node_modules/lodash/fp/camelCase.js delete mode 100644 views/node_modules/lodash/fp/capitalize.js delete mode 100644 views/node_modules/lodash/fp/castArray.js delete mode 100644 views/node_modules/lodash/fp/ceil.js delete mode 100644 views/node_modules/lodash/fp/chain.js delete mode 100644 views/node_modules/lodash/fp/chunk.js delete mode 100644 views/node_modules/lodash/fp/clamp.js delete mode 100644 views/node_modules/lodash/fp/clone.js delete mode 100644 views/node_modules/lodash/fp/cloneDeep.js delete mode 100644 views/node_modules/lodash/fp/cloneDeepWith.js delete mode 100644 views/node_modules/lodash/fp/cloneWith.js delete mode 100644 views/node_modules/lodash/fp/collection.js delete mode 100644 views/node_modules/lodash/fp/commit.js delete mode 100644 views/node_modules/lodash/fp/compact.js delete mode 100644 views/node_modules/lodash/fp/complement.js delete mode 100644 views/node_modules/lodash/fp/compose.js delete mode 100644 views/node_modules/lodash/fp/concat.js delete mode 100644 views/node_modules/lodash/fp/cond.js delete mode 100644 views/node_modules/lodash/fp/conforms.js delete mode 100644 views/node_modules/lodash/fp/conformsTo.js delete mode 100644 views/node_modules/lodash/fp/constant.js delete mode 100644 views/node_modules/lodash/fp/contains.js delete mode 100644 views/node_modules/lodash/fp/convert.js delete mode 100644 views/node_modules/lodash/fp/countBy.js delete mode 100644 views/node_modules/lodash/fp/create.js delete mode 100644 views/node_modules/lodash/fp/curry.js delete mode 100644 views/node_modules/lodash/fp/curryN.js delete mode 100644 views/node_modules/lodash/fp/curryRight.js delete mode 100644 views/node_modules/lodash/fp/curryRightN.js delete mode 100644 views/node_modules/lodash/fp/date.js delete mode 100644 views/node_modules/lodash/fp/debounce.js delete mode 100644 views/node_modules/lodash/fp/deburr.js delete mode 100644 views/node_modules/lodash/fp/defaultTo.js delete mode 100644 views/node_modules/lodash/fp/defaults.js delete mode 100644 views/node_modules/lodash/fp/defaultsAll.js delete mode 100644 views/node_modules/lodash/fp/defaultsDeep.js delete mode 100644 views/node_modules/lodash/fp/defaultsDeepAll.js delete mode 100644 views/node_modules/lodash/fp/defer.js delete mode 100644 views/node_modules/lodash/fp/delay.js delete mode 100644 views/node_modules/lodash/fp/difference.js delete mode 100644 views/node_modules/lodash/fp/differenceBy.js delete mode 100644 views/node_modules/lodash/fp/differenceWith.js delete mode 100644 views/node_modules/lodash/fp/dissoc.js delete mode 100644 views/node_modules/lodash/fp/dissocPath.js delete mode 100644 views/node_modules/lodash/fp/divide.js delete mode 100644 views/node_modules/lodash/fp/drop.js delete mode 100644 views/node_modules/lodash/fp/dropLast.js delete mode 100644 views/node_modules/lodash/fp/dropLastWhile.js delete mode 100644 views/node_modules/lodash/fp/dropRight.js delete mode 100644 views/node_modules/lodash/fp/dropRightWhile.js delete mode 100644 views/node_modules/lodash/fp/dropWhile.js delete mode 100644 views/node_modules/lodash/fp/each.js delete mode 100644 views/node_modules/lodash/fp/eachRight.js delete mode 100644 views/node_modules/lodash/fp/endsWith.js delete mode 100644 views/node_modules/lodash/fp/entries.js delete mode 100644 views/node_modules/lodash/fp/entriesIn.js delete mode 100644 views/node_modules/lodash/fp/eq.js delete mode 100644 views/node_modules/lodash/fp/equals.js delete mode 100644 views/node_modules/lodash/fp/escape.js delete mode 100644 views/node_modules/lodash/fp/escapeRegExp.js delete mode 100644 views/node_modules/lodash/fp/every.js delete mode 100644 views/node_modules/lodash/fp/extend.js delete mode 100644 views/node_modules/lodash/fp/extendAll.js delete mode 100644 views/node_modules/lodash/fp/extendAllWith.js delete mode 100644 views/node_modules/lodash/fp/extendWith.js delete mode 100644 views/node_modules/lodash/fp/fill.js delete mode 100644 views/node_modules/lodash/fp/filter.js delete mode 100644 views/node_modules/lodash/fp/find.js delete mode 100644 views/node_modules/lodash/fp/findFrom.js delete mode 100644 views/node_modules/lodash/fp/findIndex.js delete mode 100644 views/node_modules/lodash/fp/findIndexFrom.js delete mode 100644 views/node_modules/lodash/fp/findKey.js delete mode 100644 views/node_modules/lodash/fp/findLast.js delete mode 100644 views/node_modules/lodash/fp/findLastFrom.js delete mode 100644 views/node_modules/lodash/fp/findLastIndex.js delete mode 100644 views/node_modules/lodash/fp/findLastIndexFrom.js delete mode 100644 views/node_modules/lodash/fp/findLastKey.js delete mode 100644 views/node_modules/lodash/fp/first.js delete mode 100644 views/node_modules/lodash/fp/flatMap.js delete mode 100644 views/node_modules/lodash/fp/flatMapDeep.js delete mode 100644 views/node_modules/lodash/fp/flatMapDepth.js delete mode 100644 views/node_modules/lodash/fp/flatten.js delete mode 100644 views/node_modules/lodash/fp/flattenDeep.js delete mode 100644 views/node_modules/lodash/fp/flattenDepth.js delete mode 100644 views/node_modules/lodash/fp/flip.js delete mode 100644 views/node_modules/lodash/fp/floor.js delete mode 100644 views/node_modules/lodash/fp/flow.js delete mode 100644 views/node_modules/lodash/fp/flowRight.js delete mode 100644 views/node_modules/lodash/fp/forEach.js delete mode 100644 views/node_modules/lodash/fp/forEachRight.js delete mode 100644 views/node_modules/lodash/fp/forIn.js delete mode 100644 views/node_modules/lodash/fp/forInRight.js delete mode 100644 views/node_modules/lodash/fp/forOwn.js delete mode 100644 views/node_modules/lodash/fp/forOwnRight.js delete mode 100644 views/node_modules/lodash/fp/fromPairs.js delete mode 100644 views/node_modules/lodash/fp/function.js delete mode 100644 views/node_modules/lodash/fp/functions.js delete mode 100644 views/node_modules/lodash/fp/functionsIn.js delete mode 100644 views/node_modules/lodash/fp/get.js delete mode 100644 views/node_modules/lodash/fp/getOr.js delete mode 100644 views/node_modules/lodash/fp/groupBy.js delete mode 100644 views/node_modules/lodash/fp/gt.js delete mode 100644 views/node_modules/lodash/fp/gte.js delete mode 100644 views/node_modules/lodash/fp/has.js delete mode 100644 views/node_modules/lodash/fp/hasIn.js delete mode 100644 views/node_modules/lodash/fp/head.js delete mode 100644 views/node_modules/lodash/fp/identical.js delete mode 100644 views/node_modules/lodash/fp/identity.js delete mode 100644 views/node_modules/lodash/fp/inRange.js delete mode 100644 views/node_modules/lodash/fp/includes.js delete mode 100644 views/node_modules/lodash/fp/includesFrom.js delete mode 100644 views/node_modules/lodash/fp/indexBy.js delete mode 100644 views/node_modules/lodash/fp/indexOf.js delete mode 100644 views/node_modules/lodash/fp/indexOfFrom.js delete mode 100644 views/node_modules/lodash/fp/init.js delete mode 100644 views/node_modules/lodash/fp/initial.js delete mode 100644 views/node_modules/lodash/fp/intersection.js delete mode 100644 views/node_modules/lodash/fp/intersectionBy.js delete mode 100644 views/node_modules/lodash/fp/intersectionWith.js delete mode 100644 views/node_modules/lodash/fp/invert.js delete mode 100644 views/node_modules/lodash/fp/invertBy.js delete mode 100644 views/node_modules/lodash/fp/invertObj.js delete mode 100644 views/node_modules/lodash/fp/invoke.js delete mode 100644 views/node_modules/lodash/fp/invokeArgs.js delete mode 100644 views/node_modules/lodash/fp/invokeArgsMap.js delete mode 100644 views/node_modules/lodash/fp/invokeMap.js delete mode 100644 views/node_modules/lodash/fp/isArguments.js delete mode 100644 views/node_modules/lodash/fp/isArray.js delete mode 100644 views/node_modules/lodash/fp/isArrayBuffer.js delete mode 100644 views/node_modules/lodash/fp/isArrayLike.js delete mode 100644 views/node_modules/lodash/fp/isArrayLikeObject.js delete mode 100644 views/node_modules/lodash/fp/isBoolean.js delete mode 100644 views/node_modules/lodash/fp/isBuffer.js delete mode 100644 views/node_modules/lodash/fp/isDate.js delete mode 100644 views/node_modules/lodash/fp/isElement.js delete mode 100644 views/node_modules/lodash/fp/isEmpty.js delete mode 100644 views/node_modules/lodash/fp/isEqual.js delete mode 100644 views/node_modules/lodash/fp/isEqualWith.js delete mode 100644 views/node_modules/lodash/fp/isError.js delete mode 100644 views/node_modules/lodash/fp/isFinite.js delete mode 100644 views/node_modules/lodash/fp/isFunction.js delete mode 100644 views/node_modules/lodash/fp/isInteger.js delete mode 100644 views/node_modules/lodash/fp/isLength.js delete mode 100644 views/node_modules/lodash/fp/isMap.js delete mode 100644 views/node_modules/lodash/fp/isMatch.js delete mode 100644 views/node_modules/lodash/fp/isMatchWith.js delete mode 100644 views/node_modules/lodash/fp/isNaN.js delete mode 100644 views/node_modules/lodash/fp/isNative.js delete mode 100644 views/node_modules/lodash/fp/isNil.js delete mode 100644 views/node_modules/lodash/fp/isNull.js delete mode 100644 views/node_modules/lodash/fp/isNumber.js delete mode 100644 views/node_modules/lodash/fp/isObject.js delete mode 100644 views/node_modules/lodash/fp/isObjectLike.js delete mode 100644 views/node_modules/lodash/fp/isPlainObject.js delete mode 100644 views/node_modules/lodash/fp/isRegExp.js delete mode 100644 views/node_modules/lodash/fp/isSafeInteger.js delete mode 100644 views/node_modules/lodash/fp/isSet.js delete mode 100644 views/node_modules/lodash/fp/isString.js delete mode 100644 views/node_modules/lodash/fp/isSymbol.js delete mode 100644 views/node_modules/lodash/fp/isTypedArray.js delete mode 100644 views/node_modules/lodash/fp/isUndefined.js delete mode 100644 views/node_modules/lodash/fp/isWeakMap.js delete mode 100644 views/node_modules/lodash/fp/isWeakSet.js delete mode 100644 views/node_modules/lodash/fp/iteratee.js delete mode 100644 views/node_modules/lodash/fp/join.js delete mode 100644 views/node_modules/lodash/fp/juxt.js delete mode 100644 views/node_modules/lodash/fp/kebabCase.js delete mode 100644 views/node_modules/lodash/fp/keyBy.js delete mode 100644 views/node_modules/lodash/fp/keys.js delete mode 100644 views/node_modules/lodash/fp/keysIn.js delete mode 100644 views/node_modules/lodash/fp/lang.js delete mode 100644 views/node_modules/lodash/fp/last.js delete mode 100644 views/node_modules/lodash/fp/lastIndexOf.js delete mode 100644 views/node_modules/lodash/fp/lastIndexOfFrom.js delete mode 100644 views/node_modules/lodash/fp/lowerCase.js delete mode 100644 views/node_modules/lodash/fp/lowerFirst.js delete mode 100644 views/node_modules/lodash/fp/lt.js delete mode 100644 views/node_modules/lodash/fp/lte.js delete mode 100644 views/node_modules/lodash/fp/map.js delete mode 100644 views/node_modules/lodash/fp/mapKeys.js delete mode 100644 views/node_modules/lodash/fp/mapValues.js delete mode 100644 views/node_modules/lodash/fp/matches.js delete mode 100644 views/node_modules/lodash/fp/matchesProperty.js delete mode 100644 views/node_modules/lodash/fp/math.js delete mode 100644 views/node_modules/lodash/fp/max.js delete mode 100644 views/node_modules/lodash/fp/maxBy.js delete mode 100644 views/node_modules/lodash/fp/mean.js delete mode 100644 views/node_modules/lodash/fp/meanBy.js delete mode 100644 views/node_modules/lodash/fp/memoize.js delete mode 100644 views/node_modules/lodash/fp/merge.js delete mode 100644 views/node_modules/lodash/fp/mergeAll.js delete mode 100644 views/node_modules/lodash/fp/mergeAllWith.js delete mode 100644 views/node_modules/lodash/fp/mergeWith.js delete mode 100644 views/node_modules/lodash/fp/method.js delete mode 100644 views/node_modules/lodash/fp/methodOf.js delete mode 100644 views/node_modules/lodash/fp/min.js delete mode 100644 views/node_modules/lodash/fp/minBy.js delete mode 100644 views/node_modules/lodash/fp/mixin.js delete mode 100644 views/node_modules/lodash/fp/multiply.js delete mode 100644 views/node_modules/lodash/fp/nAry.js delete mode 100644 views/node_modules/lodash/fp/negate.js delete mode 100644 views/node_modules/lodash/fp/next.js delete mode 100644 views/node_modules/lodash/fp/noop.js delete mode 100644 views/node_modules/lodash/fp/now.js delete mode 100644 views/node_modules/lodash/fp/nth.js delete mode 100644 views/node_modules/lodash/fp/nthArg.js delete mode 100644 views/node_modules/lodash/fp/number.js delete mode 100644 views/node_modules/lodash/fp/object.js delete mode 100644 views/node_modules/lodash/fp/omit.js delete mode 100644 views/node_modules/lodash/fp/omitAll.js delete mode 100644 views/node_modules/lodash/fp/omitBy.js delete mode 100644 views/node_modules/lodash/fp/once.js delete mode 100644 views/node_modules/lodash/fp/orderBy.js delete mode 100644 views/node_modules/lodash/fp/over.js delete mode 100644 views/node_modules/lodash/fp/overArgs.js delete mode 100644 views/node_modules/lodash/fp/overEvery.js delete mode 100644 views/node_modules/lodash/fp/overSome.js delete mode 100644 views/node_modules/lodash/fp/pad.js delete mode 100644 views/node_modules/lodash/fp/padChars.js delete mode 100644 views/node_modules/lodash/fp/padCharsEnd.js delete mode 100644 views/node_modules/lodash/fp/padCharsStart.js delete mode 100644 views/node_modules/lodash/fp/padEnd.js delete mode 100644 views/node_modules/lodash/fp/padStart.js delete mode 100644 views/node_modules/lodash/fp/parseInt.js delete mode 100644 views/node_modules/lodash/fp/partial.js delete mode 100644 views/node_modules/lodash/fp/partialRight.js delete mode 100644 views/node_modules/lodash/fp/partition.js delete mode 100644 views/node_modules/lodash/fp/path.js delete mode 100644 views/node_modules/lodash/fp/pathEq.js delete mode 100644 views/node_modules/lodash/fp/pathOr.js delete mode 100644 views/node_modules/lodash/fp/paths.js delete mode 100644 views/node_modules/lodash/fp/pick.js delete mode 100644 views/node_modules/lodash/fp/pickAll.js delete mode 100644 views/node_modules/lodash/fp/pickBy.js delete mode 100644 views/node_modules/lodash/fp/pipe.js delete mode 100644 views/node_modules/lodash/fp/placeholder.js delete mode 100644 views/node_modules/lodash/fp/plant.js delete mode 100644 views/node_modules/lodash/fp/pluck.js delete mode 100644 views/node_modules/lodash/fp/prop.js delete mode 100644 views/node_modules/lodash/fp/propEq.js delete mode 100644 views/node_modules/lodash/fp/propOr.js delete mode 100644 views/node_modules/lodash/fp/property.js delete mode 100644 views/node_modules/lodash/fp/propertyOf.js delete mode 100644 views/node_modules/lodash/fp/props.js delete mode 100644 views/node_modules/lodash/fp/pull.js delete mode 100644 views/node_modules/lodash/fp/pullAll.js delete mode 100644 views/node_modules/lodash/fp/pullAllBy.js delete mode 100644 views/node_modules/lodash/fp/pullAllWith.js delete mode 100644 views/node_modules/lodash/fp/pullAt.js delete mode 100644 views/node_modules/lodash/fp/random.js delete mode 100644 views/node_modules/lodash/fp/range.js delete mode 100644 views/node_modules/lodash/fp/rangeRight.js delete mode 100644 views/node_modules/lodash/fp/rangeStep.js delete mode 100644 views/node_modules/lodash/fp/rangeStepRight.js delete mode 100644 views/node_modules/lodash/fp/rearg.js delete mode 100644 views/node_modules/lodash/fp/reduce.js delete mode 100644 views/node_modules/lodash/fp/reduceRight.js delete mode 100644 views/node_modules/lodash/fp/reject.js delete mode 100644 views/node_modules/lodash/fp/remove.js delete mode 100644 views/node_modules/lodash/fp/repeat.js delete mode 100644 views/node_modules/lodash/fp/replace.js delete mode 100644 views/node_modules/lodash/fp/rest.js delete mode 100644 views/node_modules/lodash/fp/restFrom.js delete mode 100644 views/node_modules/lodash/fp/result.js delete mode 100644 views/node_modules/lodash/fp/reverse.js delete mode 100644 views/node_modules/lodash/fp/round.js delete mode 100644 views/node_modules/lodash/fp/sample.js delete mode 100644 views/node_modules/lodash/fp/sampleSize.js delete mode 100644 views/node_modules/lodash/fp/seq.js delete mode 100644 views/node_modules/lodash/fp/set.js delete mode 100644 views/node_modules/lodash/fp/setWith.js delete mode 100644 views/node_modules/lodash/fp/shuffle.js delete mode 100644 views/node_modules/lodash/fp/size.js delete mode 100644 views/node_modules/lodash/fp/slice.js delete mode 100644 views/node_modules/lodash/fp/snakeCase.js delete mode 100644 views/node_modules/lodash/fp/some.js delete mode 100644 views/node_modules/lodash/fp/sortBy.js delete mode 100644 views/node_modules/lodash/fp/sortedIndex.js delete mode 100644 views/node_modules/lodash/fp/sortedIndexBy.js delete mode 100644 views/node_modules/lodash/fp/sortedIndexOf.js delete mode 100644 views/node_modules/lodash/fp/sortedLastIndex.js delete mode 100644 views/node_modules/lodash/fp/sortedLastIndexBy.js delete mode 100644 views/node_modules/lodash/fp/sortedLastIndexOf.js delete mode 100644 views/node_modules/lodash/fp/sortedUniq.js delete mode 100644 views/node_modules/lodash/fp/sortedUniqBy.js delete mode 100644 views/node_modules/lodash/fp/split.js delete mode 100644 views/node_modules/lodash/fp/spread.js delete mode 100644 views/node_modules/lodash/fp/spreadFrom.js delete mode 100644 views/node_modules/lodash/fp/startCase.js delete mode 100644 views/node_modules/lodash/fp/startsWith.js delete mode 100644 views/node_modules/lodash/fp/string.js delete mode 100644 views/node_modules/lodash/fp/stubArray.js delete mode 100644 views/node_modules/lodash/fp/stubFalse.js delete mode 100644 views/node_modules/lodash/fp/stubObject.js delete mode 100644 views/node_modules/lodash/fp/stubString.js delete mode 100644 views/node_modules/lodash/fp/stubTrue.js delete mode 100644 views/node_modules/lodash/fp/subtract.js delete mode 100644 views/node_modules/lodash/fp/sum.js delete mode 100644 views/node_modules/lodash/fp/sumBy.js delete mode 100644 views/node_modules/lodash/fp/symmetricDifference.js delete mode 100644 views/node_modules/lodash/fp/symmetricDifferenceBy.js delete mode 100644 views/node_modules/lodash/fp/symmetricDifferenceWith.js delete mode 100644 views/node_modules/lodash/fp/tail.js delete mode 100644 views/node_modules/lodash/fp/take.js delete mode 100644 views/node_modules/lodash/fp/takeLast.js delete mode 100644 views/node_modules/lodash/fp/takeLastWhile.js delete mode 100644 views/node_modules/lodash/fp/takeRight.js delete mode 100644 views/node_modules/lodash/fp/takeRightWhile.js delete mode 100644 views/node_modules/lodash/fp/takeWhile.js delete mode 100644 views/node_modules/lodash/fp/tap.js delete mode 100644 views/node_modules/lodash/fp/template.js delete mode 100644 views/node_modules/lodash/fp/templateSettings.js delete mode 100644 views/node_modules/lodash/fp/throttle.js delete mode 100644 views/node_modules/lodash/fp/thru.js delete mode 100644 views/node_modules/lodash/fp/times.js delete mode 100644 views/node_modules/lodash/fp/toArray.js delete mode 100644 views/node_modules/lodash/fp/toFinite.js delete mode 100644 views/node_modules/lodash/fp/toInteger.js delete mode 100644 views/node_modules/lodash/fp/toIterator.js delete mode 100644 views/node_modules/lodash/fp/toJSON.js delete mode 100644 views/node_modules/lodash/fp/toLength.js delete mode 100644 views/node_modules/lodash/fp/toLower.js delete mode 100644 views/node_modules/lodash/fp/toNumber.js delete mode 100644 views/node_modules/lodash/fp/toPairs.js delete mode 100644 views/node_modules/lodash/fp/toPairsIn.js delete mode 100644 views/node_modules/lodash/fp/toPath.js delete mode 100644 views/node_modules/lodash/fp/toPlainObject.js delete mode 100644 views/node_modules/lodash/fp/toSafeInteger.js delete mode 100644 views/node_modules/lodash/fp/toString.js delete mode 100644 views/node_modules/lodash/fp/toUpper.js delete mode 100644 views/node_modules/lodash/fp/transform.js delete mode 100644 views/node_modules/lodash/fp/trim.js delete mode 100644 views/node_modules/lodash/fp/trimChars.js delete mode 100644 views/node_modules/lodash/fp/trimCharsEnd.js delete mode 100644 views/node_modules/lodash/fp/trimCharsStart.js delete mode 100644 views/node_modules/lodash/fp/trimEnd.js delete mode 100644 views/node_modules/lodash/fp/trimStart.js delete mode 100644 views/node_modules/lodash/fp/truncate.js delete mode 100644 views/node_modules/lodash/fp/unapply.js delete mode 100644 views/node_modules/lodash/fp/unary.js delete mode 100644 views/node_modules/lodash/fp/unescape.js delete mode 100644 views/node_modules/lodash/fp/union.js delete mode 100644 views/node_modules/lodash/fp/unionBy.js delete mode 100644 views/node_modules/lodash/fp/unionWith.js delete mode 100644 views/node_modules/lodash/fp/uniq.js delete mode 100644 views/node_modules/lodash/fp/uniqBy.js delete mode 100644 views/node_modules/lodash/fp/uniqWith.js delete mode 100644 views/node_modules/lodash/fp/uniqueId.js delete mode 100644 views/node_modules/lodash/fp/unnest.js delete mode 100644 views/node_modules/lodash/fp/unset.js delete mode 100644 views/node_modules/lodash/fp/unzip.js delete mode 100644 views/node_modules/lodash/fp/unzipWith.js delete mode 100644 views/node_modules/lodash/fp/update.js delete mode 100644 views/node_modules/lodash/fp/updateWith.js delete mode 100644 views/node_modules/lodash/fp/upperCase.js delete mode 100644 views/node_modules/lodash/fp/upperFirst.js delete mode 100644 views/node_modules/lodash/fp/useWith.js delete mode 100644 views/node_modules/lodash/fp/util.js delete mode 100644 views/node_modules/lodash/fp/value.js delete mode 100644 views/node_modules/lodash/fp/valueOf.js delete mode 100644 views/node_modules/lodash/fp/values.js delete mode 100644 views/node_modules/lodash/fp/valuesIn.js delete mode 100644 views/node_modules/lodash/fp/where.js delete mode 100644 views/node_modules/lodash/fp/whereEq.js delete mode 100644 views/node_modules/lodash/fp/without.js delete mode 100644 views/node_modules/lodash/fp/words.js delete mode 100644 views/node_modules/lodash/fp/wrap.js delete mode 100644 views/node_modules/lodash/fp/wrapperAt.js delete mode 100644 views/node_modules/lodash/fp/wrapperChain.js delete mode 100644 views/node_modules/lodash/fp/wrapperLodash.js delete mode 100644 views/node_modules/lodash/fp/wrapperReverse.js delete mode 100644 views/node_modules/lodash/fp/wrapperValue.js delete mode 100644 views/node_modules/lodash/fp/xor.js delete mode 100644 views/node_modules/lodash/fp/xorBy.js delete mode 100644 views/node_modules/lodash/fp/xorWith.js delete mode 100644 views/node_modules/lodash/fp/zip.js delete mode 100644 views/node_modules/lodash/fp/zipAll.js delete mode 100644 views/node_modules/lodash/fp/zipObj.js delete mode 100644 views/node_modules/lodash/fp/zipObject.js delete mode 100644 views/node_modules/lodash/fp/zipObjectDeep.js delete mode 100644 views/node_modules/lodash/fp/zipWith.js delete mode 100644 views/node_modules/lodash/fromPairs.js delete mode 100644 views/node_modules/lodash/function.js delete mode 100644 views/node_modules/lodash/functions.js delete mode 100644 views/node_modules/lodash/functionsIn.js delete mode 100644 views/node_modules/lodash/get.js delete mode 100644 views/node_modules/lodash/groupBy.js delete mode 100644 views/node_modules/lodash/gt.js delete mode 100644 views/node_modules/lodash/gte.js delete mode 100644 views/node_modules/lodash/has.js delete mode 100644 views/node_modules/lodash/hasIn.js delete mode 100644 views/node_modules/lodash/head.js delete mode 100644 views/node_modules/lodash/identity.js delete mode 100644 views/node_modules/lodash/inRange.js delete mode 100644 views/node_modules/lodash/includes.js delete mode 100644 views/node_modules/lodash/index.js delete mode 100644 views/node_modules/lodash/indexOf.js delete mode 100644 views/node_modules/lodash/initial.js delete mode 100644 views/node_modules/lodash/intersection.js delete mode 100644 views/node_modules/lodash/intersectionBy.js delete mode 100644 views/node_modules/lodash/intersectionWith.js delete mode 100644 views/node_modules/lodash/invert.js delete mode 100644 views/node_modules/lodash/invertBy.js delete mode 100644 views/node_modules/lodash/invoke.js delete mode 100644 views/node_modules/lodash/invokeMap.js delete mode 100644 views/node_modules/lodash/isArguments.js delete mode 100644 views/node_modules/lodash/isArray.js delete mode 100644 views/node_modules/lodash/isArrayBuffer.js delete mode 100644 views/node_modules/lodash/isArrayLike.js delete mode 100644 views/node_modules/lodash/isArrayLikeObject.js delete mode 100644 views/node_modules/lodash/isBoolean.js delete mode 100644 views/node_modules/lodash/isBuffer.js delete mode 100644 views/node_modules/lodash/isDate.js delete mode 100644 views/node_modules/lodash/isElement.js delete mode 100644 views/node_modules/lodash/isEmpty.js delete mode 100644 views/node_modules/lodash/isEqual.js delete mode 100644 views/node_modules/lodash/isEqualWith.js delete mode 100644 views/node_modules/lodash/isError.js delete mode 100644 views/node_modules/lodash/isFinite.js delete mode 100644 views/node_modules/lodash/isFunction.js delete mode 100644 views/node_modules/lodash/isInteger.js delete mode 100644 views/node_modules/lodash/isLength.js delete mode 100644 views/node_modules/lodash/isMap.js delete mode 100644 views/node_modules/lodash/isMatch.js delete mode 100644 views/node_modules/lodash/isMatchWith.js delete mode 100644 views/node_modules/lodash/isNaN.js delete mode 100644 views/node_modules/lodash/isNative.js delete mode 100644 views/node_modules/lodash/isNil.js delete mode 100644 views/node_modules/lodash/isNull.js delete mode 100644 views/node_modules/lodash/isNumber.js delete mode 100644 views/node_modules/lodash/isObject.js delete mode 100644 views/node_modules/lodash/isObjectLike.js delete mode 100644 views/node_modules/lodash/isPlainObject.js delete mode 100644 views/node_modules/lodash/isRegExp.js delete mode 100644 views/node_modules/lodash/isSafeInteger.js delete mode 100644 views/node_modules/lodash/isSet.js delete mode 100644 views/node_modules/lodash/isString.js delete mode 100644 views/node_modules/lodash/isSymbol.js delete mode 100644 views/node_modules/lodash/isTypedArray.js delete mode 100644 views/node_modules/lodash/isUndefined.js delete mode 100644 views/node_modules/lodash/isWeakMap.js delete mode 100644 views/node_modules/lodash/isWeakSet.js delete mode 100644 views/node_modules/lodash/iteratee.js delete mode 100644 views/node_modules/lodash/join.js delete mode 100644 views/node_modules/lodash/kebabCase.js delete mode 100644 views/node_modules/lodash/keyBy.js delete mode 100644 views/node_modules/lodash/keys.js delete mode 100644 views/node_modules/lodash/keysIn.js delete mode 100644 views/node_modules/lodash/lang.js delete mode 100644 views/node_modules/lodash/last.js delete mode 100644 views/node_modules/lodash/lastIndexOf.js delete mode 100644 views/node_modules/lodash/lodash.js delete mode 100644 views/node_modules/lodash/lodash.min.js delete mode 100644 views/node_modules/lodash/lowerCase.js delete mode 100644 views/node_modules/lodash/lowerFirst.js delete mode 100644 views/node_modules/lodash/lt.js delete mode 100644 views/node_modules/lodash/lte.js delete mode 100644 views/node_modules/lodash/map.js delete mode 100644 views/node_modules/lodash/mapKeys.js delete mode 100644 views/node_modules/lodash/mapValues.js delete mode 100644 views/node_modules/lodash/matches.js delete mode 100644 views/node_modules/lodash/matchesProperty.js delete mode 100644 views/node_modules/lodash/math.js delete mode 100644 views/node_modules/lodash/max.js delete mode 100644 views/node_modules/lodash/maxBy.js delete mode 100644 views/node_modules/lodash/mean.js delete mode 100644 views/node_modules/lodash/meanBy.js delete mode 100644 views/node_modules/lodash/memoize.js delete mode 100644 views/node_modules/lodash/merge.js delete mode 100644 views/node_modules/lodash/mergeWith.js delete mode 100644 views/node_modules/lodash/method.js delete mode 100644 views/node_modules/lodash/methodOf.js delete mode 100644 views/node_modules/lodash/min.js delete mode 100644 views/node_modules/lodash/minBy.js delete mode 100644 views/node_modules/lodash/mixin.js delete mode 100644 views/node_modules/lodash/multiply.js delete mode 100644 views/node_modules/lodash/negate.js delete mode 100644 views/node_modules/lodash/next.js delete mode 100644 views/node_modules/lodash/noop.js delete mode 100644 views/node_modules/lodash/now.js delete mode 100644 views/node_modules/lodash/nth.js delete mode 100644 views/node_modules/lodash/nthArg.js delete mode 100644 views/node_modules/lodash/number.js delete mode 100644 views/node_modules/lodash/object.js delete mode 100644 views/node_modules/lodash/omit.js delete mode 100644 views/node_modules/lodash/omitBy.js delete mode 100644 views/node_modules/lodash/once.js delete mode 100644 views/node_modules/lodash/orderBy.js delete mode 100644 views/node_modules/lodash/over.js delete mode 100644 views/node_modules/lodash/overArgs.js delete mode 100644 views/node_modules/lodash/overEvery.js delete mode 100644 views/node_modules/lodash/overSome.js delete mode 100644 views/node_modules/lodash/package.json delete mode 100644 views/node_modules/lodash/pad.js delete mode 100644 views/node_modules/lodash/padEnd.js delete mode 100644 views/node_modules/lodash/padStart.js delete mode 100644 views/node_modules/lodash/parseInt.js delete mode 100644 views/node_modules/lodash/partial.js delete mode 100644 views/node_modules/lodash/partialRight.js delete mode 100644 views/node_modules/lodash/partition.js delete mode 100644 views/node_modules/lodash/pick.js delete mode 100644 views/node_modules/lodash/pickBy.js delete mode 100644 views/node_modules/lodash/plant.js delete mode 100644 views/node_modules/lodash/property.js delete mode 100644 views/node_modules/lodash/propertyOf.js delete mode 100644 views/node_modules/lodash/pull.js delete mode 100644 views/node_modules/lodash/pullAll.js delete mode 100644 views/node_modules/lodash/pullAllBy.js delete mode 100644 views/node_modules/lodash/pullAllWith.js delete mode 100644 views/node_modules/lodash/pullAt.js delete mode 100644 views/node_modules/lodash/random.js delete mode 100644 views/node_modules/lodash/range.js delete mode 100644 views/node_modules/lodash/rangeRight.js delete mode 100644 views/node_modules/lodash/rearg.js delete mode 100644 views/node_modules/lodash/reduce.js delete mode 100644 views/node_modules/lodash/reduceRight.js delete mode 100644 views/node_modules/lodash/reject.js delete mode 100644 views/node_modules/lodash/release.md delete mode 100644 views/node_modules/lodash/remove.js delete mode 100644 views/node_modules/lodash/repeat.js delete mode 100644 views/node_modules/lodash/replace.js delete mode 100644 views/node_modules/lodash/rest.js delete mode 100644 views/node_modules/lodash/result.js delete mode 100644 views/node_modules/lodash/reverse.js delete mode 100644 views/node_modules/lodash/round.js delete mode 100644 views/node_modules/lodash/sample.js delete mode 100644 views/node_modules/lodash/sampleSize.js delete mode 100644 views/node_modules/lodash/seq.js delete mode 100644 views/node_modules/lodash/set.js delete mode 100644 views/node_modules/lodash/setWith.js delete mode 100644 views/node_modules/lodash/shuffle.js delete mode 100644 views/node_modules/lodash/size.js delete mode 100644 views/node_modules/lodash/slice.js delete mode 100644 views/node_modules/lodash/snakeCase.js delete mode 100644 views/node_modules/lodash/some.js delete mode 100644 views/node_modules/lodash/sortBy.js delete mode 100644 views/node_modules/lodash/sortedIndex.js delete mode 100644 views/node_modules/lodash/sortedIndexBy.js delete mode 100644 views/node_modules/lodash/sortedIndexOf.js delete mode 100644 views/node_modules/lodash/sortedLastIndex.js delete mode 100644 views/node_modules/lodash/sortedLastIndexBy.js delete mode 100644 views/node_modules/lodash/sortedLastIndexOf.js delete mode 100644 views/node_modules/lodash/sortedUniq.js delete mode 100644 views/node_modules/lodash/sortedUniqBy.js delete mode 100644 views/node_modules/lodash/split.js delete mode 100644 views/node_modules/lodash/spread.js delete mode 100644 views/node_modules/lodash/startCase.js delete mode 100644 views/node_modules/lodash/startsWith.js delete mode 100644 views/node_modules/lodash/string.js delete mode 100644 views/node_modules/lodash/stubArray.js delete mode 100644 views/node_modules/lodash/stubFalse.js delete mode 100644 views/node_modules/lodash/stubObject.js delete mode 100644 views/node_modules/lodash/stubString.js delete mode 100644 views/node_modules/lodash/stubTrue.js delete mode 100644 views/node_modules/lodash/subtract.js delete mode 100644 views/node_modules/lodash/sum.js delete mode 100644 views/node_modules/lodash/sumBy.js delete mode 100644 views/node_modules/lodash/tail.js delete mode 100644 views/node_modules/lodash/take.js delete mode 100644 views/node_modules/lodash/takeRight.js delete mode 100644 views/node_modules/lodash/takeRightWhile.js delete mode 100644 views/node_modules/lodash/takeWhile.js delete mode 100644 views/node_modules/lodash/tap.js delete mode 100644 views/node_modules/lodash/template.js delete mode 100644 views/node_modules/lodash/templateSettings.js delete mode 100644 views/node_modules/lodash/throttle.js delete mode 100644 views/node_modules/lodash/thru.js delete mode 100644 views/node_modules/lodash/times.js delete mode 100644 views/node_modules/lodash/toArray.js delete mode 100644 views/node_modules/lodash/toFinite.js delete mode 100644 views/node_modules/lodash/toInteger.js delete mode 100644 views/node_modules/lodash/toIterator.js delete mode 100644 views/node_modules/lodash/toJSON.js delete mode 100644 views/node_modules/lodash/toLength.js delete mode 100644 views/node_modules/lodash/toLower.js delete mode 100644 views/node_modules/lodash/toNumber.js delete mode 100644 views/node_modules/lodash/toPairs.js delete mode 100644 views/node_modules/lodash/toPairsIn.js delete mode 100644 views/node_modules/lodash/toPath.js delete mode 100644 views/node_modules/lodash/toPlainObject.js delete mode 100644 views/node_modules/lodash/toSafeInteger.js delete mode 100644 views/node_modules/lodash/toString.js delete mode 100644 views/node_modules/lodash/toUpper.js delete mode 100644 views/node_modules/lodash/transform.js delete mode 100644 views/node_modules/lodash/trim.js delete mode 100644 views/node_modules/lodash/trimEnd.js delete mode 100644 views/node_modules/lodash/trimStart.js delete mode 100644 views/node_modules/lodash/truncate.js delete mode 100644 views/node_modules/lodash/unary.js delete mode 100644 views/node_modules/lodash/unescape.js delete mode 100644 views/node_modules/lodash/union.js delete mode 100644 views/node_modules/lodash/unionBy.js delete mode 100644 views/node_modules/lodash/unionWith.js delete mode 100644 views/node_modules/lodash/uniq.js delete mode 100644 views/node_modules/lodash/uniqBy.js delete mode 100644 views/node_modules/lodash/uniqWith.js delete mode 100644 views/node_modules/lodash/uniqueId.js delete mode 100644 views/node_modules/lodash/unset.js delete mode 100644 views/node_modules/lodash/unzip.js delete mode 100644 views/node_modules/lodash/unzipWith.js delete mode 100644 views/node_modules/lodash/update.js delete mode 100644 views/node_modules/lodash/updateWith.js delete mode 100644 views/node_modules/lodash/upperCase.js delete mode 100644 views/node_modules/lodash/upperFirst.js delete mode 100644 views/node_modules/lodash/util.js delete mode 100644 views/node_modules/lodash/value.js delete mode 100644 views/node_modules/lodash/valueOf.js delete mode 100644 views/node_modules/lodash/values.js delete mode 100644 views/node_modules/lodash/valuesIn.js delete mode 100644 views/node_modules/lodash/without.js delete mode 100644 views/node_modules/lodash/words.js delete mode 100644 views/node_modules/lodash/wrap.js delete mode 100644 views/node_modules/lodash/wrapperAt.js delete mode 100644 views/node_modules/lodash/wrapperChain.js delete mode 100644 views/node_modules/lodash/wrapperLodash.js delete mode 100644 views/node_modules/lodash/wrapperReverse.js delete mode 100644 views/node_modules/lodash/wrapperValue.js delete mode 100644 views/node_modules/lodash/xor.js delete mode 100644 views/node_modules/lodash/xorBy.js delete mode 100644 views/node_modules/lodash/xorWith.js delete mode 100644 views/node_modules/lodash/zip.js delete mode 100644 views/node_modules/lodash/zipObject.js delete mode 100644 views/node_modules/lodash/zipObjectDeep.js delete mode 100644 views/node_modules/lodash/zipWith.js delete mode 100644 views/node_modules/lowercase-keys/index.d.ts delete mode 100644 views/node_modules/lowercase-keys/index.js delete mode 100644 views/node_modules/lowercase-keys/license delete mode 100644 views/node_modules/lowercase-keys/package.json delete mode 100644 views/node_modules/lowercase-keys/readme.md delete mode 100644 views/node_modules/lru-cache/LICENSE delete mode 100644 views/node_modules/lru-cache/README.md delete mode 100644 views/node_modules/lru-cache/index.js delete mode 100644 views/node_modules/lru-cache/package.json delete mode 100644 views/node_modules/media-typer/HISTORY.md delete mode 100644 views/node_modules/media-typer/LICENSE delete mode 100644 views/node_modules/media-typer/README.md delete mode 100644 views/node_modules/media-typer/index.js delete mode 100644 views/node_modules/media-typer/package.json delete mode 100644 views/node_modules/memory-pager/.travis.yml delete mode 100644 views/node_modules/memory-pager/LICENSE delete mode 100644 views/node_modules/memory-pager/README.md delete mode 100644 views/node_modules/memory-pager/index.js delete mode 100644 views/node_modules/memory-pager/package.json delete mode 100644 views/node_modules/memory-pager/test.js delete mode 100644 views/node_modules/memorystore/.travis.yml delete mode 100644 views/node_modules/memorystore/LICENSE delete mode 100644 views/node_modules/memorystore/README.md delete mode 100644 views/node_modules/memorystore/index.d.ts delete mode 100644 views/node_modules/memorystore/index.js delete mode 100644 views/node_modules/memorystore/lib/memorystore.js delete mode 100644 views/node_modules/memorystore/node_modules/debug/LICENSE delete mode 100644 views/node_modules/memorystore/node_modules/debug/README.md delete mode 100644 views/node_modules/memorystore/node_modules/debug/package.json delete mode 100644 views/node_modules/memorystore/node_modules/debug/src/browser.js delete mode 100644 views/node_modules/memorystore/node_modules/debug/src/common.js delete mode 100644 views/node_modules/memorystore/node_modules/debug/src/index.js delete mode 100644 views/node_modules/memorystore/node_modules/debug/src/node.js delete mode 100644 views/node_modules/memorystore/node_modules/ms/index.js delete mode 100644 views/node_modules/memorystore/node_modules/ms/license.md delete mode 100644 views/node_modules/memorystore/node_modules/ms/package.json delete mode 100644 views/node_modules/memorystore/node_modules/ms/readme.md delete mode 100644 views/node_modules/memorystore/package.json delete mode 100644 views/node_modules/memorystore/test/store.js delete mode 100644 views/node_modules/merge-descriptors/HISTORY.md delete mode 100644 views/node_modules/merge-descriptors/LICENSE delete mode 100644 views/node_modules/merge-descriptors/README.md delete mode 100644 views/node_modules/merge-descriptors/index.js delete mode 100644 views/node_modules/merge-descriptors/package.json delete mode 100644 views/node_modules/methods/HISTORY.md delete mode 100644 views/node_modules/methods/LICENSE delete mode 100644 views/node_modules/methods/README.md delete mode 100644 views/node_modules/methods/index.js delete mode 100644 views/node_modules/methods/package.json delete mode 100644 views/node_modules/mime-db/HISTORY.md delete mode 100644 views/node_modules/mime-db/LICENSE delete mode 100644 views/node_modules/mime-db/README.md delete mode 100644 views/node_modules/mime-db/db.json delete mode 100644 views/node_modules/mime-db/index.js delete mode 100644 views/node_modules/mime-db/package.json delete mode 100644 views/node_modules/mime-types/HISTORY.md delete mode 100644 views/node_modules/mime-types/LICENSE delete mode 100644 views/node_modules/mime-types/README.md delete mode 100644 views/node_modules/mime-types/index.js delete mode 100644 views/node_modules/mime-types/package.json delete mode 100644 views/node_modules/mime/.npmignore delete mode 100644 views/node_modules/mime/CHANGELOG.md delete mode 100644 views/node_modules/mime/LICENSE delete mode 100644 views/node_modules/mime/README.md delete mode 100755 views/node_modules/mime/cli.js delete mode 100644 views/node_modules/mime/mime.js delete mode 100644 views/node_modules/mime/package.json delete mode 100755 views/node_modules/mime/src/build.js delete mode 100644 views/node_modules/mime/src/test.js delete mode 100644 views/node_modules/mime/types.json delete mode 100644 views/node_modules/mimic-response/index.js delete mode 100644 views/node_modules/mimic-response/license delete mode 100644 views/node_modules/mimic-response/package.json delete mode 100644 views/node_modules/mimic-response/readme.md delete mode 100644 views/node_modules/mongodb/HISTORY.md delete mode 100644 views/node_modules/mongodb/LICENSE.md delete mode 100644 views/node_modules/mongodb/README.md delete mode 100644 views/node_modules/mongodb/index.js delete mode 100644 views/node_modules/mongodb/lib/admin.js delete mode 100644 views/node_modules/mongodb/lib/aggregation_cursor.js delete mode 100644 views/node_modules/mongodb/lib/apm.js delete mode 100644 views/node_modules/mongodb/lib/async/.eslintrc delete mode 100644 views/node_modules/mongodb/lib/async/async_iterator.js delete mode 100644 views/node_modules/mongodb/lib/bulk/common.js delete mode 100644 views/node_modules/mongodb/lib/bulk/ordered.js delete mode 100644 views/node_modules/mongodb/lib/bulk/unordered.js delete mode 100644 views/node_modules/mongodb/lib/change_stream.js delete mode 100644 views/node_modules/mongodb/lib/cmap/connection.js delete mode 100644 views/node_modules/mongodb/lib/cmap/connection_pool.js delete mode 100644 views/node_modules/mongodb/lib/cmap/errors.js delete mode 100644 views/node_modules/mongodb/lib/cmap/events.js delete mode 100644 views/node_modules/mongodb/lib/cmap/message_stream.js delete mode 100644 views/node_modules/mongodb/lib/cmap/stream_description.js delete mode 100644 views/node_modules/mongodb/lib/collection.js delete mode 100644 views/node_modules/mongodb/lib/command_cursor.js delete mode 100644 views/node_modules/mongodb/lib/constants.js delete mode 100644 views/node_modules/mongodb/lib/core/auth/auth_provider.js delete mode 100644 views/node_modules/mongodb/lib/core/auth/defaultAuthProviders.js delete mode 100644 views/node_modules/mongodb/lib/core/auth/gssapi.js delete mode 100644 views/node_modules/mongodb/lib/core/auth/mongo_credentials.js delete mode 100644 views/node_modules/mongodb/lib/core/auth/mongocr.js delete mode 100644 views/node_modules/mongodb/lib/core/auth/mongodb_aws.js delete mode 100644 views/node_modules/mongodb/lib/core/auth/plain.js delete mode 100644 views/node_modules/mongodb/lib/core/auth/scram.js delete mode 100644 views/node_modules/mongodb/lib/core/auth/x509.js delete mode 100644 views/node_modules/mongodb/lib/core/connection/apm.js delete mode 100644 views/node_modules/mongodb/lib/core/connection/command_result.js delete mode 100644 views/node_modules/mongodb/lib/core/connection/commands.js delete mode 100644 views/node_modules/mongodb/lib/core/connection/connect.js delete mode 100644 views/node_modules/mongodb/lib/core/connection/connection.js delete mode 100644 views/node_modules/mongodb/lib/core/connection/logger.js delete mode 100644 views/node_modules/mongodb/lib/core/connection/msg.js delete mode 100644 views/node_modules/mongodb/lib/core/connection/pool.js delete mode 100644 views/node_modules/mongodb/lib/core/connection/utils.js delete mode 100644 views/node_modules/mongodb/lib/core/cursor.js delete mode 100644 views/node_modules/mongodb/lib/core/error.js delete mode 100644 views/node_modules/mongodb/lib/core/index.js delete mode 100644 views/node_modules/mongodb/lib/core/sdam/common.js delete mode 100644 views/node_modules/mongodb/lib/core/sdam/events.js delete mode 100644 views/node_modules/mongodb/lib/core/sdam/monitor.js delete mode 100644 views/node_modules/mongodb/lib/core/sdam/server.js delete mode 100644 views/node_modules/mongodb/lib/core/sdam/server_description.js delete mode 100644 views/node_modules/mongodb/lib/core/sdam/server_selection.js delete mode 100644 views/node_modules/mongodb/lib/core/sdam/srv_polling.js delete mode 100644 views/node_modules/mongodb/lib/core/sdam/topology.js delete mode 100644 views/node_modules/mongodb/lib/core/sdam/topology_description.js delete mode 100644 views/node_modules/mongodb/lib/core/sessions.js delete mode 100644 views/node_modules/mongodb/lib/core/tools/smoke_plugin.js delete mode 100644 views/node_modules/mongodb/lib/core/topologies/mongos.js delete mode 100644 views/node_modules/mongodb/lib/core/topologies/read_preference.js delete mode 100644 views/node_modules/mongodb/lib/core/topologies/replset.js delete mode 100644 views/node_modules/mongodb/lib/core/topologies/replset_state.js delete mode 100644 views/node_modules/mongodb/lib/core/topologies/server.js delete mode 100644 views/node_modules/mongodb/lib/core/topologies/shared.js delete mode 100644 views/node_modules/mongodb/lib/core/transactions.js delete mode 100644 views/node_modules/mongodb/lib/core/uri_parser.js delete mode 100644 views/node_modules/mongodb/lib/core/utils.js delete mode 100644 views/node_modules/mongodb/lib/core/wireprotocol/command.js delete mode 100644 views/node_modules/mongodb/lib/core/wireprotocol/compression.js delete mode 100644 views/node_modules/mongodb/lib/core/wireprotocol/constants.js delete mode 100644 views/node_modules/mongodb/lib/core/wireprotocol/get_more.js delete mode 100644 views/node_modules/mongodb/lib/core/wireprotocol/index.js delete mode 100644 views/node_modules/mongodb/lib/core/wireprotocol/kill_cursors.js delete mode 100644 views/node_modules/mongodb/lib/core/wireprotocol/query.js delete mode 100644 views/node_modules/mongodb/lib/core/wireprotocol/shared.js delete mode 100644 views/node_modules/mongodb/lib/core/wireprotocol/write_command.js delete mode 100644 views/node_modules/mongodb/lib/cursor.js delete mode 100644 views/node_modules/mongodb/lib/db.js delete mode 100644 views/node_modules/mongodb/lib/dynamic_loaders.js delete mode 100644 views/node_modules/mongodb/lib/encrypter.js delete mode 100644 views/node_modules/mongodb/lib/error.js delete mode 100644 views/node_modules/mongodb/lib/explain.js delete mode 100644 views/node_modules/mongodb/lib/gridfs-stream/download.js delete mode 100644 views/node_modules/mongodb/lib/gridfs-stream/index.js delete mode 100644 views/node_modules/mongodb/lib/gridfs-stream/upload.js delete mode 100644 views/node_modules/mongodb/lib/gridfs/chunk.js delete mode 100644 views/node_modules/mongodb/lib/gridfs/grid_store.js delete mode 100644 views/node_modules/mongodb/lib/mongo_client.js delete mode 100644 views/node_modules/mongodb/lib/operations/add_user.js delete mode 100644 views/node_modules/mongodb/lib/operations/admin_ops.js delete mode 100644 views/node_modules/mongodb/lib/operations/aggregate.js delete mode 100644 views/node_modules/mongodb/lib/operations/bulk_write.js delete mode 100644 views/node_modules/mongodb/lib/operations/collection_ops.js delete mode 100644 views/node_modules/mongodb/lib/operations/collections.js delete mode 100644 views/node_modules/mongodb/lib/operations/command.js delete mode 100644 views/node_modules/mongodb/lib/operations/command_v2.js delete mode 100644 views/node_modules/mongodb/lib/operations/common_functions.js delete mode 100644 views/node_modules/mongodb/lib/operations/connect.js delete mode 100644 views/node_modules/mongodb/lib/operations/count.js delete mode 100644 views/node_modules/mongodb/lib/operations/count_documents.js delete mode 100644 views/node_modules/mongodb/lib/operations/create_collection.js delete mode 100644 views/node_modules/mongodb/lib/operations/create_indexes.js delete mode 100644 views/node_modules/mongodb/lib/operations/cursor_ops.js delete mode 100644 views/node_modules/mongodb/lib/operations/db_ops.js delete mode 100644 views/node_modules/mongodb/lib/operations/delete_many.js delete mode 100644 views/node_modules/mongodb/lib/operations/delete_one.js delete mode 100644 views/node_modules/mongodb/lib/operations/distinct.js delete mode 100644 views/node_modules/mongodb/lib/operations/drop.js delete mode 100644 views/node_modules/mongodb/lib/operations/drop_index.js delete mode 100644 views/node_modules/mongodb/lib/operations/drop_indexes.js delete mode 100644 views/node_modules/mongodb/lib/operations/estimated_document_count.js delete mode 100644 views/node_modules/mongodb/lib/operations/execute_db_admin_command.js delete mode 100644 views/node_modules/mongodb/lib/operations/execute_operation.js delete mode 100644 views/node_modules/mongodb/lib/operations/find.js delete mode 100644 views/node_modules/mongodb/lib/operations/find_and_modify.js delete mode 100644 views/node_modules/mongodb/lib/operations/find_one.js delete mode 100644 views/node_modules/mongodb/lib/operations/find_one_and_delete.js delete mode 100644 views/node_modules/mongodb/lib/operations/find_one_and_replace.js delete mode 100644 views/node_modules/mongodb/lib/operations/find_one_and_update.js delete mode 100644 views/node_modules/mongodb/lib/operations/geo_haystack_search.js delete mode 100644 views/node_modules/mongodb/lib/operations/index_exists.js delete mode 100644 views/node_modules/mongodb/lib/operations/index_information.js delete mode 100644 views/node_modules/mongodb/lib/operations/indexes.js delete mode 100644 views/node_modules/mongodb/lib/operations/insert_many.js delete mode 100644 views/node_modules/mongodb/lib/operations/insert_one.js delete mode 100644 views/node_modules/mongodb/lib/operations/is_capped.js delete mode 100644 views/node_modules/mongodb/lib/operations/list_collections.js delete mode 100644 views/node_modules/mongodb/lib/operations/list_databases.js delete mode 100644 views/node_modules/mongodb/lib/operations/list_indexes.js delete mode 100644 views/node_modules/mongodb/lib/operations/map_reduce.js delete mode 100644 views/node_modules/mongodb/lib/operations/operation.js delete mode 100644 views/node_modules/mongodb/lib/operations/options_operation.js delete mode 100644 views/node_modules/mongodb/lib/operations/profiling_level.js delete mode 100644 views/node_modules/mongodb/lib/operations/re_index.js delete mode 100644 views/node_modules/mongodb/lib/operations/remove_user.js delete mode 100644 views/node_modules/mongodb/lib/operations/rename.js delete mode 100644 views/node_modules/mongodb/lib/operations/replace_one.js delete mode 100644 views/node_modules/mongodb/lib/operations/run_command.js delete mode 100644 views/node_modules/mongodb/lib/operations/set_profiling_level.js delete mode 100644 views/node_modules/mongodb/lib/operations/stats.js delete mode 100644 views/node_modules/mongodb/lib/operations/update_many.js delete mode 100644 views/node_modules/mongodb/lib/operations/update_one.js delete mode 100644 views/node_modules/mongodb/lib/operations/validate_collection.js delete mode 100644 views/node_modules/mongodb/lib/read_concern.js delete mode 100644 views/node_modules/mongodb/lib/topologies/mongos.js delete mode 100644 views/node_modules/mongodb/lib/topologies/native_topology.js delete mode 100644 views/node_modules/mongodb/lib/topologies/replset.js delete mode 100644 views/node_modules/mongodb/lib/topologies/server.js delete mode 100644 views/node_modules/mongodb/lib/topologies/topology_base.js delete mode 100644 views/node_modules/mongodb/lib/url_parser.js delete mode 100644 views/node_modules/mongodb/lib/utils.js delete mode 100644 views/node_modules/mongodb/lib/write_concern.js delete mode 100644 views/node_modules/mongodb/package.json delete mode 100644 views/node_modules/mongoose-legacy-pluralize/LICENSE delete mode 100644 views/node_modules/mongoose-legacy-pluralize/README.md delete mode 100644 views/node_modules/mongoose-legacy-pluralize/index.js delete mode 100644 views/node_modules/mongoose-legacy-pluralize/package.json delete mode 100644 views/node_modules/mongoose/History.md delete mode 100644 views/node_modules/mongoose/LICENSE.md delete mode 100644 views/node_modules/mongoose/README.md delete mode 100644 views/node_modules/mongoose/SECURITY.md delete mode 100644 views/node_modules/mongoose/browser.js delete mode 100644 views/node_modules/mongoose/build-browser.js delete mode 100644 views/node_modules/mongoose/dist/browser.umd.js delete mode 100644 views/node_modules/mongoose/index.d.ts delete mode 100644 views/node_modules/mongoose/index.js delete mode 100644 views/node_modules/mongoose/lib/aggregate.js delete mode 100644 views/node_modules/mongoose/lib/browser.js delete mode 100644 views/node_modules/mongoose/lib/browserDocument.js delete mode 100644 views/node_modules/mongoose/lib/cast.js delete mode 100644 views/node_modules/mongoose/lib/cast/boolean.js delete mode 100644 views/node_modules/mongoose/lib/cast/date.js delete mode 100644 views/node_modules/mongoose/lib/cast/decimal128.js delete mode 100644 views/node_modules/mongoose/lib/cast/number.js delete mode 100644 views/node_modules/mongoose/lib/cast/objectid.js delete mode 100644 views/node_modules/mongoose/lib/cast/string.js delete mode 100644 views/node_modules/mongoose/lib/collection.js delete mode 100644 views/node_modules/mongoose/lib/connection.js delete mode 100644 views/node_modules/mongoose/lib/connectionstate.js delete mode 100644 views/node_modules/mongoose/lib/cursor/AggregationCursor.js delete mode 100644 views/node_modules/mongoose/lib/cursor/ChangeStream.js delete mode 100644 views/node_modules/mongoose/lib/cursor/QueryCursor.js delete mode 100644 views/node_modules/mongoose/lib/document.js delete mode 100644 views/node_modules/mongoose/lib/document_provider.js delete mode 100644 views/node_modules/mongoose/lib/driver.js delete mode 100644 views/node_modules/mongoose/lib/drivers/SPEC.md delete mode 100644 views/node_modules/mongoose/lib/drivers/browser/ReadPreference.js delete mode 100644 views/node_modules/mongoose/lib/drivers/browser/binary.js delete mode 100644 views/node_modules/mongoose/lib/drivers/browser/decimal128.js delete mode 100644 views/node_modules/mongoose/lib/drivers/browser/index.js delete mode 100644 views/node_modules/mongoose/lib/drivers/browser/objectid.js delete mode 100644 views/node_modules/mongoose/lib/drivers/node-mongodb-native/ReadPreference.js delete mode 100644 views/node_modules/mongoose/lib/drivers/node-mongodb-native/binary.js delete mode 100644 views/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js delete mode 100644 views/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js delete mode 100644 views/node_modules/mongoose/lib/drivers/node-mongodb-native/decimal128.js delete mode 100644 views/node_modules/mongoose/lib/drivers/node-mongodb-native/index.js delete mode 100644 views/node_modules/mongoose/lib/drivers/node-mongodb-native/objectid.js delete mode 100644 views/node_modules/mongoose/lib/error/browserMissingSchema.js delete mode 100644 views/node_modules/mongoose/lib/error/cast.js delete mode 100644 views/node_modules/mongoose/lib/error/disconnected.js delete mode 100644 views/node_modules/mongoose/lib/error/divergentArray.js delete mode 100644 views/node_modules/mongoose/lib/error/index.js delete mode 100644 views/node_modules/mongoose/lib/error/messages.js delete mode 100644 views/node_modules/mongoose/lib/error/missingSchema.js delete mode 100644 views/node_modules/mongoose/lib/error/mongooseError.js delete mode 100644 views/node_modules/mongoose/lib/error/notFound.js delete mode 100644 views/node_modules/mongoose/lib/error/objectExpected.js delete mode 100644 views/node_modules/mongoose/lib/error/objectParameter.js delete mode 100644 views/node_modules/mongoose/lib/error/overwriteModel.js delete mode 100644 views/node_modules/mongoose/lib/error/parallelSave.js delete mode 100644 views/node_modules/mongoose/lib/error/parallelValidate.js delete mode 100644 views/node_modules/mongoose/lib/error/serverSelection.js delete mode 100644 views/node_modules/mongoose/lib/error/strict.js delete mode 100644 views/node_modules/mongoose/lib/error/validation.js delete mode 100644 views/node_modules/mongoose/lib/error/validator.js delete mode 100644 views/node_modules/mongoose/lib/error/version.js delete mode 100644 views/node_modules/mongoose/lib/helpers/aggregate/stringifyFunctionOperators.js delete mode 100644 views/node_modules/mongoose/lib/helpers/arrayDepth.js delete mode 100644 views/node_modules/mongoose/lib/helpers/clone.js delete mode 100644 views/node_modules/mongoose/lib/helpers/common.js delete mode 100644 views/node_modules/mongoose/lib/helpers/cursor/eachAsync.js delete mode 100644 views/node_modules/mongoose/lib/helpers/discriminator/checkEmbeddedDiscriminatorKeyProjection.js delete mode 100644 views/node_modules/mongoose/lib/helpers/discriminator/getConstructor.js delete mode 100644 views/node_modules/mongoose/lib/helpers/discriminator/getDiscriminatorByValue.js delete mode 100644 views/node_modules/mongoose/lib/helpers/discriminator/getSchemaDiscriminatorByValue.js delete mode 100644 views/node_modules/mongoose/lib/helpers/document/cleanModifiedSubpaths.js delete mode 100644 views/node_modules/mongoose/lib/helpers/document/compile.js delete mode 100644 views/node_modules/mongoose/lib/helpers/document/getEmbeddedDiscriminatorPath.js delete mode 100644 views/node_modules/mongoose/lib/helpers/document/handleSpreadDoc.js delete mode 100644 views/node_modules/mongoose/lib/helpers/each.js delete mode 100644 views/node_modules/mongoose/lib/helpers/get.js delete mode 100644 views/node_modules/mongoose/lib/helpers/getDefaultBulkwriteResult.js delete mode 100644 views/node_modules/mongoose/lib/helpers/getFunctionName.js delete mode 100644 views/node_modules/mongoose/lib/helpers/immediate.js delete mode 100644 views/node_modules/mongoose/lib/helpers/indexes/isDefaultIdIndex.js delete mode 100644 views/node_modules/mongoose/lib/helpers/indexes/isIndexEqual.js delete mode 100644 views/node_modules/mongoose/lib/helpers/isBsonType.js delete mode 100644 views/node_modules/mongoose/lib/helpers/isMongooseObject.js delete mode 100644 views/node_modules/mongoose/lib/helpers/isObject.js delete mode 100644 views/node_modules/mongoose/lib/helpers/isPromise.js delete mode 100644 views/node_modules/mongoose/lib/helpers/model/applyHooks.js delete mode 100644 views/node_modules/mongoose/lib/helpers/model/applyMethods.js delete mode 100644 views/node_modules/mongoose/lib/helpers/model/applyStaticHooks.js delete mode 100644 views/node_modules/mongoose/lib/helpers/model/applyStatics.js delete mode 100644 views/node_modules/mongoose/lib/helpers/model/castBulkWrite.js delete mode 100644 views/node_modules/mongoose/lib/helpers/model/discriminator.js delete mode 100644 views/node_modules/mongoose/lib/helpers/once.js delete mode 100644 views/node_modules/mongoose/lib/helpers/parallelLimit.js delete mode 100644 views/node_modules/mongoose/lib/helpers/populate/SkipPopulateValue.js delete mode 100644 views/node_modules/mongoose/lib/helpers/populate/assignRawDocsToIdStructure.js delete mode 100644 views/node_modules/mongoose/lib/helpers/populate/assignVals.js delete mode 100644 views/node_modules/mongoose/lib/helpers/populate/getModelsMapForPopulate.js delete mode 100644 views/node_modules/mongoose/lib/helpers/populate/getSchemaTypes.js delete mode 100644 views/node_modules/mongoose/lib/helpers/populate/getVirtual.js delete mode 100644 views/node_modules/mongoose/lib/helpers/populate/leanPopulateMap.js delete mode 100644 views/node_modules/mongoose/lib/helpers/populate/lookupLocalFields.js delete mode 100644 views/node_modules/mongoose/lib/helpers/populate/normalizeRefPath.js delete mode 100644 views/node_modules/mongoose/lib/helpers/populate/removeDeselectedForeignField.js delete mode 100644 views/node_modules/mongoose/lib/helpers/populate/validateRef.js delete mode 100644 views/node_modules/mongoose/lib/helpers/printJestWarning.js delete mode 100644 views/node_modules/mongoose/lib/helpers/projection/isDefiningProjection.js delete mode 100644 views/node_modules/mongoose/lib/helpers/projection/isExclusive.js delete mode 100644 views/node_modules/mongoose/lib/helpers/projection/isInclusive.js delete mode 100644 views/node_modules/mongoose/lib/helpers/projection/isPathExcluded.js delete mode 100644 views/node_modules/mongoose/lib/helpers/projection/isPathSelectedInclusive.js delete mode 100644 views/node_modules/mongoose/lib/helpers/projection/parseProjection.js delete mode 100644 views/node_modules/mongoose/lib/helpers/promiseOrCallback.js delete mode 100644 views/node_modules/mongoose/lib/helpers/query/applyGlobalMaxTimeMS.js delete mode 100644 views/node_modules/mongoose/lib/helpers/query/applyQueryMiddleware.js delete mode 100644 views/node_modules/mongoose/lib/helpers/query/castFilterPath.js delete mode 100644 views/node_modules/mongoose/lib/helpers/query/castUpdate.js delete mode 100644 views/node_modules/mongoose/lib/helpers/query/completeMany.js delete mode 100644 views/node_modules/mongoose/lib/helpers/query/getEmbeddedDiscriminatorPath.js delete mode 100644 views/node_modules/mongoose/lib/helpers/query/handleImmutable.js delete mode 100644 views/node_modules/mongoose/lib/helpers/query/hasDollarKeys.js delete mode 100644 views/node_modules/mongoose/lib/helpers/query/isOperator.js delete mode 100644 views/node_modules/mongoose/lib/helpers/query/selectPopulatedFields.js delete mode 100644 views/node_modules/mongoose/lib/helpers/query/wrapThunk.js delete mode 100644 views/node_modules/mongoose/lib/helpers/schema/addAutoId.js delete mode 100644 views/node_modules/mongoose/lib/helpers/schema/applyPlugins.js delete mode 100644 views/node_modules/mongoose/lib/helpers/schema/applyWriteConcern.js delete mode 100644 views/node_modules/mongoose/lib/helpers/schema/cleanPositionalOperators.js delete mode 100644 views/node_modules/mongoose/lib/helpers/schema/getIndexes.js delete mode 100644 views/node_modules/mongoose/lib/helpers/schema/getPath.js delete mode 100644 views/node_modules/mongoose/lib/helpers/schema/handleIdOption.js delete mode 100644 views/node_modules/mongoose/lib/helpers/schema/handleTimestampOption.js delete mode 100644 views/node_modules/mongoose/lib/helpers/schema/merge.js delete mode 100644 views/node_modules/mongoose/lib/helpers/schematype/handleImmutable.js delete mode 100644 views/node_modules/mongoose/lib/helpers/setDefaultsOnInsert.js delete mode 100644 views/node_modules/mongoose/lib/helpers/specialProperties.js delete mode 100644 views/node_modules/mongoose/lib/helpers/symbols.js delete mode 100644 views/node_modules/mongoose/lib/helpers/timestamps/setupTimestamps.js delete mode 100644 views/node_modules/mongoose/lib/helpers/topology/allServersUnknown.js delete mode 100644 views/node_modules/mongoose/lib/helpers/topology/isAtlas.js delete mode 100644 views/node_modules/mongoose/lib/helpers/topology/isSSLError.js delete mode 100644 views/node_modules/mongoose/lib/helpers/update/applyTimestampsToChildren.js delete mode 100644 views/node_modules/mongoose/lib/helpers/update/applyTimestampsToUpdate.js delete mode 100644 views/node_modules/mongoose/lib/helpers/update/castArrayFilters.js delete mode 100644 views/node_modules/mongoose/lib/helpers/update/modifiedPaths.js delete mode 100644 views/node_modules/mongoose/lib/helpers/update/moveImmutableProperties.js delete mode 100644 views/node_modules/mongoose/lib/helpers/update/removeUnusedArrayFilters.js delete mode 100644 views/node_modules/mongoose/lib/helpers/update/updatedPathsByArrayFilter.js delete mode 100644 views/node_modules/mongoose/lib/helpers/updateValidators.js delete mode 100644 views/node_modules/mongoose/lib/index.js delete mode 100644 views/node_modules/mongoose/lib/internal.js delete mode 100644 views/node_modules/mongoose/lib/model.js delete mode 100644 views/node_modules/mongoose/lib/options.js delete mode 100644 views/node_modules/mongoose/lib/options/PopulateOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/SchemaArrayOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/SchemaBufferOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/SchemaDateOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/SchemaDocumentArrayOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/SchemaMapOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/SchemaNumberOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/SchemaObjectIdOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/SchemaSingleNestedOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/SchemaStringOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/SchemaTypeOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/VirtualOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/propertyOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/removeOptions.js delete mode 100644 views/node_modules/mongoose/lib/options/saveOptions.js delete mode 100644 views/node_modules/mongoose/lib/plugins/idGetter.js delete mode 100644 views/node_modules/mongoose/lib/plugins/removeSubdocs.js delete mode 100644 views/node_modules/mongoose/lib/plugins/saveSubdocs.js delete mode 100644 views/node_modules/mongoose/lib/plugins/sharding.js delete mode 100644 views/node_modules/mongoose/lib/plugins/trackTransaction.js delete mode 100644 views/node_modules/mongoose/lib/plugins/validateBeforeSave.js delete mode 100644 views/node_modules/mongoose/lib/promise_provider.js delete mode 100644 views/node_modules/mongoose/lib/query.js delete mode 100644 views/node_modules/mongoose/lib/queryhelpers.js delete mode 100644 views/node_modules/mongoose/lib/schema.js delete mode 100644 views/node_modules/mongoose/lib/schema/SingleNestedPath.js delete mode 100644 views/node_modules/mongoose/lib/schema/array.js delete mode 100644 views/node_modules/mongoose/lib/schema/boolean.js delete mode 100644 views/node_modules/mongoose/lib/schema/buffer.js delete mode 100644 views/node_modules/mongoose/lib/schema/date.js delete mode 100644 views/node_modules/mongoose/lib/schema/decimal128.js delete mode 100644 views/node_modules/mongoose/lib/schema/documentarray.js delete mode 100644 views/node_modules/mongoose/lib/schema/index.js delete mode 100644 views/node_modules/mongoose/lib/schema/map.js delete mode 100644 views/node_modules/mongoose/lib/schema/mixed.js delete mode 100644 views/node_modules/mongoose/lib/schema/number.js delete mode 100644 views/node_modules/mongoose/lib/schema/objectid.js delete mode 100644 views/node_modules/mongoose/lib/schema/operators/bitwise.js delete mode 100644 views/node_modules/mongoose/lib/schema/operators/exists.js delete mode 100644 views/node_modules/mongoose/lib/schema/operators/geospatial.js delete mode 100644 views/node_modules/mongoose/lib/schema/operators/helpers.js delete mode 100644 views/node_modules/mongoose/lib/schema/operators/text.js delete mode 100644 views/node_modules/mongoose/lib/schema/operators/type.js delete mode 100644 views/node_modules/mongoose/lib/schema/string.js delete mode 100644 views/node_modules/mongoose/lib/schema/symbols.js delete mode 100644 views/node_modules/mongoose/lib/schematype.js delete mode 100644 views/node_modules/mongoose/lib/statemachine.js delete mode 100644 views/node_modules/mongoose/lib/types/array.js delete mode 100644 views/node_modules/mongoose/lib/types/buffer.js delete mode 100644 views/node_modules/mongoose/lib/types/core_array.js delete mode 100644 views/node_modules/mongoose/lib/types/decimal128.js delete mode 100644 views/node_modules/mongoose/lib/types/documentarray.js delete mode 100644 views/node_modules/mongoose/lib/types/embedded.js delete mode 100644 views/node_modules/mongoose/lib/types/index.js delete mode 100644 views/node_modules/mongoose/lib/types/map.js delete mode 100644 views/node_modules/mongoose/lib/types/objectid.js delete mode 100644 views/node_modules/mongoose/lib/types/subdocument.js delete mode 100644 views/node_modules/mongoose/lib/utils.js delete mode 100644 views/node_modules/mongoose/lib/validoptions.js delete mode 100644 views/node_modules/mongoose/lib/virtualtype.js delete mode 100644 views/node_modules/mongoose/node_modules/ms/index.js delete mode 100644 views/node_modules/mongoose/node_modules/ms/license.md delete mode 100644 views/node_modules/mongoose/node_modules/ms/package.json delete mode 100644 views/node_modules/mongoose/node_modules/ms/readme.md delete mode 100644 views/node_modules/mongoose/node_modules/safe-buffer/LICENSE delete mode 100644 views/node_modules/mongoose/node_modules/safe-buffer/README.md delete mode 100644 views/node_modules/mongoose/node_modules/safe-buffer/index.d.ts delete mode 100644 views/node_modules/mongoose/node_modules/safe-buffer/index.js delete mode 100644 views/node_modules/mongoose/node_modules/safe-buffer/package.json delete mode 100644 views/node_modules/mongoose/package.json delete mode 100644 views/node_modules/mongoose/tools/auth.js delete mode 100644 views/node_modules/mongoose/tools/repl.js delete mode 100644 views/node_modules/mongoose/tools/sharded.js delete mode 100644 views/node_modules/mpath/.travis.yml delete mode 100644 views/node_modules/mpath/History.md delete mode 100644 views/node_modules/mpath/LICENSE delete mode 100644 views/node_modules/mpath/Makefile delete mode 100644 views/node_modules/mpath/README.md delete mode 100644 views/node_modules/mpath/bench.js delete mode 100644 views/node_modules/mpath/bench.log delete mode 100644 views/node_modules/mpath/bench.out delete mode 100644 views/node_modules/mpath/index.js delete mode 100644 views/node_modules/mpath/lib/index.js delete mode 100644 views/node_modules/mpath/lib/stringToParts.js delete mode 100644 views/node_modules/mpath/package.json delete mode 100644 views/node_modules/mpath/test/.eslintrc.yml delete mode 100644 views/node_modules/mpath/test/index.js delete mode 100644 views/node_modules/mpath/test/stringToParts.js delete mode 100644 views/node_modules/mquery/.eslintignore delete mode 100644 views/node_modules/mquery/.travis.yml delete mode 100644 views/node_modules/mquery/History.md delete mode 100644 views/node_modules/mquery/LICENSE delete mode 100644 views/node_modules/mquery/Makefile delete mode 100644 views/node_modules/mquery/README.md delete mode 100644 views/node_modules/mquery/SECURITY.md delete mode 100644 views/node_modules/mquery/lib/collection/collection.js delete mode 100644 views/node_modules/mquery/lib/collection/index.js delete mode 100644 views/node_modules/mquery/lib/collection/node.js delete mode 100644 views/node_modules/mquery/lib/env.js delete mode 100644 views/node_modules/mquery/lib/mquery.js delete mode 100644 views/node_modules/mquery/lib/permissions.js delete mode 100644 views/node_modules/mquery/lib/utils.js delete mode 100644 views/node_modules/mquery/node_modules/debug/.coveralls.yml delete mode 100644 views/node_modules/mquery/node_modules/debug/.eslintrc delete mode 100644 views/node_modules/mquery/node_modules/debug/.npmignore delete mode 100644 views/node_modules/mquery/node_modules/debug/.travis.yml delete mode 100644 views/node_modules/mquery/node_modules/debug/CHANGELOG.md delete mode 100644 views/node_modules/mquery/node_modules/debug/LICENSE delete mode 100644 views/node_modules/mquery/node_modules/debug/Makefile delete mode 100644 views/node_modules/mquery/node_modules/debug/README.md delete mode 100644 views/node_modules/mquery/node_modules/debug/karma.conf.js delete mode 100644 views/node_modules/mquery/node_modules/debug/node.js delete mode 100644 views/node_modules/mquery/node_modules/debug/package.json delete mode 100644 views/node_modules/mquery/node_modules/debug/src/browser.js delete mode 100644 views/node_modules/mquery/node_modules/debug/src/debug.js delete mode 100644 views/node_modules/mquery/node_modules/debug/src/index.js delete mode 100644 views/node_modules/mquery/node_modules/debug/src/node.js delete mode 100644 views/node_modules/mquery/package.json delete mode 100644 views/node_modules/mquery/test/collection/browser.js delete mode 100644 views/node_modules/mquery/test/collection/mongo.js delete mode 100644 views/node_modules/mquery/test/collection/node.js delete mode 100644 views/node_modules/mquery/test/env.js delete mode 100644 views/node_modules/mquery/test/index.js delete mode 100644 views/node_modules/mquery/test/utils.test.js delete mode 100644 views/node_modules/ms/index.js delete mode 100644 views/node_modules/ms/license.md delete mode 100644 views/node_modules/ms/package.json delete mode 100644 views/node_modules/ms/readme.md delete mode 100644 views/node_modules/negotiator/HISTORY.md delete mode 100644 views/node_modules/negotiator/LICENSE delete mode 100644 views/node_modules/negotiator/README.md delete mode 100644 views/node_modules/negotiator/index.js delete mode 100644 views/node_modules/negotiator/lib/charset.js delete mode 100644 views/node_modules/negotiator/lib/encoding.js delete mode 100644 views/node_modules/negotiator/lib/language.js delete mode 100644 views/node_modules/negotiator/lib/mediaType.js delete mode 100644 views/node_modules/negotiator/package.json delete mode 100644 views/node_modules/normalize-url/index.d.ts delete mode 100644 views/node_modules/normalize-url/index.js delete mode 100644 views/node_modules/normalize-url/license delete mode 100644 views/node_modules/normalize-url/package.json delete mode 100644 views/node_modules/normalize-url/readme.md delete mode 100644 views/node_modules/object-assign/index.js delete mode 100644 views/node_modules/object-assign/license delete mode 100644 views/node_modules/object-assign/package.json delete mode 100644 views/node_modules/object-assign/readme.md delete mode 100644 views/node_modules/on-finished/HISTORY.md delete mode 100644 views/node_modules/on-finished/LICENSE delete mode 100644 views/node_modules/on-finished/README.md delete mode 100644 views/node_modules/on-finished/index.js delete mode 100644 views/node_modules/on-finished/package.json delete mode 100644 views/node_modules/on-headers/HISTORY.md delete mode 100644 views/node_modules/on-headers/LICENSE delete mode 100644 views/node_modules/on-headers/README.md delete mode 100644 views/node_modules/on-headers/index.js delete mode 100644 views/node_modules/on-headers/package.json delete mode 100644 views/node_modules/once/LICENSE delete mode 100644 views/node_modules/once/README.md delete mode 100644 views/node_modules/once/once.js delete mode 100644 views/node_modules/once/package.json delete mode 100644 views/node_modules/optional-require/README.md delete mode 100644 views/node_modules/optional-require/index.js delete mode 100644 views/node_modules/optional-require/package.json delete mode 100644 views/node_modules/p-cancelable/index.d.ts delete mode 100644 views/node_modules/p-cancelable/index.js delete mode 100644 views/node_modules/p-cancelable/license delete mode 100644 views/node_modules/p-cancelable/package.json delete mode 100644 views/node_modules/p-cancelable/readme.md delete mode 100644 views/node_modules/parseurl/HISTORY.md delete mode 100644 views/node_modules/parseurl/LICENSE delete mode 100644 views/node_modules/parseurl/README.md delete mode 100644 views/node_modules/parseurl/index.js delete mode 100644 views/node_modules/parseurl/package.json delete mode 100644 views/node_modules/path-parse/.travis.yml delete mode 100644 views/node_modules/path-parse/LICENSE delete mode 100644 views/node_modules/path-parse/README.md delete mode 100644 views/node_modules/path-parse/index.js delete mode 100644 views/node_modules/path-parse/package.json delete mode 100644 views/node_modules/path-parse/test.js delete mode 100644 views/node_modules/path-to-regexp/History.md delete mode 100644 views/node_modules/path-to-regexp/LICENSE delete mode 100644 views/node_modules/path-to-regexp/Readme.md delete mode 100644 views/node_modules/path-to-regexp/index.js delete mode 100644 views/node_modules/path-to-regexp/package.json delete mode 100644 views/node_modules/path/.npmignore delete mode 100644 views/node_modules/path/LICENSE delete mode 100644 views/node_modules/path/README.md delete mode 100644 views/node_modules/path/package.json delete mode 100644 views/node_modules/path/path.js delete mode 100644 views/node_modules/process-nextick-args/index.js delete mode 100644 views/node_modules/process-nextick-args/license.md delete mode 100644 views/node_modules/process-nextick-args/package.json delete mode 100644 views/node_modules/process-nextick-args/readme.md delete mode 100644 views/node_modules/process/.eslintrc delete mode 100644 views/node_modules/process/LICENSE delete mode 100644 views/node_modules/process/README.md delete mode 100644 views/node_modules/process/browser.js delete mode 100644 views/node_modules/process/index.js delete mode 100644 views/node_modules/process/package.json delete mode 100644 views/node_modules/process/test.js delete mode 100644 views/node_modules/promise/.jshintrc delete mode 100644 views/node_modules/promise/.npmignore delete mode 100644 views/node_modules/promise/LICENSE delete mode 100644 views/node_modules/promise/Readme.md delete mode 100644 views/node_modules/promise/build.js delete mode 100644 views/node_modules/promise/core.js delete mode 100644 views/node_modules/promise/domains/core.js delete mode 100644 views/node_modules/promise/domains/done.js delete mode 100644 views/node_modules/promise/domains/es6-extensions.js delete mode 100644 views/node_modules/promise/domains/finally.js delete mode 100644 views/node_modules/promise/domains/index.js delete mode 100644 views/node_modules/promise/domains/node-extensions.js delete mode 100644 views/node_modules/promise/domains/rejection-tracking.js delete mode 100644 views/node_modules/promise/domains/synchronous.js delete mode 100644 views/node_modules/promise/index.d.ts delete mode 100644 views/node_modules/promise/index.js delete mode 100644 views/node_modules/promise/lib/core.js delete mode 100644 views/node_modules/promise/lib/done.js delete mode 100644 views/node_modules/promise/lib/es6-extensions.js delete mode 100644 views/node_modules/promise/lib/finally.js delete mode 100644 views/node_modules/promise/lib/index.js delete mode 100644 views/node_modules/promise/lib/node-extensions.js delete mode 100644 views/node_modules/promise/lib/rejection-tracking.js delete mode 100644 views/node_modules/promise/lib/synchronous.js delete mode 100644 views/node_modules/promise/package.json delete mode 100644 views/node_modules/promise/polyfill-done.js delete mode 100644 views/node_modules/promise/polyfill.js delete mode 100644 views/node_modules/promise/setimmediate/core.js delete mode 100644 views/node_modules/promise/setimmediate/done.js delete mode 100644 views/node_modules/promise/setimmediate/es6-extensions.js delete mode 100644 views/node_modules/promise/setimmediate/finally.js delete mode 100644 views/node_modules/promise/setimmediate/index.js delete mode 100644 views/node_modules/promise/setimmediate/node-extensions.js delete mode 100644 views/node_modules/promise/setimmediate/rejection-tracking.js delete mode 100644 views/node_modules/promise/setimmediate/synchronous.js delete mode 100644 views/node_modules/promise/src/core.js delete mode 100644 views/node_modules/promise/src/done.js delete mode 100644 views/node_modules/promise/src/es6-extensions.js delete mode 100644 views/node_modules/promise/src/finally.js delete mode 100644 views/node_modules/promise/src/index.js delete mode 100644 views/node_modules/promise/src/node-extensions.js delete mode 100644 views/node_modules/promise/src/rejection-tracking.js delete mode 100644 views/node_modules/promise/src/synchronous.js delete mode 100644 views/node_modules/proxy-addr/HISTORY.md delete mode 100644 views/node_modules/proxy-addr/LICENSE delete mode 100644 views/node_modules/proxy-addr/README.md delete mode 100644 views/node_modules/proxy-addr/index.js delete mode 100644 views/node_modules/proxy-addr/package.json delete mode 100644 views/node_modules/pseudomap/LICENSE delete mode 100644 views/node_modules/pseudomap/README.md delete mode 100644 views/node_modules/pseudomap/map.js delete mode 100644 views/node_modules/pseudomap/package.json delete mode 100644 views/node_modules/pseudomap/pseudomap.js delete mode 100644 views/node_modules/pseudomap/test/basic.js delete mode 100644 views/node_modules/pug-attrs/LICENSE delete mode 100644 views/node_modules/pug-attrs/README.md delete mode 100644 views/node_modules/pug-attrs/index.js delete mode 100644 views/node_modules/pug-attrs/package.json delete mode 100644 views/node_modules/pug-code-gen/HISTORY.md delete mode 100644 views/node_modules/pug-code-gen/LICENSE delete mode 100644 views/node_modules/pug-code-gen/README.md delete mode 100644 views/node_modules/pug-code-gen/index.js delete mode 100644 views/node_modules/pug-code-gen/package.json delete mode 100644 views/node_modules/pug-error/LICENSE delete mode 100644 views/node_modules/pug-error/README.md delete mode 100644 views/node_modules/pug-error/index.js delete mode 100644 views/node_modules/pug-error/package.json delete mode 100644 views/node_modules/pug-filters/CHANGELOG.md delete mode 100644 views/node_modules/pug-filters/LICENSE delete mode 100644 views/node_modules/pug-filters/README.md delete mode 100644 views/node_modules/pug-filters/index.js delete mode 100644 views/node_modules/pug-filters/lib/handle-filters.js delete mode 100644 views/node_modules/pug-filters/lib/run-filter.js delete mode 100644 views/node_modules/pug-filters/package.json delete mode 100644 views/node_modules/pug-lexer/History.md delete mode 100644 views/node_modules/pug-lexer/LICENSE delete mode 100644 views/node_modules/pug-lexer/README.md delete mode 100644 views/node_modules/pug-lexer/index.d.ts delete mode 100644 views/node_modules/pug-lexer/index.js delete mode 100644 views/node_modules/pug-lexer/package.json delete mode 100644 views/node_modules/pug-linker/HISTORY.md delete mode 100644 views/node_modules/pug-linker/LICENSE delete mode 100644 views/node_modules/pug-linker/README.md delete mode 100644 views/node_modules/pug-linker/index.js delete mode 100644 views/node_modules/pug-linker/package.json delete mode 100644 views/node_modules/pug-load/HISTORY.md delete mode 100644 views/node_modules/pug-load/LICENSE delete mode 100644 views/node_modules/pug-load/README.md delete mode 100644 views/node_modules/pug-load/index.js delete mode 100644 views/node_modules/pug-load/package.json delete mode 100644 views/node_modules/pug-parser/HISTORY.md delete mode 100644 views/node_modules/pug-parser/LICENSE delete mode 100644 views/node_modules/pug-parser/README.md delete mode 100644 views/node_modules/pug-parser/index.js delete mode 100644 views/node_modules/pug-parser/lib/inline-tags.js delete mode 100644 views/node_modules/pug-parser/package.json delete mode 100644 views/node_modules/pug-runtime/CHANGELOG.md delete mode 100644 views/node_modules/pug-runtime/LICENSE delete mode 100644 views/node_modules/pug-runtime/README.md delete mode 100644 views/node_modules/pug-runtime/build.js delete mode 100644 views/node_modules/pug-runtime/index.js delete mode 100644 views/node_modules/pug-runtime/lib/dependencies.js delete mode 100644 views/node_modules/pug-runtime/lib/internals.js delete mode 100644 views/node_modules/pug-runtime/lib/sources.js delete mode 100644 views/node_modules/pug-runtime/package.json delete mode 100644 views/node_modules/pug-runtime/wrap.js delete mode 100644 views/node_modules/pug-strip-comments/CHANGELOG.md delete mode 100644 views/node_modules/pug-strip-comments/LICENSE.md delete mode 100644 views/node_modules/pug-strip-comments/README.md delete mode 100644 views/node_modules/pug-strip-comments/index.js delete mode 100644 views/node_modules/pug-strip-comments/package.json delete mode 100644 views/node_modules/pug-walk/HISTORY.md delete mode 100644 views/node_modules/pug-walk/LICENSE delete mode 100644 views/node_modules/pug-walk/README.md delete mode 100644 views/node_modules/pug-walk/index.js delete mode 100644 views/node_modules/pug-walk/package.json delete mode 100644 views/node_modules/pug/History.md delete mode 100644 views/node_modules/pug/LICENSE delete mode 100644 views/node_modules/pug/README.md delete mode 100644 views/node_modules/pug/lib/index.js delete mode 100644 views/node_modules/pug/package.json delete mode 100644 views/node_modules/pug/register.js delete mode 100644 views/node_modules/pump/.travis.yml delete mode 100644 views/node_modules/pump/LICENSE delete mode 100644 views/node_modules/pump/README.md delete mode 100644 views/node_modules/pump/index.js delete mode 100644 views/node_modules/pump/package.json delete mode 100644 views/node_modules/pump/test-browser.js delete mode 100644 views/node_modules/pump/test-node.js delete mode 100644 views/node_modules/punycode/LICENSE-MIT.txt delete mode 100644 views/node_modules/punycode/README.md delete mode 100644 views/node_modules/punycode/package.json delete mode 100644 views/node_modules/punycode/punycode.js delete mode 100644 views/node_modules/qs/.editorconfig delete mode 100644 views/node_modules/qs/.eslintignore delete mode 100644 views/node_modules/qs/.eslintrc delete mode 100644 views/node_modules/qs/CHANGELOG.md delete mode 100644 views/node_modules/qs/LICENSE delete mode 100644 views/node_modules/qs/README.md delete mode 100644 views/node_modules/qs/dist/qs.js delete mode 100644 views/node_modules/qs/lib/formats.js delete mode 100644 views/node_modules/qs/lib/index.js delete mode 100644 views/node_modules/qs/lib/parse.js delete mode 100644 views/node_modules/qs/lib/stringify.js delete mode 100644 views/node_modules/qs/lib/utils.js delete mode 100644 views/node_modules/qs/package.json delete mode 100644 views/node_modules/qs/test/.eslintrc delete mode 100644 views/node_modules/qs/test/index.js delete mode 100644 views/node_modules/qs/test/parse.js delete mode 100644 views/node_modules/qs/test/stringify.js delete mode 100644 views/node_modules/qs/test/utils.js delete mode 100644 views/node_modules/querystring/.History.md.un~ delete mode 100644 views/node_modules/querystring/.Readme.md.un~ delete mode 100644 views/node_modules/querystring/.package.json.un~ delete mode 100644 views/node_modules/querystring/.travis.yml delete mode 100644 views/node_modules/querystring/History.md delete mode 100644 views/node_modules/querystring/License.md delete mode 100644 views/node_modules/querystring/Readme.md delete mode 100644 views/node_modules/querystring/decode.js delete mode 100644 views/node_modules/querystring/encode.js delete mode 100644 views/node_modules/querystring/index.js delete mode 100644 views/node_modules/querystring/package.json delete mode 100644 views/node_modules/querystring/test/.index.js.un~ delete mode 100644 views/node_modules/querystring/test/common-index.js delete mode 100644 views/node_modules/querystring/test/index.js delete mode 100644 views/node_modules/querystring/test/tap-index.js delete mode 100644 views/node_modules/quick-lru/index.d.ts delete mode 100644 views/node_modules/quick-lru/index.js delete mode 100644 views/node_modules/quick-lru/license delete mode 100644 views/node_modules/quick-lru/package.json delete mode 100644 views/node_modules/quick-lru/readme.md delete mode 100644 views/node_modules/random-bytes/HISTORY.md delete mode 100644 views/node_modules/random-bytes/LICENSE delete mode 100644 views/node_modules/random-bytes/README.md delete mode 100644 views/node_modules/random-bytes/index.js delete mode 100644 views/node_modules/random-bytes/package.json delete mode 100644 views/node_modules/range-parser/HISTORY.md delete mode 100644 views/node_modules/range-parser/LICENSE delete mode 100644 views/node_modules/range-parser/README.md delete mode 100644 views/node_modules/range-parser/index.js delete mode 100644 views/node_modules/range-parser/package.json delete mode 100644 views/node_modules/raw-body/HISTORY.md delete mode 100644 views/node_modules/raw-body/LICENSE delete mode 100644 views/node_modules/raw-body/README.md delete mode 100644 views/node_modules/raw-body/index.d.ts delete mode 100644 views/node_modules/raw-body/index.js delete mode 100644 views/node_modules/raw-body/package.json delete mode 100644 views/node_modules/readable-stream/.travis.yml delete mode 100644 views/node_modules/readable-stream/CONTRIBUTING.md delete mode 100644 views/node_modules/readable-stream/GOVERNANCE.md delete mode 100644 views/node_modules/readable-stream/LICENSE delete mode 100644 views/node_modules/readable-stream/README.md delete mode 100644 views/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md delete mode 100644 views/node_modules/readable-stream/duplex-browser.js delete mode 100644 views/node_modules/readable-stream/duplex.js delete mode 100644 views/node_modules/readable-stream/lib/_stream_duplex.js delete mode 100644 views/node_modules/readable-stream/lib/_stream_passthrough.js delete mode 100644 views/node_modules/readable-stream/lib/_stream_readable.js delete mode 100644 views/node_modules/readable-stream/lib/_stream_transform.js delete mode 100644 views/node_modules/readable-stream/lib/_stream_writable.js delete mode 100644 views/node_modules/readable-stream/lib/internal/streams/BufferList.js delete mode 100644 views/node_modules/readable-stream/lib/internal/streams/destroy.js delete mode 100644 views/node_modules/readable-stream/lib/internal/streams/stream-browser.js delete mode 100644 views/node_modules/readable-stream/lib/internal/streams/stream.js delete mode 100644 views/node_modules/readable-stream/package.json delete mode 100644 views/node_modules/readable-stream/passthrough.js delete mode 100644 views/node_modules/readable-stream/readable-browser.js delete mode 100644 views/node_modules/readable-stream/readable.js delete mode 100644 views/node_modules/readable-stream/transform.js delete mode 100644 views/node_modules/readable-stream/writable-browser.js delete mode 100644 views/node_modules/readable-stream/writable.js delete mode 100644 views/node_modules/regexp-clone/.travis.yml delete mode 100644 views/node_modules/regexp-clone/History.md delete mode 100644 views/node_modules/regexp-clone/LICENSE delete mode 100644 views/node_modules/regexp-clone/Makefile delete mode 100644 views/node_modules/regexp-clone/README.md delete mode 100644 views/node_modules/regexp-clone/index.js delete mode 100644 views/node_modules/regexp-clone/package.json delete mode 100644 views/node_modules/regexp-clone/test/index.js delete mode 100644 views/node_modules/resolve-alpn/.editorconfig delete mode 100644 views/node_modules/resolve-alpn/.github/workflows/nodejs.yml delete mode 100644 views/node_modules/resolve-alpn/LICENSE delete mode 100644 views/node_modules/resolve-alpn/README.md delete mode 100644 views/node_modules/resolve-alpn/index.js delete mode 100644 views/node_modules/resolve-alpn/package.json delete mode 100644 views/node_modules/resolve-alpn/test.js delete mode 100644 views/node_modules/resolve/.editorconfig delete mode 100644 views/node_modules/resolve/.eslintignore delete mode 100644 views/node_modules/resolve/.eslintrc delete mode 100644 views/node_modules/resolve/LICENSE delete mode 100644 views/node_modules/resolve/SECURITY.md delete mode 100644 views/node_modules/resolve/appveyor.yml delete mode 100644 views/node_modules/resolve/example/async.js delete mode 100644 views/node_modules/resolve/example/sync.js delete mode 100644 views/node_modules/resolve/index.js delete mode 100644 views/node_modules/resolve/lib/async.js delete mode 100644 views/node_modules/resolve/lib/caller.js delete mode 100644 views/node_modules/resolve/lib/core.js delete mode 100644 views/node_modules/resolve/lib/core.json delete mode 100644 views/node_modules/resolve/lib/is-core.js delete mode 100644 views/node_modules/resolve/lib/node-modules-paths.js delete mode 100644 views/node_modules/resolve/lib/normalize-options.js delete mode 100644 views/node_modules/resolve/lib/sync.js delete mode 100644 views/node_modules/resolve/package.json delete mode 100644 views/node_modules/resolve/readme.markdown delete mode 100644 views/node_modules/resolve/test/.eslintrc delete mode 100644 views/node_modules/resolve/test/core.js delete mode 100644 views/node_modules/resolve/test/dotdot.js delete mode 100644 views/node_modules/resolve/test/dotdot/abc/index.js delete mode 100644 views/node_modules/resolve/test/dotdot/index.js delete mode 100644 views/node_modules/resolve/test/faulty_basedir.js delete mode 100644 views/node_modules/resolve/test/filter.js delete mode 100644 views/node_modules/resolve/test/filter_sync.js delete mode 100644 views/node_modules/resolve/test/mock.js delete mode 100644 views/node_modules/resolve/test/mock_sync.js delete mode 100644 views/node_modules/resolve/test/module_dir.js delete mode 100644 views/node_modules/resolve/test/module_dir/xmodules/aaa/index.js delete mode 100644 views/node_modules/resolve/test/module_dir/ymodules/aaa/index.js delete mode 100644 views/node_modules/resolve/test/module_dir/zmodules/bbb/main.js delete mode 100644 views/node_modules/resolve/test/module_dir/zmodules/bbb/package.json delete mode 100644 views/node_modules/resolve/test/node-modules-paths.js delete mode 100644 views/node_modules/resolve/test/node_path.js delete mode 100644 views/node_modules/resolve/test/node_path/x/aaa/index.js delete mode 100644 views/node_modules/resolve/test/node_path/x/ccc/index.js delete mode 100644 views/node_modules/resolve/test/node_path/y/bbb/index.js delete mode 100644 views/node_modules/resolve/test/node_path/y/ccc/index.js delete mode 100644 views/node_modules/resolve/test/nonstring.js delete mode 100644 views/node_modules/resolve/test/pathfilter.js delete mode 100644 views/node_modules/resolve/test/pathfilter/deep_ref/main.js delete mode 100644 views/node_modules/resolve/test/precedence.js delete mode 100644 views/node_modules/resolve/test/precedence/aaa.js delete mode 100644 views/node_modules/resolve/test/precedence/aaa/index.js delete mode 100644 views/node_modules/resolve/test/precedence/aaa/main.js delete mode 100644 views/node_modules/resolve/test/precedence/bbb.js delete mode 100644 views/node_modules/resolve/test/precedence/bbb/main.js delete mode 100644 views/node_modules/resolve/test/resolver.js delete mode 100644 views/node_modules/resolve/test/resolver/baz/doom.js delete mode 100644 views/node_modules/resolve/test/resolver/baz/package.json delete mode 100644 views/node_modules/resolve/test/resolver/baz/quux.js delete mode 100644 views/node_modules/resolve/test/resolver/browser_field/a.js delete mode 100644 views/node_modules/resolve/test/resolver/browser_field/b.js delete mode 100644 views/node_modules/resolve/test/resolver/browser_field/package.json delete mode 100644 views/node_modules/resolve/test/resolver/cup.coffee delete mode 100644 views/node_modules/resolve/test/resolver/dot_main/index.js delete mode 100644 views/node_modules/resolve/test/resolver/dot_main/package.json delete mode 100644 views/node_modules/resolve/test/resolver/dot_slash_main/index.js delete mode 100644 views/node_modules/resolve/test/resolver/dot_slash_main/package.json delete mode 100644 views/node_modules/resolve/test/resolver/foo.js delete mode 100644 views/node_modules/resolve/test/resolver/incorrect_main/index.js delete mode 100644 views/node_modules/resolve/test/resolver/incorrect_main/package.json delete mode 100644 views/node_modules/resolve/test/resolver/invalid_main/package.json delete mode 100644 views/node_modules/resolve/test/resolver/mug.coffee delete mode 100644 views/node_modules/resolve/test/resolver/mug.js delete mode 100644 views/node_modules/resolve/test/resolver/multirepo/lerna.json delete mode 100644 views/node_modules/resolve/test/resolver/multirepo/package.json delete mode 100644 views/node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js delete mode 100644 views/node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json delete mode 100644 views/node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js delete mode 100644 views/node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json delete mode 100644 views/node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js delete mode 100644 views/node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json delete mode 100644 views/node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js delete mode 100644 views/node_modules/resolve/test/resolver/other_path/lib/other-lib.js delete mode 100644 views/node_modules/resolve/test/resolver/other_path/root.js delete mode 100644 views/node_modules/resolve/test/resolver/quux/foo/index.js delete mode 100644 views/node_modules/resolve/test/resolver/same_names/foo.js delete mode 100644 views/node_modules/resolve/test/resolver/same_names/foo/index.js delete mode 100644 views/node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js delete mode 100644 views/node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep delete mode 100644 views/node_modules/resolve/test/resolver/symlinked/package/bar.js delete mode 100644 views/node_modules/resolve/test/resolver/symlinked/package/package.json delete mode 100644 views/node_modules/resolve/test/resolver/without_basedir/main.js delete mode 100644 views/node_modules/resolve/test/resolver_sync.js delete mode 100644 views/node_modules/resolve/test/shadowed_core.js delete mode 100644 views/node_modules/resolve/test/shadowed_core/node_modules/util/index.js delete mode 100644 views/node_modules/resolve/test/subdirs.js delete mode 100644 views/node_modules/resolve/test/symlinks.js delete mode 100644 views/node_modules/responselike/LICENSE delete mode 100644 views/node_modules/responselike/README.md delete mode 100644 views/node_modules/responselike/package.json delete mode 100644 views/node_modules/responselike/src/index.js delete mode 100644 views/node_modules/safe-buffer/LICENSE delete mode 100644 views/node_modules/safe-buffer/README.md delete mode 100644 views/node_modules/safe-buffer/index.d.ts delete mode 100644 views/node_modules/safe-buffer/index.js delete mode 100644 views/node_modules/safe-buffer/package.json delete mode 100644 views/node_modules/safer-buffer/LICENSE delete mode 100644 views/node_modules/safer-buffer/Porting-Buffer.md delete mode 100644 views/node_modules/safer-buffer/Readme.md delete mode 100644 views/node_modules/safer-buffer/dangerous.js delete mode 100644 views/node_modules/safer-buffer/package.json delete mode 100644 views/node_modules/safer-buffer/safer.js delete mode 100644 views/node_modules/safer-buffer/tests.js delete mode 100644 views/node_modules/saslprep/.editorconfig delete mode 100644 views/node_modules/saslprep/.gitattributes delete mode 100644 views/node_modules/saslprep/.travis.yml delete mode 100644 views/node_modules/saslprep/CHANGELOG.md delete mode 100644 views/node_modules/saslprep/LICENSE delete mode 100644 views/node_modules/saslprep/code-points.mem delete mode 100644 views/node_modules/saslprep/generate-code-points.js delete mode 100644 views/node_modules/saslprep/index.js delete mode 100644 views/node_modules/saslprep/lib/code-points.js delete mode 100644 views/node_modules/saslprep/lib/memory-code-points.js delete mode 100644 views/node_modules/saslprep/lib/util.js delete mode 100644 views/node_modules/saslprep/package.json delete mode 100644 views/node_modules/saslprep/readme.md delete mode 100644 views/node_modules/saslprep/test/index.js delete mode 100644 views/node_modules/saslprep/test/util.js delete mode 100644 views/node_modules/send/HISTORY.md delete mode 100644 views/node_modules/send/LICENSE delete mode 100644 views/node_modules/send/README.md delete mode 100644 views/node_modules/send/index.js delete mode 100644 views/node_modules/send/node_modules/ms/index.js delete mode 100644 views/node_modules/send/node_modules/ms/license.md delete mode 100644 views/node_modules/send/node_modules/ms/package.json delete mode 100644 views/node_modules/send/node_modules/ms/readme.md delete mode 100644 views/node_modules/send/package.json delete mode 100644 views/node_modules/serve-static/HISTORY.md delete mode 100644 views/node_modules/serve-static/LICENSE delete mode 100644 views/node_modules/serve-static/README.md delete mode 100644 views/node_modules/serve-static/index.js delete mode 100644 views/node_modules/serve-static/package.json delete mode 100644 views/node_modules/setprototypeof/LICENSE delete mode 100644 views/node_modules/setprototypeof/README.md delete mode 100644 views/node_modules/setprototypeof/index.d.ts delete mode 100644 views/node_modules/setprototypeof/index.js delete mode 100644 views/node_modules/setprototypeof/package.json delete mode 100644 views/node_modules/setprototypeof/test/index.js delete mode 100644 views/node_modules/sift/.babelrc delete mode 100644 views/node_modules/sift/.coveralls.yml delete mode 100755 views/node_modules/sift/.travis.yml delete mode 100644 views/node_modules/sift/MIT-LICENSE.txt delete mode 100755 views/node_modules/sift/README.md delete mode 100644 views/node_modules/sift/bower.json delete mode 100644 views/node_modules/sift/changelog.md delete mode 100644 views/node_modules/sift/coverage/coverage.json delete mode 100644 views/node_modules/sift/coverage/lcov.info delete mode 100644 views/node_modules/sift/gulpfile.js delete mode 100644 views/node_modules/sift/index.d.ts delete mode 100644 views/node_modules/sift/lib/index.js delete mode 100644 views/node_modules/sift/package.json delete mode 100644 views/node_modules/sift/sift.min.js delete mode 100644 views/node_modules/sift/src/index.js delete mode 100644 views/node_modules/sift/test/basic-test.js delete mode 100644 views/node_modules/sift/test/immutable-test.js delete mode 100755 views/node_modules/sift/test/objects-test.js delete mode 100644 views/node_modules/sift/test/operations-test.js delete mode 100644 views/node_modules/sift/tsconfig.json delete mode 100644 views/node_modules/sift/webpack.config.js delete mode 100644 views/node_modules/sift/yarn.lock delete mode 100644 views/node_modules/sliced/History.md delete mode 100644 views/node_modules/sliced/LICENSE delete mode 100644 views/node_modules/sliced/README.md delete mode 100644 views/node_modules/sliced/index.js delete mode 100644 views/node_modules/sliced/package.json delete mode 100644 views/node_modules/sparse-bitfield/.npmignore delete mode 100644 views/node_modules/sparse-bitfield/.travis.yml delete mode 100644 views/node_modules/sparse-bitfield/LICENSE delete mode 100644 views/node_modules/sparse-bitfield/README.md delete mode 100644 views/node_modules/sparse-bitfield/index.js delete mode 100644 views/node_modules/sparse-bitfield/package.json delete mode 100644 views/node_modules/sparse-bitfield/test.js delete mode 100644 views/node_modules/statuses/HISTORY.md delete mode 100644 views/node_modules/statuses/LICENSE delete mode 100644 views/node_modules/statuses/README.md delete mode 100644 views/node_modules/statuses/codes.json delete mode 100644 views/node_modules/statuses/index.js delete mode 100644 views/node_modules/statuses/package.json delete mode 100644 views/node_modules/string_decoder/.travis.yml delete mode 100644 views/node_modules/string_decoder/LICENSE delete mode 100644 views/node_modules/string_decoder/README.md delete mode 100644 views/node_modules/string_decoder/lib/string_decoder.js delete mode 100644 views/node_modules/string_decoder/package.json delete mode 100644 views/node_modules/to-fast-properties/index.js delete mode 100644 views/node_modules/to-fast-properties/license delete mode 100644 views/node_modules/to-fast-properties/package.json delete mode 100644 views/node_modules/to-fast-properties/readme.md delete mode 100644 views/node_modules/toidentifier/LICENSE delete mode 100644 views/node_modules/toidentifier/README.md delete mode 100644 views/node_modules/toidentifier/index.js delete mode 100644 views/node_modules/toidentifier/package.json delete mode 100644 views/node_modules/token-stream/.npmignore delete mode 100644 views/node_modules/token-stream/.travis.yml delete mode 100644 views/node_modules/token-stream/HISTORY.md delete mode 100644 views/node_modules/token-stream/LICENSE delete mode 100644 views/node_modules/token-stream/README.md delete mode 100644 views/node_modules/token-stream/index.js delete mode 100644 views/node_modules/token-stream/package.json delete mode 100644 views/node_modules/token-stream/test/index.js delete mode 100644 views/node_modules/type-is/HISTORY.md delete mode 100644 views/node_modules/type-is/LICENSE delete mode 100644 views/node_modules/type-is/README.md delete mode 100644 views/node_modules/type-is/index.js delete mode 100644 views/node_modules/type-is/package.json delete mode 100644 views/node_modules/uid-safe/HISTORY.md delete mode 100644 views/node_modules/uid-safe/LICENSE delete mode 100644 views/node_modules/uid-safe/README.md delete mode 100644 views/node_modules/uid-safe/index.js delete mode 100644 views/node_modules/uid-safe/package.json delete mode 100644 views/node_modules/unpipe/HISTORY.md delete mode 100644 views/node_modules/unpipe/LICENSE delete mode 100644 views/node_modules/unpipe/README.md delete mode 100644 views/node_modules/unpipe/index.js delete mode 100644 views/node_modules/unpipe/package.json delete mode 100644 views/node_modules/url/.npmignore delete mode 100644 views/node_modules/url/.travis.yml delete mode 100644 views/node_modules/url/.zuul.yml delete mode 100644 views/node_modules/url/LICENSE delete mode 100644 views/node_modules/url/README.md delete mode 100644 views/node_modules/url/package.json delete mode 100644 views/node_modules/url/test.js delete mode 100644 views/node_modules/url/url.js delete mode 100644 views/node_modules/url/util.js delete mode 100644 views/node_modules/util-deprecate/History.md delete mode 100644 views/node_modules/util-deprecate/LICENSE delete mode 100644 views/node_modules/util-deprecate/README.md delete mode 100644 views/node_modules/util-deprecate/browser.js delete mode 100644 views/node_modules/util-deprecate/node.js delete mode 100644 views/node_modules/util-deprecate/package.json delete mode 100644 views/node_modules/util/LICENSE delete mode 100644 views/node_modules/util/README.md delete mode 100644 views/node_modules/util/package.json delete mode 100644 views/node_modules/util/support/isBuffer.js delete mode 100644 views/node_modules/util/support/isBufferBrowser.js delete mode 100644 views/node_modules/util/util.js delete mode 100644 views/node_modules/utils-merge/.npmignore delete mode 100644 views/node_modules/utils-merge/LICENSE delete mode 100644 views/node_modules/utils-merge/README.md delete mode 100644 views/node_modules/utils-merge/index.js delete mode 100644 views/node_modules/utils-merge/package.json delete mode 100644 views/node_modules/validator/CHANGELOG.md delete mode 100644 views/node_modules/validator/LICENSE delete mode 100644 views/node_modules/validator/README.md delete mode 100644 views/node_modules/validator/es/index.js delete mode 100644 views/node_modules/validator/es/lib/alpha.js delete mode 100644 views/node_modules/validator/es/lib/blacklist.js delete mode 100644 views/node_modules/validator/es/lib/contains.js delete mode 100644 views/node_modules/validator/es/lib/equals.js delete mode 100644 views/node_modules/validator/es/lib/escape.js delete mode 100644 views/node_modules/validator/es/lib/isAfter.js delete mode 100644 views/node_modules/validator/es/lib/isAlpha.js delete mode 100644 views/node_modules/validator/es/lib/isAlphanumeric.js delete mode 100644 views/node_modules/validator/es/lib/isAscii.js delete mode 100644 views/node_modules/validator/es/lib/isBIC.js delete mode 100644 views/node_modules/validator/es/lib/isBase32.js delete mode 100644 views/node_modules/validator/es/lib/isBase58.js delete mode 100644 views/node_modules/validator/es/lib/isBase64.js delete mode 100644 views/node_modules/validator/es/lib/isBefore.js delete mode 100644 views/node_modules/validator/es/lib/isBoolean.js delete mode 100644 views/node_modules/validator/es/lib/isBtcAddress.js delete mode 100644 views/node_modules/validator/es/lib/isByteLength.js delete mode 100644 views/node_modules/validator/es/lib/isCreditCard.js delete mode 100755 views/node_modules/validator/es/lib/isCurrency.js delete mode 100644 views/node_modules/validator/es/lib/isDataURI.js delete mode 100644 views/node_modules/validator/es/lib/isDate.js delete mode 100644 views/node_modules/validator/es/lib/isDecimal.js delete mode 100644 views/node_modules/validator/es/lib/isDivisibleBy.js delete mode 100644 views/node_modules/validator/es/lib/isEAN.js delete mode 100644 views/node_modules/validator/es/lib/isEmail.js delete mode 100644 views/node_modules/validator/es/lib/isEmpty.js delete mode 100644 views/node_modules/validator/es/lib/isEthereumAddress.js delete mode 100644 views/node_modules/validator/es/lib/isFQDN.js delete mode 100644 views/node_modules/validator/es/lib/isFloat.js delete mode 100644 views/node_modules/validator/es/lib/isFullWidth.js delete mode 100644 views/node_modules/validator/es/lib/isHSL.js delete mode 100644 views/node_modules/validator/es/lib/isHalfWidth.js delete mode 100644 views/node_modules/validator/es/lib/isHash.js delete mode 100644 views/node_modules/validator/es/lib/isHexColor.js delete mode 100644 views/node_modules/validator/es/lib/isHexadecimal.js delete mode 100644 views/node_modules/validator/es/lib/isIBAN.js delete mode 100644 views/node_modules/validator/es/lib/isIMEI.js delete mode 100644 views/node_modules/validator/es/lib/isIP.js delete mode 100644 views/node_modules/validator/es/lib/isIPRange.js delete mode 100644 views/node_modules/validator/es/lib/isISBN.js delete mode 100644 views/node_modules/validator/es/lib/isISIN.js delete mode 100644 views/node_modules/validator/es/lib/isISO31661Alpha2.js delete mode 100644 views/node_modules/validator/es/lib/isISO31661Alpha3.js delete mode 100644 views/node_modules/validator/es/lib/isISO8601.js delete mode 100644 views/node_modules/validator/es/lib/isISRC.js delete mode 100644 views/node_modules/validator/es/lib/isISSN.js delete mode 100644 views/node_modules/validator/es/lib/isIdentityCard.js delete mode 100644 views/node_modules/validator/es/lib/isIn.js delete mode 100644 views/node_modules/validator/es/lib/isInt.js delete mode 100644 views/node_modules/validator/es/lib/isJSON.js delete mode 100644 views/node_modules/validator/es/lib/isJWT.js delete mode 100644 views/node_modules/validator/es/lib/isLatLong.js delete mode 100644 views/node_modules/validator/es/lib/isLength.js delete mode 100644 views/node_modules/validator/es/lib/isLocale.js delete mode 100644 views/node_modules/validator/es/lib/isLowercase.js delete mode 100644 views/node_modules/validator/es/lib/isMACAddress.js delete mode 100644 views/node_modules/validator/es/lib/isMD5.js delete mode 100644 views/node_modules/validator/es/lib/isMagnetURI.js delete mode 100644 views/node_modules/validator/es/lib/isMimeType.js delete mode 100644 views/node_modules/validator/es/lib/isMobilePhone.js delete mode 100644 views/node_modules/validator/es/lib/isMongoId.js delete mode 100644 views/node_modules/validator/es/lib/isMultibyte.js delete mode 100644 views/node_modules/validator/es/lib/isNumeric.js delete mode 100644 views/node_modules/validator/es/lib/isOctal.js delete mode 100644 views/node_modules/validator/es/lib/isPassportNumber.js delete mode 100644 views/node_modules/validator/es/lib/isPort.js delete mode 100644 views/node_modules/validator/es/lib/isPostalCode.js delete mode 100644 views/node_modules/validator/es/lib/isRFC3339.js delete mode 100644 views/node_modules/validator/es/lib/isRgbColor.js delete mode 100644 views/node_modules/validator/es/lib/isSemVer.js delete mode 100644 views/node_modules/validator/es/lib/isSlug.js delete mode 100644 views/node_modules/validator/es/lib/isStrongPassword.js delete mode 100644 views/node_modules/validator/es/lib/isSurrogatePair.js delete mode 100644 views/node_modules/validator/es/lib/isTaxID.js delete mode 100644 views/node_modules/validator/es/lib/isURL.js delete mode 100644 views/node_modules/validator/es/lib/isUUID.js delete mode 100644 views/node_modules/validator/es/lib/isUppercase.js delete mode 100644 views/node_modules/validator/es/lib/isVAT.js delete mode 100644 views/node_modules/validator/es/lib/isVariableWidth.js delete mode 100644 views/node_modules/validator/es/lib/isWhitelisted.js delete mode 100644 views/node_modules/validator/es/lib/ltrim.js delete mode 100644 views/node_modules/validator/es/lib/matches.js delete mode 100644 views/node_modules/validator/es/lib/normalizeEmail.js delete mode 100644 views/node_modules/validator/es/lib/rtrim.js delete mode 100644 views/node_modules/validator/es/lib/stripLow.js delete mode 100644 views/node_modules/validator/es/lib/toBoolean.js delete mode 100644 views/node_modules/validator/es/lib/toDate.js delete mode 100644 views/node_modules/validator/es/lib/toFloat.js delete mode 100644 views/node_modules/validator/es/lib/toInt.js delete mode 100644 views/node_modules/validator/es/lib/trim.js delete mode 100644 views/node_modules/validator/es/lib/unescape.js delete mode 100644 views/node_modules/validator/es/lib/util/algorithms.js delete mode 100644 views/node_modules/validator/es/lib/util/assertString.js delete mode 100644 views/node_modules/validator/es/lib/util/includes.js delete mode 100644 views/node_modules/validator/es/lib/util/merge.js delete mode 100644 views/node_modules/validator/es/lib/util/multilineRegex.js delete mode 100644 views/node_modules/validator/es/lib/util/toString.js delete mode 100644 views/node_modules/validator/es/lib/whitelist.js delete mode 100644 views/node_modules/validator/index.js delete mode 100644 views/node_modules/validator/lib/alpha.js delete mode 100644 views/node_modules/validator/lib/blacklist.js delete mode 100644 views/node_modules/validator/lib/contains.js delete mode 100644 views/node_modules/validator/lib/equals.js delete mode 100644 views/node_modules/validator/lib/escape.js delete mode 100644 views/node_modules/validator/lib/isAfter.js delete mode 100644 views/node_modules/validator/lib/isAlpha.js delete mode 100644 views/node_modules/validator/lib/isAlphanumeric.js delete mode 100644 views/node_modules/validator/lib/isAscii.js delete mode 100644 views/node_modules/validator/lib/isBIC.js delete mode 100644 views/node_modules/validator/lib/isBase32.js delete mode 100644 views/node_modules/validator/lib/isBase58.js delete mode 100644 views/node_modules/validator/lib/isBase64.js delete mode 100644 views/node_modules/validator/lib/isBefore.js delete mode 100644 views/node_modules/validator/lib/isBoolean.js delete mode 100644 views/node_modules/validator/lib/isBtcAddress.js delete mode 100644 views/node_modules/validator/lib/isByteLength.js delete mode 100644 views/node_modules/validator/lib/isCreditCard.js delete mode 100755 views/node_modules/validator/lib/isCurrency.js delete mode 100644 views/node_modules/validator/lib/isDataURI.js delete mode 100644 views/node_modules/validator/lib/isDate.js delete mode 100644 views/node_modules/validator/lib/isDecimal.js delete mode 100644 views/node_modules/validator/lib/isDivisibleBy.js delete mode 100644 views/node_modules/validator/lib/isEAN.js delete mode 100644 views/node_modules/validator/lib/isEmail.js delete mode 100644 views/node_modules/validator/lib/isEmpty.js delete mode 100644 views/node_modules/validator/lib/isEthereumAddress.js delete mode 100644 views/node_modules/validator/lib/isFQDN.js delete mode 100644 views/node_modules/validator/lib/isFloat.js delete mode 100644 views/node_modules/validator/lib/isFullWidth.js delete mode 100644 views/node_modules/validator/lib/isHSL.js delete mode 100644 views/node_modules/validator/lib/isHalfWidth.js delete mode 100644 views/node_modules/validator/lib/isHash.js delete mode 100644 views/node_modules/validator/lib/isHexColor.js delete mode 100644 views/node_modules/validator/lib/isHexadecimal.js delete mode 100644 views/node_modules/validator/lib/isIBAN.js delete mode 100644 views/node_modules/validator/lib/isIMEI.js delete mode 100644 views/node_modules/validator/lib/isIP.js delete mode 100644 views/node_modules/validator/lib/isIPRange.js delete mode 100644 views/node_modules/validator/lib/isISBN.js delete mode 100644 views/node_modules/validator/lib/isISIN.js delete mode 100644 views/node_modules/validator/lib/isISO31661Alpha2.js delete mode 100644 views/node_modules/validator/lib/isISO31661Alpha3.js delete mode 100644 views/node_modules/validator/lib/isISO8601.js delete mode 100644 views/node_modules/validator/lib/isISRC.js delete mode 100644 views/node_modules/validator/lib/isISSN.js delete mode 100644 views/node_modules/validator/lib/isIdentityCard.js delete mode 100644 views/node_modules/validator/lib/isIn.js delete mode 100644 views/node_modules/validator/lib/isInt.js delete mode 100644 views/node_modules/validator/lib/isJSON.js delete mode 100644 views/node_modules/validator/lib/isJWT.js delete mode 100644 views/node_modules/validator/lib/isLatLong.js delete mode 100644 views/node_modules/validator/lib/isLength.js delete mode 100644 views/node_modules/validator/lib/isLocale.js delete mode 100644 views/node_modules/validator/lib/isLowercase.js delete mode 100644 views/node_modules/validator/lib/isMACAddress.js delete mode 100644 views/node_modules/validator/lib/isMD5.js delete mode 100644 views/node_modules/validator/lib/isMagnetURI.js delete mode 100644 views/node_modules/validator/lib/isMimeType.js delete mode 100644 views/node_modules/validator/lib/isMobilePhone.js delete mode 100644 views/node_modules/validator/lib/isMongoId.js delete mode 100644 views/node_modules/validator/lib/isMultibyte.js delete mode 100644 views/node_modules/validator/lib/isNumeric.js delete mode 100644 views/node_modules/validator/lib/isOctal.js delete mode 100644 views/node_modules/validator/lib/isPassportNumber.js delete mode 100644 views/node_modules/validator/lib/isPort.js delete mode 100644 views/node_modules/validator/lib/isPostalCode.js delete mode 100644 views/node_modules/validator/lib/isRFC3339.js delete mode 100644 views/node_modules/validator/lib/isRgbColor.js delete mode 100644 views/node_modules/validator/lib/isSemVer.js delete mode 100644 views/node_modules/validator/lib/isSlug.js delete mode 100644 views/node_modules/validator/lib/isStrongPassword.js delete mode 100644 views/node_modules/validator/lib/isSurrogatePair.js delete mode 100644 views/node_modules/validator/lib/isTaxID.js delete mode 100644 views/node_modules/validator/lib/isURL.js delete mode 100644 views/node_modules/validator/lib/isUUID.js delete mode 100644 views/node_modules/validator/lib/isUppercase.js delete mode 100644 views/node_modules/validator/lib/isVAT.js delete mode 100644 views/node_modules/validator/lib/isVariableWidth.js delete mode 100644 views/node_modules/validator/lib/isWhitelisted.js delete mode 100644 views/node_modules/validator/lib/ltrim.js delete mode 100644 views/node_modules/validator/lib/matches.js delete mode 100644 views/node_modules/validator/lib/normalizeEmail.js delete mode 100644 views/node_modules/validator/lib/rtrim.js delete mode 100644 views/node_modules/validator/lib/stripLow.js delete mode 100644 views/node_modules/validator/lib/toBoolean.js delete mode 100644 views/node_modules/validator/lib/toDate.js delete mode 100644 views/node_modules/validator/lib/toFloat.js delete mode 100644 views/node_modules/validator/lib/toInt.js delete mode 100644 views/node_modules/validator/lib/trim.js delete mode 100644 views/node_modules/validator/lib/unescape.js delete mode 100644 views/node_modules/validator/lib/util/algorithms.js delete mode 100644 views/node_modules/validator/lib/util/assertString.js delete mode 100644 views/node_modules/validator/lib/util/includes.js delete mode 100644 views/node_modules/validator/lib/util/merge.js delete mode 100644 views/node_modules/validator/lib/util/multilineRegex.js delete mode 100644 views/node_modules/validator/lib/util/toString.js delete mode 100644 views/node_modules/validator/lib/whitelist.js delete mode 100644 views/node_modules/validator/package.json delete mode 100644 views/node_modules/validator/validator.js delete mode 100644 views/node_modules/validator/validator.min.js delete mode 100644 views/node_modules/vary/HISTORY.md delete mode 100644 views/node_modules/vary/LICENSE delete mode 100644 views/node_modules/vary/README.md delete mode 100644 views/node_modules/vary/index.js delete mode 100644 views/node_modules/vary/package.json delete mode 100644 views/node_modules/void-elements/LICENSE delete mode 100644 views/node_modules/void-elements/README.md delete mode 100644 views/node_modules/void-elements/index.js delete mode 100644 views/node_modules/void-elements/package.json delete mode 100644 views/node_modules/with/.babelrc delete mode 100644 views/node_modules/with/.github/workflows/rollingversions-canary.yml delete mode 100644 views/node_modules/with/.github/workflows/rollingversions.yml delete mode 100644 views/node_modules/with/.github/workflows/test.yml delete mode 100644 views/node_modules/with/LICENSE delete mode 100644 views/node_modules/with/README.md delete mode 100644 views/node_modules/with/lib/globals.d.ts delete mode 100644 views/node_modules/with/lib/globals.js delete mode 100644 views/node_modules/with/lib/globals.js.map delete mode 100644 views/node_modules/with/lib/index.d.ts delete mode 100644 views/node_modules/with/lib/index.js delete mode 100644 views/node_modules/with/lib/index.js.map delete mode 100644 views/node_modules/with/lib/reference.d.ts delete mode 100644 views/node_modules/with/lib/reference.js delete mode 100644 views/node_modules/with/lib/reference.js.map delete mode 100644 views/node_modules/with/package.json delete mode 100644 views/node_modules/with/prettier.config.js delete mode 100644 views/node_modules/with/src/globals.ts delete mode 100644 views/node_modules/with/src/index.ts delete mode 100644 views/node_modules/with/src/reference.ts delete mode 100644 views/node_modules/with/tsconfig.json delete mode 100644 views/node_modules/with/tslint.json delete mode 100644 views/node_modules/wrappy/LICENSE delete mode 100644 views/node_modules/wrappy/README.md delete mode 100644 views/node_modules/wrappy/package.json delete mode 100644 views/node_modules/wrappy/wrappy.js delete mode 100644 views/node_modules/yallist/LICENSE delete mode 100644 views/node_modules/yallist/README.md delete mode 100644 views/node_modules/yallist/iterator.js delete mode 100644 views/node_modules/yallist/package.json delete mode 100644 views/node_modules/yallist/yallist.js delete mode 100644 views/public/CCashLogo2.png delete mode 100644 views/public/CCashLogo3.png delete mode 100644 views/public/blockimages/items/0-0.png delete mode 100644 views/public/blockimages/items/1-0.png delete mode 100644 views/public/blockimages/items/1-1.png delete mode 100644 views/public/blockimages/items/1-2.png delete mode 100644 views/public/blockimages/items/1-3.png delete mode 100644 views/public/blockimages/items/1-4.png delete mode 100644 views/public/blockimages/items/1-5.png delete mode 100644 views/public/blockimages/items/1-6.png delete mode 100644 views/public/blockimages/items/10-0.png delete mode 100644 views/public/blockimages/items/100-0.png delete mode 100644 views/public/blockimages/items/101-0.png delete mode 100644 views/public/blockimages/items/102-0.png delete mode 100644 views/public/blockimages/items/103-0.png delete mode 100644 views/public/blockimages/items/104-0.png delete mode 100644 views/public/blockimages/items/105-0.png delete mode 100644 views/public/blockimages/items/106-0.png delete mode 100644 views/public/blockimages/items/107-0.png delete mode 100644 views/public/blockimages/items/108-0.png delete mode 100644 views/public/blockimages/items/109-0.png delete mode 100644 views/public/blockimages/items/11-0.png delete mode 100644 views/public/blockimages/items/110-0.png delete mode 100644 views/public/blockimages/items/111-0.png delete mode 100644 views/public/blockimages/items/112-0.png delete mode 100644 views/public/blockimages/items/113-0.png delete mode 100644 views/public/blockimages/items/114-0.png delete mode 100644 views/public/blockimages/items/115-0.png delete mode 100644 views/public/blockimages/items/116-0.png delete mode 100644 views/public/blockimages/items/117-0.png delete mode 100644 views/public/blockimages/items/118-0.png delete mode 100644 views/public/blockimages/items/119-0.png delete mode 100644 views/public/blockimages/items/12-0.png delete mode 100644 views/public/blockimages/items/12-1.png delete mode 100644 views/public/blockimages/items/120-0.png delete mode 100644 views/public/blockimages/items/121-0.png delete mode 100644 views/public/blockimages/items/122-0.png delete mode 100644 views/public/blockimages/items/123-0.png delete mode 100644 views/public/blockimages/items/124-0.png delete mode 100644 views/public/blockimages/items/125-0.png delete mode 100644 views/public/blockimages/items/125-1.png delete mode 100644 views/public/blockimages/items/125-2.png delete mode 100644 views/public/blockimages/items/125-3.png delete mode 100644 views/public/blockimages/items/125-4.png delete mode 100644 views/public/blockimages/items/125-5.png delete mode 100644 views/public/blockimages/items/126-0.png delete mode 100644 views/public/blockimages/items/126-1.png delete mode 100644 views/public/blockimages/items/126-2.png delete mode 100644 views/public/blockimages/items/126-3.png delete mode 100644 views/public/blockimages/items/126-4.png delete mode 100644 views/public/blockimages/items/126-5.png delete mode 100644 views/public/blockimages/items/127-0.png delete mode 100644 views/public/blockimages/items/128-0.png delete mode 100644 views/public/blockimages/items/129-0.png delete mode 100644 views/public/blockimages/items/13-0.png delete mode 100644 views/public/blockimages/items/130-0.png delete mode 100644 views/public/blockimages/items/131-0.png delete mode 100644 views/public/blockimages/items/132-0.png delete mode 100644 views/public/blockimages/items/133-0.png delete mode 100644 views/public/blockimages/items/134-0.png delete mode 100644 views/public/blockimages/items/135-0.png delete mode 100644 views/public/blockimages/items/136-0.png delete mode 100644 views/public/blockimages/items/137-0.png delete mode 100644 views/public/blockimages/items/138-0.png delete mode 100644 views/public/blockimages/items/139-0.png delete mode 100644 views/public/blockimages/items/139-1.png delete mode 100644 views/public/blockimages/items/14-0.png delete mode 100644 views/public/blockimages/items/140-0.png delete mode 100644 views/public/blockimages/items/141-0.png delete mode 100644 views/public/blockimages/items/142-0.png delete mode 100644 views/public/blockimages/items/143-0.png delete mode 100644 views/public/blockimages/items/144-0.png delete mode 100644 views/public/blockimages/items/145-0.png delete mode 100644 views/public/blockimages/items/146-0.png delete mode 100644 views/public/blockimages/items/147-0.png delete mode 100644 views/public/blockimages/items/148-0.png delete mode 100644 views/public/blockimages/items/149-0.png delete mode 100644 views/public/blockimages/items/15-0.png delete mode 100644 views/public/blockimages/items/150-0.png delete mode 100644 views/public/blockimages/items/151-0.png delete mode 100644 views/public/blockimages/items/152-0.png delete mode 100644 views/public/blockimages/items/153-0.png delete mode 100644 views/public/blockimages/items/154-0.png delete mode 100644 views/public/blockimages/items/155-0.png delete mode 100644 views/public/blockimages/items/155-1.png delete mode 100644 views/public/blockimages/items/155-2.png delete mode 100644 views/public/blockimages/items/156-0.png delete mode 100644 views/public/blockimages/items/157-0.png delete mode 100644 views/public/blockimages/items/158-0.png delete mode 100644 views/public/blockimages/items/159-0.png delete mode 100644 views/public/blockimages/items/159-1.png delete mode 100644 views/public/blockimages/items/159-10.png delete mode 100644 views/public/blockimages/items/159-11.png delete mode 100644 views/public/blockimages/items/159-12.png delete mode 100644 views/public/blockimages/items/159-13.png delete mode 100644 views/public/blockimages/items/159-14.png delete mode 100644 views/public/blockimages/items/159-15.png delete mode 100644 views/public/blockimages/items/159-2.png delete mode 100644 views/public/blockimages/items/159-3.png delete mode 100644 views/public/blockimages/items/159-4.png delete mode 100644 views/public/blockimages/items/159-5.png delete mode 100644 views/public/blockimages/items/159-6.png delete mode 100644 views/public/blockimages/items/159-7.png delete mode 100644 views/public/blockimages/items/159-8.png delete mode 100644 views/public/blockimages/items/159-9.png delete mode 100644 views/public/blockimages/items/16-0.png delete mode 100644 views/public/blockimages/items/160-0.png delete mode 100644 views/public/blockimages/items/160-1.png delete mode 100644 views/public/blockimages/items/160-10.png delete mode 100644 views/public/blockimages/items/160-11.png delete mode 100644 views/public/blockimages/items/160-12.png delete mode 100644 views/public/blockimages/items/160-13.png delete mode 100644 views/public/blockimages/items/160-14.png delete mode 100644 views/public/blockimages/items/160-15.png delete mode 100644 views/public/blockimages/items/160-2.png delete mode 100644 views/public/blockimages/items/160-3.png delete mode 100644 views/public/blockimages/items/160-4.png delete mode 100644 views/public/blockimages/items/160-5.png delete mode 100644 views/public/blockimages/items/160-6.png delete mode 100644 views/public/blockimages/items/160-7.png delete mode 100644 views/public/blockimages/items/160-8.png delete mode 100644 views/public/blockimages/items/160-9.png delete mode 100644 views/public/blockimages/items/161-0.png delete mode 100644 views/public/blockimages/items/161-1.png delete mode 100644 views/public/blockimages/items/162-0.png delete mode 100644 views/public/blockimages/items/162-1.png delete mode 100644 views/public/blockimages/items/163-0.png delete mode 100644 views/public/blockimages/items/164-0.png delete mode 100644 views/public/blockimages/items/165-0.png delete mode 100644 views/public/blockimages/items/166-0.png delete mode 100644 views/public/blockimages/items/167-0.png delete mode 100644 views/public/blockimages/items/168-0.png delete mode 100644 views/public/blockimages/items/168-1.png delete mode 100644 views/public/blockimages/items/168-2.png delete mode 100644 views/public/blockimages/items/169-0.png delete mode 100644 views/public/blockimages/items/17-0.png delete mode 100644 views/public/blockimages/items/17-1.png delete mode 100644 views/public/blockimages/items/17-2.png delete mode 100644 views/public/blockimages/items/17-3.png delete mode 100644 views/public/blockimages/items/170-0.png delete mode 100644 views/public/blockimages/items/171-0.png delete mode 100644 views/public/blockimages/items/171-1.png delete mode 100644 views/public/blockimages/items/171-10.png delete mode 100644 views/public/blockimages/items/171-11.png delete mode 100644 views/public/blockimages/items/171-12.png delete mode 100644 views/public/blockimages/items/171-13.png delete mode 100644 views/public/blockimages/items/171-14.png delete mode 100644 views/public/blockimages/items/171-15.png delete mode 100644 views/public/blockimages/items/171-2.png delete mode 100644 views/public/blockimages/items/171-3.png delete mode 100644 views/public/blockimages/items/171-4.png delete mode 100644 views/public/blockimages/items/171-5.png delete mode 100644 views/public/blockimages/items/171-6.png delete mode 100644 views/public/blockimages/items/171-7.png delete mode 100644 views/public/blockimages/items/171-8.png delete mode 100644 views/public/blockimages/items/171-9.png delete mode 100644 views/public/blockimages/items/172-0.png delete mode 100644 views/public/blockimages/items/173-0.png delete mode 100644 views/public/blockimages/items/174-0.png delete mode 100644 views/public/blockimages/items/175-0.png delete mode 100644 views/public/blockimages/items/175-1.png delete mode 100644 views/public/blockimages/items/175-2.png delete mode 100644 views/public/blockimages/items/175-3.png delete mode 100644 views/public/blockimages/items/175-4.png delete mode 100644 views/public/blockimages/items/175-5.png delete mode 100644 views/public/blockimages/items/176-0.png delete mode 100644 views/public/blockimages/items/177-0.png delete mode 100644 views/public/blockimages/items/178-0.png delete mode 100644 views/public/blockimages/items/179-0.png delete mode 100644 views/public/blockimages/items/179-1.png delete mode 100644 views/public/blockimages/items/179-2.png delete mode 100644 views/public/blockimages/items/18-0.png delete mode 100644 views/public/blockimages/items/18-1.png delete mode 100644 views/public/blockimages/items/18-2.png delete mode 100644 views/public/blockimages/items/18-3.png delete mode 100644 views/public/blockimages/items/180-0.png delete mode 100644 views/public/blockimages/items/181-0.png delete mode 100644 views/public/blockimages/items/182-0.png delete mode 100644 views/public/blockimages/items/183-0.png delete mode 100644 views/public/blockimages/items/184-0.png delete mode 100644 views/public/blockimages/items/185-0.png delete mode 100644 views/public/blockimages/items/186-0.png delete mode 100644 views/public/blockimages/items/187-0.png delete mode 100644 views/public/blockimages/items/188-0.png delete mode 100644 views/public/blockimages/items/189-0.png delete mode 100644 views/public/blockimages/items/19-0.png delete mode 100644 views/public/blockimages/items/19-1.png delete mode 100644 views/public/blockimages/items/190-0.png delete mode 100644 views/public/blockimages/items/191-0.png delete mode 100644 views/public/blockimages/items/192-0.png delete mode 100644 views/public/blockimages/items/193-0.png delete mode 100644 views/public/blockimages/items/194-0.png delete mode 100644 views/public/blockimages/items/195-0.png delete mode 100644 views/public/blockimages/items/196-0.png delete mode 100644 views/public/blockimages/items/197-0.png delete mode 100644 views/public/blockimages/items/198-0.png delete mode 100644 views/public/blockimages/items/199-0.png delete mode 100644 views/public/blockimages/items/2-0.png delete mode 100644 views/public/blockimages/items/20-0.png delete mode 100644 views/public/blockimages/items/200-0.png delete mode 100644 views/public/blockimages/items/201-0.png delete mode 100644 views/public/blockimages/items/202-0.png delete mode 100644 views/public/blockimages/items/203-0.png delete mode 100644 views/public/blockimages/items/204-0.png delete mode 100644 views/public/blockimages/items/205-0.png delete mode 100644 views/public/blockimages/items/206-0.png delete mode 100644 views/public/blockimages/items/207-0.png delete mode 100644 views/public/blockimages/items/208-0.png delete mode 100644 views/public/blockimages/items/209-0.png delete mode 100644 views/public/blockimages/items/21-0.png delete mode 100644 views/public/blockimages/items/210-0.png delete mode 100644 views/public/blockimages/items/211-0.png delete mode 100644 views/public/blockimages/items/212-0.png delete mode 100644 views/public/blockimages/items/213-0.png delete mode 100644 views/public/blockimages/items/214-0.png delete mode 100644 views/public/blockimages/items/215-0.png delete mode 100644 views/public/blockimages/items/216-0.png delete mode 100644 views/public/blockimages/items/217-0.png delete mode 100644 views/public/blockimages/items/218-0.png delete mode 100644 views/public/blockimages/items/219-0.png delete mode 100644 views/public/blockimages/items/22-0.png delete mode 100644 views/public/blockimages/items/220-0.png delete mode 100644 views/public/blockimages/items/221-0.png delete mode 100644 views/public/blockimages/items/222-0.png delete mode 100644 views/public/blockimages/items/223-0.png delete mode 100644 views/public/blockimages/items/224-0.png delete mode 100644 views/public/blockimages/items/225-0.png delete mode 100644 views/public/blockimages/items/2256-0.png delete mode 100644 views/public/blockimages/items/2257-0.png delete mode 100644 views/public/blockimages/items/2258-0.png delete mode 100644 views/public/blockimages/items/2259-0.png delete mode 100644 views/public/blockimages/items/226-0.png delete mode 100644 views/public/blockimages/items/2260-0.png delete mode 100644 views/public/blockimages/items/2261-0.png delete mode 100644 views/public/blockimages/items/2262-0.png delete mode 100644 views/public/blockimages/items/2263-0.png delete mode 100644 views/public/blockimages/items/2264-0.png delete mode 100644 views/public/blockimages/items/2265-0.png delete mode 100644 views/public/blockimages/items/2266-0.png delete mode 100644 views/public/blockimages/items/2267-0.png delete mode 100644 views/public/blockimages/items/227-0.png delete mode 100644 views/public/blockimages/items/228-0.png delete mode 100644 views/public/blockimages/items/229-0.png delete mode 100644 views/public/blockimages/items/23-0.png delete mode 100644 views/public/blockimages/items/230-0.png delete mode 100644 views/public/blockimages/items/231-0.png delete mode 100644 views/public/blockimages/items/232-0.png delete mode 100644 views/public/blockimages/items/233-0.png delete mode 100644 views/public/blockimages/items/234-0.png delete mode 100644 views/public/blockimages/items/235-0.png delete mode 100644 views/public/blockimages/items/236-0.png delete mode 100644 views/public/blockimages/items/237-0.png delete mode 100644 views/public/blockimages/items/238-0.png delete mode 100644 views/public/blockimages/items/239-0.png delete mode 100644 views/public/blockimages/items/24-0.png delete mode 100644 views/public/blockimages/items/24-1.png delete mode 100644 views/public/blockimages/items/24-2.png delete mode 100644 views/public/blockimages/items/240-0.png delete mode 100644 views/public/blockimages/items/241-0.png delete mode 100644 views/public/blockimages/items/242-0.png delete mode 100644 views/public/blockimages/items/243-0.png delete mode 100644 views/public/blockimages/items/244-0.png delete mode 100644 views/public/blockimages/items/245-0.png delete mode 100644 views/public/blockimages/items/246-0.png delete mode 100644 views/public/blockimages/items/247-0.png delete mode 100644 views/public/blockimages/items/248-0.png delete mode 100644 views/public/blockimages/items/249-0.png delete mode 100644 views/public/blockimages/items/25-0.png delete mode 100644 views/public/blockimages/items/250-0.png delete mode 100644 views/public/blockimages/items/251-0.png delete mode 100644 views/public/blockimages/items/251-1.png delete mode 100644 views/public/blockimages/items/251-10.png delete mode 100644 views/public/blockimages/items/251-11.png delete mode 100644 views/public/blockimages/items/251-12.png delete mode 100644 views/public/blockimages/items/251-13.png delete mode 100644 views/public/blockimages/items/251-14.png delete mode 100644 views/public/blockimages/items/251-15.png delete mode 100644 views/public/blockimages/items/251-2.png delete mode 100644 views/public/blockimages/items/251-3.png delete mode 100644 views/public/blockimages/items/251-4.png delete mode 100644 views/public/blockimages/items/251-5.png delete mode 100644 views/public/blockimages/items/251-6.png delete mode 100644 views/public/blockimages/items/251-7.png delete mode 100644 views/public/blockimages/items/251-8.png delete mode 100644 views/public/blockimages/items/251-9.png delete mode 100644 views/public/blockimages/items/252-0.png delete mode 100644 views/public/blockimages/items/252-1.png delete mode 100644 views/public/blockimages/items/252-10.png delete mode 100644 views/public/blockimages/items/252-11.png delete mode 100644 views/public/blockimages/items/252-12.png delete mode 100644 views/public/blockimages/items/252-13.png delete mode 100644 views/public/blockimages/items/252-14.png delete mode 100644 views/public/blockimages/items/252-15.png delete mode 100644 views/public/blockimages/items/252-2.png delete mode 100644 views/public/blockimages/items/252-3.png delete mode 100644 views/public/blockimages/items/252-4.png delete mode 100644 views/public/blockimages/items/252-5.png delete mode 100644 views/public/blockimages/items/252-6.png delete mode 100644 views/public/blockimages/items/252-7.png delete mode 100644 views/public/blockimages/items/252-8.png delete mode 100644 views/public/blockimages/items/252-9.png delete mode 100644 views/public/blockimages/items/255-0.png delete mode 100644 views/public/blockimages/items/256-0.png delete mode 100644 views/public/blockimages/items/257-0.png delete mode 100644 views/public/blockimages/items/258-0.png delete mode 100644 views/public/blockimages/items/259-0.png delete mode 100644 views/public/blockimages/items/26-0.png delete mode 100644 views/public/blockimages/items/260-0.png delete mode 100644 views/public/blockimages/items/261-0.png delete mode 100644 views/public/blockimages/items/262-0.png delete mode 100644 views/public/blockimages/items/263-0.png delete mode 100644 views/public/blockimages/items/263-1.png delete mode 100644 views/public/blockimages/items/264-0.png delete mode 100644 views/public/blockimages/items/265-0.png delete mode 100644 views/public/blockimages/items/266-0.png delete mode 100644 views/public/blockimages/items/267-0.png delete mode 100644 views/public/blockimages/items/268-0.png delete mode 100644 views/public/blockimages/items/269-0.png delete mode 100644 views/public/blockimages/items/27-0.png delete mode 100644 views/public/blockimages/items/270-0.png delete mode 100644 views/public/blockimages/items/271-0.png delete mode 100644 views/public/blockimages/items/272-0.png delete mode 100644 views/public/blockimages/items/273-0.png delete mode 100644 views/public/blockimages/items/274-0.png delete mode 100644 views/public/blockimages/items/275-0.png delete mode 100644 views/public/blockimages/items/276-0.png delete mode 100644 views/public/blockimages/items/277-0.png delete mode 100644 views/public/blockimages/items/278-0.png delete mode 100644 views/public/blockimages/items/279-0.png delete mode 100644 views/public/blockimages/items/28-0.png delete mode 100644 views/public/blockimages/items/280-0.png delete mode 100644 views/public/blockimages/items/281-0.png delete mode 100644 views/public/blockimages/items/282-0.png delete mode 100644 views/public/blockimages/items/283-0.png delete mode 100644 views/public/blockimages/items/284-0.png delete mode 100644 views/public/blockimages/items/285-0.png delete mode 100644 views/public/blockimages/items/286-0.png delete mode 100644 views/public/blockimages/items/287-0.png delete mode 100644 views/public/blockimages/items/288-0.png delete mode 100644 views/public/blockimages/items/289-0.png delete mode 100644 views/public/blockimages/items/29-0.png delete mode 100644 views/public/blockimages/items/290-0.png delete mode 100644 views/public/blockimages/items/291-0.png delete mode 100644 views/public/blockimages/items/292-0.png delete mode 100644 views/public/blockimages/items/293-0.png delete mode 100644 views/public/blockimages/items/294-0.png delete mode 100644 views/public/blockimages/items/295-0.png delete mode 100644 views/public/blockimages/items/296-0.png delete mode 100644 views/public/blockimages/items/297-0.png delete mode 100644 views/public/blockimages/items/298-0.png delete mode 100644 views/public/blockimages/items/299-0.png delete mode 100644 views/public/blockimages/items/3-0.png delete mode 100644 views/public/blockimages/items/3-1.png delete mode 100644 views/public/blockimages/items/3-2.png delete mode 100644 views/public/blockimages/items/30-0.png delete mode 100644 views/public/blockimages/items/300-0.png delete mode 100644 views/public/blockimages/items/301-0.png delete mode 100644 views/public/blockimages/items/302-0.png delete mode 100644 views/public/blockimages/items/303-0.png delete mode 100644 views/public/blockimages/items/304-0.png delete mode 100644 views/public/blockimages/items/305-0.png delete mode 100644 views/public/blockimages/items/306-0.png delete mode 100644 views/public/blockimages/items/307-0.png delete mode 100644 views/public/blockimages/items/308-0.png delete mode 100644 views/public/blockimages/items/309-0.png delete mode 100644 views/public/blockimages/items/31-0.png delete mode 100644 views/public/blockimages/items/31-1.png delete mode 100644 views/public/blockimages/items/31-2.png delete mode 100644 views/public/blockimages/items/310-0.png delete mode 100644 views/public/blockimages/items/311-0.png delete mode 100644 views/public/blockimages/items/312-0.png delete mode 100644 views/public/blockimages/items/313-0.png delete mode 100644 views/public/blockimages/items/314-0.png delete mode 100644 views/public/blockimages/items/315-0.png delete mode 100644 views/public/blockimages/items/316-0.png delete mode 100644 views/public/blockimages/items/317-0.png delete mode 100644 views/public/blockimages/items/318-0.png delete mode 100644 views/public/blockimages/items/319-0.png delete mode 100644 views/public/blockimages/items/32-0.png delete mode 100644 views/public/blockimages/items/320-0.png delete mode 100644 views/public/blockimages/items/321-0.png delete mode 100644 views/public/blockimages/items/322-0.png delete mode 100644 views/public/blockimages/items/322-1.png delete mode 100644 views/public/blockimages/items/323-0.png delete mode 100644 views/public/blockimages/items/324-0.png delete mode 100644 views/public/blockimages/items/325-0.png delete mode 100644 views/public/blockimages/items/326-0.png delete mode 100644 views/public/blockimages/items/327-0.png delete mode 100644 views/public/blockimages/items/328-0.png delete mode 100644 views/public/blockimages/items/329-0.png delete mode 100644 views/public/blockimages/items/33-0.png delete mode 100644 views/public/blockimages/items/330-0.png delete mode 100644 views/public/blockimages/items/331-0.png delete mode 100644 views/public/blockimages/items/332-0.png delete mode 100644 views/public/blockimages/items/333-0.png delete mode 100644 views/public/blockimages/items/334-0.png delete mode 100644 views/public/blockimages/items/335-0.png delete mode 100644 views/public/blockimages/items/336-0.png delete mode 100644 views/public/blockimages/items/337-0.png delete mode 100644 views/public/blockimages/items/338-0.png delete mode 100644 views/public/blockimages/items/339-0.png delete mode 100644 views/public/blockimages/items/34-0.png delete mode 100644 views/public/blockimages/items/340-0.png delete mode 100644 views/public/blockimages/items/341-0.png delete mode 100644 views/public/blockimages/items/342-0.png delete mode 100644 views/public/blockimages/items/343-0.png delete mode 100644 views/public/blockimages/items/344-0.png delete mode 100644 views/public/blockimages/items/345-0.png delete mode 100644 views/public/blockimages/items/346-0.png delete mode 100644 views/public/blockimages/items/347-0.png delete mode 100644 views/public/blockimages/items/348-0.png delete mode 100644 views/public/blockimages/items/349-0.png delete mode 100644 views/public/blockimages/items/349-1.png delete mode 100644 views/public/blockimages/items/349-2.png delete mode 100644 views/public/blockimages/items/349-3.png delete mode 100644 views/public/blockimages/items/35-0.png delete mode 100644 views/public/blockimages/items/35-1.png delete mode 100644 views/public/blockimages/items/35-10.png delete mode 100644 views/public/blockimages/items/35-11.png delete mode 100644 views/public/blockimages/items/35-12.png delete mode 100644 views/public/blockimages/items/35-13.png delete mode 100644 views/public/blockimages/items/35-14.png delete mode 100644 views/public/blockimages/items/35-15.png delete mode 100644 views/public/blockimages/items/35-2.png delete mode 100644 views/public/blockimages/items/35-3.png delete mode 100644 views/public/blockimages/items/35-4.png delete mode 100644 views/public/blockimages/items/35-5.png delete mode 100644 views/public/blockimages/items/35-6.png delete mode 100644 views/public/blockimages/items/35-7.png delete mode 100644 views/public/blockimages/items/35-8.png delete mode 100644 views/public/blockimages/items/35-9.png delete mode 100644 views/public/blockimages/items/350-0.png delete mode 100644 views/public/blockimages/items/350-1.png delete mode 100644 views/public/blockimages/items/351-0.png delete mode 100644 views/public/blockimages/items/351-1.png delete mode 100644 views/public/blockimages/items/351-10.png delete mode 100644 views/public/blockimages/items/351-11.png delete mode 100644 views/public/blockimages/items/351-12.png delete mode 100644 views/public/blockimages/items/351-13.png delete mode 100644 views/public/blockimages/items/351-14.png delete mode 100644 views/public/blockimages/items/351-15.png delete mode 100644 views/public/blockimages/items/351-2.png delete mode 100644 views/public/blockimages/items/351-3.png delete mode 100644 views/public/blockimages/items/351-4.png delete mode 100644 views/public/blockimages/items/351-5.png delete mode 100644 views/public/blockimages/items/351-6.png delete mode 100644 views/public/blockimages/items/351-7.png delete mode 100644 views/public/blockimages/items/351-8.png delete mode 100644 views/public/blockimages/items/351-9.png delete mode 100644 views/public/blockimages/items/352-0.png delete mode 100644 views/public/blockimages/items/353-0.png delete mode 100644 views/public/blockimages/items/354-0.png delete mode 100644 views/public/blockimages/items/355-0.png delete mode 100644 views/public/blockimages/items/356-0.png delete mode 100644 views/public/blockimages/items/357-0.png delete mode 100644 views/public/blockimages/items/358-0.png delete mode 100644 views/public/blockimages/items/359-0.png delete mode 100644 views/public/blockimages/items/360-0.png delete mode 100644 views/public/blockimages/items/361-0.png delete mode 100644 views/public/blockimages/items/362-0.png delete mode 100644 views/public/blockimages/items/363-0.png delete mode 100644 views/public/blockimages/items/364-0.png delete mode 100644 views/public/blockimages/items/365-0.png delete mode 100644 views/public/blockimages/items/366-0.png delete mode 100644 views/public/blockimages/items/367-0.png delete mode 100644 views/public/blockimages/items/368-0.png delete mode 100644 views/public/blockimages/items/369-0.png delete mode 100644 views/public/blockimages/items/37-0.png delete mode 100644 views/public/blockimages/items/370-0.png delete mode 100644 views/public/blockimages/items/371-0.png delete mode 100644 views/public/blockimages/items/372-0.png delete mode 100644 views/public/blockimages/items/373-0.png delete mode 100644 views/public/blockimages/items/374-0.png delete mode 100644 views/public/blockimages/items/375-0.png delete mode 100644 views/public/blockimages/items/376-0.png delete mode 100644 views/public/blockimages/items/377-0.png delete mode 100644 views/public/blockimages/items/378-0.png delete mode 100644 views/public/blockimages/items/379-0.png delete mode 100644 views/public/blockimages/items/38-0.png delete mode 100644 views/public/blockimages/items/38-1.png delete mode 100644 views/public/blockimages/items/38-2.png delete mode 100644 views/public/blockimages/items/38-3.png delete mode 100644 views/public/blockimages/items/38-4.png delete mode 100644 views/public/blockimages/items/38-5.png delete mode 100644 views/public/blockimages/items/38-6.png delete mode 100644 views/public/blockimages/items/38-7.png delete mode 100644 views/public/blockimages/items/38-8.png delete mode 100644 views/public/blockimages/items/380-0.png delete mode 100644 views/public/blockimages/items/381-0.png delete mode 100644 views/public/blockimages/items/382-0.png delete mode 100644 views/public/blockimages/items/383-100.png delete mode 100644 views/public/blockimages/items/383-101.png delete mode 100644 views/public/blockimages/items/383-102.png delete mode 100644 views/public/blockimages/items/383-103.png delete mode 100644 views/public/blockimages/items/383-105.png delete mode 100644 views/public/blockimages/items/383-120.png delete mode 100644 views/public/blockimages/items/383-23.png delete mode 100644 views/public/blockimages/items/383-27.png delete mode 100644 views/public/blockimages/items/383-28.png delete mode 100644 views/public/blockimages/items/383-29.png delete mode 100644 views/public/blockimages/items/383-31.png delete mode 100644 views/public/blockimages/items/383-32.png delete mode 100644 views/public/blockimages/items/383-34.png delete mode 100644 views/public/blockimages/items/383-35.png delete mode 100644 views/public/blockimages/items/383-36.png delete mode 100644 views/public/blockimages/items/383-4.png delete mode 100644 views/public/blockimages/items/383-5.png delete mode 100644 views/public/blockimages/items/383-50.png delete mode 100644 views/public/blockimages/items/383-51.png delete mode 100644 views/public/blockimages/items/383-52.png delete mode 100644 views/public/blockimages/items/383-54.png delete mode 100644 views/public/blockimages/items/383-55.png delete mode 100644 views/public/blockimages/items/383-56.png delete mode 100644 views/public/blockimages/items/383-57.png delete mode 100644 views/public/blockimages/items/383-58.png delete mode 100644 views/public/blockimages/items/383-59.png delete mode 100644 views/public/blockimages/items/383-6.png delete mode 100644 views/public/blockimages/items/383-60.png delete mode 100644 views/public/blockimages/items/383-61.png delete mode 100644 views/public/blockimages/items/383-62.png delete mode 100644 views/public/blockimages/items/383-65.png delete mode 100644 views/public/blockimages/items/383-66.png delete mode 100644 views/public/blockimages/items/383-67.png delete mode 100644 views/public/blockimages/items/383-68.png delete mode 100644 views/public/blockimages/items/383-69.png delete mode 100644 views/public/blockimages/items/383-90.png delete mode 100644 views/public/blockimages/items/383-91.png delete mode 100644 views/public/blockimages/items/383-92.png delete mode 100644 views/public/blockimages/items/383-93.png delete mode 100644 views/public/blockimages/items/383-94.png delete mode 100644 views/public/blockimages/items/383-95.png delete mode 100644 views/public/blockimages/items/383-96.png delete mode 100644 views/public/blockimages/items/383-98.png delete mode 100644 views/public/blockimages/items/384-0.png delete mode 100644 views/public/blockimages/items/385-0.png delete mode 100644 views/public/blockimages/items/386-0.png delete mode 100644 views/public/blockimages/items/387-0.png delete mode 100644 views/public/blockimages/items/388-0.png delete mode 100644 views/public/blockimages/items/389-0.png delete mode 100644 views/public/blockimages/items/39-0.png delete mode 100644 views/public/blockimages/items/390-0.png delete mode 100644 views/public/blockimages/items/391-0.png delete mode 100644 views/public/blockimages/items/392-0.png delete mode 100644 views/public/blockimages/items/393-0.png delete mode 100644 views/public/blockimages/items/394-0.png delete mode 100644 views/public/blockimages/items/395-0.png delete mode 100644 views/public/blockimages/items/396-0.png delete mode 100644 views/public/blockimages/items/397-0.png delete mode 100644 views/public/blockimages/items/397-1.png delete mode 100644 views/public/blockimages/items/397-2.png delete mode 100644 views/public/blockimages/items/397-3.png delete mode 100644 views/public/blockimages/items/397-4.png delete mode 100644 views/public/blockimages/items/397-5.png delete mode 100644 views/public/blockimages/items/398-0.png delete mode 100644 views/public/blockimages/items/399-0.png delete mode 100644 views/public/blockimages/items/4-0.png delete mode 100644 views/public/blockimages/items/40-0.png delete mode 100644 views/public/blockimages/items/400-0.png delete mode 100644 views/public/blockimages/items/401-0.png delete mode 100644 views/public/blockimages/items/402-0.png delete mode 100644 views/public/blockimages/items/403-0.png delete mode 100644 views/public/blockimages/items/404-0.png delete mode 100644 views/public/blockimages/items/405-0.png delete mode 100644 views/public/blockimages/items/406-0.png delete mode 100644 views/public/blockimages/items/407-0.png delete mode 100644 views/public/blockimages/items/408-0.png delete mode 100644 views/public/blockimages/items/409-0.png delete mode 100644 views/public/blockimages/items/41-0.png delete mode 100644 views/public/blockimages/items/410-0.png delete mode 100644 views/public/blockimages/items/411-0.png delete mode 100644 views/public/blockimages/items/412-0.png delete mode 100644 views/public/blockimages/items/413-0.png delete mode 100644 views/public/blockimages/items/414-0.png delete mode 100644 views/public/blockimages/items/415-0.png delete mode 100644 views/public/blockimages/items/416-0.png delete mode 100644 views/public/blockimages/items/417-0.png delete mode 100644 views/public/blockimages/items/418-0.png delete mode 100644 views/public/blockimages/items/419-0.png delete mode 100644 views/public/blockimages/items/42-0.png delete mode 100644 views/public/blockimages/items/420-0.png delete mode 100644 views/public/blockimages/items/421-0.png delete mode 100644 views/public/blockimages/items/422-0.png delete mode 100644 views/public/blockimages/items/423-0.png delete mode 100644 views/public/blockimages/items/424-0.png delete mode 100644 views/public/blockimages/items/425-0.png delete mode 100644 views/public/blockimages/items/426-0.png delete mode 100644 views/public/blockimages/items/427-0.png delete mode 100644 views/public/blockimages/items/428-0.png delete mode 100644 views/public/blockimages/items/429-0.png delete mode 100644 views/public/blockimages/items/43-0.png delete mode 100644 views/public/blockimages/items/43-1.png delete mode 100644 views/public/blockimages/items/43-2.png delete mode 100644 views/public/blockimages/items/43-3.png delete mode 100644 views/public/blockimages/items/43-4.png delete mode 100644 views/public/blockimages/items/43-5.png delete mode 100644 views/public/blockimages/items/43-6.png delete mode 100644 views/public/blockimages/items/43-7.png delete mode 100644 views/public/blockimages/items/430-0.png delete mode 100644 views/public/blockimages/items/431-0.png delete mode 100644 views/public/blockimages/items/432-0.png delete mode 100644 views/public/blockimages/items/433-0.png delete mode 100644 views/public/blockimages/items/434-0.png delete mode 100644 views/public/blockimages/items/435-0.png delete mode 100644 views/public/blockimages/items/436-0.png delete mode 100644 views/public/blockimages/items/437-0.png delete mode 100644 views/public/blockimages/items/438-0.png delete mode 100644 views/public/blockimages/items/439-0.png delete mode 100644 views/public/blockimages/items/44-0.png delete mode 100644 views/public/blockimages/items/44-1.png delete mode 100644 views/public/blockimages/items/44-2.png delete mode 100644 views/public/blockimages/items/44-3.png delete mode 100644 views/public/blockimages/items/44-4.png delete mode 100644 views/public/blockimages/items/44-5.png delete mode 100644 views/public/blockimages/items/44-6.png delete mode 100644 views/public/blockimages/items/44-7.png delete mode 100644 views/public/blockimages/items/440-0.png delete mode 100644 views/public/blockimages/items/441-0.png delete mode 100644 views/public/blockimages/items/442-0.png delete mode 100644 views/public/blockimages/items/443-0.png delete mode 100644 views/public/blockimages/items/444-0.png delete mode 100644 views/public/blockimages/items/445-0.png delete mode 100644 views/public/blockimages/items/446-0.png delete mode 100644 views/public/blockimages/items/447-0.png delete mode 100644 views/public/blockimages/items/448-0.png delete mode 100644 views/public/blockimages/items/449-0.png delete mode 100644 views/public/blockimages/items/45-0.png delete mode 100644 views/public/blockimages/items/450-0.png delete mode 100644 views/public/blockimages/items/452-0.png delete mode 100644 views/public/blockimages/items/453-0.png delete mode 100644 views/public/blockimages/items/46-0.png delete mode 100644 views/public/blockimages/items/47-0.png delete mode 100644 views/public/blockimages/items/48-0.png delete mode 100644 views/public/blockimages/items/49-0.png delete mode 100644 views/public/blockimages/items/5-0.png delete mode 100644 views/public/blockimages/items/5-1.png delete mode 100644 views/public/blockimages/items/5-2.png delete mode 100644 views/public/blockimages/items/5-3.png delete mode 100644 views/public/blockimages/items/5-4.png delete mode 100644 views/public/blockimages/items/5-5.png delete mode 100644 views/public/blockimages/items/50-0.png delete mode 100644 views/public/blockimages/items/51-0.png delete mode 100644 views/public/blockimages/items/52-0.png delete mode 100644 views/public/blockimages/items/53-0.png delete mode 100644 views/public/blockimages/items/54-0.png delete mode 100644 views/public/blockimages/items/55-0.png delete mode 100644 views/public/blockimages/items/56-0.png delete mode 100644 views/public/blockimages/items/57-0.png delete mode 100644 views/public/blockimages/items/58-0.png delete mode 100644 views/public/blockimages/items/59-0.png delete mode 100644 views/public/blockimages/items/6-0.png delete mode 100644 views/public/blockimages/items/6-1.png delete mode 100644 views/public/blockimages/items/6-2.png delete mode 100644 views/public/blockimages/items/6-3.png delete mode 100644 views/public/blockimages/items/6-4.png delete mode 100644 views/public/blockimages/items/6-5.png delete mode 100644 views/public/blockimages/items/60-0.png delete mode 100644 views/public/blockimages/items/61-0.png delete mode 100644 views/public/blockimages/items/62-0.png delete mode 100644 views/public/blockimages/items/63-0.png delete mode 100644 views/public/blockimages/items/64-0.png delete mode 100644 views/public/blockimages/items/65-0.png delete mode 100644 views/public/blockimages/items/66-0.png delete mode 100644 views/public/blockimages/items/67-0.png delete mode 100644 views/public/blockimages/items/68-0.png delete mode 100644 views/public/blockimages/items/69-0.png delete mode 100644 views/public/blockimages/items/7-0.png delete mode 100644 views/public/blockimages/items/70-0.png delete mode 100644 views/public/blockimages/items/71-0.png delete mode 100644 views/public/blockimages/items/72-0.png delete mode 100644 views/public/blockimages/items/73-0.png delete mode 100644 views/public/blockimages/items/74-0.png delete mode 100644 views/public/blockimages/items/75-0.png delete mode 100644 views/public/blockimages/items/76-0.png delete mode 100644 views/public/blockimages/items/77-0.png delete mode 100644 views/public/blockimages/items/78-0.png delete mode 100644 views/public/blockimages/items/79-0.png delete mode 100644 views/public/blockimages/items/8-0.png delete mode 100644 views/public/blockimages/items/80-0.png delete mode 100644 views/public/blockimages/items/81-0.png delete mode 100644 views/public/blockimages/items/82-0.png delete mode 100644 views/public/blockimages/items/83-0.png delete mode 100644 views/public/blockimages/items/84-0.png delete mode 100644 views/public/blockimages/items/85-0.png delete mode 100644 views/public/blockimages/items/86-0.png delete mode 100644 views/public/blockimages/items/87-0.png delete mode 100644 views/public/blockimages/items/88-0.png delete mode 100644 views/public/blockimages/items/89-0.png delete mode 100644 views/public/blockimages/items/9-0.png delete mode 100644 views/public/blockimages/items/90-0.png delete mode 100644 views/public/blockimages/items/91-0.png delete mode 100644 views/public/blockimages/items/92-0.png delete mode 100644 views/public/blockimages/items/93-0.png delete mode 100644 views/public/blockimages/items/94-0.png delete mode 100644 views/public/blockimages/items/95-0.png delete mode 100644 views/public/blockimages/items/95-1.png delete mode 100644 views/public/blockimages/items/95-10.png delete mode 100644 views/public/blockimages/items/95-11.png delete mode 100644 views/public/blockimages/items/95-12.png delete mode 100644 views/public/blockimages/items/95-13.png delete mode 100644 views/public/blockimages/items/95-14.png delete mode 100644 views/public/blockimages/items/95-15.png delete mode 100644 views/public/blockimages/items/95-2.png delete mode 100644 views/public/blockimages/items/95-3.png delete mode 100644 views/public/blockimages/items/95-4.png delete mode 100644 views/public/blockimages/items/95-5.png delete mode 100644 views/public/blockimages/items/95-6.png delete mode 100644 views/public/blockimages/items/95-7.png delete mode 100644 views/public/blockimages/items/95-8.png delete mode 100644 views/public/blockimages/items/95-9.png delete mode 100644 views/public/blockimages/items/96-0.png delete mode 100644 views/public/blockimages/items/97-0.png delete mode 100644 views/public/blockimages/items/97-1.png delete mode 100644 views/public/blockimages/items/97-2.png delete mode 100644 views/public/blockimages/items/97-3.png delete mode 100644 views/public/blockimages/items/97-4.png delete mode 100644 views/public/blockimages/items/97-5.png delete mode 100644 views/public/blockimages/items/98-0.png delete mode 100644 views/public/blockimages/items/98-1.png delete mode 100644 views/public/blockimages/items/98-2.png delete mode 100644 views/public/blockimages/items/98-3.png delete mode 100644 views/public/blockimages/items/99-0.png delete mode 100644 views/public/css/papy.css delete mode 100644 views/public/css/style.css delete mode 100644 views/public/favicon.ico delete mode 100644 views/public/js/main.js delete mode 100644 views/routes/admin.js delete mode 100644 views/routes/settings.js delete mode 100644 views/schemas/inventory.js delete mode 100644 views/schemas/item.js delete mode 100644 views/schemas/listing.js delete mode 100644 views/schemas/log.js delete mode 100644 views/views/adminsettings.pug delete mode 100644 views/views/bankf.pug delete mode 100644 views/views/index.pug delete mode 100644 views/views/layout.pug delete mode 100644 views/views/login.pug delete mode 100644 views/views/register.pug delete mode 100644 views/views/settings.pug delete mode 100644 views/views/setup.pug diff --git a/views/Dockerfile b/views/Dockerfile deleted file mode 100644 index 06021da..0000000 --- a/views/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -# syntax=docker/dockerfile:1 -FROM keymetrics/pm2:16-buster -WORKDIR /app -COPY . . -RUN npm install -CMD [ "pm2-runtime", "start", "pm2.json", "--watch"] diff --git a/views/config/admin.js b/views/config/admin.js deleted file mode 100644 index 3fccbc1..0000000 --- a/views/config/admin.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = { - checkAdmin: function (req, res, next) { - if (req.session.admin != false) { - if (req.session.admin != undefined) { - return next(); - } - } - - req.flash("error_msg", "admins only"); - res.redirect("/"); - }, -}; diff --git a/views/config/auth.js b/views/config/auth.js deleted file mode 100644 index 594dcc9..0000000 --- a/views/config/auth.js +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = { - ensureAuthenticated: function (req, res, next) { - if (req.session.user != undefined) { - return next(); - } - req.session.errors = []; - req.session.errors.push({ msg: "please login to view this resource" }); - res.redirect("/login"); - }, -}; diff --git a/views/helpers/functions.js b/views/helpers/functions.js deleted file mode 100644 index d07efe8..0000000 --- a/views/helpers/functions.js +++ /dev/null @@ -1,13 +0,0 @@ -const { CCashClient } = require("ccash-client-js"); - -async function postUser(name, password) { - const client = new CCashClient(process.env.BANKAPIURL); - console.log(process.env.BANKAPIURL); - try { - return await client.addUser(name, password); - } catch (err) { - console.log(err); - } -} - -module.exports = { postUser }; diff --git a/views/node_modules/.bin/acorn b/views/node_modules/.bin/acorn deleted file mode 120000 index cf76760..0000000 --- a/views/node_modules/.bin/acorn +++ /dev/null @@ -1 +0,0 @@ -../acorn/bin/acorn \ No newline at end of file diff --git a/views/node_modules/.bin/mime b/views/node_modules/.bin/mime deleted file mode 120000 index fbb7ee0..0000000 --- a/views/node_modules/.bin/mime +++ /dev/null @@ -1 +0,0 @@ -../mime/cli.js \ No newline at end of file diff --git a/views/node_modules/.bin/parser b/views/node_modules/.bin/parser deleted file mode 120000 index ce7bf97..0000000 --- a/views/node_modules/.bin/parser +++ /dev/null @@ -1 +0,0 @@ -../@babel/parser/bin/babel-parser.js \ No newline at end of file diff --git a/views/node_modules/.package-lock.json b/views/node_modules/.package-lock.json deleted file mode 100644 index 57b69f0..0000000 --- a/views/node_modules/.package-lock.json +++ /dev/null @@ -1,1696 +0,0 @@ -{ - "name": "ccashfrontend", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" - }, - "node_modules/@babel/parser": { - "version": "7.13.15", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", - "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.13.14", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", - "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@sindresorhus/is": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.0.0.tgz", - "integrity": "sha512-FyD2meJpDPjyNQejSjvnhpgI/azsQkA4lGbuu5BQZfjvJ9cbRZXzeWL2HceCekW4lixO9JPesIIQkSoLjeJHNQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz", - "integrity": "sha512-PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@types/bson": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.3.tgz", - "integrity": "sha512-mVRvYnTOZJz3ccpxhr3wgxVmSeiYinW+zlzQz3SXWaJmD1DuL05Jeq7nKw3SnbKmbleW5qrLG5vdyWe/A9sXhw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz", - "integrity": "sha512-ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "*", - "@types/node": "*", - "@types/responselike": "*" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz", - "integrity": "sha512-c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==" - }, - "node_modules/@types/keyv": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz", - "integrity": "sha512-MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/mongodb": { - "version": "3.6.12", - "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.12.tgz", - "integrity": "sha512-49aEzQD5VdHPxyd5dRyQdqEveAg9LanwrH8RQipnMuulwzKmODXIZRp0umtxi1eBUfEusRkoy8AVOMr+kVuFog==", - "dependencies": { - "@types/bson": "*", - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "14.14.37", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz", - "integrity": "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==" - }, - "node_modules/@types/responselike": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", - "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/validator": { - "version": "13.1.4", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.1.4.tgz", - "integrity": "sha512-19C02B8mr53HufY7S+HO/EHBD7a/R22IwEwyqiHaR19iwL37dN3o0M8RianVInfSSqP7InVSg/o0mUATM4JWsQ==" - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" - }, - "node_modules/assert-never": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", - "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==" - }, - "node_modules/axios": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz", - "integrity": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==", - "dependencies": { - "follow-redirects": "^1.10.0" - } - }, - "node_modules/babel-walk": { - "version": "3.0.0-canary-5", - "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", - "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", - "dependencies": { - "@babel/types": "^7.9.6" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bson": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", - "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz", - "integrity": "sha512-lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/ccash-client-js": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/ccash-client-js/-/ccash-client-js-1.6.3.tgz", - "integrity": "sha512-w6izW9L9l0G78BrRwVvP7tWFbmBekq+tepTmqK28+2lcczCaNvJnCDIqW9pQgZ6u9OjI9GX8bUteQu+7PbxiLA==", - "dependencies": { - "axios": "^0.21.1", - "class-validator": "^0.13.1", - "debug": "^4.3.1" - } - }, - "node_modules/ccash-client-js/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/ccash-client-js/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=", - "dependencies": { - "is-regex": "^1.0.3" - } - }, - "node_modules/class-validator": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.1.tgz", - "integrity": "sha512-zWIeYFhUitvAHBwNhDdCRK09hWx+P0HUwFE8US8/CxFpMVzkUK8RJl7yOIE+BVu2lxyPNgeOaFv78tLE47jBIg==", - "dependencies": { - "@types/validator": "^13.1.3", - "libphonenumber-js": "^1.9.7", - "validator": "^13.5.2" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/connect-flash": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/connect-flash/-/connect-flash-0.1.1.tgz", - "integrity": "sha1-2GMPJtlaf4UfmVax6MxnMvO2qjA=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/constantinople": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", - "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", - "dependencies": { - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.1" - } - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/denque": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", - "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=" - }, - "node_modules/dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express-messages": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/express-messages/-/express-messages-1.0.1.tgz", - "integrity": "sha1-mYGoWl0rEYx5/DP1K0GDT/7paFo=", - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express-session": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.1.tgz", - "integrity": "sha512-UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==", - "dependencies": { - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-headers": "~1.0.2", - "parseurl": "~1.3.3", - "safe-buffer": "5.2.0", - "uid-safe": "~2.1.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/express-session/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/express-session/node_modules/safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" - }, - "node_modules/express-validator": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/express-validator/-/express-validator-5.3.1.tgz", - "integrity": "sha512-g8xkipBF6VxHbO1+ksC7nxUU7+pWif0+OZXjZTybKJ/V0aTVhuCoHbyhIPgSYVldwQLocGExPtB2pE0DqK4jsw==", - "dependencies": { - "lodash": "^4.17.10", - "validator": "^10.4.0" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/express-validator/node_modules/validator": { - "version": "10.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-10.11.0.tgz", - "integrity": "sha512-X/p3UZerAIsbBfN/IwahhYaBbY68EN/UQBWHtsbXGT5bfrH/p4NQzUCG1kF/rtKaNpnJ7jAu6NGTdSNtyNIXMw==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/follow-redirects": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.1.tgz", - "integrity": "sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/got": { - "version": "11.8.2", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.2.tgz", - "integrity": "sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.1", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https/-/https-1.0.0.tgz", - "integrity": "sha1-PDfHrhqO65ZpBKKtHpdaGUt+06Q=" - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-expression": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", - "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", - "dependencies": { - "acorn": "^7.1.1", - "object-assign": "^4.1.1" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", - "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds=" - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=", - "dependencies": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, - "node_modules/kareem": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", - "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" - }, - "node_modules/keyv": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz", - "integrity": "sha512-zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/libphonenumber-js": { - "version": "1.9.19", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.9.19.tgz", - "integrity": "sha512-RjStfSE63LvXQEBw7pgQHPkY35z8feiMjC9wLvL1Hbt8PbhxpRrACwMXmLQgabb+IpVdcEx+olh8ll7UDXXkfA==" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true - }, - "node_modules/memorystore": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/memorystore/-/memorystore-1.6.6.tgz", - "integrity": "sha512-EbLl1xg9+DlnjXkZK/eMUoWyhZ1IxcWMpSuFyqyA/Z4BNuH7BR+E0yC40WbLZZ6G8LxHiUZ2DPhqV8DR8+9UQQ==", - "dependencies": { - "debug": "^4.3.0", - "lru-cache": "^4.0.3" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/memorystore/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/memorystore/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.47.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz", - "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.30", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz", - "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==", - "dependencies": { - "mime-db": "1.47.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/mongodb": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.6.tgz", - "integrity": "sha512-WlirMiuV1UPbej5JeCMqE93JRfZ/ZzqE7nJTwP85XzjAF4rRSeq2bGCb1cjfoHLOF06+HxADaPGqT0g3SbVT1w==", - "dependencies": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "optional-require": "^1.0.2", - "safe-buffer": "^5.1.2" - }, - "engines": { - "node": ">=4" - }, - "optionalDependencies": { - "saslprep": "^1.0.0" - }, - "peerDependenciesMeta": { - "aws4": { - "optional": true - }, - "bson-ext": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "mongodb-extjson": { - "optional": true - }, - "snappy": { - "optional": true - } - } - }, - "node_modules/mongoose": { - "version": "5.12.5", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.12.5.tgz", - "integrity": "sha512-VVoqiELZcoI2HhHDuPpfN3qmExrtIeXSWNb1nihf4w1SJoWGXilU/g2cQgeeSMc2vAHSZd5Nv2sNPvbZHFw+pg==", - "dependencies": { - "@types/mongodb": "^3.5.27", - "bson": "^1.1.4", - "kareem": "2.3.2", - "mongodb": "3.6.6", - "mongoose-legacy-pluralize": "1.0.2", - "mpath": "0.8.3", - "mquery": "3.2.5", - "ms": "2.1.2", - "regexp-clone": "1.0.0", - "safe-buffer": "5.2.1", - "sift": "7.0.1", - "sliced": "1.0.1" - }, - "engines": { - "node": ">=4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mongoose" - } - }, - "node_modules/mongoose-legacy-pluralize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", - "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==", - "peerDependencies": { - "mongoose": "*" - } - }, - "node_modules/mongoose/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mongoose/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/mpath": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.3.tgz", - "integrity": "sha512-eb9rRvhDltXVNL6Fxd2zM9D4vKBxjVVQNLNijlj7uoXUy19zNDsIif5zR+pWmPCWNKwAtqyo4JveQm4nfD5+eA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mquery": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz", - "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==", - "dependencies": { - "bluebird": "3.5.1", - "debug": "3.1.0", - "regexp-clone": "^1.0.0", - "safe-buffer": "5.1.2", - "sliced": "1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mquery/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optional-require": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz", - "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.0.tgz", - "integrity": "sha512-HAZyB3ZodPo+BDpb4/Iu7Jv4P6cSazBz9ZM0ChhEXp70scx834aWCEjQRwgt41UzzejUAPdbqqONfRWTPYrPAQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path": { - "version": "0.12.7", - "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", - "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", - "dependencies": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "node_modules/pug": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", - "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", - "dependencies": { - "pug-code-gen": "^3.0.2", - "pug-filters": "^4.0.0", - "pug-lexer": "^5.0.1", - "pug-linker": "^4.0.0", - "pug-load": "^3.0.0", - "pug-parser": "^6.0.0", - "pug-runtime": "^3.0.1", - "pug-strip-comments": "^2.0.0" - } - }, - "node_modules/pug-attrs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", - "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", - "dependencies": { - "constantinople": "^4.0.1", - "js-stringify": "^1.0.2", - "pug-runtime": "^3.0.0" - } - }, - "node_modules/pug-code-gen": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", - "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", - "dependencies": { - "constantinople": "^4.0.1", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.2", - "pug-attrs": "^3.0.0", - "pug-error": "^2.0.0", - "pug-runtime": "^3.0.0", - "void-elements": "^3.1.0", - "with": "^7.0.0" - } - }, - "node_modules/pug-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", - "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==" - }, - "node_modules/pug-filters": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", - "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", - "dependencies": { - "constantinople": "^4.0.1", - "jstransformer": "1.0.0", - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0", - "resolve": "^1.15.1" - } - }, - "node_modules/pug-lexer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", - "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", - "dependencies": { - "character-parser": "^2.2.0", - "is-expression": "^4.0.0", - "pug-error": "^2.0.0" - } - }, - "node_modules/pug-linker": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", - "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", - "dependencies": { - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0" - } - }, - "node_modules/pug-load": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", - "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", - "dependencies": { - "object-assign": "^4.1.1", - "pug-walk": "^2.0.0" - } - }, - "node_modules/pug-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", - "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", - "dependencies": { - "pug-error": "^2.0.0", - "token-stream": "1.0.0" - } - }, - "node_modules/pug-runtime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", - "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==" - }, - "node_modules/pug-strip-comments": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", - "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", - "dependencies": { - "pug-error": "^2.0.0" - } - }, - "node_modules/pug-walk": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", - "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" - }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/random-bytes": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/random-bytes/-/random-bytes-1.0.0.tgz", - "integrity": "sha1-T2ih3Arli9P7lYSMMDJNt11kNgs=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/regexp-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", - "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.1.1.tgz", - "integrity": "sha512-0KbFjFPR2bnJhNx1t8Ad6RqVc8+QPJC4y561FYyC/Q/6OzB3fhUzB5PEgitYhPK6aifwR5gXBSnDMllaDWixGQ==" - }, - "node_modules/responselike": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz", - "integrity": "sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==", - "dependencies": { - "lowercase-keys": "^2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "optional": true, - "dependencies": { - "sparse-bitfield": "^3.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/sift": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz", - "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==" - }, - "node_modules/sliced": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" - }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", - "optional": true, - "dependencies": { - "memory-pager": "^1.0.2" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", - "integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ=" - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/uid-safe": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/uid-safe/-/uid-safe-2.1.5.tgz", - "integrity": "sha512-KPHm4VL5dDXKz01UuEd88Df+KzynaohSL9fBh096KWAxSKZQDI2uBrVqtvRM4rwrIrRRKsdLNML/lnaaVSRioA==", - "dependencies": { - "random-bytes": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/validator": { - "version": "13.5.2", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", - "integrity": "sha512-mD45p0rvHVBlY2Zuy3F3ESIe1h5X58GPfAtslBjY7EtTqGquZTj+VX/J4RnHWN8FKq0C9WRVt1oWAcytWRuYLQ==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/void-elements": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", - "integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/with": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", - "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", - "dependencies": { - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", - "assert-never": "^1.2.1", - "babel-walk": "3.0.0-canary-5" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" - } - } -} diff --git a/views/node_modules/@babel/helper-validator-identifier/LICENSE b/views/node_modules/@babel/helper-validator-identifier/LICENSE deleted file mode 100644 index f31575e..0000000 --- a/views/node_modules/@babel/helper-validator-identifier/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License - -Copyright (c) 2014-present Sebastian McKenzie and other contributors - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/views/node_modules/@babel/helper-validator-identifier/README.md b/views/node_modules/@babel/helper-validator-identifier/README.md deleted file mode 100644 index 6733576..0000000 --- a/views/node_modules/@babel/helper-validator-identifier/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-validator-identifier - -> Validate identifier/keywords name - -See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/en/babel-helper-validator-identifier) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-validator-identifier -``` - -or using yarn: - -```sh -yarn add @babel/helper-validator-identifier --dev -``` diff --git a/views/node_modules/@babel/helper-validator-identifier/lib/identifier.js b/views/node_modules/@babel/helper-validator-identifier/lib/identifier.js deleted file mode 100644 index 51ec763..0000000 --- a/views/node_modules/@babel/helper-validator-identifier/lib/identifier.js +++ /dev/null @@ -1,77 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isIdentifierStart = isIdentifierStart; -exports.isIdentifierChar = isIdentifierChar; -exports.isIdentifierName = isIdentifierName; -let nonASCIIidentifierStartChars = "\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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-\u08c7\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\u0d04-\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\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\u1880-\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\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\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-\uab69\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"; -let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; -const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); -const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); -nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; -const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 107, 20, 28, 22, 13, 52, 76, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 230, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 35, 56, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2749, 1070, 4050, 582, 8634, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8952, 286, 50, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 2357, 44, 11, 6, 17, 0, 370, 43, 1301, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42717, 35, 4148, 12, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; -const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 176, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 135, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 419, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; - -function isInAstralSet(code, set) { - let pos = 0x10000; - - for (let i = 0, length = set.length; i < length; i += 2) { - pos += set[i]; - if (pos > code) return false; - pos += set[i + 1]; - if (pos >= code) return true; - } - - return false; -} - -function isIdentifierStart(code) { - if (code < 65) return code === 36; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); - } - - return isInAstralSet(code, astralIdentifierStartCodes); -} - -function isIdentifierChar(code) { - if (code < 48) return code === 36; - if (code < 58) return true; - if (code < 65) return false; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); - } - - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); -} - -function isIdentifierName(name) { - let isFirst = true; - - for (let _i = 0, _Array$from = Array.from(name); _i < _Array$from.length; _i++) { - const char = _Array$from[_i]; - const cp = char.codePointAt(0); - - if (isFirst) { - if (!isIdentifierStart(cp)) { - return false; - } - - isFirst = false; - } else if (!isIdentifierChar(cp)) { - return false; - } - } - - return !isFirst; -} \ No newline at end of file diff --git a/views/node_modules/@babel/helper-validator-identifier/lib/index.js b/views/node_modules/@babel/helper-validator-identifier/lib/index.js deleted file mode 100644 index 7b623c9..0000000 --- a/views/node_modules/@babel/helper-validator-identifier/lib/index.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "isIdentifierName", { - enumerable: true, - get: function () { - return _identifier.isIdentifierName; - } -}); -Object.defineProperty(exports, "isIdentifierChar", { - enumerable: true, - get: function () { - return _identifier.isIdentifierChar; - } -}); -Object.defineProperty(exports, "isIdentifierStart", { - enumerable: true, - get: function () { - return _identifier.isIdentifierStart; - } -}); -Object.defineProperty(exports, "isReservedWord", { - enumerable: true, - get: function () { - return _keyword.isReservedWord; - } -}); -Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictBindOnlyReservedWord; - } -}); -Object.defineProperty(exports, "isStrictBindReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictBindReservedWord; - } -}); -Object.defineProperty(exports, "isStrictReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictReservedWord; - } -}); -Object.defineProperty(exports, "isKeyword", { - enumerable: true, - get: function () { - return _keyword.isKeyword; - } -}); - -var _identifier = require("./identifier"); - -var _keyword = require("./keyword"); \ No newline at end of file diff --git a/views/node_modules/@babel/helper-validator-identifier/lib/keyword.js b/views/node_modules/@babel/helper-validator-identifier/lib/keyword.js deleted file mode 100644 index 110cee4..0000000 --- a/views/node_modules/@babel/helper-validator-identifier/lib/keyword.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isReservedWord = isReservedWord; -exports.isStrictReservedWord = isStrictReservedWord; -exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord; -exports.isStrictBindReservedWord = isStrictBindReservedWord; -exports.isKeyword = isKeyword; -const reservedWords = { - keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], - strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], - strictBind: ["eval", "arguments"] -}; -const keywords = new Set(reservedWords.keyword); -const reservedWordsStrictSet = new Set(reservedWords.strict); -const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); - -function isReservedWord(word, inModule) { - return inModule && word === "await" || word === "enum"; -} - -function isStrictReservedWord(word, inModule) { - return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); -} - -function isStrictBindOnlyReservedWord(word) { - return reservedWordsStrictBindSet.has(word); -} - -function isStrictBindReservedWord(word, inModule) { - return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); -} - -function isKeyword(word) { - return keywords.has(word); -} \ No newline at end of file diff --git a/views/node_modules/@babel/helper-validator-identifier/package.json b/views/node_modules/@babel/helper-validator-identifier/package.json deleted file mode 100644 index 464dbfa..0000000 --- a/views/node_modules/@babel/helper-validator-identifier/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "@babel/helper-validator-identifier", - "version": "7.12.11", - "description": "Validate identifier/keywords name", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-validator-identifier" - }, - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "exports": "./lib/index.js", - "devDependencies": { - "charcodes": "^0.2.0", - "unicode-13.0.0": "^0.8.0" - } -} \ No newline at end of file diff --git a/views/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js b/views/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js deleted file mode 100644 index 70b3715..0000000 --- a/views/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js +++ /dev/null @@ -1,75 +0,0 @@ -"use strict"; - -// Always use the latest available version of Unicode! -// https://tc39.github.io/ecma262/#sec-conformance -const version = "13.0.0"; - -const start = require("unicode-" + - version + - "/Binary_Property/ID_Start/code-points.js").filter(function (ch) { - return ch > 0x7f; -}); -let last = -1; -const cont = [0x200c, 0x200d].concat( - require("unicode-" + - version + - "/Binary_Property/ID_Continue/code-points.js").filter(function (ch) { - return ch > 0x7f && search(start, ch, last + 1) == -1; - }) -); - -function search(arr, ch, starting) { - for (let i = starting; arr[i] <= ch && i < arr.length; last = i++) { - if (arr[i] === ch) return i; - } - return -1; -} - -function pad(str, width) { - while (str.length < width) str = "0" + str; - return str; -} - -function esc(code) { - const hex = code.toString(16); - if (hex.length <= 2) return "\\x" + pad(hex, 2); - else return "\\u" + pad(hex, 4); -} - -function generate(chars) { - const astral = []; - let re = ""; - for (let i = 0, at = 0x10000; i < chars.length; i++) { - const from = chars[i]; - let to = from; - while (i < chars.length - 1 && chars[i + 1] == to + 1) { - i++; - to++; - } - if (to <= 0xffff) { - if (from == to) re += esc(from); - else if (from + 1 == to) re += esc(from) + esc(to); - else re += esc(from) + "-" + esc(to); - } else { - astral.push(from - at, to - from); - at = to; - } - } - return { nonASCII: re, astral: astral }; -} - -const startData = generate(start); -const contData = generate(cont); - -console.log("/* prettier-ignore */"); -console.log('let nonASCIIidentifierStartChars = "' + startData.nonASCII + '";'); -console.log("/* prettier-ignore */"); -console.log('let nonASCIIidentifierChars = "' + contData.nonASCII + '";'); -console.log("/* prettier-ignore */"); -console.log( - "const astralIdentifierStartCodes = " + JSON.stringify(startData.astral) + ";" -); -console.log("/* prettier-ignore */"); -console.log( - "const astralIdentifierCodes = " + JSON.stringify(contData.astral) + ";" -); diff --git a/views/node_modules/@babel/parser/CHANGELOG.md b/views/node_modules/@babel/parser/CHANGELOG.md deleted file mode 100644 index b3840ac..0000000 --- a/views/node_modules/@babel/parser/CHANGELOG.md +++ /dev/null @@ -1,1073 +0,0 @@ -# Changelog - -> **Tags:** -> - :boom: [Breaking Change] -> - :eyeglasses: [Spec Compliance] -> - :rocket: [New Feature] -> - :bug: [Bug Fix] -> - :memo: [Documentation] -> - :house: [Internal] -> - :nail_care: [Polish] - -> Semver Policy: https://github.com/babel/babel/tree/main/packages/babel-parser#semver - -_Note: Gaps between patch versions are faulty, broken or test releases._ - -See the [Babel Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) for the pre-6.8.0 version Changelog. - -## 6.17.1 (2017-05-10) - -### :bug: Bug Fix - * Fix typo in flow spread operator error (Brian Ng) - * Fixed invalid number literal parsing ([#473](https://github.com/babel/babylon/pull/473)) (Alex Kuzmenko) - * Fix number parser ([#433](https://github.com/babel/babylon/pull/433)) (Alex Kuzmenko) - * Ensure non pattern shorthand props are checked for reserved words ([#479](https://github.com/babel/babylon/pull/479)) (Brian Ng) - * Remove jsx context when parsing arrow functions ([#475](https://github.com/babel/babylon/pull/475)) (Brian Ng) - * Allow super in class properties ([#499](https://github.com/babel/babylon/pull/499)) (Brian Ng) - * Allow flow class field to be named constructor ([#510](https://github.com/babel/babylon/pull/510)) (Brian Ng) - -## 6.17.0 (2017-04-20) - -### :bug: Bug Fix - * Cherry-pick #418 to 6.x ([#476](https://github.com/babel/babylon/pull/476)) (Sebastian McKenzie) - * Add support for invalid escapes in tagged templates ([#274](https://github.com/babel/babylon/pull/274)) (Kevin Gibbons) - * Throw error if new.target is used outside of a function ([#402](https://github.com/babel/babylon/pull/402)) (Brian Ng) - * Fix parsing of class properties ([#351](https://github.com/babel/babylon/pull/351)) (Kevin Gibbons) - * Fix parsing yield with dynamicImport ([#383](https://github.com/babel/babylon/pull/383)) (Brian Ng) - * Ensure consistent start args for parseParenItem ([#386](https://github.com/babel/babylon/pull/386)) (Brian Ng) - -## 7.0.0-beta.8 (2017-04-04) - -### New Feature -* Add support for flow type spread (#418) (Conrad Buck) -* Allow statics in flow interfaces (#427) (Brian Ng) - -### Bug Fix -* Fix predicate attachment to match flow parser (#428) (Brian Ng) -* Add extra.raw back to JSXText and JSXAttribute (#344) (Alex Rattray) -* Fix rest parameters with array and objects (#424) (Brian Ng) -* Fix number parser (#433) (Alex Kuzmenko) - -### Docs -* Fix CONTRIBUTING.md [skip ci] (#432) (Alex Kuzmenko) - -### Internal -* Use babel-register script when running babel smoke tests (#442) (Brian Ng) - -## 7.0.0-beta.7 (2017-03-22) - -### Spec Compliance -* Remove babylon plugin for template revision since it's stage-4 (#426) (Henry Zhu) - -### Bug Fix - -* Fix push-pop logic in flow (#405) (Daniel Tschinder) - -## 7.0.0-beta.6 (2017-03-21) - -### New Feature -* Add support for invalid escapes in tagged templates (#274) (Kevin Gibbons) - -### Polish -* Improves error message when super is called outside of constructor (#408) (Arshabh Kumar Agarwal) - -### Docs - -* [7.0] Moved value field in spec from ObjectMember to ObjectProperty as ObjectMethod's don't have it (#415) [skip ci] (James Browning) - -## 7.0.0-beta.5 (2017-03-21) - -### Bug Fix -* Throw error if new.target is used outside of a function (#402) (Brian Ng) -* Fix parsing of class properties (#351) (Kevin Gibbons) - -### Other - * Test runner: Detect extra property in 'actual' but not in 'expected'. (#407) (Andy) - * Optimize travis builds (#419) (Daniel Tschinder) - * Update codecov to 2.0 (#412) (Daniel Tschinder) - * Fix spec for ClassMethod: It doesn't have a function, it *is* a function. (#406) [skip ci] (Andy) - * Changed Non-existent RestPattern to RestElement which is what is actually parsed (#409) [skip ci] (James Browning) - * Upgrade flow to 0.41 (Daniel Tschinder) - * Fix watch command (#403) (Brian Ng) - * Update yarn lock (Daniel Tschinder) - * Fix watch command (#403) (Brian Ng) - * chore(package): update flow-bin to version 0.41.0 (#395) (greenkeeper[bot]) - * Add estree test for correct order of directives (Daniel Tschinder) - * Add DoExpression to spec (#364) (Alex Kuzmenko) - * Mention cloning of repository in CONTRIBUTING.md (#391) [skip ci] (Sumedh Nimkarde) - * Explain how to run only one test (#389) [skip ci] (Aaron Ang) - - ## 7.0.0-beta.4 (2017-03-01) - -* Don't consume async when checking for async func decl (#377) (Brian Ng) -* add `ranges` option [skip ci] (Henry Zhu) -* Don't parse class properties without initializers when classProperties is disabled and Flow is enabled (#300) (Andrew Levine) - -## 7.0.0-beta.3 (2017-02-28) - -- [7.0] Change RestProperty/SpreadProperty to RestElement/SpreadElement (#384) -- Merge changes from 6.x - -## 7.0.0-beta.2 (2017-02-20) - -- estree: correctly change literals in all cases (#368) (Daniel Tschinder) - -## 7.0.0-beta.1 (2017-02-20) - -- Fix negative number literal typeannotations (#366) (Daniel Tschinder) -- Update contributing with more test info [skip ci] (#355) (Brian Ng) - -## 7.0.0-beta.0 (2017-02-15) - -- Reintroduce Variance node (#333) (Daniel Tschinder) -- Rename NumericLiteralTypeAnnotation to NumberLiteralTypeAnnotation (#332) (Charles Pick) -- [7.0] Remove ForAwaitStatement, add await flag to ForOfStatement (#349) (Brandon Dail) -- chore(package): update ava to version 0.18.0 (#345) (greenkeeper[bot]) -- chore(package): update babel-plugin-istanbul to version 4.0.0 (#350) (greenkeeper[bot]) -- Change location of ObjectTypeIndexer to match flow (#228) (Daniel Tschinder) -- Rename flow AST Type ExistentialTypeParam to ExistsTypeAnnotation (#322) (Toru Kobayashi) -- Revert "Temporary rollback for erroring on trailing comma with spread (#154)" (#290) (Daniel Tschinder) -- Remove classConstructorCall plugin (#291) (Brian Ng) -- Update yarn.lock (Daniel Tschinder) -- Update cross-env to 3.x (Daniel Tschinder) -- [7.0] Remove node 0.10, 0.12 and 5 from Travis (#284) (Sergey Rubanov) -- Remove `String.fromCodePoint` shim (#279) (Mathias Bynens) - -## 6.16.1 (2017-02-23) - -### :bug: Regression - -- Revert "Fix export default async function to be FunctionDeclaration" ([#375](https://github.com/babel/babylon/pull/375)) - -Need to modify Babel for this AST node change, so moving to 7.0. - -- Revert "Don't parse class properties without initializers when classProperties plugin is disabled, and Flow is enabled" ([#376](https://github.com/babel/babylon/pull/376)) - -[react-native](https://github.com/facebook/react-native/issues/12542) broke with this so we reverted. - -## 6.16.0 (2017-02-23) - -### :rocket: New Feature - -***ESTree*** compatibility as plugin ([#277](https://github.com/babel/babylon/pull/277)) (Daniel Tschinder) - -We finally introduce a new compatibility layer for ESTree. To put babylon into ESTree-compatible mode the new plugin `estree` can be enabled. In this mode the parser will output an AST that is compliant to the specs of [ESTree](https://github.com/estree/estree/) - -We highly recommend everyone who uses babylon outside of babel to use this plugin. This will make it much easier for users to switch between different ESTree-compatible parsers. We so far tested several projects with different parsers and exchanged their parser to babylon and in nearly all cases it worked out of the box. Some other estree-compatible parsers include `acorn`, `esprima`, `espree`, `flow-parser`, etc. - -To enable `estree` mode simply add the plugin in the config: -```json -{ - "plugins": [ "estree" ] -} -``` - -If you want to migrate your project from non-ESTree mode to ESTree, have a look at our [Readme](https://github.com/babel/babylon/#output), where all deviations are mentioned. - -Add a parseExpression public method ([#213](https://github.com/babel/babylon/pull/213)) (jeromew) - -Babylon exports a new function to parse a single expression - -```js -import { parseExpression } from 'babylon'; - -const ast = parseExpression('x || y && z', options); -``` - -The returned AST will only consist of the expression. The options are the same as for `parse()` - -Add startLine option ([#346](https://github.com/babel/babylon/pull/346)) (Raphael Mu) - -A new option was added to babylon allowing to change the initial linenumber for the first line which is usually `1`. -Changing this for example to `100` will make line `1` of the input source to be marked as line `100`, line `2` as `101`, line `3` as `102`, ... - -Function predicate declaration ([#103](https://github.com/babel/babylon/pull/103)) (Panagiotis Vekris) - -Added support for function predicates which flow introduced in version 0.33.0 - -```js -declare function is_number(x: mixed): boolean %checks(typeof x === "number"); -``` - -Allow imports in declare module ([#315](https://github.com/babel/babylon/pull/315)) (Daniel Tschinder) - -Added support for imports within module declarations which flow introduced in version 0.37.0 - -```js -declare module "C" { - import type { DT } from "D"; - declare export type CT = { D: DT }; -} -``` - -### :eyeglasses: Spec Compliance - -Forbid semicolons after decorators in classes ([#352](https://github.com/babel/babylon/pull/352)) (Kevin Gibbons) - -This example now correctly throws an error when there is a semicolon after the decorator: - -```js -class A { -@a; -foo(){} -} -``` - -Keywords are not allowed as local specifier ([#307](https://github.com/babel/babylon/pull/307)) (Daniel Tschinder) - -Using keywords in imports is not allowed anymore: - -```js -import { default } from "foo"; -import { a as debugger } from "foo"; -``` - -Do not allow overwritting of primitive types ([#314](https://github.com/babel/babylon/pull/314)) (Daniel Tschinder) - -In flow it is now forbidden to overwrite the primitive types `"any"`, `"mixed"`, `"empty"`, `"bool"`, `"boolean"`, `"number"`, `"string"`, `"void"` and `"null"` with your own type declaration. - -Disallow import type { type a } from … ([#305](https://github.com/babel/babylon/pull/305)) (Daniel Tschinder) - -The following code now correctly throws an error - -```js -import type { type a } from "foo"; -``` - -Don't parse class properties without initializers when classProperties is disabled and Flow is enabled ([#300](https://github.com/babel/babylon/pull/300)) (Andrew Levine) - -Ensure that you enable the `classProperties` plugin in order to enable correct parsing of class properties. Prior to this version it was possible to parse them by enabling the `flow` plugin but this was not intended the behaviour. - -If you enable the flow plugin you can only define the type of the class properties, but not initialize them. - -Fix export default async function to be FunctionDeclaration ([#324](https://github.com/babel/babylon/pull/324)) (Daniel Tschinder) - -Parsing the following code now returns a `FunctionDeclaration` AST node instead of `FunctionExpression`. - -```js -export default async function bar() {}; -``` - -### :nail_care: Polish - -Improve error message on attempt to destructure named import ([#288](https://github.com/babel/babylon/pull/288)) (Brian Ng) - -### :bug: Bug Fix - -Fix negative number literal typeannotations ([#366](https://github.com/babel/babylon/pull/366)) (Daniel Tschinder) - -Ensure takeDecorators is called on exported class ([#358](https://github.com/babel/babylon/pull/358)) (Brian Ng) - -ESTree: correctly change literals in all cases ([#368](https://github.com/babel/babylon/pull/368)) (Daniel Tschinder) - -Correctly convert RestProperty to Assignable ([#339](https://github.com/babel/babylon/pull/339)) (Daniel Tschinder) - -Fix #321 by allowing question marks in type params ([#338](https://github.com/babel/babylon/pull/338)) (Daniel Tschinder) - -Fix #336 by correctly setting arrow-param ([#337](https://github.com/babel/babylon/pull/337)) (Daniel Tschinder) - -Fix parse error when destructuring `set` with default value ([#317](https://github.com/babel/babylon/pull/317)) (Brian Ng) - -Fix ObjectTypeCallProperty static ([#298](https://github.com/babel/babylon/pull/298)) (Dan Harper) - - -### :house: Internal - -Fix generator-method-with-computed-name spec ([#360](https://github.com/babel/babylon/pull/360)) (Alex Rattray) - -Fix flow type-parameter-declaration test with unintended semantic ([#361](https://github.com/babel/babylon/pull/361)) (Alex Rattray) - -Cleanup and splitup parser functions ([#295](https://github.com/babel/babylon/pull/295)) (Daniel Tschinder) - -chore(package): update flow-bin to version 0.38.0 ([#313](https://github.com/babel/babylon/pull/313)) (greenkeeper[bot]) - -Call inner function instead of 1:1 copy to plugin ([#294](https://github.com/babel/babylon/pull/294)) (Daniel Tschinder) - -Update eslint-config-babel to the latest version 🚀 ([#299](https://github.com/babel/babylon/pull/299)) (greenkeeper[bot]) - -Update eslint-config-babel to the latest version 🚀 ([#293](https://github.com/babel/babylon/pull/293)) (greenkeeper[bot]) - -devDeps: remove eslint-plugin-babel ([#292](https://github.com/babel/babylon/pull/292)) (Kai Cataldo) - -Correct indent eslint rule config ([#276](https://github.com/babel/babylon/pull/276)) (Daniel Tschinder) - -Fail tests that have expected.json and throws-option ([#285](https://github.com/babel/babylon/pull/285)) (Daniel Tschinder) - -### :memo: Documentation - -Update contributing with more test info [skip ci] ([#355](https://github.com/babel/babylon/pull/355)) (Brian Ng) - -Update API documentation ([#330](https://github.com/babel/babylon/pull/330)) (Timothy Gu) - -Added keywords to package.json ([#323](https://github.com/babel/babylon/pull/323)) (Dmytro) - -AST spec: fix casing of `RegExpLiteral` ([#318](https://github.com/babel/babylon/pull/318)) (Mathias Bynens) - -## 6.15.0 (2017-01-10) - -### :eyeglasses: Spec Compliance - -Add support for Flow shorthand import type ([#267](https://github.com/babel/babylon/pull/267)) (Jeff Morrison) - -This change implements flows new shorthand import syntax -and where previously you had to write this code: - -```js -import {someValue} from "blah"; -import type {someType} from "blah"; -import typeof {someOtherValue} from "blah"; -``` - -you can now write it like this: - -```js -import { - someValue, - type someType, - typeof someOtherValue, -} from "blah"; -``` - -For more information look at [this](https://github.com/facebook/flow/pull/2890) pull request. - -flow: allow leading pipes in all positions ([#256](https://github.com/babel/babylon/pull/256)) (Vladimir Kurchatkin) - -This change now allows a leading pipe everywhere types can be used: -```js -var f = (x): | 1 | 2 => 1; -``` - -Throw error when exporting non-declaration ([#241](https://github.com/babel/babylon/pull/241)) (Kai Cataldo) - -Previously babylon parsed the following exports, although they are not valid: -```js -export typeof foo; -export new Foo(); -export function() {}; -export for (;;); -export while(foo); -``` - -### :bug: Bug Fix - -Don't set inType flag when parsing property names ([#266](https://github.com/babel/babylon/pull/266)) (Vladimir Kurchatkin) - -This fixes parsing of this case: - -```js -const map = { - [age <= 17] : 'Too young' -}; -``` - -Fix source location for JSXEmptyExpression nodes (fixes #248) ([#249](https://github.com/babel/babylon/pull/249)) (James Long) - -The following case produced an invalid AST -```js -
{/* foo */}
-``` - -Use fromCodePoint to convert high value unicode entities ([#243](https://github.com/babel/babylon/pull/243)) (Ryan Duffy) - -When high value unicode entities (e.g. 💩) were used in the input source code they are now correctly encoded in the resulting AST. - -Rename folder to avoid Windows-illegal characters ([#281](https://github.com/babel/babylon/pull/281)) (Ryan Plant) - -Allow this.state.clone() when parsing decorators ([#262](https://github.com/babel/babylon/pull/262)) (Alex Rattray) - -### :house: Internal - -User external-helpers ([#254](https://github.com/babel/babylon/pull/254)) (Daniel Tschinder) - -Add watch script for dev ([#234](https://github.com/babel/babylon/pull/234)) (Kai Cataldo) - -Freeze current plugins list for "*" option, and remove from README.md ([#245](https://github.com/babel/babylon/pull/245)) (Andrew Levine) - -Prepare tests for multiple fixture runners. ([#240](https://github.com/babel/babylon/pull/240)) (Daniel Tschinder) - -Add some test coverage for decorators stage-0 plugin ([#250](https://github.com/babel/babylon/pull/250)) (Andrew Levine) - -Refactor tokenizer types file ([#263](https://github.com/babel/babylon/pull/263)) (Sven SAULEAU) - -Update eslint-config-babel to the latest version 🚀 ([#273](https://github.com/babel/babylon/pull/273)) (greenkeeper[bot]) - -chore(package): update rollup to version 0.41.0 ([#272](https://github.com/babel/babylon/pull/272)) (greenkeeper[bot]) - -chore(package): update flow-bin to version 0.37.0 ([#255](https://github.com/babel/babylon/pull/255)) (greenkeeper[bot]) - -## 6.14.1 (2016-11-17) - -### :bug: Bug Fix - -Allow `"plugins": ["*"]` ([#229](https://github.com/babel/babylon/pull/229)) (Daniel Tschinder) - -```js -{ - "plugins": ["*"] -} -``` - -Will include all parser plugins instead of specifying each one individually. Useful for tools like babel-eslint, jscodeshift, and ast-explorer. - -## 6.14.0 (2016-11-16) - -### :eyeglasses: Spec Compliance - -Throw error for reserved words `enum` and `await` ([#195](https://github.com/babel/babylon/pull/195)) (Kai Cataldo) - -[11.6.2.2 Future Reserved Words](http://www.ecma-international.org/ecma-262/6.0/#sec-future-reserved-words) - -Babylon will throw for more reserved words such as `enum` or `await` (in strict mode). - -``` -class enum {} // throws -class await {} // throws in strict mode (module) -``` - -Optional names for function types and object type indexers ([#197](https://github.com/babel/babylon/pull/197)) (Gabe Levi) - -So where you used to have to write - -```js -type A = (x: string, y: boolean) => number; -type B = (z: string) => number; -type C = { [key: string]: number }; -``` - -you can now write (with flow 0.34.0) - -```js -type A = (string, boolean) => number; -type B = string => number; -type C = { [string]: number }; -``` - -Parse flow nested array type annotations like `number[][]` ([#219](https://github.com/babel/babylon/pull/219)) (Bernhard Häussner) - -Supports these form now of specifying array types: - -```js -var a: number[][][][]; -var b: string[][]; -``` - -### :bug: Bug Fix - -Correctly eat semicolon at the end of `DelcareModuleExports` ([#223](https://github.com/babel/babylon/pull/223)) (Daniel Tschinder) - -``` -declare module "foo" { declare module.exports: number } -declare module "foo" { declare module.exports: number; } // also allowed now -``` - -### :house: Internal - - * Count Babel tests towards Babylon code coverage ([#182](https://github.com/babel/babylon/pull/182)) (Moti Zilberman) - * Fix strange line endings ([#214](https://github.com/babel/babylon/pull/214)) (Thomas Grainger) - * Add node 7 (Daniel Tschinder) - * chore(package): update flow-bin to version 0.34.0 ([#204](https://github.com/babel/babylon/pull/204)) (Greenkeeper) - -## v6.13.1 (2016-10-26) - -### :nail_care: Polish - -- Use rollup for bundling to speed up startup time ([#190](https://github.com/babel/babylon/pull/190)) ([@drewml](https://github.com/DrewML)) - -```js -const babylon = require('babylon'); -const ast = babylon.parse('var foo = "lol";'); -``` - -With that test case, there was a ~95ms savings by removing the need for node to build/traverse the dependency graph. - -**Without bundling** -![image](https://cloud.githubusercontent.com/assets/5233399/19420264/3133497e-93ad-11e6-9a6a-2da59c4f5c13.png) - -**With bundling** -![image](https://cloud.githubusercontent.com/assets/5233399/19420267/388f556e-93ad-11e6-813e-7c5c396be322.png) - -- add clean command [skip ci] ([#201](https://github.com/babel/babylon/pull/201)) (Henry Zhu) -- add ForAwaitStatement (async generator already added) [skip ci] ([#196](https://github.com/babel/babylon/pull/196)) (Henry Zhu) - -## v6.13.0 (2016-10-21) - -### :eyeglasses: Spec Compliance - -Property variance type annotations for Flow plugin ([#161](https://github.com/babel/babylon/pull/161)) (Sam Goldman) - -> See https://flowtype.org/docs/variance.html for more information - -```js -type T = { +p: T }; -interface T { -p: T }; -declare class T { +[k:K]: V }; -class T { -[k:K]: V }; -class C2 { +p: T = e }; -``` - -Raise error on duplicate definition of __proto__ ([#183](https://github.com/babel/babylon/pull/183)) (Moti Zilberman) - -```js -({ __proto__: 1, __proto__: 2 }) // Throws an error now -``` - -### :bug: Bug Fix - -Flow: Allow class properties to be named `static` ([#184](https://github.com/babel/babylon/pull/184)) (Moti Zilberman) - -```js -declare class A { - static: T; -} -``` - -Allow "async" as identifier for object literal property shorthand ([#187](https://github.com/babel/babylon/pull/187)) (Andrew Levine) - -```js -var foo = { async, bar }; -``` - -### :nail_care: Polish - -Fix flowtype and add inType to state ([#189](https://github.com/babel/babylon/pull/189)) (Daniel Tschinder) - -> This improves the performance slightly (because of hidden classes) - -### :house: Internal - -Fix .gitattributes line ending setting ([#191](https://github.com/babel/babylon/pull/191)) (Moti Zilberman) - -Increase test coverage ([#175](https://github.com/babel/babylon/pull/175) (Moti Zilberman) - -Readd missin .eslinignore for IDEs (Daniel Tschinder) - -Error on missing expected.json fixture in CI ([#188](https://github.com/babel/babylon/pull/188)) (Moti Zilberman) - -Add .gitattributes and .editorconfig for LF line endings ([#179](https://github.com/babel/babylon/pull/179)) (Moti Zilberman) - -Fixes two tests that are failing after the merge of #172 ([#177](https://github.com/babel/babylon/pull/177)) (Moti Zilberman) - -## v6.12.0 (2016-10-14) - -### :eyeglasses: Spec Compliance - -Implement import() syntax ([#163](https://github.com/babel/babylon/pull/163)) (Jordan Gensler) - -#### Dynamic Import - -- Proposal Repo: https://github.com/domenic/proposal-dynamic-import -- Championed by [@domenic](https://github.com/domenic) -- stage-2 -- [sept-28 tc39 notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2016-09/sept-28.md#113a-import) - -> This repository contains a proposal for adding a "function-like" import() module loading syntactic form to JavaScript - -```js -import(`./section-modules/${link.dataset.entryModule}.js`) -.then(module => { - module.loadPageInto(main); -}) -``` - -Add EmptyTypeAnnotation ([#171](https://github.com/babel/babylon/pull/171)) (Sam Goldman) - -#### EmptyTypeAnnotation - -Just wasn't covered before. - -```js -type T = empty; -``` - -### :bug: Bug Fix - -Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels) - -```js -// was failing due to sparse array -export const { foo: [ ,, qux7 ] } = bar; -``` - -Allow keyword in Flow object declaration property names with type parameters ([#146](https://github.com/babel/babylon/pull/146)) (Dan Harper) - -```js -declare class X { - foobar(): void; - static foobar(): void; -} -``` - -Allow keyword in object/class property names with Flow type parameters ([#145](https://github.com/babel/babylon/pull/145)) (Dan Harper) - -```js -class Foo { - delete(item: T): T { - return item; - } -} -``` - -Allow typeAnnotations for yield expressions ([#174](https://github.com/babel/babylon/pull/174))) (Daniel Tschinder) - -```js -function *foo() { - const x = (yield 5: any); -} -``` - -### :nail_care: Polish - -Annotate more errors with expected token ([#172](https://github.com/babel/babylon/pull/172))) (Moti Zilberman) - -```js -// Unexpected token, expected ; (1:6) -{ set 1 } -``` - -### :house: Internal - -Remove kcheck ([#173](https://github.com/babel/babylon/pull/173))) (Daniel Tschinder) - -Also run flow, linting, babel tests on separate instances (add back node 0.10) - -## v6.11.6 (2016-10-12) - -### :bug: Bug Fix/Regression - -Fix crash when exporting with destructuring and sparse array ([#170](https://github.com/babel/babylon/pull/170)) (Jeroen Engels) - -```js -// was failing with `Cannot read property 'type' of null` because of null identifiers -export const { foo: [ ,, qux7 ] } = bar; -``` - -## v6.11.5 (2016-10-12) - -### :eyeglasses: Spec Compliance - -Fix: Check for duplicate named exports in exported destructuring assignments ([#144](https://github.com/babel/babylon/pull/144)) (Kai Cataldo) - -```js -// `foo` has already been exported. Exported identifiers must be unique. (2:20) -export function foo() {}; -export const { a: [{foo}] } = bar; -``` - -Fix: Check for duplicate named exports in exported rest elements/properties ([#164](https://github.com/babel/babylon/pull/164)) (Kai Cataldo) - -```js -// `foo` has already been exported. Exported identifiers must be unique. (2:22) -export const foo = 1; -export const [bar, ...foo] = baz; -``` - -### :bug: Bug Fix - -Fix: Allow identifier `async` for default param in arrow expression ([#165](https://github.com/babel/babylon/pull/165)) (Kai Cataldo) - -```js -// this is ok now -const test = ({async = true}) => {}; -``` - -### :nail_care: Polish - -Babylon will now print out the token it's expecting if there's a `SyntaxError` ([#150](https://github.com/babel/babylon/pull/150)) (Daniel Tschinder) - -```bash -# So in the case of a missing ending curly (`}`) -Module build failed: SyntaxError: Unexpected token, expected } (30:0) - 28 | } - 29 | -> 30 | - | ^ -``` - -## v6.11.4 (2016-10-03) - -Temporary rollback for erroring on trailing comma with spread (#154) (Henry Zhu) - -## v6.11.3 (2016-10-01) - -### :eyeglasses: Spec Compliance - -Add static errors for object rest (#149) ([@danez](https://github.com/danez)) - -> https://github.com/sebmarkbage/ecmascript-rest-spread - -Object rest copies the *rest* of properties from the right hand side `obj` starting from the left to right. - -```js -let { x, y, ...z } = { x: 1, y: 2, z: 3 }; -// x = 1 -// y = 2 -// z = { z: 3 } -``` - -#### New Syntax Errors: - -**SyntaxError**: The rest element has to be the last element when destructuring (1:10) -```bash -> 1 | let { ...x, y, z } = { x: 1, y: 2, z: 3}; - | ^ -# Previous behavior: -# x = { x: 1, y: 2, z: 3 } -# y = 2 -# z = 3 -``` - -Before, this was just a more verbose way of shallow copying `obj` since it doesn't actually do what you think. - -**SyntaxError**: Cannot have multiple rest elements when destructuring (1:13) - -```bash -> 1 | let { x, ...y, ...z } = { x: 1, y: 2, z: 3}; - | ^ -# Previous behavior: -# x = 1 -# y = { y: 2, z: 3 } -# z = { y: 2, z: 3 } -``` - -Before y and z would just be the same value anyway so there is no reason to need to have both. - -**SyntaxError**: A trailing comma is not permitted after the rest element (1:16) - -```js -let { x, y, ...z, } = obj; -``` - -The rationale for this is that the use case for trailing comma is that you can add something at the end without affecting the line above. Since a RestProperty always has to be the last property it doesn't make sense. - ---- - -get / set are valid property names in default assignment (#142) ([@jezell](https://github.com/jezell)) - -```js -// valid -function something({ set = null, get = null }) {} -``` - -## v6.11.2 (2016-09-23) - -### Bug Fix - -- [#139](https://github.com/babel/babylon/issues/139) Don't do the duplicate check if not an identifier (#140) @hzoo - -```js -// regression with duplicate export check -SyntaxError: ./typography.js: `undefined` has already been exported. Exported identifiers must be unique. (22:13) - 20 | - 21 | export const { rhythm } = typography; -> 22 | export const { TypographyStyle } = typography -``` - -Bail out for now, and make a change to account for destructuring in the next release. - -## 6.11.1 (2016-09-22) - -### Bug Fix -- [#137](https://github.com/babel/babylon/pull/137) - Fix a regression with duplicate exports - it was erroring on all keys in `Object.prototype`. @danez - -```javascript -export toString from './toString'; -``` - -```bash -`toString` has already been exported. Exported identifiers must be unique. (1:7) -> 1 | export toString from './toString'; - | ^ - 2 | -``` - -## 6.11.0 (2016-09-22) - -### Spec Compliance (will break CI) - -- Disallow duplicate named exports ([#107](https://github.com/babel/babylon/pull/107)) @kaicataldo - -```js -// Only one default export allowed per module. (2:9) -export default function() {}; -export { foo as default }; - -// Only one default export allowed per module. (2:0) -export default {}; -export default function() {}; - -// `Foo` has already been exported. Exported identifiers must be unique. (2:0) -export { Foo }; -export class Foo {}; -``` - -### New Feature (Syntax) - -- Add support for computed class property names ([#121](https://github.com/babel/babylon/pull/121)) @motiz88 - -```js -// AST -interface ClassProperty <: Node { - type: "ClassProperty"; - key: Identifier; - value: Expression; - computed: boolean; // added -} -``` - -```js -// with "plugins": ["classProperties"] -class Foo { - [x] - ['y'] -} - -class Bar { - [p] - [m] () {} -} - ``` - -### Bug Fix - -- Fix `static` property falling through in the declare class Flow AST ([#135](https://github.com/babel/babylon/pull/135)) @danharper - -```js -declare class X { - a: number; - static b: number; // static - c: number; // this was being marked as static in the AST as well -} -``` - -### Polish - -- Rephrase "assigning/binding to rvalue" errors to include context ([#119](https://github.com/babel/babylon/pull/119)) @motiz88 - -```js -// Used to error with: -// SyntaxError: Assigning to rvalue (1:0) - -// Now: -// Invalid left-hand side in assignment expression (1:0) -3 = 4 - -// Invalid left-hand side in for-in statement (1:5) -for (+i in {}); -``` - -### Internal - -- Fix call to `this.parseMaybeAssign` with correct arguments ([#133](https://github.com/babel/babylon/pull/133)) @danez -- Add semver note to changelog ([#131](https://github.com/babel/babylon/pull/131)) @hzoo - -## 6.10.0 (2016-09-19) - -> We plan to include some spec compliance bugs in patch versions. An example was the multiple default exports issue. - -### Spec Compliance - -* Implement ES2016 check for simple parameter list in strict mode ([#106](https://github.com/babel/babylon/pull/106)) (Timothy Gu) - -> It is a Syntax Error if ContainsUseStrict of FunctionBody is true and IsSimpleParameterList of FormalParameters is false. https://tc39.github.io/ecma262/2016/#sec-function-definitions-static-semantics-early-errors - -More Context: [tc39-notes](https://github.com/rwaldron/tc39-notes/blob/master/es7/2015-07/july-29.md#611-the-scope-of-use-strict-with-respect-to-destructuring-in-parameter-lists) - -For example: - -```js -// this errors because it uses destructuring and default parameters -// in a function with a "use strict" directive -function a([ option1, option2 ] = []) { - "use strict"; -} - ``` - -The solution would be to use a top level "use strict" or to remove the destructuring or default parameters when using a function + "use strict" or to. - -### New Feature - -* Exact object type annotations for Flow plugin ([#104](https://github.com/babel/babylon/pull/104)) (Basil Hosmer) - -Added to flow in https://github.com/facebook/flow/commit/c710c40aa2a115435098d6c0dfeaadb023cd39b8 - -Looks like: - -```js -var a : {| x: number, y: string |} = { x: 0, y: 'foo' }; -``` - -### Bug Fixes - -* Include `typeParameter` location in `ArrowFunctionExpression` ([#126](https://github.com/babel/babylon/pull/126)) (Daniel Tschinder) -* Error on invalid flow type annotation with default assignment ([#122](https://github.com/babel/babylon/pull/122)) (Dan Harper) -* Fix Flow return types on arrow functions ([#124](https://github.com/babel/babylon/pull/124)) (Dan Harper) - -### Misc - -* Add tests for export extensions ([#127](https://github.com/babel/babylon/pull/127)) (Daniel Tschinder) -* Fix Contributing guidelines [skip ci] (Daniel Tschinder) - -## 6.9.2 (2016-09-09) - -The only change is to remove the `babel-runtime` dependency by compiling with Babel's ES2015 loose mode. So using babylon standalone should be smaller. - -## 6.9.1 (2016-08-23) - -This release contains mainly small bugfixes but also updates babylons default mode to es2017. The features for `exponentiationOperator`, `asyncFunctions` and `trailingFunctionCommas` which previously needed to be activated via plugin are now enabled by default and the plugins are now no-ops. - -### Bug Fixes - -- Fix issues with default object params in async functions ([#96](https://github.com/babel/babylon/pull/96)) @danez -- Fix issues with flow-types and async function ([#95](https://github.com/babel/babylon/pull/95)) @danez -- Fix arrow functions with destructuring, types & default value ([#94](https://github.com/babel/babylon/pull/94)) @danharper -- Fix declare class with qualified type identifier ([#97](https://github.com/babel/babylon/pull/97)) @danez -- Remove exponentiationOperator, asyncFunctions, trailingFunctionCommas plugins and enable them by default ([#98](https://github.com/babel/babylon/pull/98)) @danez - -## 6.9.0 (2016-08-16) - -### New syntax support - -- Add JSX spread children ([#42](https://github.com/babel/babylon/pull/42)) @calebmer - -(Be aware that React is not going to support this syntax) - -```js -
- {...todos.map(todo => )} -
-``` - -- Add support for declare module.exports ([#72](https://github.com/babel/babylon/pull/72)) @danez - -```js -declare module "foo" { - declare module.exports: {} -} -``` - -### New Features - -- If supplied, attach filename property to comment node loc. ([#80](https://github.com/babel/babylon/pull/80)) @divmain -- Add identifier name to node loc field ([#90](https://github.com/babel/babylon/pull/90)) @kittens - -### Bug Fixes - -- Fix exponential operator to behave according to spec ([#75](https://github.com/babel/babylon/pull/75)) @danez -- Fix lookahead to not add comments to arrays which are not cloned ([#76](https://github.com/babel/babylon/pull/76)) @danez -- Fix accidental fall-through in Flow type parsing. ([#82](https://github.com/babel/babylon/pull/82)) @xiemaisi -- Only allow declares inside declare module ([#73](https://github.com/babel/babylon/pull/73)) @danez -- Small fix for parsing type parameter declarations ([#83](https://github.com/babel/babylon/pull/83)) @gabelevi -- Fix arrow param locations with flow types ([#57](https://github.com/babel/babylon/pull/57)) @danez -- Fixes SyntaxError position with flow optional type ([#65](https://github.com/babel/babylon/pull/65)) @danez - -### Internal - -- Add codecoverage to tests @danez -- Fix tests to not save expected output if we expect the test to fail @danez -- Make a shallow clone of babel for testing @danez -- chore(package): update cross-env to version 2.0.0 ([#77](https://github.com/babel/babylon/pull/77)) @greenkeeperio-bot -- chore(package): update ava to version 0.16.0 ([#86](https://github.com/babel/babylon/pull/86)) @greenkeeperio-bot -- chore(package): update babel-plugin-istanbul to version 2.0.0 ([#89](https://github.com/babel/babylon/pull/89)) @greenkeeperio-bot -- chore(package): update nyc to version 8.0.0 ([#88](https://github.com/babel/babylon/pull/88)) @greenkeeperio-bot - -## 6.8.4 (2016-07-06) - -### Bug Fixes - -- Fix the location of params, when flow and default value used ([#68](https://github.com/babel/babylon/pull/68)) @danez - -## 6.8.3 (2016-07-02) - -### Bug Fixes - -- Fix performance regression introduced in 6.8.2 with conditionals ([#63](https://github.com/babel/babylon/pull/63)) @danez - -## 6.8.2 (2016-06-24) - -### Bug Fixes - -- Fix parse error with yielding jsx elements in generators `function* it() { yield ; }` ([#31](https://github.com/babel/babylon/pull/31)) @eldereal -- When cloning nodes do not clone its comments ([#24](https://github.com/babel/babylon/pull/24)) @danez -- Fix parse errors when using arrow functions with an spread element and return type `(...props): void => {}` ([#10](https://github.com/babel/babylon/pull/10)) @danez -- Fix leading comments added from previous node ([#23](https://github.com/babel/babylon/pull/23)) @danez -- Fix parse errors with flow's optional arguments `(arg?) => {}` ([#19](https://github.com/babel/babylon/pull/19)) @danez -- Support negative numeric type literals @kittens -- Remove line terminator restriction after await keyword @kittens -- Remove grouped type arrow restriction as it seems flow no longer has it @kittens -- Fix parse error with generic methods that have the name `get` or `set` `class foo { get() {} }` ([#55](https://github.com/babel/babylon/pull/55)) @vkurchatkin -- Fix parse error with arrow functions that have flow type parameter declarations `(x: T): T => x;` ([#54](https://github.com/babel/babylon/pull/54)) @gabelevi - -### Documentation - -- Document AST differences from ESTree ([#41](https://github.com/babel/babylon/pull/41)) @nene -- Move ast spec from babel/babel ([#46](https://github.com/babel/babylon/pull/46)) @hzoo - -### Internal - -- Enable skipped tests ([#16](https://github.com/babel/babylon/pull/16)) @danez -- Add script to test latest version of babylon with babel ([#21](https://github.com/babel/babylon/pull/21)) @danez -- Upgrade test runner ava @kittens -- Add missing generate-identifier-regex script @kittens -- Rename parser context types @kittens -- Add node v6 to travis testing @hzoo -- Update to Unicode v9 ([#45](https://github.com/babel/babylon/pull/45)) @mathiasbynens - -## 6.8.1 (2016-06-06) - -### New Feature - -- Parse type parameter declarations with defaults like `type Foo = T` - -### Bug Fixes -- Type parameter declarations need 1 or more type parameters. -- The existential type `*` is not a valid type parameter. -- The existential type `*` is a primary type - -### Spec Compliance -- The param list for type parameter declarations now consists of `TypeParameter` nodes -- New `TypeParameter` AST Node (replaces using the `Identifier` node before) - -``` -interface TypeParameter <: Node { - bound: TypeAnnotation; - default: TypeAnnotation; - name: string; - variance: "plus" | "minus"; -} -``` - -## 6.8.0 (2016-05-02) - -#### New Feature - -##### Parse Method Parameter Decorators ([#12](https://github.com/babel/babylon/pull/12)) - -> [Method Parameter Decorators](https://goo.gl/8MmCMG) is now a TC39 [stage 0 proposal](https://github.com/tc39/ecma262/blob/master/stage0.md). - -Examples: - -```js -class Foo { - constructor(@foo() x, @bar({ a: 123 }) @baz() y) {} -} - -export default function func(@foo() x, @bar({ a: 123 }) @baz() y) {} - -var obj = { - method(@foo() x, @bar({ a: 123 }) @baz() y) {} -}; -``` - -##### Parse for-await statements (w/ `asyncGenerators` plugin) ([#17](https://github.com/babel/babylon/pull/17)) - -There is also a new node type, `ForAwaitStatement`. - -> [Async generators and for-await](https://github.com/tc39/proposal-async-iteration) are now a [stage 2 proposal](https://github.com/tc39/ecma262#current-proposals). - -Example: - -```js -async function f() { - for await (let x of y); -} -``` diff --git a/views/node_modules/@babel/parser/LICENSE b/views/node_modules/@babel/parser/LICENSE deleted file mode 100644 index d4c7fc5..0000000 --- a/views/node_modules/@babel/parser/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2012-2014 by various contributors (see AUTHORS) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/views/node_modules/@babel/parser/README.md b/views/node_modules/@babel/parser/README.md deleted file mode 100644 index 513748c..0000000 --- a/views/node_modules/@babel/parser/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/parser - -> A JavaScript parser - -See our website [@babel/parser](https://babeljs.io/docs/en/babel-parser) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20parser%20(babylon)%22+is%3Aopen) associated with this package. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/parser -``` - -or using yarn: - -```sh -yarn add @babel/parser --dev -``` diff --git a/views/node_modules/@babel/parser/bin/babel-parser.js b/views/node_modules/@babel/parser/bin/babel-parser.js deleted file mode 100755 index 3aca314..0000000 --- a/views/node_modules/@babel/parser/bin/babel-parser.js +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env node -/* eslint no-var: 0 */ - -var parser = require(".."); -var fs = require("fs"); - -var filename = process.argv[2]; -if (!filename) { - console.error("no filename specified"); -} else { - var file = fs.readFileSync(filename, "utf8"); - var ast = parser.parse(file); - - console.log(JSON.stringify(ast, null, " ")); -} diff --git a/views/node_modules/@babel/parser/lib/index.js b/views/node_modules/@babel/parser/lib/index.js deleted file mode 100644 index 9472ac6..0000000 --- a/views/node_modules/@babel/parser/lib/index.js +++ /dev/null @@ -1,13991 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -const beforeExpr = true; -const startsExpr = true; -const isLoop = true; -const isAssign = true; -const prefix = true; -const postfix = true; -class TokenType { - constructor(label, conf = {}) { - this.label = void 0; - this.keyword = void 0; - this.beforeExpr = void 0; - this.startsExpr = void 0; - this.rightAssociative = void 0; - this.isLoop = void 0; - this.isAssign = void 0; - this.prefix = void 0; - this.postfix = void 0; - this.binop = void 0; - this.updateContext = void 0; - this.label = label; - this.keyword = conf.keyword; - this.beforeExpr = !!conf.beforeExpr; - this.startsExpr = !!conf.startsExpr; - this.rightAssociative = !!conf.rightAssociative; - this.isLoop = !!conf.isLoop; - this.isAssign = !!conf.isAssign; - this.prefix = !!conf.prefix; - this.postfix = !!conf.postfix; - this.binop = conf.binop != null ? conf.binop : null; - this.updateContext = null; - } - -} -const keywords = new Map(); - -function createKeyword(name, options = {}) { - options.keyword = name; - const token = new TokenType(name, options); - keywords.set(name, token); - return token; -} - -function createBinop(name, binop) { - return new TokenType(name, { - beforeExpr, - binop - }); -} - -const types = { - num: new TokenType("num", { - startsExpr - }), - bigint: new TokenType("bigint", { - startsExpr - }), - decimal: new TokenType("decimal", { - startsExpr - }), - regexp: new TokenType("regexp", { - startsExpr - }), - string: new TokenType("string", { - startsExpr - }), - name: new TokenType("name", { - startsExpr - }), - eof: new TokenType("eof"), - bracketL: new TokenType("[", { - beforeExpr, - startsExpr - }), - bracketHashL: new TokenType("#[", { - beforeExpr, - startsExpr - }), - bracketBarL: new TokenType("[|", { - beforeExpr, - startsExpr - }), - bracketR: new TokenType("]"), - bracketBarR: new TokenType("|]"), - braceL: new TokenType("{", { - beforeExpr, - startsExpr - }), - braceBarL: new TokenType("{|", { - beforeExpr, - startsExpr - }), - braceHashL: new TokenType("#{", { - beforeExpr, - startsExpr - }), - braceR: new TokenType("}"), - braceBarR: new TokenType("|}"), - parenL: new TokenType("(", { - beforeExpr, - startsExpr - }), - parenR: new TokenType(")"), - comma: new TokenType(",", { - beforeExpr - }), - semi: new TokenType(";", { - beforeExpr - }), - colon: new TokenType(":", { - beforeExpr - }), - doubleColon: new TokenType("::", { - beforeExpr - }), - dot: new TokenType("."), - question: new TokenType("?", { - beforeExpr - }), - questionDot: new TokenType("?."), - arrow: new TokenType("=>", { - beforeExpr - }), - template: new TokenType("template"), - ellipsis: new TokenType("...", { - beforeExpr - }), - backQuote: new TokenType("`", { - startsExpr - }), - dollarBraceL: new TokenType("${", { - beforeExpr, - startsExpr - }), - at: new TokenType("@"), - hash: new TokenType("#", { - startsExpr - }), - interpreterDirective: new TokenType("#!..."), - eq: new TokenType("=", { - beforeExpr, - isAssign - }), - assign: new TokenType("_=", { - beforeExpr, - isAssign - }), - incDec: new TokenType("++/--", { - prefix, - postfix, - startsExpr - }), - bang: new TokenType("!", { - beforeExpr, - prefix, - startsExpr - }), - tilde: new TokenType("~", { - beforeExpr, - prefix, - startsExpr - }), - pipeline: createBinop("|>", 0), - nullishCoalescing: createBinop("??", 1), - logicalOR: createBinop("||", 1), - logicalAND: createBinop("&&", 2), - bitwiseOR: createBinop("|", 3), - bitwiseXOR: createBinop("^", 4), - bitwiseAND: createBinop("&", 5), - equality: createBinop("==/!=/===/!==", 6), - relational: createBinop("/<=/>=", 7), - bitShift: createBinop("<>/>>>", 8), - plusMin: new TokenType("+/-", { - beforeExpr, - binop: 9, - prefix, - startsExpr - }), - modulo: new TokenType("%", { - beforeExpr, - binop: 10, - startsExpr - }), - star: new TokenType("*", { - binop: 10 - }), - slash: createBinop("/", 10), - exponent: new TokenType("**", { - beforeExpr, - binop: 11, - rightAssociative: true - }), - _break: createKeyword("break"), - _case: createKeyword("case", { - beforeExpr - }), - _catch: createKeyword("catch"), - _continue: createKeyword("continue"), - _debugger: createKeyword("debugger"), - _default: createKeyword("default", { - beforeExpr - }), - _do: createKeyword("do", { - isLoop, - beforeExpr - }), - _else: createKeyword("else", { - beforeExpr - }), - _finally: createKeyword("finally"), - _for: createKeyword("for", { - isLoop - }), - _function: createKeyword("function", { - startsExpr - }), - _if: createKeyword("if"), - _return: createKeyword("return", { - beforeExpr - }), - _switch: createKeyword("switch"), - _throw: createKeyword("throw", { - beforeExpr, - prefix, - startsExpr - }), - _try: createKeyword("try"), - _var: createKeyword("var"), - _const: createKeyword("const"), - _while: createKeyword("while", { - isLoop - }), - _with: createKeyword("with"), - _new: createKeyword("new", { - beforeExpr, - startsExpr - }), - _this: createKeyword("this", { - startsExpr - }), - _super: createKeyword("super", { - startsExpr - }), - _class: createKeyword("class", { - startsExpr - }), - _extends: createKeyword("extends", { - beforeExpr - }), - _export: createKeyword("export"), - _import: createKeyword("import", { - startsExpr - }), - _null: createKeyword("null", { - startsExpr - }), - _true: createKeyword("true", { - startsExpr - }), - _false: createKeyword("false", { - startsExpr - }), - _in: createKeyword("in", { - beforeExpr, - binop: 7 - }), - _instanceof: createKeyword("instanceof", { - beforeExpr, - binop: 7 - }), - _typeof: createKeyword("typeof", { - beforeExpr, - prefix, - startsExpr - }), - _void: createKeyword("void", { - beforeExpr, - prefix, - startsExpr - }), - _delete: createKeyword("delete", { - beforeExpr, - prefix, - startsExpr - }) -}; - -const lineBreak = /\r\n?|[\n\u2028\u2029]/; -const lineBreakG = new RegExp(lineBreak.source, "g"); -function isNewLine(code) { - switch (code) { - case 10: - case 13: - case 8232: - case 8233: - return true; - - default: - return false; - } -} -const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; -function isWhitespace(code) { - switch (code) { - case 0x0009: - case 0x000b: - case 0x000c: - case 32: - case 160: - case 5760: - case 0x2000: - case 0x2001: - case 0x2002: - case 0x2003: - case 0x2004: - case 0x2005: - case 0x2006: - case 0x2007: - case 0x2008: - case 0x2009: - case 0x200a: - case 0x202f: - case 0x205f: - case 0x3000: - case 0xfeff: - return true; - - default: - return false; - } -} - -class Position { - constructor(line, col) { - this.line = void 0; - this.column = void 0; - this.line = line; - this.column = col; - } - -} -class SourceLocation { - constructor(start, end) { - this.start = void 0; - this.end = void 0; - this.filename = void 0; - this.identifierName = void 0; - this.start = start; - this.end = end; - } - -} -function getLineInfo(input, offset) { - let line = 1; - let lineStart = 0; - let match; - lineBreakG.lastIndex = 0; - - while ((match = lineBreakG.exec(input)) && match.index < offset) { - line++; - lineStart = lineBreakG.lastIndex; - } - - return new Position(line, offset - lineStart); -} - -class BaseParser { - constructor() { - this.sawUnambiguousESM = false; - this.ambiguousScriptDifferentAst = false; - } - - hasPlugin(name) { - return this.plugins.has(name); - } - - getPluginOption(plugin, name) { - if (this.hasPlugin(plugin)) return this.plugins.get(plugin)[name]; - } - -} - -function last(stack) { - return stack[stack.length - 1]; -} - -class CommentsParser extends BaseParser { - addComment(comment) { - if (this.filename) comment.loc.filename = this.filename; - this.state.trailingComments.push(comment); - this.state.leadingComments.push(comment); - } - - adjustCommentsAfterTrailingComma(node, elements, takeAllComments) { - if (this.state.leadingComments.length === 0) { - return; - } - - let lastElement = null; - let i = elements.length; - - while (lastElement === null && i > 0) { - lastElement = elements[--i]; - } - - if (lastElement === null) { - return; - } - - for (let j = 0; j < this.state.leadingComments.length; j++) { - if (this.state.leadingComments[j].end < this.state.commentPreviousNode.end) { - this.state.leadingComments.splice(j, 1); - j--; - } - } - - const newTrailingComments = []; - - for (let i = 0; i < this.state.leadingComments.length; i++) { - const leadingComment = this.state.leadingComments[i]; - - if (leadingComment.end < node.end) { - newTrailingComments.push(leadingComment); - - if (!takeAllComments) { - this.state.leadingComments.splice(i, 1); - i--; - } - } else { - if (node.trailingComments === undefined) { - node.trailingComments = []; - } - - node.trailingComments.push(leadingComment); - } - } - - if (takeAllComments) this.state.leadingComments = []; - - if (newTrailingComments.length > 0) { - lastElement.trailingComments = newTrailingComments; - } else if (lastElement.trailingComments !== undefined) { - lastElement.trailingComments = []; - } - } - - processComment(node) { - if (node.type === "Program" && node.body.length > 0) return; - const stack = this.state.commentStack; - let firstChild, lastChild, trailingComments, i, j; - - if (this.state.trailingComments.length > 0) { - if (this.state.trailingComments[0].start >= node.end) { - trailingComments = this.state.trailingComments; - this.state.trailingComments = []; - } else { - this.state.trailingComments.length = 0; - } - } else if (stack.length > 0) { - const lastInStack = last(stack); - - if (lastInStack.trailingComments && lastInStack.trailingComments[0].start >= node.end) { - trailingComments = lastInStack.trailingComments; - delete lastInStack.trailingComments; - } - } - - if (stack.length > 0 && last(stack).start >= node.start) { - firstChild = stack.pop(); - } - - while (stack.length > 0 && last(stack).start >= node.start) { - lastChild = stack.pop(); - } - - if (!lastChild && firstChild) lastChild = firstChild; - - if (firstChild) { - switch (node.type) { - case "ObjectExpression": - this.adjustCommentsAfterTrailingComma(node, node.properties); - break; - - case "ObjectPattern": - this.adjustCommentsAfterTrailingComma(node, node.properties, true); - break; - - case "CallExpression": - this.adjustCommentsAfterTrailingComma(node, node.arguments); - break; - - case "ArrayExpression": - this.adjustCommentsAfterTrailingComma(node, node.elements); - break; - - case "ArrayPattern": - this.adjustCommentsAfterTrailingComma(node, node.elements, true); - break; - } - } else if (this.state.commentPreviousNode && (this.state.commentPreviousNode.type === "ImportSpecifier" && node.type !== "ImportSpecifier" || this.state.commentPreviousNode.type === "ExportSpecifier" && node.type !== "ExportSpecifier")) { - this.adjustCommentsAfterTrailingComma(node, [this.state.commentPreviousNode]); - } - - if (lastChild) { - if (lastChild.leadingComments) { - if (lastChild !== node && lastChild.leadingComments.length > 0 && last(lastChild.leadingComments).end <= node.start) { - node.leadingComments = lastChild.leadingComments; - delete lastChild.leadingComments; - } else { - for (i = lastChild.leadingComments.length - 2; i >= 0; --i) { - if (lastChild.leadingComments[i].end <= node.start) { - node.leadingComments = lastChild.leadingComments.splice(0, i + 1); - break; - } - } - } - } - } else if (this.state.leadingComments.length > 0) { - if (last(this.state.leadingComments).end <= node.start) { - if (this.state.commentPreviousNode) { - for (j = 0; j < this.state.leadingComments.length; j++) { - if (this.state.leadingComments[j].end < this.state.commentPreviousNode.end) { - this.state.leadingComments.splice(j, 1); - j--; - } - } - } - - if (this.state.leadingComments.length > 0) { - node.leadingComments = this.state.leadingComments; - this.state.leadingComments = []; - } - } else { - for (i = 0; i < this.state.leadingComments.length; i++) { - if (this.state.leadingComments[i].end > node.start) { - break; - } - } - - const leadingComments = this.state.leadingComments.slice(0, i); - - if (leadingComments.length) { - node.leadingComments = leadingComments; - } - - trailingComments = this.state.leadingComments.slice(i); - - if (trailingComments.length === 0) { - trailingComments = null; - } - } - } - - this.state.commentPreviousNode = node; - - if (trailingComments) { - if (trailingComments.length && trailingComments[0].start >= node.start && last(trailingComments).end <= node.end) { - node.innerComments = trailingComments; - } else { - const firstTrailingCommentIndex = trailingComments.findIndex(comment => comment.end >= node.end); - - if (firstTrailingCommentIndex > 0) { - node.innerComments = trailingComments.slice(0, firstTrailingCommentIndex); - node.trailingComments = trailingComments.slice(firstTrailingCommentIndex); - } else { - node.trailingComments = trailingComments; - } - } - } - - stack.push(node); - } - -} - -const ErrorMessages = Object.freeze({ - AccessorIsGenerator: "A %0ter cannot be a generator", - ArgumentsInClass: "'arguments' is only allowed in functions and class methods", - AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block", - AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function", - AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block", - AwaitExpressionFormalParameter: "await is not allowed in async function parameters", - AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules", - AwaitNotInAsyncFunction: "'await' is only allowed within async functions", - BadGetterArity: "getter must not have any formal parameters", - BadSetterArity: "setter must have exactly one formal parameter", - BadSetterRestParameter: "setter function argument must not be a rest parameter", - ConstructorClassField: "Classes may not have a field named 'constructor'", - ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'", - ConstructorIsAccessor: "Class constructor may not be an accessor", - ConstructorIsAsync: "Constructor can't be an async function", - ConstructorIsGenerator: "Constructor can't be a generator", - DeclarationMissingInitializer: "%0 require an initialization value", - DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax", - DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?", - DecoratorExportClass: "Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.", - DecoratorSemicolon: "Decorators must not be followed by a semicolon", - DecoratorStaticBlock: "Decorators can't be used with a static block", - DeletePrivateField: "Deleting a private field is not allowed", - DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.", - DuplicateConstructor: "Duplicate constructor in the same class", - DuplicateDefaultExport: "Only one default export allowed per module.", - DuplicateExport: "`%0` has already been exported. Exported identifiers must be unique.", - DuplicateProto: "Redefinition of __proto__ property", - DuplicateRegExpFlags: "Duplicate regular expression flag", - ElementAfterRest: "Rest element must be last element", - EscapedCharNotAnIdentifier: "Invalid Unicode escape", - ExportBindingIsString: "A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '%0' as '%1' } from 'some-module'`?", - ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'", - ForInOfLoopInitializer: "%0 loop variable declaration may not have an initializer", - ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.", - GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block", - IllegalBreakContinue: "Unsyntactic %0", - IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list", - IllegalReturn: "'return' outside of function", - ImportBindingIsString: 'A string literal cannot be used as an imported binding.\n- Did you mean `import { "%0" as foo }`?', - ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments", - ImportCallArity: "import() requires exactly %0", - ImportCallNotNewExpression: "Cannot use new with import(...)", - ImportCallSpreadArgument: "... is not allowed in import()", - ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: "module"'`, - ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: "module"'`, - InvalidBigIntLiteral: "Invalid BigIntLiteral", - InvalidCodePoint: "Code point out of bounds", - InvalidDecimal: "Invalid decimal", - InvalidDigit: "Expected number in radix %0", - InvalidEscapeSequence: "Bad character escape sequence", - InvalidEscapeSequenceTemplate: "Invalid escape sequence in template", - InvalidEscapedReservedWord: "Escape sequence in keyword %0", - InvalidIdentifier: "Invalid identifier %0", - InvalidLhs: "Invalid left-hand side in %0", - InvalidLhsBinding: "Binding invalid left-hand side in %0", - InvalidNumber: "Invalid number", - InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'", - InvalidOrUnexpectedToken: "Unexpected character '%0'", - InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern", - InvalidPrivateFieldResolution: "Private name #%0 is not defined", - InvalidPropertyBindingPattern: "Binding member expression", - InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions", - InvalidRestAssignmentPattern: "Invalid rest operator's argument", - LabelRedeclaration: "Label '%0' is already declared", - LetInLexicalBinding: "'let' is not allowed to be used as a name in 'let' or 'const' declarations.", - LineTerminatorBeforeArrow: "No line break is allowed before '=>'", - MalformedRegExpFlags: "Invalid regular expression flag", - MissingClassName: "A class name is required", - MissingEqInAssignment: "Only '=' operator can be used for specifying default value.", - MissingSemicolon: "Missing semicolon", - MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX", - MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators", - ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`", - ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values", - ModuleAttributesWithDuplicateKeys: 'Duplicate key "%0" is not allowed in module attributes', - ModuleExportNameHasLoneSurrogate: "An export name cannot include a lone surrogate, found '\\u%0'", - ModuleExportUndefined: "Export '%0' is not defined", - MultipleDefaultsInSwitch: "Multiple default clauses", - NewlineAfterThrow: "Illegal newline after throw", - NoCatchOrFinally: "Missing catch or finally clause", - NumberIdentifier: "Identifier directly after number", - NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences", - ObsoleteAwaitStar: "await* has been removed from the async functions proposal. Use Promise.all() instead.", - OptionalChainingNoNew: "constructors in/after an Optional Chain are not allowed", - OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain", - ParamDupe: "Argument name clash", - PatternHasAccessor: "Object pattern can't contain getter or setter", - PatternHasMethod: "Object pattern can't contain methods", - PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized', - PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression", - PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression", - PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference", - PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding", - PrimaryTopicRequiresSmartPipeline: "Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.", - PrivateInExpectedIn: "Private names are only allowed in property accesses (`obj.#%0`) or in `in` expressions (`#%0 in obj`)", - PrivateNameRedeclaration: "Duplicate private name #%0", - RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'", - RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'", - RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'", - RecordNoProto: "'__proto__' is not allowed in Record expressions", - RestTrailingComma: "Unexpected trailing comma after rest element", - SloppyFunction: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement", - StaticPrototype: "Classes may not have static property named prototype", - StrictDelete: "Deleting local variable in strict mode", - StrictEvalArguments: "Assigning to '%0' in strict mode", - StrictEvalArgumentsBinding: "Binding '%0' in strict mode", - StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block", - StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'", - StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode", - StrictWith: "'with' in strict mode", - SuperNotAllowed: "super() is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?", - SuperPrivateField: "Private fields can't be accessed on super", - TrailingDecorator: "Decorators must be attached to a class element", - TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'", - TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'", - TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'", - UnexpectedArgumentPlaceholder: "Unexpected argument placeholder", - UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal', - UnexpectedDigitAfterHash: "Unexpected digit after hash token", - UnexpectedImportExport: "'import' and 'export' may only appear at the top level", - UnexpectedKeyword: "Unexpected keyword '%0'", - UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration", - UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context", - UnexpectedNewTarget: "new.target can only be used in functions", - UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits", - UnexpectedPrivateField: "Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\n or a property of member expression (i.e. this.#p).", - UnexpectedReservedWord: "Unexpected reserved word '%0'", - UnexpectedSuper: "super is only allowed in object methods and classes", - UnexpectedToken: "Unexpected token '%0'", - UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.", - UnsupportedBind: "Binding should be performed on object property.", - UnsupportedDecoratorExport: "A decorated export must export a class declaration", - UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.", - UnsupportedImport: "import can only be used in import() or import.meta", - UnsupportedMetaProperty: "The only valid meta property for %0 is %0.%1", - UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters", - UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties", - UnsupportedSuper: "super can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])", - UnterminatedComment: "Unterminated comment", - UnterminatedRegExp: "Unterminated regular expression", - UnterminatedString: "Unterminated string constant", - UnterminatedTemplate: "Unterminated template", - VarRedeclaration: "Identifier '%0' has already been declared", - YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator", - YieldInParameter: "Yield expression is not allowed in formal parameters", - ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0" -}); - -class ParserError extends CommentsParser { - getLocationForPosition(pos) { - let loc; - if (pos === this.state.start) loc = this.state.startLoc;else if (pos === this.state.lastTokStart) loc = this.state.lastTokStartLoc;else if (pos === this.state.end) loc = this.state.endLoc;else if (pos === this.state.lastTokEnd) loc = this.state.lastTokEndLoc;else loc = getLineInfo(this.input, pos); - return loc; - } - - raise(pos, errorTemplate, ...params) { - return this.raiseWithData(pos, undefined, errorTemplate, ...params); - } - - raiseOverwrite(pos, errorTemplate, ...params) { - const loc = this.getLocationForPosition(pos); - const message = errorTemplate.replace(/%(\d+)/g, (_, i) => params[i]) + ` (${loc.line}:${loc.column})`; - - if (this.options.errorRecovery) { - const errors = this.state.errors; - - for (let i = errors.length - 1; i >= 0; i--) { - const error = errors[i]; - - if (error.pos === pos) { - return Object.assign(error, { - message - }); - } else if (error.pos < pos) { - break; - } - } - } - - return this._raise({ - loc, - pos - }, message); - } - - raiseWithData(pos, data, errorTemplate, ...params) { - const loc = this.getLocationForPosition(pos); - const message = errorTemplate.replace(/%(\d+)/g, (_, i) => params[i]) + ` (${loc.line}:${loc.column})`; - return this._raise(Object.assign({ - loc, - pos - }, data), message); - } - - _raise(errorContext, message) { - const err = new SyntaxError(message); - Object.assign(err, errorContext); - - if (this.options.errorRecovery) { - if (!this.isLookahead) this.state.errors.push(err); - return err; - } else { - throw err; - } - } - -} - -var estree = (superClass => class extends superClass { - estreeParseRegExpLiteral({ - pattern, - flags - }) { - let regex = null; - - try { - regex = new RegExp(pattern, flags); - } catch (e) {} - - const node = this.estreeParseLiteral(regex); - node.regex = { - pattern, - flags - }; - return node; - } - - estreeParseBigIntLiteral(value) { - let bigInt; - - try { - bigInt = BigInt(value); - } catch (_unused) { - bigInt = null; - } - - const node = this.estreeParseLiteral(bigInt); - node.bigint = String(node.value || value); - return node; - } - - estreeParseDecimalLiteral(value) { - const decimal = null; - const node = this.estreeParseLiteral(decimal); - node.decimal = String(node.value || value); - return node; - } - - estreeParseLiteral(value) { - return this.parseLiteral(value, "Literal"); - } - - directiveToStmt(directive) { - const directiveLiteral = directive.value; - const stmt = this.startNodeAt(directive.start, directive.loc.start); - const expression = this.startNodeAt(directiveLiteral.start, directiveLiteral.loc.start); - expression.value = directiveLiteral.extra.expressionValue; - expression.raw = directiveLiteral.extra.raw; - stmt.expression = this.finishNodeAt(expression, "Literal", directiveLiteral.end, directiveLiteral.loc.end); - stmt.directive = directiveLiteral.extra.raw.slice(1, -1); - return this.finishNodeAt(stmt, "ExpressionStatement", directive.end, directive.loc.end); - } - - initFunction(node, isAsync) { - super.initFunction(node, isAsync); - node.expression = false; - } - - checkDeclaration(node) { - if (node != null && this.isObjectProperty(node)) { - this.checkDeclaration(node.value); - } else { - super.checkDeclaration(node); - } - } - - getObjectOrClassMethodParams(method) { - return method.value.params; - } - - isValidDirective(stmt) { - var _stmt$expression$extr; - - return stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && typeof stmt.expression.value === "string" && !((_stmt$expression$extr = stmt.expression.extra) != null && _stmt$expression$extr.parenthesized); - } - - stmtToDirective(stmt) { - const directive = super.stmtToDirective(stmt); - const value = stmt.expression.value; - this.addExtra(directive.value, "expressionValue", value); - return directive; - } - - parseBlockBody(node, ...args) { - super.parseBlockBody(node, ...args); - const directiveStatements = node.directives.map(d => this.directiveToStmt(d)); - node.body = directiveStatements.concat(node.body); - delete node.directives; - } - - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true); - - if (method.typeParameters) { - method.value.typeParameters = method.typeParameters; - delete method.typeParameters; - } - - classBody.body.push(method); - } - - parseExprAtom(refExpressionErrors) { - switch (this.state.type) { - case types.num: - case types.string: - return this.estreeParseLiteral(this.state.value); - - case types.regexp: - return this.estreeParseRegExpLiteral(this.state.value); - - case types.bigint: - return this.estreeParseBigIntLiteral(this.state.value); - - case types.decimal: - return this.estreeParseDecimalLiteral(this.state.value); - - case types._null: - return this.estreeParseLiteral(null); - - case types._true: - return this.estreeParseLiteral(true); - - case types._false: - return this.estreeParseLiteral(false); - - default: - return super.parseExprAtom(refExpressionErrors); - } - } - - parseMaybePrivateName(...args) { - const node = super.parseMaybePrivateName(...args); - - if (node.type === "PrivateName" && this.getPluginOption("estree", "classFeatures")) { - return this.convertPrivateNameToPrivateIdentifier(node); - } - - return node; - } - - convertPrivateNameToPrivateIdentifier(node) { - const name = super.getPrivateNameSV(node); - node = node; - delete node.id; - node.name = name; - node.type = "PrivateIdentifier"; - return node; - } - - isPrivateName(node) { - if (!this.getPluginOption("estree", "classFeatures")) { - return super.isPrivateName(node); - } - - return node.type === "PrivateIdentifier"; - } - - getPrivateNameSV(node) { - if (!this.getPluginOption("estree", "classFeatures")) { - return super.getPrivateNameSV(node); - } - - return node.name; - } - - parseLiteral(value, type, startPos, startLoc) { - const node = super.parseLiteral(value, type, startPos, startLoc); - node.raw = node.extra.raw; - delete node.extra; - return node; - } - - parseFunctionBody(node, allowExpression, isMethod = false) { - super.parseFunctionBody(node, allowExpression, isMethod); - node.expression = node.body.type !== "BlockStatement"; - } - - parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { - let funcNode = this.startNode(); - funcNode.kind = node.kind; - funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); - funcNode.type = "FunctionExpression"; - delete funcNode.kind; - node.value = funcNode; - - if (type === "ClassPrivateMethod") { - node.computed = false; - } - - type = "MethodDefinition"; - return this.finishNode(node, type); - } - - parseClassProperty(...args) { - const propertyNode = super.parseClassProperty(...args); - - if (this.getPluginOption("estree", "classFeatures")) { - propertyNode.type = "PropertyDefinition"; - } - - return propertyNode; - } - - parseClassPrivateProperty(...args) { - const propertyNode = super.parseClassPrivateProperty(...args); - - if (this.getPluginOption("estree", "classFeatures")) { - propertyNode.type = "PropertyDefinition"; - propertyNode.computed = false; - } - - return propertyNode; - } - - parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { - const node = super.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor); - - if (node) { - node.type = "Property"; - if (node.kind === "method") node.kind = "init"; - node.shorthand = false; - } - - return node; - } - - parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors) { - const node = super.parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors); - - if (node) { - node.kind = "init"; - node.type = "Property"; - } - - return node; - } - - toAssignable(node, isLHS = false) { - if (node != null && this.isObjectProperty(node)) { - this.toAssignable(node.value, isLHS); - return node; - } - - return super.toAssignable(node, isLHS); - } - - toAssignableObjectExpressionProp(prop, ...args) { - if (prop.kind === "get" || prop.kind === "set") { - this.raise(prop.key.start, ErrorMessages.PatternHasAccessor); - } else if (prop.method) { - this.raise(prop.key.start, ErrorMessages.PatternHasMethod); - } else { - super.toAssignableObjectExpressionProp(prop, ...args); - } - } - - finishCallExpression(node, optional) { - super.finishCallExpression(node, optional); - - if (node.callee.type === "Import") { - node.type = "ImportExpression"; - node.source = node.arguments[0]; - delete node.arguments; - delete node.callee; - } - - return node; - } - - toReferencedArguments(node) { - if (node.type === "ImportExpression") { - return; - } - - super.toReferencedArguments(node); - } - - parseExport(node) { - super.parseExport(node); - - switch (node.type) { - case "ExportAllDeclaration": - node.exported = null; - break; - - case "ExportNamedDeclaration": - if (node.specifiers.length === 1 && node.specifiers[0].type === "ExportNamespaceSpecifier") { - node.type = "ExportAllDeclaration"; - node.exported = node.specifiers[0].exported; - delete node.specifiers; - } - - break; - } - - return node; - } - - parseSubscript(base, startPos, startLoc, noCalls, state) { - const node = super.parseSubscript(base, startPos, startLoc, noCalls, state); - - if (state.optionalChainMember) { - if (node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression") { - node.type = node.type.substring(8); - } - - if (state.stop) { - const chain = this.startNodeAtNode(node); - chain.expression = node; - return this.finishNode(chain, "ChainExpression"); - } - } else if (node.type === "MemberExpression" || node.type === "CallExpression") { - node.optional = false; - } - - return node; - } - - hasPropertyAsPrivateName(node) { - if (node.type === "ChainExpression") { - node = node.expression; - } - - return super.hasPropertyAsPrivateName(node); - } - - isOptionalChain(node) { - return node.type === "ChainExpression"; - } - - isObjectProperty(node) { - return node.type === "Property" && node.kind === "init" && !node.method; - } - - isObjectMethod(node) { - return node.method || node.kind === "get" || node.kind === "set"; - } - -}); - -class TokContext { - constructor(token, isExpr, preserveSpace, override) { - this.token = void 0; - this.isExpr = void 0; - this.preserveSpace = void 0; - this.override = void 0; - this.token = token; - this.isExpr = !!isExpr; - this.preserveSpace = !!preserveSpace; - this.override = override; - } - -} -const types$1 = { - braceStatement: new TokContext("{", false), - braceExpression: new TokContext("{", true), - recordExpression: new TokContext("#{", true), - templateQuasi: new TokContext("${", false), - parenStatement: new TokContext("(", false), - parenExpression: new TokContext("(", true), - template: new TokContext("`", true, true, p => p.readTmplToken()), - functionExpression: new TokContext("function", true), - functionStatement: new TokContext("function", false) -}; - -types.parenR.updateContext = types.braceR.updateContext = function () { - if (this.state.context.length === 1) { - this.state.exprAllowed = true; - return; - } - - let out = this.state.context.pop(); - - if (out === types$1.braceStatement && this.curContext().token === "function") { - out = this.state.context.pop(); - } - - this.state.exprAllowed = !out.isExpr; -}; - -types.name.updateContext = function (prevType) { - let allowed = false; - - if (prevType !== types.dot) { - if (this.state.value === "of" && !this.state.exprAllowed && prevType !== types._function && prevType !== types._class) { - allowed = true; - } - } - - this.state.exprAllowed = allowed; - - if (this.state.isIterator) { - this.state.isIterator = false; - } -}; - -types.braceL.updateContext = function (prevType) { - this.state.context.push(this.braceIsBlock(prevType) ? types$1.braceStatement : types$1.braceExpression); - this.state.exprAllowed = true; -}; - -types.dollarBraceL.updateContext = function () { - this.state.context.push(types$1.templateQuasi); - this.state.exprAllowed = true; -}; - -types.parenL.updateContext = function (prevType) { - const statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while; - this.state.context.push(statementParens ? types$1.parenStatement : types$1.parenExpression); - this.state.exprAllowed = true; -}; - -types.incDec.updateContext = function () {}; - -types._function.updateContext = types._class.updateContext = function (prevType) { - if (prevType.beforeExpr && prevType !== types.semi && prevType !== types._else && !(prevType === types._return && this.hasPrecedingLineBreak()) && !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat)) { - this.state.context.push(types$1.functionExpression); - } else { - this.state.context.push(types$1.functionStatement); - } - - this.state.exprAllowed = false; -}; - -types.backQuote.updateContext = function () { - if (this.curContext() === types$1.template) { - this.state.context.pop(); - } else { - this.state.context.push(types$1.template); - } - - this.state.exprAllowed = false; -}; - -types.braceHashL.updateContext = function () { - this.state.context.push(types$1.recordExpression); - this.state.exprAllowed = true; -}; - -let nonASCIIidentifierStartChars = "\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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-\u08c7\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\u0d04-\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\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\u1880-\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\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\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-\uab69\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"; -let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; -const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); -const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); -nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; -const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 107, 20, 28, 22, 13, 52, 76, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 230, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 35, 56, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2749, 1070, 4050, 582, 8634, 568, 8, 30, 114, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8952, 286, 50, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 2357, 44, 11, 6, 17, 0, 370, 43, 1301, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42717, 35, 4148, 12, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; -const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 176, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 135, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 5319, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 419, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; - -function isInAstralSet(code, set) { - let pos = 0x10000; - - for (let i = 0, length = set.length; i < length; i += 2) { - pos += set[i]; - if (pos > code) return false; - pos += set[i + 1]; - if (pos >= code) return true; - } - - return false; -} - -function isIdentifierStart(code) { - if (code < 65) return code === 36; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); - } - - return isInAstralSet(code, astralIdentifierStartCodes); -} -function isIdentifierChar(code) { - if (code < 48) return code === 36; - if (code < 58) return true; - if (code < 65) return false; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); - } - - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); -} - -const reservedWords = { - keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], - strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], - strictBind: ["eval", "arguments"] -}; -const keywords$1 = new Set(reservedWords.keyword); -const reservedWordsStrictSet = new Set(reservedWords.strict); -const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); -function isReservedWord(word, inModule) { - return inModule && word === "await" || word === "enum"; -} -function isStrictReservedWord(word, inModule) { - return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); -} -function isStrictBindOnlyReservedWord(word) { - return reservedWordsStrictBindSet.has(word); -} -function isStrictBindReservedWord(word, inModule) { - return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); -} -function isKeyword(word) { - return keywords$1.has(word); -} - -const keywordRelationalOperator = /^in(stanceof)?$/; -function isIteratorStart(current, next) { - return current === 64 && next === 64; -} - -const SCOPE_OTHER = 0b000000000, - SCOPE_PROGRAM = 0b000000001, - SCOPE_FUNCTION = 0b000000010, - SCOPE_ARROW = 0b000000100, - SCOPE_SIMPLE_CATCH = 0b000001000, - SCOPE_SUPER = 0b000010000, - SCOPE_DIRECT_SUPER = 0b000100000, - SCOPE_CLASS = 0b001000000, - SCOPE_STATIC_BLOCK = 0b010000000, - SCOPE_TS_MODULE = 0b100000000, - SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_TS_MODULE; -const BIND_KIND_VALUE = 0b000000000001, - BIND_KIND_TYPE = 0b000000000010, - BIND_SCOPE_VAR = 0b000000000100, - BIND_SCOPE_LEXICAL = 0b000000001000, - BIND_SCOPE_FUNCTION = 0b000000010000, - BIND_FLAGS_NONE = 0b000001000000, - BIND_FLAGS_CLASS = 0b000010000000, - BIND_FLAGS_TS_ENUM = 0b000100000000, - BIND_FLAGS_TS_CONST_ENUM = 0b001000000000, - BIND_FLAGS_TS_EXPORT_ONLY = 0b010000000000, - BIND_FLAGS_FLOW_DECLARE_FN = 0b100000000000; -const BIND_CLASS = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL | BIND_FLAGS_CLASS, - BIND_LEXICAL = BIND_KIND_VALUE | 0 | BIND_SCOPE_LEXICAL | 0, - BIND_VAR = BIND_KIND_VALUE | 0 | BIND_SCOPE_VAR | 0, - BIND_FUNCTION = BIND_KIND_VALUE | 0 | BIND_SCOPE_FUNCTION | 0, - BIND_TS_INTERFACE = 0 | BIND_KIND_TYPE | 0 | BIND_FLAGS_CLASS, - BIND_TS_TYPE = 0 | BIND_KIND_TYPE | 0 | 0, - BIND_TS_ENUM = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL | BIND_FLAGS_TS_ENUM, - BIND_TS_AMBIENT = 0 | 0 | 0 | BIND_FLAGS_TS_EXPORT_ONLY, - BIND_NONE = 0 | 0 | 0 | BIND_FLAGS_NONE, - BIND_OUTSIDE = BIND_KIND_VALUE | 0 | 0 | BIND_FLAGS_NONE, - BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM, - BIND_TS_NAMESPACE = 0 | 0 | 0 | BIND_FLAGS_TS_EXPORT_ONLY, - BIND_FLOW_DECLARE_FN = BIND_FLAGS_FLOW_DECLARE_FN; -const CLASS_ELEMENT_FLAG_STATIC = 0b100, - CLASS_ELEMENT_KIND_GETTER = 0b010, - CLASS_ELEMENT_KIND_SETTER = 0b001, - CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER; -const CLASS_ELEMENT_STATIC_GETTER = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC, - CLASS_ELEMENT_STATIC_SETTER = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC, - CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER, - CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER, - CLASS_ELEMENT_OTHER = 0; - -class Scope { - constructor(flags) { - this.flags = void 0; - this.var = []; - this.lexical = []; - this.functions = []; - this.flags = flags; - } - -} -class ScopeHandler { - constructor(raise, inModule) { - this.scopeStack = []; - this.undefinedExports = new Map(); - this.undefinedPrivateNames = new Map(); - this.raise = raise; - this.inModule = inModule; - } - - get inFunction() { - return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0; - } - - get allowSuper() { - return (this.currentThisScope().flags & SCOPE_SUPER) > 0; - } - - get allowDirectSuper() { - return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0; - } - - get inClass() { - return (this.currentThisScope().flags & SCOPE_CLASS) > 0; - } - - get inStaticBlock() { - return (this.currentThisScope().flags & SCOPE_STATIC_BLOCK) > 0; - } - - get inNonArrowFunction() { - return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0; - } - - get treatFunctionsAsVar() { - return this.treatFunctionsAsVarInScope(this.currentScope()); - } - - createScope(flags) { - return new Scope(flags); - } - - enter(flags) { - this.scopeStack.push(this.createScope(flags)); - } - - exit() { - this.scopeStack.pop(); - } - - treatFunctionsAsVarInScope(scope) { - return !!(scope.flags & SCOPE_FUNCTION || !this.inModule && scope.flags & SCOPE_PROGRAM); - } - - declareName(name, bindingType, pos) { - let scope = this.currentScope(); - - if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) { - this.checkRedeclarationInScope(scope, name, bindingType, pos); - - if (bindingType & BIND_SCOPE_FUNCTION) { - scope.functions.push(name); - } else { - scope.lexical.push(name); - } - - if (bindingType & BIND_SCOPE_LEXICAL) { - this.maybeExportDefined(scope, name); - } - } else if (bindingType & BIND_SCOPE_VAR) { - for (let i = this.scopeStack.length - 1; i >= 0; --i) { - scope = this.scopeStack[i]; - this.checkRedeclarationInScope(scope, name, bindingType, pos); - scope.var.push(name); - this.maybeExportDefined(scope, name); - if (scope.flags & SCOPE_VAR) break; - } - } - - if (this.inModule && scope.flags & SCOPE_PROGRAM) { - this.undefinedExports.delete(name); - } - } - - maybeExportDefined(scope, name) { - if (this.inModule && scope.flags & SCOPE_PROGRAM) { - this.undefinedExports.delete(name); - } - } - - checkRedeclarationInScope(scope, name, bindingType, pos) { - if (this.isRedeclaredInScope(scope, name, bindingType)) { - this.raise(pos, ErrorMessages.VarRedeclaration, name); - } - } - - isRedeclaredInScope(scope, name, bindingType) { - if (!(bindingType & BIND_KIND_VALUE)) return false; - - if (bindingType & BIND_SCOPE_LEXICAL) { - return scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1; - } - - if (bindingType & BIND_SCOPE_FUNCTION) { - return scope.lexical.indexOf(name) > -1 || !this.treatFunctionsAsVarInScope(scope) && scope.var.indexOf(name) > -1; - } - - return scope.lexical.indexOf(name) > -1 && !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical[0] === name) || !this.treatFunctionsAsVarInScope(scope) && scope.functions.indexOf(name) > -1; - } - - checkLocalExport(id) { - if (this.scopeStack[0].lexical.indexOf(id.name) === -1 && this.scopeStack[0].var.indexOf(id.name) === -1 && this.scopeStack[0].functions.indexOf(id.name) === -1) { - this.undefinedExports.set(id.name, id.start); - } - } - - currentScope() { - return this.scopeStack[this.scopeStack.length - 1]; - } - - currentVarScope() { - for (let i = this.scopeStack.length - 1;; i--) { - const scope = this.scopeStack[i]; - - if (scope.flags & SCOPE_VAR) { - return scope; - } - } - } - - currentThisScope() { - for (let i = this.scopeStack.length - 1;; i--) { - const scope = this.scopeStack[i]; - - if ((scope.flags & SCOPE_VAR || scope.flags & SCOPE_CLASS) && !(scope.flags & SCOPE_ARROW)) { - return scope; - } - } - } - -} - -class FlowScope extends Scope { - constructor(...args) { - super(...args); - this.declareFunctions = []; - } - -} - -class FlowScopeHandler extends ScopeHandler { - createScope(flags) { - return new FlowScope(flags); - } - - declareName(name, bindingType, pos) { - const scope = this.currentScope(); - - if (bindingType & BIND_FLAGS_FLOW_DECLARE_FN) { - this.checkRedeclarationInScope(scope, name, bindingType, pos); - this.maybeExportDefined(scope, name); - scope.declareFunctions.push(name); - return; - } - - super.declareName(...arguments); - } - - isRedeclaredInScope(scope, name, bindingType) { - if (super.isRedeclaredInScope(...arguments)) return true; - - if (bindingType & BIND_FLAGS_FLOW_DECLARE_FN) { - return !scope.declareFunctions.includes(name) && (scope.lexical.includes(name) || scope.functions.includes(name)); - } - - return false; - } - - checkLocalExport(id) { - if (this.scopeStack[0].declareFunctions.indexOf(id.name) === -1) { - super.checkLocalExport(id); - } - } - -} - -const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); -const FlowErrors = Object.freeze({ - AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", - AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module", - AssignReservedType: "Cannot overwrite reserved type %0", - DeclareClassElement: "The `declare` modifier can only appear on class fields.", - DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", - DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement", - EnumBooleanMemberNotInitialized: "Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.", - EnumDuplicateMemberName: "Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.", - EnumInconsistentMemberValues: "Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.", - EnumInvalidExplicitType: "Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.", - EnumInvalidExplicitTypeUnknownSupplied: "Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.", - EnumInvalidMemberInitializerPrimaryType: "Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.", - EnumInvalidMemberInitializerSymbolType: "Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.", - EnumInvalidMemberInitializerUnknownType: "The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.", - EnumInvalidMemberName: "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.", - EnumNumberMemberNotInitialized: "Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.", - EnumStringMemberInconsistentlyInitailized: "String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.", - GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", - ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements", - InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type", - InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions", - InexactVariance: "Explicit inexact syntax cannot have variance", - InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`", - MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", - NestedDeclareModule: "`declare module` cannot be used inside another `declare module`", - NestedFlowComment: "Cannot have a flow comment inside another flow comment", - OptionalBindingPattern: "A binding pattern parameter cannot be optional in an implementation signature.", - SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", - SpreadVariance: "Spread properties cannot have variance", - ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", - ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", - ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", - ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", - ThisParamNoDefault: "The `this` parameter may not have a default value.", - TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`", - TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis", - UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object", - UnexpectedReservedType: "Unexpected reserved type %0", - UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new", - UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", - UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions", - UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint"', - UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration", - UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`", - UnsupportedDeclareExportKind: "`declare export %0` is not supported. Use `%1` instead", - UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module", - UnterminatedFlowComment: "Unterminated flow-comment" -}); - -function isEsModuleType(bodyElement) { - return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); -} - -function hasTypeImportKind(node) { - return node.importKind === "type" || node.importKind === "typeof"; -} - -function isMaybeDefaultImport(state) { - return (state.type === types.name || !!state.type.keyword) && state.value !== "from"; -} - -const exportSuggestions = { - const: "declare export var", - let: "declare export var", - type: "export type", - interface: "export interface" -}; - -function partition(list, test) { - const list1 = []; - const list2 = []; - - for (let i = 0; i < list.length; i++) { - (test(list[i], i, list) ? list1 : list2).push(list[i]); - } - - return [list1, list2]; -} - -const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; -var flow = (superClass => { - var _temp; - - return _temp = class extends superClass { - constructor(...args) { - super(...args); - this.flowPragma = undefined; - } - - getScopeHandler() { - return FlowScopeHandler; - } - - shouldParseTypes() { - return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; - } - - shouldParseEnums() { - return !!this.getPluginOption("flow", "enums"); - } - - finishToken(type, val) { - if (type !== types.string && type !== types.semi && type !== types.interpreterDirective) { - if (this.flowPragma === undefined) { - this.flowPragma = null; - } - } - - return super.finishToken(type, val); - } - - addComment(comment) { - if (this.flowPragma === undefined) { - const matches = FLOW_PRAGMA_REGEX.exec(comment.value); - - if (!matches) ; else if (matches[1] === "flow") { - this.flowPragma = "flow"; - } else if (matches[1] === "noflow") { - this.flowPragma = "noflow"; - } else { - throw new Error("Unexpected flow pragma"); - } - } - - return super.addComment(comment); - } - - flowParseTypeInitialiser(tok) { - const oldInType = this.state.inType; - this.state.inType = true; - this.expect(tok || types.colon); - const type = this.flowParseType(); - this.state.inType = oldInType; - return type; - } - - flowParsePredicate() { - const node = this.startNode(); - const moduloLoc = this.state.startLoc; - const moduloPos = this.state.start; - this.expect(types.modulo); - const checksLoc = this.state.startLoc; - this.expectContextual("checks"); - - if (moduloLoc.line !== checksLoc.line || moduloLoc.column !== checksLoc.column - 1) { - this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks); - } - - if (this.eat(types.parenL)) { - node.value = this.parseExpression(); - this.expect(types.parenR); - return this.finishNode(node, "DeclaredPredicate"); - } else { - return this.finishNode(node, "InferredPredicate"); - } - } - - flowParseTypeAndPredicateInitialiser() { - const oldInType = this.state.inType; - this.state.inType = true; - this.expect(types.colon); - let type = null; - let predicate = null; - - if (this.match(types.modulo)) { - this.state.inType = oldInType; - predicate = this.flowParsePredicate(); - } else { - type = this.flowParseType(); - this.state.inType = oldInType; - - if (this.match(types.modulo)) { - predicate = this.flowParsePredicate(); - } - } - - return [type, predicate]; - } - - flowParseDeclareClass(node) { - this.next(); - this.flowParseInterfaceish(node, true); - return this.finishNode(node, "DeclareClass"); - } - - flowParseDeclareFunction(node) { - this.next(); - const id = node.id = this.parseIdentifier(); - const typeNode = this.startNode(); - const typeContainer = this.startNode(); - - if (this.isRelational("<")) { - typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - typeNode.typeParameters = null; - } - - this.expect(types.parenL); - const tmp = this.flowParseFunctionTypeParams(); - typeNode.params = tmp.params; - typeNode.rest = tmp.rest; - typeNode.this = tmp._this; - this.expect(types.parenR); - [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); - id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); - this.resetEndLocation(id); - this.semicolon(); - this.scope.declareName(node.id.name, BIND_FLOW_DECLARE_FN, node.id.start); - return this.finishNode(node, "DeclareFunction"); - } - - flowParseDeclare(node, insideModule) { - if (this.match(types._class)) { - return this.flowParseDeclareClass(node); - } else if (this.match(types._function)) { - return this.flowParseDeclareFunction(node); - } else if (this.match(types._var)) { - return this.flowParseDeclareVariable(node); - } else if (this.eatContextual("module")) { - if (this.match(types.dot)) { - return this.flowParseDeclareModuleExports(node); - } else { - if (insideModule) { - this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule); - } - - return this.flowParseDeclareModule(node); - } - } else if (this.isContextual("type")) { - return this.flowParseDeclareTypeAlias(node); - } else if (this.isContextual("opaque")) { - return this.flowParseDeclareOpaqueType(node); - } else if (this.isContextual("interface")) { - return this.flowParseDeclareInterface(node); - } else if (this.match(types._export)) { - return this.flowParseDeclareExportDeclaration(node, insideModule); - } else { - throw this.unexpected(); - } - } - - flowParseDeclareVariable(node) { - this.next(); - node.id = this.flowParseTypeAnnotatableIdentifier(true); - this.scope.declareName(node.id.name, BIND_VAR, node.id.start); - this.semicolon(); - return this.finishNode(node, "DeclareVariable"); - } - - flowParseDeclareModule(node) { - this.scope.enter(SCOPE_OTHER); - - if (this.match(types.string)) { - node.id = this.parseExprAtom(); - } else { - node.id = this.parseIdentifier(); - } - - const bodyNode = node.body = this.startNode(); - const body = bodyNode.body = []; - this.expect(types.braceL); - - while (!this.match(types.braceR)) { - let bodyNode = this.startNode(); - - if (this.match(types._import)) { - this.next(); - - if (!this.isContextual("type") && !this.match(types._typeof)) { - this.raise(this.state.lastTokStart, FlowErrors.InvalidNonTypeImportInDeclareModule); - } - - this.parseImport(bodyNode); - } else { - this.expectContextual("declare", FlowErrors.UnsupportedStatementInDeclareModule); - bodyNode = this.flowParseDeclare(bodyNode, true); - } - - body.push(bodyNode); - } - - this.scope.exit(); - this.expect(types.braceR); - this.finishNode(bodyNode, "BlockStatement"); - let kind = null; - let hasModuleExport = false; - body.forEach(bodyElement => { - if (isEsModuleType(bodyElement)) { - if (kind === "CommonJS") { - this.raise(bodyElement.start, FlowErrors.AmbiguousDeclareModuleKind); - } - - kind = "ES"; - } else if (bodyElement.type === "DeclareModuleExports") { - if (hasModuleExport) { - this.raise(bodyElement.start, FlowErrors.DuplicateDeclareModuleExports); - } - - if (kind === "ES") { - this.raise(bodyElement.start, FlowErrors.AmbiguousDeclareModuleKind); - } - - kind = "CommonJS"; - hasModuleExport = true; - } - }); - node.kind = kind || "CommonJS"; - return this.finishNode(node, "DeclareModule"); - } - - flowParseDeclareExportDeclaration(node, insideModule) { - this.expect(types._export); - - if (this.eat(types._default)) { - if (this.match(types._function) || this.match(types._class)) { - node.declaration = this.flowParseDeclare(this.startNode()); - } else { - node.declaration = this.flowParseType(); - this.semicolon(); - } - - node.default = true; - return this.finishNode(node, "DeclareExportDeclaration"); - } else { - if (this.match(types._const) || this.isLet() || (this.isContextual("type") || this.isContextual("interface")) && !insideModule) { - const label = this.state.value; - const suggestion = exportSuggestions[label]; - throw this.raise(this.state.start, FlowErrors.UnsupportedDeclareExportKind, label, suggestion); - } - - if (this.match(types._var) || this.match(types._function) || this.match(types._class) || this.isContextual("opaque")) { - node.declaration = this.flowParseDeclare(this.startNode()); - node.default = false; - return this.finishNode(node, "DeclareExportDeclaration"); - } else if (this.match(types.star) || this.match(types.braceL) || this.isContextual("interface") || this.isContextual("type") || this.isContextual("opaque")) { - node = this.parseExport(node); - - if (node.type === "ExportNamedDeclaration") { - node.type = "ExportDeclaration"; - node.default = false; - delete node.exportKind; - } - - node.type = "Declare" + node.type; - return node; - } - } - - throw this.unexpected(); - } - - flowParseDeclareModuleExports(node) { - this.next(); - this.expectContextual("exports"); - node.typeAnnotation = this.flowParseTypeAnnotation(); - this.semicolon(); - return this.finishNode(node, "DeclareModuleExports"); - } - - flowParseDeclareTypeAlias(node) { - this.next(); - this.flowParseTypeAlias(node); - node.type = "DeclareTypeAlias"; - return node; - } - - flowParseDeclareOpaqueType(node) { - this.next(); - this.flowParseOpaqueType(node, true); - node.type = "DeclareOpaqueType"; - return node; - } - - flowParseDeclareInterface(node) { - this.next(); - this.flowParseInterfaceish(node); - return this.finishNode(node, "DeclareInterface"); - } - - flowParseInterfaceish(node, isClass = false) { - node.id = this.flowParseRestrictedIdentifier(!isClass, true); - this.scope.declareName(node.id.name, isClass ? BIND_FUNCTION : BIND_LEXICAL, node.id.start); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } - - node.extends = []; - node.implements = []; - node.mixins = []; - - if (this.eat(types._extends)) { - do { - node.extends.push(this.flowParseInterfaceExtends()); - } while (!isClass && this.eat(types.comma)); - } - - if (this.isContextual("mixins")) { - this.next(); - - do { - node.mixins.push(this.flowParseInterfaceExtends()); - } while (this.eat(types.comma)); - } - - if (this.isContextual("implements")) { - this.next(); - - do { - node.implements.push(this.flowParseInterfaceExtends()); - } while (this.eat(types.comma)); - } - - node.body = this.flowParseObjectType({ - allowStatic: isClass, - allowExact: false, - allowSpread: false, - allowProto: isClass, - allowInexact: false - }); - } - - flowParseInterfaceExtends() { - const node = this.startNode(); - node.id = this.flowParseQualifiedTypeIdentifier(); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } else { - node.typeParameters = null; - } - - return this.finishNode(node, "InterfaceExtends"); - } - - flowParseInterface(node) { - this.flowParseInterfaceish(node); - return this.finishNode(node, "InterfaceDeclaration"); - } - - checkNotUnderscore(word) { - if (word === "_") { - this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore); - } - } - - checkReservedType(word, startLoc, declaration) { - if (!reservedTypes.has(word)) return; - this.raise(startLoc, declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, word); - } - - flowParseRestrictedIdentifier(liberal, declaration) { - this.checkReservedType(this.state.value, this.state.start, declaration); - return this.parseIdentifier(liberal); - } - - flowParseTypeAlias(node) { - node.id = this.flowParseRestrictedIdentifier(false, true); - this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } - - node.right = this.flowParseTypeInitialiser(types.eq); - this.semicolon(); - return this.finishNode(node, "TypeAlias"); - } - - flowParseOpaqueType(node, declare) { - this.expectContextual("type"); - node.id = this.flowParseRestrictedIdentifier(true, true); - this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } - - node.supertype = null; - - if (this.match(types.colon)) { - node.supertype = this.flowParseTypeInitialiser(types.colon); - } - - node.impltype = null; - - if (!declare) { - node.impltype = this.flowParseTypeInitialiser(types.eq); - } - - this.semicolon(); - return this.finishNode(node, "OpaqueType"); - } - - flowParseTypeParameter(requireDefault = false) { - const nodeStart = this.state.start; - const node = this.startNode(); - const variance = this.flowParseVariance(); - const ident = this.flowParseTypeAnnotatableIdentifier(); - node.name = ident.name; - node.variance = variance; - node.bound = ident.typeAnnotation; - - if (this.match(types.eq)) { - this.eat(types.eq); - node.default = this.flowParseType(); - } else { - if (requireDefault) { - this.raise(nodeStart, FlowErrors.MissingTypeParamDefault); - } - } - - return this.finishNode(node, "TypeParameter"); - } - - flowParseTypeParameterDeclaration() { - const oldInType = this.state.inType; - const node = this.startNode(); - node.params = []; - this.state.inType = true; - - if (this.isRelational("<") || this.match(types.jsxTagStart)) { - this.next(); - } else { - this.unexpected(); - } - - let defaultRequired = false; - - do { - const typeParameter = this.flowParseTypeParameter(defaultRequired); - node.params.push(typeParameter); - - if (typeParameter.default) { - defaultRequired = true; - } - - if (!this.isRelational(">")) { - this.expect(types.comma); - } - } while (!this.isRelational(">")); - - this.expectRelational(">"); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterDeclaration"); - } - - flowParseTypeParameterInstantiation() { - const node = this.startNode(); - const oldInType = this.state.inType; - node.params = []; - this.state.inType = true; - this.expectRelational("<"); - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = false; - - while (!this.isRelational(">")) { - node.params.push(this.flowParseType()); - - if (!this.isRelational(">")) { - this.expect(types.comma); - } - } - - this.state.noAnonFunctionType = oldNoAnonFunctionType; - this.expectRelational(">"); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterInstantiation"); - } - - flowParseTypeParameterInstantiationCallOrNew() { - const node = this.startNode(); - const oldInType = this.state.inType; - node.params = []; - this.state.inType = true; - this.expectRelational("<"); - - while (!this.isRelational(">")) { - node.params.push(this.flowParseTypeOrImplicitInstantiation()); - - if (!this.isRelational(">")) { - this.expect(types.comma); - } - } - - this.expectRelational(">"); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterInstantiation"); - } - - flowParseInterfaceType() { - const node = this.startNode(); - this.expectContextual("interface"); - node.extends = []; - - if (this.eat(types._extends)) { - do { - node.extends.push(this.flowParseInterfaceExtends()); - } while (this.eat(types.comma)); - } - - node.body = this.flowParseObjectType({ - allowStatic: false, - allowExact: false, - allowSpread: false, - allowProto: false, - allowInexact: false - }); - return this.finishNode(node, "InterfaceTypeAnnotation"); - } - - flowParseObjectPropertyKey() { - return this.match(types.num) || this.match(types.string) ? this.parseExprAtom() : this.parseIdentifier(true); - } - - flowParseObjectTypeIndexer(node, isStatic, variance) { - node.static = isStatic; - - if (this.lookahead().type === types.colon) { - node.id = this.flowParseObjectPropertyKey(); - node.key = this.flowParseTypeInitialiser(); - } else { - node.id = null; - node.key = this.flowParseType(); - } - - this.expect(types.bracketR); - node.value = this.flowParseTypeInitialiser(); - node.variance = variance; - return this.finishNode(node, "ObjectTypeIndexer"); - } - - flowParseObjectTypeInternalSlot(node, isStatic) { - node.static = isStatic; - node.id = this.flowParseObjectPropertyKey(); - this.expect(types.bracketR); - this.expect(types.bracketR); - - if (this.isRelational("<") || this.match(types.parenL)) { - node.method = true; - node.optional = false; - node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.start, node.loc.start)); - } else { - node.method = false; - - if (this.eat(types.question)) { - node.optional = true; - } - - node.value = this.flowParseTypeInitialiser(); - } - - return this.finishNode(node, "ObjectTypeInternalSlot"); - } - - flowParseObjectTypeMethodish(node) { - node.params = []; - node.rest = null; - node.typeParameters = null; - node.this = null; - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - - this.expect(types.parenL); - - if (this.match(types._this)) { - node.this = this.flowParseFunctionTypeParam(true); - node.this.name = null; - - if (!this.match(types.parenR)) { - this.expect(types.comma); - } - } - - while (!this.match(types.parenR) && !this.match(types.ellipsis)) { - node.params.push(this.flowParseFunctionTypeParam(false)); - - if (!this.match(types.parenR)) { - this.expect(types.comma); - } - } - - if (this.eat(types.ellipsis)) { - node.rest = this.flowParseFunctionTypeParam(false); - } - - this.expect(types.parenR); - node.returnType = this.flowParseTypeInitialiser(); - return this.finishNode(node, "FunctionTypeAnnotation"); - } - - flowParseObjectTypeCallProperty(node, isStatic) { - const valueNode = this.startNode(); - node.static = isStatic; - node.value = this.flowParseObjectTypeMethodish(valueNode); - return this.finishNode(node, "ObjectTypeCallProperty"); - } - - flowParseObjectType({ - allowStatic, - allowExact, - allowSpread, - allowProto, - allowInexact - }) { - const oldInType = this.state.inType; - this.state.inType = true; - const nodeStart = this.startNode(); - nodeStart.callProperties = []; - nodeStart.properties = []; - nodeStart.indexers = []; - nodeStart.internalSlots = []; - let endDelim; - let exact; - let inexact = false; - - if (allowExact && this.match(types.braceBarL)) { - this.expect(types.braceBarL); - endDelim = types.braceBarR; - exact = true; - } else { - this.expect(types.braceL); - endDelim = types.braceR; - exact = false; - } - - nodeStart.exact = exact; - - while (!this.match(endDelim)) { - let isStatic = false; - let protoStart = null; - let inexactStart = null; - const node = this.startNode(); - - if (allowProto && this.isContextual("proto")) { - const lookahead = this.lookahead(); - - if (lookahead.type !== types.colon && lookahead.type !== types.question) { - this.next(); - protoStart = this.state.start; - allowStatic = false; - } - } - - if (allowStatic && this.isContextual("static")) { - const lookahead = this.lookahead(); - - if (lookahead.type !== types.colon && lookahead.type !== types.question) { - this.next(); - isStatic = true; - } - } - - const variance = this.flowParseVariance(); - - if (this.eat(types.bracketL)) { - if (protoStart != null) { - this.unexpected(protoStart); - } - - if (this.eat(types.bracketL)) { - if (variance) { - this.unexpected(variance.start); - } - - nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); - } else { - nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); - } - } else if (this.match(types.parenL) || this.isRelational("<")) { - if (protoStart != null) { - this.unexpected(protoStart); - } - - if (variance) { - this.unexpected(variance.start); - } - - nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); - } else { - let kind = "init"; - - if (this.isContextual("get") || this.isContextual("set")) { - const lookahead = this.lookahead(); - - if (lookahead.type === types.name || lookahead.type === types.string || lookahead.type === types.num) { - kind = this.state.value; - this.next(); - } - } - - const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStart, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); - - if (propOrInexact === null) { - inexact = true; - inexactStart = this.state.lastTokStart; - } else { - nodeStart.properties.push(propOrInexact); - } - } - - this.flowObjectTypeSemicolon(); - - if (inexactStart && !this.match(types.braceR) && !this.match(types.braceBarR)) { - this.raise(inexactStart, FlowErrors.UnexpectedExplicitInexactInObject); - } - } - - this.expect(endDelim); - - if (allowSpread) { - nodeStart.inexact = inexact; - } - - const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); - this.state.inType = oldInType; - return out; - } - - flowParseObjectTypeProperty(node, isStatic, protoStart, variance, kind, allowSpread, allowInexact) { - if (this.eat(types.ellipsis)) { - const isInexactToken = this.match(types.comma) || this.match(types.semi) || this.match(types.braceR) || this.match(types.braceBarR); - - if (isInexactToken) { - if (!allowSpread) { - this.raise(this.state.lastTokStart, FlowErrors.InexactInsideNonObject); - } else if (!allowInexact) { - this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact); - } - - if (variance) { - this.raise(variance.start, FlowErrors.InexactVariance); - } - - return null; - } - - if (!allowSpread) { - this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType); - } - - if (protoStart != null) { - this.unexpected(protoStart); - } - - if (variance) { - this.raise(variance.start, FlowErrors.SpreadVariance); - } - - node.argument = this.flowParseType(); - return this.finishNode(node, "ObjectTypeSpreadProperty"); - } else { - node.key = this.flowParseObjectPropertyKey(); - node.static = isStatic; - node.proto = protoStart != null; - node.kind = kind; - let optional = false; - - if (this.isRelational("<") || this.match(types.parenL)) { - node.method = true; - - if (protoStart != null) { - this.unexpected(protoStart); - } - - if (variance) { - this.unexpected(variance.start); - } - - node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.start, node.loc.start)); - - if (kind === "get" || kind === "set") { - this.flowCheckGetterSetterParams(node); - } - - if (!allowSpread && node.key.name === "constructor" && node.value.this) { - this.raise(node.value.this.start, FlowErrors.ThisParamBannedInConstructor); - } - } else { - if (kind !== "init") this.unexpected(); - node.method = false; - - if (this.eat(types.question)) { - optional = true; - } - - node.value = this.flowParseTypeInitialiser(); - node.variance = variance; - } - - node.optional = optional; - return this.finishNode(node, "ObjectTypeProperty"); - } - } - - flowCheckGetterSetterParams(property) { - const paramCount = property.kind === "get" ? 0 : 1; - const start = property.start; - const length = property.value.params.length + (property.value.rest ? 1 : 0); - - if (property.value.this) { - this.raise(property.value.this.start, property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam); - } - - if (length !== paramCount) { - if (property.kind === "get") { - this.raise(start, ErrorMessages.BadGetterArity); - } else { - this.raise(start, ErrorMessages.BadSetterArity); - } - } - - if (property.kind === "set" && property.value.rest) { - this.raise(start, ErrorMessages.BadSetterRestParameter); - } - } - - flowObjectTypeSemicolon() { - if (!this.eat(types.semi) && !this.eat(types.comma) && !this.match(types.braceR) && !this.match(types.braceBarR)) { - this.unexpected(); - } - } - - flowParseQualifiedTypeIdentifier(startPos, startLoc, id) { - startPos = startPos || this.state.start; - startLoc = startLoc || this.state.startLoc; - let node = id || this.flowParseRestrictedIdentifier(true); - - while (this.eat(types.dot)) { - const node2 = this.startNodeAt(startPos, startLoc); - node2.qualification = node; - node2.id = this.flowParseRestrictedIdentifier(true); - node = this.finishNode(node2, "QualifiedTypeIdentifier"); - } - - return node; - } - - flowParseGenericType(startPos, startLoc, id) { - const node = this.startNodeAt(startPos, startLoc); - node.typeParameters = null; - node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } - - return this.finishNode(node, "GenericTypeAnnotation"); - } - - flowParseTypeofType() { - const node = this.startNode(); - this.expect(types._typeof); - node.argument = this.flowParsePrimaryType(); - return this.finishNode(node, "TypeofTypeAnnotation"); - } - - flowParseTupleType() { - const node = this.startNode(); - node.types = []; - this.expect(types.bracketL); - - while (this.state.pos < this.length && !this.match(types.bracketR)) { - node.types.push(this.flowParseType()); - if (this.match(types.bracketR)) break; - this.expect(types.comma); - } - - this.expect(types.bracketR); - return this.finishNode(node, "TupleTypeAnnotation"); - } - - flowParseFunctionTypeParam(first) { - let name = null; - let optional = false; - let typeAnnotation = null; - const node = this.startNode(); - const lh = this.lookahead(); - const isThis = this.state.type === types._this; - - if (lh.type === types.colon || lh.type === types.question) { - if (isThis && !first) { - this.raise(node.start, FlowErrors.ThisParamMustBeFirst); - } - - name = this.parseIdentifier(isThis); - - if (this.eat(types.question)) { - optional = true; - - if (isThis) { - this.raise(node.start, FlowErrors.ThisParamMayNotBeOptional); - } - } - - typeAnnotation = this.flowParseTypeInitialiser(); - } else { - typeAnnotation = this.flowParseType(); - } - - node.name = name; - node.optional = optional; - node.typeAnnotation = typeAnnotation; - return this.finishNode(node, "FunctionTypeParam"); - } - - reinterpretTypeAsFunctionTypeParam(type) { - const node = this.startNodeAt(type.start, type.loc.start); - node.name = null; - node.optional = false; - node.typeAnnotation = type; - return this.finishNode(node, "FunctionTypeParam"); - } - - flowParseFunctionTypeParams(params = []) { - let rest = null; - let _this = null; - - if (this.match(types._this)) { - _this = this.flowParseFunctionTypeParam(true); - _this.name = null; - - if (!this.match(types.parenR)) { - this.expect(types.comma); - } - } - - while (!this.match(types.parenR) && !this.match(types.ellipsis)) { - params.push(this.flowParseFunctionTypeParam(false)); - - if (!this.match(types.parenR)) { - this.expect(types.comma); - } - } - - if (this.eat(types.ellipsis)) { - rest = this.flowParseFunctionTypeParam(false); - } - - return { - params, - rest, - _this - }; - } - - flowIdentToTypeAnnotation(startPos, startLoc, node, id) { - switch (id.name) { - case "any": - return this.finishNode(node, "AnyTypeAnnotation"); - - case "bool": - case "boolean": - return this.finishNode(node, "BooleanTypeAnnotation"); - - case "mixed": - return this.finishNode(node, "MixedTypeAnnotation"); - - case "empty": - return this.finishNode(node, "EmptyTypeAnnotation"); - - case "number": - return this.finishNode(node, "NumberTypeAnnotation"); - - case "string": - return this.finishNode(node, "StringTypeAnnotation"); - - case "symbol": - return this.finishNode(node, "SymbolTypeAnnotation"); - - default: - this.checkNotUnderscore(id.name); - return this.flowParseGenericType(startPos, startLoc, id); - } - } - - flowParsePrimaryType() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const node = this.startNode(); - let tmp; - let type; - let isGroupedType = false; - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - - switch (this.state.type) { - case types.name: - if (this.isContextual("interface")) { - return this.flowParseInterfaceType(); - } - - return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdentifier()); - - case types.braceL: - return this.flowParseObjectType({ - allowStatic: false, - allowExact: false, - allowSpread: true, - allowProto: false, - allowInexact: true - }); - - case types.braceBarL: - return this.flowParseObjectType({ - allowStatic: false, - allowExact: true, - allowSpread: true, - allowProto: false, - allowInexact: false - }); - - case types.bracketL: - this.state.noAnonFunctionType = false; - type = this.flowParseTupleType(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - return type; - - case types.relational: - if (this.state.value === "<") { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - this.expect(types.parenL); - tmp = this.flowParseFunctionTypeParams(); - node.params = tmp.params; - node.rest = tmp.rest; - node.this = tmp._this; - this.expect(types.parenR); - this.expect(types.arrow); - node.returnType = this.flowParseType(); - return this.finishNode(node, "FunctionTypeAnnotation"); - } - - break; - - case types.parenL: - this.next(); - - if (!this.match(types.parenR) && !this.match(types.ellipsis)) { - if (this.match(types.name) || this.match(types._this)) { - const token = this.lookahead().type; - isGroupedType = token !== types.question && token !== types.colon; - } else { - isGroupedType = true; - } - } - - if (isGroupedType) { - this.state.noAnonFunctionType = false; - type = this.flowParseType(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - - if (this.state.noAnonFunctionType || !(this.match(types.comma) || this.match(types.parenR) && this.lookahead().type === types.arrow)) { - this.expect(types.parenR); - return type; - } else { - this.eat(types.comma); - } - } - - if (type) { - tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); - } else { - tmp = this.flowParseFunctionTypeParams(); - } - - node.params = tmp.params; - node.rest = tmp.rest; - node.this = tmp._this; - this.expect(types.parenR); - this.expect(types.arrow); - node.returnType = this.flowParseType(); - node.typeParameters = null; - return this.finishNode(node, "FunctionTypeAnnotation"); - - case types.string: - return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); - - case types._true: - case types._false: - node.value = this.match(types._true); - this.next(); - return this.finishNode(node, "BooleanLiteralTypeAnnotation"); - - case types.plusMin: - if (this.state.value === "-") { - this.next(); - - if (this.match(types.num)) { - return this.parseLiteral(-this.state.value, "NumberLiteralTypeAnnotation", node.start, node.loc.start); - } - - if (this.match(types.bigint)) { - return this.parseLiteral(-this.state.value, "BigIntLiteralTypeAnnotation", node.start, node.loc.start); - } - - throw this.raise(this.state.start, FlowErrors.UnexpectedSubtractionOperand); - } - - throw this.unexpected(); - - case types.num: - return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); - - case types.bigint: - return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); - - case types._void: - this.next(); - return this.finishNode(node, "VoidTypeAnnotation"); - - case types._null: - this.next(); - return this.finishNode(node, "NullLiteralTypeAnnotation"); - - case types._this: - this.next(); - return this.finishNode(node, "ThisTypeAnnotation"); - - case types.star: - this.next(); - return this.finishNode(node, "ExistsTypeAnnotation"); - - default: - if (this.state.type.keyword === "typeof") { - return this.flowParseTypeofType(); - } else if (this.state.type.keyword) { - const label = this.state.type.label; - this.next(); - return super.createIdentifier(node, label); - } - - } - - throw this.unexpected(); - } - - flowParsePostfixType() { - const startPos = this.state.start, - startLoc = this.state.startLoc; - let type = this.flowParsePrimaryType(); - - while (this.match(types.bracketL) && !this.canInsertSemicolon()) { - const node = this.startNodeAt(startPos, startLoc); - node.elementType = type; - this.expect(types.bracketL); - this.expect(types.bracketR); - type = this.finishNode(node, "ArrayTypeAnnotation"); - } - - return type; - } - - flowParsePrefixType() { - const node = this.startNode(); - - if (this.eat(types.question)) { - node.typeAnnotation = this.flowParsePrefixType(); - return this.finishNode(node, "NullableTypeAnnotation"); - } else { - return this.flowParsePostfixType(); - } - } - - flowParseAnonFunctionWithoutParens() { - const param = this.flowParsePrefixType(); - - if (!this.state.noAnonFunctionType && this.eat(types.arrow)) { - const node = this.startNodeAt(param.start, param.loc.start); - node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; - node.rest = null; - node.this = null; - node.returnType = this.flowParseType(); - node.typeParameters = null; - return this.finishNode(node, "FunctionTypeAnnotation"); - } - - return param; - } - - flowParseIntersectionType() { - const node = this.startNode(); - this.eat(types.bitwiseAND); - const type = this.flowParseAnonFunctionWithoutParens(); - node.types = [type]; - - while (this.eat(types.bitwiseAND)) { - node.types.push(this.flowParseAnonFunctionWithoutParens()); - } - - return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); - } - - flowParseUnionType() { - const node = this.startNode(); - this.eat(types.bitwiseOR); - const type = this.flowParseIntersectionType(); - node.types = [type]; - - while (this.eat(types.bitwiseOR)) { - node.types.push(this.flowParseIntersectionType()); - } - - return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); - } - - flowParseType() { - const oldInType = this.state.inType; - this.state.inType = true; - const type = this.flowParseUnionType(); - this.state.inType = oldInType; - this.state.exprAllowed = this.state.exprAllowed || this.state.noAnonFunctionType; - return type; - } - - flowParseTypeOrImplicitInstantiation() { - if (this.state.type === types.name && this.state.value === "_") { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const node = this.parseIdentifier(); - return this.flowParseGenericType(startPos, startLoc, node); - } else { - return this.flowParseType(); - } - } - - flowParseTypeAnnotation() { - const node = this.startNode(); - node.typeAnnotation = this.flowParseTypeInitialiser(); - return this.finishNode(node, "TypeAnnotation"); - } - - flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) { - const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier(); - - if (this.match(types.colon)) { - ident.typeAnnotation = this.flowParseTypeAnnotation(); - this.resetEndLocation(ident); - } - - return ident; - } - - typeCastToParameter(node) { - node.expression.typeAnnotation = node.typeAnnotation; - this.resetEndLocation(node.expression, node.typeAnnotation.end, node.typeAnnotation.loc.end); - return node.expression; - } - - flowParseVariance() { - let variance = null; - - if (this.match(types.plusMin)) { - variance = this.startNode(); - - if (this.state.value === "+") { - variance.kind = "plus"; - } else { - variance.kind = "minus"; - } - - this.next(); - this.finishNode(variance, "Variance"); - } - - return variance; - } - - parseFunctionBody(node, allowExpressionBody, isMethod = false) { - if (allowExpressionBody) { - return this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); - } - - return super.parseFunctionBody(node, false, isMethod); - } - - parseFunctionBodyAndFinish(node, type, isMethod = false) { - if (this.match(types.colon)) { - const typeNode = this.startNode(); - [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; - } - - super.parseFunctionBodyAndFinish(node, type, isMethod); - } - - parseStatement(context, topLevel) { - if (this.state.strict && this.match(types.name) && this.state.value === "interface") { - const lookahead = this.lookahead(); - - if (lookahead.type === types.name || isKeyword(lookahead.value)) { - const node = this.startNode(); - this.next(); - return this.flowParseInterface(node); - } - } else if (this.shouldParseEnums() && this.isContextual("enum")) { - const node = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(node); - } - - const stmt = super.parseStatement(context, topLevel); - - if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { - this.flowPragma = null; - } - - return stmt; - } - - parseExpressionStatement(node, expr) { - if (expr.type === "Identifier") { - if (expr.name === "declare") { - if (this.match(types._class) || this.match(types.name) || this.match(types._function) || this.match(types._var) || this.match(types._export)) { - return this.flowParseDeclare(node); - } - } else if (this.match(types.name)) { - if (expr.name === "interface") { - return this.flowParseInterface(node); - } else if (expr.name === "type") { - return this.flowParseTypeAlias(node); - } else if (expr.name === "opaque") { - return this.flowParseOpaqueType(node, false); - } - } - } - - return super.parseExpressionStatement(node, expr); - } - - shouldParseExportDeclaration() { - return this.isContextual("type") || this.isContextual("interface") || this.isContextual("opaque") || this.shouldParseEnums() && this.isContextual("enum") || super.shouldParseExportDeclaration(); - } - - isExportDefaultSpecifier() { - if (this.match(types.name) && (this.state.value === "type" || this.state.value === "interface" || this.state.value === "opaque" || this.shouldParseEnums() && this.state.value === "enum")) { - return false; - } - - return super.isExportDefaultSpecifier(); - } - - parseExportDefaultExpression() { - if (this.shouldParseEnums() && this.isContextual("enum")) { - const node = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(node); - } - - return super.parseExportDefaultExpression(); - } - - parseConditional(expr, startPos, startLoc, refNeedsArrowPos) { - if (!this.match(types.question)) return expr; - - if (refNeedsArrowPos) { - const result = this.tryParse(() => super.parseConditional(expr, startPos, startLoc)); - - if (!result.node) { - refNeedsArrowPos.start = result.error.pos || this.state.start; - return expr; - } - - if (result.error) this.state = result.failState; - return result.node; - } - - this.expect(types.question); - const state = this.state.clone(); - const originalNoArrowAt = this.state.noArrowAt; - const node = this.startNodeAt(startPos, startLoc); - let { - consequent, - failed - } = this.tryParseConditionalConsequent(); - let [valid, invalid] = this.getArrowLikeExpressions(consequent); - - if (failed || invalid.length > 0) { - const noArrowAt = [...originalNoArrowAt]; - - if (invalid.length > 0) { - this.state = state; - this.state.noArrowAt = noArrowAt; - - for (let i = 0; i < invalid.length; i++) { - noArrowAt.push(invalid[i].start); - } - - ({ - consequent, - failed - } = this.tryParseConditionalConsequent()); - [valid, invalid] = this.getArrowLikeExpressions(consequent); - } - - if (failed && valid.length > 1) { - this.raise(state.start, FlowErrors.AmbiguousConditionalArrow); - } - - if (failed && valid.length === 1) { - this.state = state; - this.state.noArrowAt = noArrowAt.concat(valid[0].start); - ({ - consequent, - failed - } = this.tryParseConditionalConsequent()); - } - } - - this.getArrowLikeExpressions(consequent, true); - this.state.noArrowAt = originalNoArrowAt; - this.expect(types.colon); - node.test = expr; - node.consequent = consequent; - node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined, undefined)); - return this.finishNode(node, "ConditionalExpression"); - } - - tryParseConditionalConsequent() { - this.state.noArrowParamsConversionAt.push(this.state.start); - const consequent = this.parseMaybeAssignAllowIn(); - const failed = !this.match(types.colon); - this.state.noArrowParamsConversionAt.pop(); - return { - consequent, - failed - }; - } - - getArrowLikeExpressions(node, disallowInvalid) { - const stack = [node]; - const arrows = []; - - while (stack.length !== 0) { - const node = stack.pop(); - - if (node.type === "ArrowFunctionExpression") { - if (node.typeParameters || !node.returnType) { - this.finishArrowValidation(node); - } else { - arrows.push(node); - } - - stack.push(node.body); - } else if (node.type === "ConditionalExpression") { - stack.push(node.consequent); - stack.push(node.alternate); - } - } - - if (disallowInvalid) { - arrows.forEach(node => this.finishArrowValidation(node)); - return [arrows, []]; - } - - return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); - } - - finishArrowValidation(node) { - var _node$extra; - - this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingComma, false); - this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW); - super.checkParams(node, false, true); - this.scope.exit(); - } - - forwardNoArrowParamsConversionAt(node, parse) { - let result; - - if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - this.state.noArrowParamsConversionAt.push(this.state.start); - result = parse(); - this.state.noArrowParamsConversionAt.pop(); - } else { - result = parse(); - } - - return result; - } - - parseParenItem(node, startPos, startLoc) { - node = super.parseParenItem(node, startPos, startLoc); - - if (this.eat(types.question)) { - node.optional = true; - this.resetEndLocation(node); - } - - if (this.match(types.colon)) { - const typeCastNode = this.startNodeAt(startPos, startLoc); - typeCastNode.expression = node; - typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); - return this.finishNode(typeCastNode, "TypeCastExpression"); - } - - return node; - } - - assertModuleNodeAllowed(node) { - if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { - return; - } - - super.assertModuleNodeAllowed(node); - } - - parseExport(node) { - const decl = super.parseExport(node); - - if (decl.type === "ExportNamedDeclaration" || decl.type === "ExportAllDeclaration") { - decl.exportKind = decl.exportKind || "value"; - } - - return decl; - } - - parseExportDeclaration(node) { - if (this.isContextual("type")) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); - - if (this.match(types.braceL)) { - node.specifiers = this.parseExportSpecifiers(); - this.parseExportFrom(node); - return null; - } else { - return this.flowParseTypeAlias(declarationNode); - } - } else if (this.isContextual("opaque")) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseOpaqueType(declarationNode, false); - } else if (this.isContextual("interface")) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseInterface(declarationNode); - } else if (this.shouldParseEnums() && this.isContextual("enum")) { - node.exportKind = "value"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(declarationNode); - } else { - return super.parseExportDeclaration(node); - } - } - - eatExportStar(node) { - if (super.eatExportStar(...arguments)) return true; - - if (this.isContextual("type") && this.lookahead().type === types.star) { - node.exportKind = "type"; - this.next(); - this.next(); - return true; - } - - return false; - } - - maybeParseExportNamespaceSpecifier(node) { - const pos = this.state.start; - const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); - - if (hasNamespace && node.exportKind === "type") { - this.unexpected(pos); - } - - return hasNamespace; - } - - parseClassId(node, isStatement, optionalId) { - super.parseClassId(node, isStatement, optionalId); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - } - - parseClassMember(classBody, member, state) { - const pos = this.state.start; - - if (this.isContextual("declare")) { - if (this.parseClassMemberFromModifier(classBody, member)) { - return; - } - - member.declare = true; - } - - super.parseClassMember(classBody, member, state); - - if (member.declare) { - if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { - this.raise(pos, FlowErrors.DeclareClassElement); - } else if (member.value) { - this.raise(member.value.start, FlowErrors.DeclareClassFieldInitializer); - } - } - } - - getTokenFromCode(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (code === 123 && next === 124) { - return this.finishOp(types.braceBarL, 2); - } else if (this.state.inType && (code === 62 || code === 60)) { - return this.finishOp(types.relational, 1); - } else if (this.state.inType && code === 63) { - return this.finishOp(types.question, 1); - } else if (isIteratorStart(code, next)) { - this.state.isIterator = true; - return super.readWord(); - } else { - return super.getTokenFromCode(code); - } - } - - isAssignable(node, isBinding) { - switch (node.type) { - case "Identifier": - case "ObjectPattern": - case "ArrayPattern": - case "AssignmentPattern": - return true; - - case "ObjectExpression": - { - const last = node.properties.length - 1; - return node.properties.every((prop, i) => { - return prop.type !== "ObjectMethod" && (i === last || prop.type === "SpreadElement") && this.isAssignable(prop); - }); - } - - case "ObjectProperty": - return this.isAssignable(node.value); - - case "SpreadElement": - return this.isAssignable(node.argument); - - case "ArrayExpression": - return node.elements.every(element => this.isAssignable(element)); - - case "AssignmentExpression": - return node.operator === "="; - - case "ParenthesizedExpression": - case "TypeCastExpression": - return this.isAssignable(node.expression); - - case "MemberExpression": - case "OptionalMemberExpression": - return !isBinding; - - default: - return false; - } - } - - toAssignable(node, isLHS = false) { - if (node.type === "TypeCastExpression") { - return super.toAssignable(this.typeCastToParameter(node), isLHS); - } else { - return super.toAssignable(node, isLHS); - } - } - - toAssignableList(exprList, trailingCommaPos, isLHS) { - for (let i = 0; i < exprList.length; i++) { - const expr = exprList[i]; - - if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { - exprList[i] = this.typeCastToParameter(expr); - } - } - - return super.toAssignableList(exprList, trailingCommaPos, isLHS); - } - - toReferencedList(exprList, isParenthesizedExpr) { - for (let i = 0; i < exprList.length; i++) { - var _expr$extra; - - const expr = exprList[i]; - - if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { - this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern); - } - } - - return exprList; - } - - parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { - const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); - - if (canBePattern && !this.state.maybeInArrowParameters) { - this.toReferencedList(node.elements); - } - - return node; - } - - checkLVal(expr, ...args) { - if (expr.type !== "TypeCastExpression") { - return super.checkLVal(expr, ...args); - } - } - - parseClassProperty(node) { - if (this.match(types.colon)) { - node.typeAnnotation = this.flowParseTypeAnnotation(); - } - - return super.parseClassProperty(node); - } - - parseClassPrivateProperty(node) { - if (this.match(types.colon)) { - node.typeAnnotation = this.flowParseTypeAnnotation(); - } - - return super.parseClassPrivateProperty(node); - } - - isClassMethod() { - return this.isRelational("<") || super.isClassMethod(); - } - - isClassProperty() { - return this.match(types.colon) || super.isClassProperty(); - } - - isNonstaticConstructor(method) { - return !this.match(types.colon) && super.isNonstaticConstructor(method); - } - - isThisParam(param) { - return param.type === "Identifier" && param.name === "this"; - } - - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - if (method.variance) { - this.unexpected(method.variance.start); - } - - delete method.variance; - - if (this.isRelational("<")) { - method.typeParameters = this.flowParseTypeParameterDeclaration(); - } - - super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); - - if (method.params && isConstructor) { - const params = method.params; - - if (params.length > 0 && this.isThisParam(params[0])) { - this.raise(method.start, FlowErrors.ThisParamBannedInConstructor); - } - } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) { - const params = method.value.params; - - if (params.length > 0 && this.isThisParam(params[0])) { - this.raise(method.start, FlowErrors.ThisParamBannedInConstructor); - } - } - } - - pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { - if (method.variance) { - this.unexpected(method.variance.start); - } - - delete method.variance; - - if (this.isRelational("<")) { - method.typeParameters = this.flowParseTypeParameterDeclaration(); - } - - super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); - } - - parseClassSuper(node) { - super.parseClassSuper(node); - - if (node.superClass && this.isRelational("<")) { - node.superTypeParameters = this.flowParseTypeParameterInstantiation(); - } - - if (this.isContextual("implements")) { - this.next(); - const implemented = node.implements = []; - - do { - const node = this.startNode(); - node.id = this.flowParseRestrictedIdentifier(true); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } else { - node.typeParameters = null; - } - - implemented.push(this.finishNode(node, "ClassImplements")); - } while (this.eat(types.comma)); - } - } - - checkGetterSetterParams(method) { - super.checkGetterSetterParams(method); - const params = this.getObjectOrClassMethodParams(method); - - if (params.length > 0) { - const param = params[0]; - - if (this.isThisParam(param) && method.kind === "get") { - this.raise(param.start, FlowErrors.GetterMayNotHaveThisParam); - } else if (this.isThisParam(param)) { - this.raise(param.start, FlowErrors.SetterMayNotHaveThisParam); - } - } - } - - parsePropertyName(node, isPrivateNameAllowed) { - const variance = this.flowParseVariance(); - const key = super.parsePropertyName(node, isPrivateNameAllowed); - node.variance = variance; - return key; - } - - parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { - if (prop.variance) { - this.unexpected(prop.variance.start); - } - - delete prop.variance; - let typeParameters; - - if (this.isRelational("<") && !isAccessor) { - typeParameters = this.flowParseTypeParameterDeclaration(); - if (!this.match(types.parenL)) this.unexpected(); - } - - super.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); - - if (typeParameters) { - (prop.value || prop).typeParameters = typeParameters; - } - } - - parseAssignableListItemTypes(param) { - if (this.eat(types.question)) { - if (param.type !== "Identifier") { - this.raise(param.start, FlowErrors.OptionalBindingPattern); - } - - if (this.isThisParam(param)) { - this.raise(param.start, FlowErrors.ThisParamMayNotBeOptional); - } - - param.optional = true; - } - - if (this.match(types.colon)) { - param.typeAnnotation = this.flowParseTypeAnnotation(); - } else if (this.isThisParam(param)) { - this.raise(param.start, FlowErrors.ThisParamAnnotationRequired); - } - - if (this.match(types.eq) && this.isThisParam(param)) { - this.raise(param.start, FlowErrors.ThisParamNoDefault); - } - - this.resetEndLocation(param); - return param; - } - - parseMaybeDefault(startPos, startLoc, left) { - const node = super.parseMaybeDefault(startPos, startLoc, left); - - if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { - this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer); - } - - return node; - } - - shouldParseDefaultImport(node) { - if (!hasTypeImportKind(node)) { - return super.shouldParseDefaultImport(node); - } - - return isMaybeDefaultImport(this.state); - } - - parseImportSpecifierLocal(node, specifier, type, contextDescription) { - specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); - this.checkLVal(specifier.local, contextDescription, BIND_LEXICAL); - node.specifiers.push(this.finishNode(specifier, type)); - } - - maybeParseDefaultImportSpecifier(node) { - node.importKind = "value"; - let kind = null; - - if (this.match(types._typeof)) { - kind = "typeof"; - } else if (this.isContextual("type")) { - kind = "type"; - } - - if (kind) { - const lh = this.lookahead(); - - if (kind === "type" && lh.type === types.star) { - this.unexpected(lh.start); - } - - if (isMaybeDefaultImport(lh) || lh.type === types.braceL || lh.type === types.star) { - this.next(); - node.importKind = kind; - } - } - - return super.maybeParseDefaultImportSpecifier(node); - } - - parseImportSpecifier(node) { - const specifier = this.startNode(); - const firstIdentLoc = this.state.start; - const firstIdent = this.parseModuleExportName(); - let specifierTypeKind = null; - - if (firstIdent.type === "Identifier") { - if (firstIdent.name === "type") { - specifierTypeKind = "type"; - } else if (firstIdent.name === "typeof") { - specifierTypeKind = "typeof"; - } - } - - let isBinding = false; - - if (this.isContextual("as") && !this.isLookaheadContextual("as")) { - const as_ident = this.parseIdentifier(true); - - if (specifierTypeKind !== null && !this.match(types.name) && !this.state.type.keyword) { - specifier.imported = as_ident; - specifier.importKind = specifierTypeKind; - specifier.local = as_ident.__clone(); - } else { - specifier.imported = firstIdent; - specifier.importKind = null; - specifier.local = this.parseIdentifier(); - } - } else if (specifierTypeKind !== null && (this.match(types.name) || this.state.type.keyword)) { - specifier.imported = this.parseIdentifier(true); - specifier.importKind = specifierTypeKind; - - if (this.eatContextual("as")) { - specifier.local = this.parseIdentifier(); - } else { - isBinding = true; - specifier.local = specifier.imported.__clone(); - } - } else { - if (firstIdent.type === "StringLiteral") { - throw this.raise(specifier.start, ErrorMessages.ImportBindingIsString, firstIdent.value); - } - - isBinding = true; - specifier.imported = firstIdent; - specifier.importKind = null; - specifier.local = specifier.imported.__clone(); - } - - const nodeIsTypeImport = hasTypeImportKind(node); - const specifierIsTypeImport = hasTypeImportKind(specifier); - - if (nodeIsTypeImport && specifierIsTypeImport) { - this.raise(firstIdentLoc, FlowErrors.ImportTypeShorthandOnlyInPureImport); - } - - if (nodeIsTypeImport || specifierIsTypeImport) { - this.checkReservedType(specifier.local.name, specifier.local.start, true); - } - - if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) { - this.checkReservedWord(specifier.local.name, specifier.start, true, true); - } - - this.checkLVal(specifier.local, "import specifier", BIND_LEXICAL); - node.specifiers.push(this.finishNode(specifier, "ImportSpecifier")); - } - - parseBindingAtom() { - switch (this.state.type) { - case types._this: - return this.parseIdentifier(true); - - default: - return super.parseBindingAtom(); - } - } - - parseFunctionParams(node, allowModifiers) { - const kind = node.kind; - - if (kind !== "get" && kind !== "set" && this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - - super.parseFunctionParams(node, allowModifiers); - } - - parseVarId(decl, kind) { - super.parseVarId(decl, kind); - - if (this.match(types.colon)) { - decl.id.typeAnnotation = this.flowParseTypeAnnotation(); - this.resetEndLocation(decl.id); - } - } - - parseAsyncArrowFromCallExpression(node, call) { - if (this.match(types.colon)) { - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = true; - node.returnType = this.flowParseTypeAnnotation(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - } - - return super.parseAsyncArrowFromCallExpression(node, call); - } - - shouldParseAsyncArrow() { - return this.match(types.colon) || super.shouldParseAsyncArrow(); - } - - parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos) { - var _jsx; - - let state = null; - let jsx; - - if (this.hasPlugin("jsx") && (this.match(types.jsxTagStart) || this.isRelational("<"))) { - state = this.state.clone(); - jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos), state); - if (!jsx.error) return jsx.node; - const { - context - } = this.state; - - if (context[context.length - 1] === types$1.j_oTag) { - context.length -= 2; - } else if (context[context.length - 1] === types$1.j_expr) { - context.length -= 1; - } - } - - if ((_jsx = jsx) != null && _jsx.error || this.isRelational("<")) { - var _jsx2, _jsx3; - - state = state || this.state.clone(); - let typeParameters; - const arrow = this.tryParse(abort => { - var _arrowExpression$extr; - - typeParameters = this.flowParseTypeParameterDeclaration(); - const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { - const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos); - this.resetStartLocationFromNode(result, typeParameters); - return result; - }); - - if (arrowExpression.type !== "ArrowFunctionExpression" && (_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) { - abort(); - } - - const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); - expr.typeParameters = typeParameters; - this.resetStartLocationFromNode(expr, typeParameters); - return arrowExpression; - }, state); - let arrowExpression = null; - - if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { - if (!arrow.error && !arrow.aborted) { - if (arrow.node.async) { - this.raise(typeParameters.start, FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction); - } - - return arrow.node; - } - - arrowExpression = arrow.node; - } - - if ((_jsx2 = jsx) != null && _jsx2.node) { - this.state = jsx.failState; - return jsx.node; - } - - if (arrowExpression) { - this.state = arrow.failState; - return arrowExpression; - } - - if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; - if (arrow.thrown) throw arrow.error; - throw this.raise(typeParameters.start, FlowErrors.UnexpectedTokenAfterTypeParameter); - } - - return super.parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos); - } - - parseArrow(node) { - if (this.match(types.colon)) { - const result = this.tryParse(() => { - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = true; - const typeNode = this.startNode(); - [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - if (this.canInsertSemicolon()) this.unexpected(); - if (!this.match(types.arrow)) this.unexpected(); - return typeNode; - }); - if (result.thrown) return null; - if (result.error) this.state = result.failState; - node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; - } - - return super.parseArrow(node); - } - - shouldParseArrow() { - return this.match(types.colon) || super.shouldParseArrow(); - } - - setArrowFunctionParameters(node, params) { - if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - node.params = params; - } else { - super.setArrowFunctionParameters(node, params); - } - } - - checkParams(node, allowDuplicates, isArrowFunction) { - if (isArrowFunction && this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - return; - } - - for (let i = 0; i < node.params.length; i++) { - if (this.isThisParam(node.params[i]) && i > 0) { - this.raise(node.params[i].start, FlowErrors.ThisParamMustBeFirst); - } - } - - return super.checkParams(...arguments); - } - - parseParenAndDistinguishExpression(canBeArrow) { - return super.parseParenAndDistinguishExpression(canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1); - } - - parseSubscripts(base, startPos, startLoc, noCalls) { - if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.indexOf(startPos) !== -1) { - this.next(); - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - node.arguments = this.parseCallExpressionArguments(types.parenR, false); - base = this.finishNode(node, "CallExpression"); - } else if (base.type === "Identifier" && base.name === "async" && this.isRelational("<")) { - const state = this.state.clone(); - const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startPos, startLoc) || abort(), state); - if (!arrow.error && !arrow.aborted) return arrow.node; - const result = this.tryParse(() => super.parseSubscripts(base, startPos, startLoc, noCalls), state); - if (result.node && !result.error) return result.node; - - if (arrow.node) { - this.state = arrow.failState; - return arrow.node; - } - - if (result.node) { - this.state = result.failState; - return result.node; - } - - throw arrow.error || result.error; - } - - return super.parseSubscripts(base, startPos, startLoc, noCalls); - } - - parseSubscript(base, startPos, startLoc, noCalls, subscriptState) { - if (this.match(types.questionDot) && this.isLookaheadToken_lt()) { - subscriptState.optionalChainMember = true; - - if (noCalls) { - subscriptState.stop = true; - return base; - } - - this.next(); - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - node.typeArguments = this.flowParseTypeParameterInstantiation(); - this.expect(types.parenL); - node.arguments = this.parseCallExpressionArguments(types.parenR, false); - node.optional = true; - return this.finishCallExpression(node, true); - } else if (!noCalls && this.shouldParseTypes() && this.isRelational("<")) { - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - const result = this.tryParse(() => { - node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); - this.expect(types.parenL); - node.arguments = this.parseCallExpressionArguments(types.parenR, false); - if (subscriptState.optionalChainMember) node.optional = false; - return this.finishCallExpression(node, subscriptState.optionalChainMember); - }); - - if (result.node) { - if (result.error) this.state = result.failState; - return result.node; - } - } - - return super.parseSubscript(base, startPos, startLoc, noCalls, subscriptState); - } - - parseNewArguments(node) { - let targs = null; - - if (this.shouldParseTypes() && this.isRelational("<")) { - targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; - } - - node.typeArguments = targs; - super.parseNewArguments(node); - } - - parseAsyncArrowWithTypeParameters(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - this.parseFunctionParams(node); - if (!this.parseArrow(node)) return; - return this.parseArrowExpression(node, undefined, true); - } - - readToken_mult_modulo(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (code === 42 && next === 47 && this.state.hasFlowComment) { - this.state.hasFlowComment = false; - this.state.pos += 2; - this.nextToken(); - return; - } - - super.readToken_mult_modulo(code); - } - - readToken_pipe_amp(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (code === 124 && next === 125) { - this.finishOp(types.braceBarR, 2); - return; - } - - super.readToken_pipe_amp(code); - } - - parseTopLevel(file, program) { - const fileNode = super.parseTopLevel(file, program); - - if (this.state.hasFlowComment) { - this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment); - } - - return fileNode; - } - - skipBlockComment() { - if (this.hasPlugin("flowComments") && this.skipFlowComment()) { - if (this.state.hasFlowComment) { - this.unexpected(null, FlowErrors.NestedFlowComment); - } - - this.hasFlowCommentCompletion(); - this.state.pos += this.skipFlowComment(); - this.state.hasFlowComment = true; - return; - } - - if (this.state.hasFlowComment) { - const end = this.input.indexOf("*-/", this.state.pos += 2); - - if (end === -1) { - throw this.raise(this.state.pos - 2, ErrorMessages.UnterminatedComment); - } - - this.state.pos = end + 3; - return; - } - - super.skipBlockComment(); - } - - skipFlowComment() { - const { - pos - } = this.state; - let shiftToFirstNonWhiteSpace = 2; - - while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { - shiftToFirstNonWhiteSpace++; - } - - const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); - const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); - - if (ch2 === 58 && ch3 === 58) { - return shiftToFirstNonWhiteSpace + 2; - } - - if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { - return shiftToFirstNonWhiteSpace + 12; - } - - if (ch2 === 58 && ch3 !== 58) { - return shiftToFirstNonWhiteSpace; - } - - return false; - } - - hasFlowCommentCompletion() { - const end = this.input.indexOf("*/", this.state.pos); - - if (end === -1) { - throw this.raise(this.state.pos, ErrorMessages.UnterminatedComment); - } - } - - flowEnumErrorBooleanMemberNotInitialized(pos, { - enumName, - memberName - }) { - this.raise(pos, FlowErrors.EnumBooleanMemberNotInitialized, memberName, enumName); - } - - flowEnumErrorInvalidMemberName(pos, { - enumName, - memberName - }) { - const suggestion = memberName[0].toUpperCase() + memberName.slice(1); - this.raise(pos, FlowErrors.EnumInvalidMemberName, memberName, suggestion, enumName); - } - - flowEnumErrorDuplicateMemberName(pos, { - enumName, - memberName - }) { - this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName); - } - - flowEnumErrorInconsistentMemberValues(pos, { - enumName - }) { - this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName); - } - - flowEnumErrorInvalidExplicitType(pos, { - enumName, - suppliedType - }) { - return this.raise(pos, suppliedType === null ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied : FlowErrors.EnumInvalidExplicitType, enumName, suppliedType); - } - - flowEnumErrorInvalidMemberInitializer(pos, { - enumName, - explicitType, - memberName - }) { - let message = null; - - switch (explicitType) { - case "boolean": - case "number": - case "string": - message = FlowErrors.EnumInvalidMemberInitializerPrimaryType; - break; - - case "symbol": - message = FlowErrors.EnumInvalidMemberInitializerSymbolType; - break; - - default: - message = FlowErrors.EnumInvalidMemberInitializerUnknownType; - } - - return this.raise(pos, message, enumName, memberName, explicitType); - } - - flowEnumErrorNumberMemberNotInitialized(pos, { - enumName, - memberName - }) { - this.raise(pos, FlowErrors.EnumNumberMemberNotInitialized, enumName, memberName); - } - - flowEnumErrorStringMemberInconsistentlyInitailized(pos, { - enumName - }) { - this.raise(pos, FlowErrors.EnumStringMemberInconsistentlyInitailized, enumName); - } - - flowEnumMemberInit() { - const startPos = this.state.start; - - const endOfInit = () => this.match(types.comma) || this.match(types.braceR); - - switch (this.state.type) { - case types.num: - { - const literal = this.parseLiteral(this.state.value, "NumericLiteral"); - - if (endOfInit()) { - return { - type: "number", - pos: literal.start, - value: literal - }; - } - - return { - type: "invalid", - pos: startPos - }; - } - - case types.string: - { - const literal = this.parseLiteral(this.state.value, "StringLiteral"); - - if (endOfInit()) { - return { - type: "string", - pos: literal.start, - value: literal - }; - } - - return { - type: "invalid", - pos: startPos - }; - } - - case types._true: - case types._false: - { - const literal = this.parseBooleanLiteral(); - - if (endOfInit()) { - return { - type: "boolean", - pos: literal.start, - value: literal - }; - } - - return { - type: "invalid", - pos: startPos - }; - } - - default: - return { - type: "invalid", - pos: startPos - }; - } - } - - flowEnumMemberRaw() { - const pos = this.state.start; - const id = this.parseIdentifier(true); - const init = this.eat(types.eq) ? this.flowEnumMemberInit() : { - type: "none", - pos - }; - return { - id, - init - }; - } - - flowEnumCheckExplicitTypeMismatch(pos, context, expectedType) { - const { - explicitType - } = context; - - if (explicitType === null) { - return; - } - - if (explicitType !== expectedType) { - this.flowEnumErrorInvalidMemberInitializer(pos, context); - } - } - - flowEnumMembers({ - enumName, - explicitType - }) { - const seenNames = new Set(); - const members = { - booleanMembers: [], - numberMembers: [], - stringMembers: [], - defaultedMembers: [] - }; - let hasUnknownMembers = false; - - while (!this.match(types.braceR)) { - if (this.eat(types.ellipsis)) { - hasUnknownMembers = true; - break; - } - - const memberNode = this.startNode(); - const { - id, - init - } = this.flowEnumMemberRaw(); - const memberName = id.name; - - if (memberName === "") { - continue; - } - - if (/^[a-z]/.test(memberName)) { - this.flowEnumErrorInvalidMemberName(id.start, { - enumName, - memberName - }); - } - - if (seenNames.has(memberName)) { - this.flowEnumErrorDuplicateMemberName(id.start, { - enumName, - memberName - }); - } - - seenNames.add(memberName); - const context = { - enumName, - explicitType, - memberName - }; - memberNode.id = id; - - switch (init.type) { - case "boolean": - { - this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "boolean"); - memberNode.init = init.value; - members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); - break; - } - - case "number": - { - this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "number"); - memberNode.init = init.value; - members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); - break; - } - - case "string": - { - this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "string"); - memberNode.init = init.value; - members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); - break; - } - - case "invalid": - { - throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context); - } - - case "none": - { - switch (explicitType) { - case "boolean": - this.flowEnumErrorBooleanMemberNotInitialized(init.pos, context); - break; - - case "number": - this.flowEnumErrorNumberMemberNotInitialized(init.pos, context); - break; - - default: - members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); - } - } - } - - if (!this.match(types.braceR)) { - this.expect(types.comma); - } - } - - return { - members, - hasUnknownMembers - }; - } - - flowEnumStringMembers(initializedMembers, defaultedMembers, { - enumName - }) { - if (initializedMembers.length === 0) { - return defaultedMembers; - } else if (defaultedMembers.length === 0) { - return initializedMembers; - } else if (defaultedMembers.length > initializedMembers.length) { - for (const member of initializedMembers) { - this.flowEnumErrorStringMemberInconsistentlyInitailized(member.start, { - enumName - }); - } - - return defaultedMembers; - } else { - for (const member of defaultedMembers) { - this.flowEnumErrorStringMemberInconsistentlyInitailized(member.start, { - enumName - }); - } - - return initializedMembers; - } - } - - flowEnumParseExplicitType({ - enumName - }) { - if (this.eatContextual("of")) { - if (!this.match(types.name)) { - throw this.flowEnumErrorInvalidExplicitType(this.state.start, { - enumName, - suppliedType: null - }); - } - - const { - value - } = this.state; - this.next(); - - if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { - this.flowEnumErrorInvalidExplicitType(this.state.start, { - enumName, - suppliedType: value - }); - } - - return value; - } - - return null; - } - - flowEnumBody(node, { - enumName, - nameLoc - }) { - const explicitType = this.flowEnumParseExplicitType({ - enumName - }); - this.expect(types.braceL); - const { - members, - hasUnknownMembers - } = this.flowEnumMembers({ - enumName, - explicitType - }); - node.hasUnknownMembers = hasUnknownMembers; - - switch (explicitType) { - case "boolean": - node.explicitType = true; - node.members = members.booleanMembers; - this.expect(types.braceR); - return this.finishNode(node, "EnumBooleanBody"); - - case "number": - node.explicitType = true; - node.members = members.numberMembers; - this.expect(types.braceR); - return this.finishNode(node, "EnumNumberBody"); - - case "string": - node.explicitType = true; - node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { - enumName - }); - this.expect(types.braceR); - return this.finishNode(node, "EnumStringBody"); - - case "symbol": - node.members = members.defaultedMembers; - this.expect(types.braceR); - return this.finishNode(node, "EnumSymbolBody"); - - default: - { - const empty = () => { - node.members = []; - this.expect(types.braceR); - return this.finishNode(node, "EnumStringBody"); - }; - - node.explicitType = false; - const boolsLen = members.booleanMembers.length; - const numsLen = members.numberMembers.length; - const strsLen = members.stringMembers.length; - const defaultedLen = members.defaultedMembers.length; - - if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { - return empty(); - } else if (!boolsLen && !numsLen) { - node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { - enumName - }); - this.expect(types.braceR); - return this.finishNode(node, "EnumStringBody"); - } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { - for (const member of members.defaultedMembers) { - this.flowEnumErrorBooleanMemberNotInitialized(member.start, { - enumName, - memberName: member.id.name - }); - } - - node.members = members.booleanMembers; - this.expect(types.braceR); - return this.finishNode(node, "EnumBooleanBody"); - } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { - for (const member of members.defaultedMembers) { - this.flowEnumErrorNumberMemberNotInitialized(member.start, { - enumName, - memberName: member.id.name - }); - } - - node.members = members.numberMembers; - this.expect(types.braceR); - return this.finishNode(node, "EnumNumberBody"); - } else { - this.flowEnumErrorInconsistentMemberValues(nameLoc, { - enumName - }); - return empty(); - } - } - } - } - - flowParseEnumDeclaration(node) { - const id = this.parseIdentifier(); - node.id = id; - node.body = this.flowEnumBody(this.startNode(), { - enumName: id.name, - nameLoc: id.start - }); - return this.finishNode(node, "EnumDeclaration"); - } - - updateContext(prevType) { - if (this.match(types.name) && this.state.value === "of" && prevType === types.name && this.input.slice(this.state.lastTokStart, this.state.lastTokEnd) === "interface") { - this.state.exprAllowed = false; - } else { - super.updateContext(prevType); - } - } - - isLookaheadToken_lt() { - const next = this.nextTokenStart(); - - if (this.input.charCodeAt(next) === 60) { - const afterNext = this.input.charCodeAt(next + 1); - return afterNext !== 60 && afterNext !== 61; - } - - return false; - } - - maybeUnwrapTypeCastExpression(node) { - return node.type === "TypeCastExpression" ? node.expression : node; - } - - }, _temp; -}); - -const entities = { - quot: "\u0022", - amp: "&", - apos: "\u0027", - lt: "<", - gt: ">", - nbsp: "\u00A0", - iexcl: "\u00A1", - cent: "\u00A2", - pound: "\u00A3", - curren: "\u00A4", - yen: "\u00A5", - brvbar: "\u00A6", - sect: "\u00A7", - uml: "\u00A8", - copy: "\u00A9", - ordf: "\u00AA", - laquo: "\u00AB", - not: "\u00AC", - shy: "\u00AD", - reg: "\u00AE", - macr: "\u00AF", - deg: "\u00B0", - plusmn: "\u00B1", - sup2: "\u00B2", - sup3: "\u00B3", - acute: "\u00B4", - micro: "\u00B5", - para: "\u00B6", - middot: "\u00B7", - cedil: "\u00B8", - sup1: "\u00B9", - ordm: "\u00BA", - raquo: "\u00BB", - frac14: "\u00BC", - frac12: "\u00BD", - frac34: "\u00BE", - iquest: "\u00BF", - Agrave: "\u00C0", - Aacute: "\u00C1", - Acirc: "\u00C2", - Atilde: "\u00C3", - Auml: "\u00C4", - Aring: "\u00C5", - AElig: "\u00C6", - Ccedil: "\u00C7", - Egrave: "\u00C8", - Eacute: "\u00C9", - Ecirc: "\u00CA", - Euml: "\u00CB", - Igrave: "\u00CC", - Iacute: "\u00CD", - Icirc: "\u00CE", - Iuml: "\u00CF", - ETH: "\u00D0", - Ntilde: "\u00D1", - Ograve: "\u00D2", - Oacute: "\u00D3", - Ocirc: "\u00D4", - Otilde: "\u00D5", - Ouml: "\u00D6", - times: "\u00D7", - Oslash: "\u00D8", - Ugrave: "\u00D9", - Uacute: "\u00DA", - Ucirc: "\u00DB", - Uuml: "\u00DC", - Yacute: "\u00DD", - THORN: "\u00DE", - szlig: "\u00DF", - agrave: "\u00E0", - aacute: "\u00E1", - acirc: "\u00E2", - atilde: "\u00E3", - auml: "\u00E4", - aring: "\u00E5", - aelig: "\u00E6", - ccedil: "\u00E7", - egrave: "\u00E8", - eacute: "\u00E9", - ecirc: "\u00EA", - euml: "\u00EB", - igrave: "\u00EC", - iacute: "\u00ED", - icirc: "\u00EE", - iuml: "\u00EF", - eth: "\u00F0", - ntilde: "\u00F1", - ograve: "\u00F2", - oacute: "\u00F3", - ocirc: "\u00F4", - otilde: "\u00F5", - ouml: "\u00F6", - divide: "\u00F7", - oslash: "\u00F8", - ugrave: "\u00F9", - uacute: "\u00FA", - ucirc: "\u00FB", - uuml: "\u00FC", - yacute: "\u00FD", - thorn: "\u00FE", - yuml: "\u00FF", - OElig: "\u0152", - oelig: "\u0153", - Scaron: "\u0160", - scaron: "\u0161", - Yuml: "\u0178", - fnof: "\u0192", - circ: "\u02C6", - tilde: "\u02DC", - Alpha: "\u0391", - Beta: "\u0392", - Gamma: "\u0393", - Delta: "\u0394", - Epsilon: "\u0395", - Zeta: "\u0396", - Eta: "\u0397", - Theta: "\u0398", - Iota: "\u0399", - Kappa: "\u039A", - Lambda: "\u039B", - Mu: "\u039C", - Nu: "\u039D", - Xi: "\u039E", - Omicron: "\u039F", - Pi: "\u03A0", - Rho: "\u03A1", - Sigma: "\u03A3", - Tau: "\u03A4", - Upsilon: "\u03A5", - Phi: "\u03A6", - Chi: "\u03A7", - Psi: "\u03A8", - Omega: "\u03A9", - alpha: "\u03B1", - beta: "\u03B2", - gamma: "\u03B3", - delta: "\u03B4", - epsilon: "\u03B5", - zeta: "\u03B6", - eta: "\u03B7", - theta: "\u03B8", - iota: "\u03B9", - kappa: "\u03BA", - lambda: "\u03BB", - mu: "\u03BC", - nu: "\u03BD", - xi: "\u03BE", - omicron: "\u03BF", - pi: "\u03C0", - rho: "\u03C1", - sigmaf: "\u03C2", - sigma: "\u03C3", - tau: "\u03C4", - upsilon: "\u03C5", - phi: "\u03C6", - chi: "\u03C7", - psi: "\u03C8", - omega: "\u03C9", - thetasym: "\u03D1", - upsih: "\u03D2", - piv: "\u03D6", - ensp: "\u2002", - emsp: "\u2003", - thinsp: "\u2009", - zwnj: "\u200C", - zwj: "\u200D", - lrm: "\u200E", - rlm: "\u200F", - ndash: "\u2013", - mdash: "\u2014", - lsquo: "\u2018", - rsquo: "\u2019", - sbquo: "\u201A", - ldquo: "\u201C", - rdquo: "\u201D", - bdquo: "\u201E", - dagger: "\u2020", - Dagger: "\u2021", - bull: "\u2022", - hellip: "\u2026", - permil: "\u2030", - prime: "\u2032", - Prime: "\u2033", - lsaquo: "\u2039", - rsaquo: "\u203A", - oline: "\u203E", - frasl: "\u2044", - euro: "\u20AC", - image: "\u2111", - weierp: "\u2118", - real: "\u211C", - trade: "\u2122", - alefsym: "\u2135", - larr: "\u2190", - uarr: "\u2191", - rarr: "\u2192", - darr: "\u2193", - harr: "\u2194", - crarr: "\u21B5", - lArr: "\u21D0", - uArr: "\u21D1", - rArr: "\u21D2", - dArr: "\u21D3", - hArr: "\u21D4", - forall: "\u2200", - part: "\u2202", - exist: "\u2203", - empty: "\u2205", - nabla: "\u2207", - isin: "\u2208", - notin: "\u2209", - ni: "\u220B", - prod: "\u220F", - sum: "\u2211", - minus: "\u2212", - lowast: "\u2217", - radic: "\u221A", - prop: "\u221D", - infin: "\u221E", - ang: "\u2220", - and: "\u2227", - or: "\u2228", - cap: "\u2229", - cup: "\u222A", - int: "\u222B", - there4: "\u2234", - sim: "\u223C", - cong: "\u2245", - asymp: "\u2248", - ne: "\u2260", - equiv: "\u2261", - le: "\u2264", - ge: "\u2265", - sub: "\u2282", - sup: "\u2283", - nsub: "\u2284", - sube: "\u2286", - supe: "\u2287", - oplus: "\u2295", - otimes: "\u2297", - perp: "\u22A5", - sdot: "\u22C5", - lceil: "\u2308", - rceil: "\u2309", - lfloor: "\u230A", - rfloor: "\u230B", - lang: "\u2329", - rang: "\u232A", - loz: "\u25CA", - spades: "\u2660", - clubs: "\u2663", - hearts: "\u2665", - diams: "\u2666" -}; - -const HEX_NUMBER = /^[\da-fA-F]+$/; -const DECIMAL_NUMBER = /^\d+$/; -const JsxErrors = Object.freeze({ - AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression", - MissingClosingTagElement: "Expected corresponding JSX closing tag for <%0>", - MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>", - UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", - UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text", - UnterminatedJsxContent: "Unterminated JSX contents", - UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?" -}); -types$1.j_oTag = new TokContext("...", true, true); -types.jsxName = new TokenType("jsxName"); -types.jsxText = new TokenType("jsxText", { - beforeExpr: true -}); -types.jsxTagStart = new TokenType("jsxTagStart", { - startsExpr: true -}); -types.jsxTagEnd = new TokenType("jsxTagEnd"); - -types.jsxTagStart.updateContext = function () { - this.state.context.push(types$1.j_expr); - this.state.context.push(types$1.j_oTag); - this.state.exprAllowed = false; -}; - -types.jsxTagEnd.updateContext = function (prevType) { - const out = this.state.context.pop(); - - if (out === types$1.j_oTag && prevType === types.slash || out === types$1.j_cTag) { - this.state.context.pop(); - this.state.exprAllowed = this.curContext() === types$1.j_expr; - } else { - this.state.exprAllowed = true; - } -}; - -function isFragment(object) { - return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; -} - -function getQualifiedJSXName(object) { - if (object.type === "JSXIdentifier") { - return object.name; - } - - if (object.type === "JSXNamespacedName") { - return object.namespace.name + ":" + object.name.name; - } - - if (object.type === "JSXMemberExpression") { - return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); - } - - throw new Error("Node had unexpected type: " + object.type); -} - -var jsx = (superClass => class extends superClass { - jsxReadToken() { - let out = ""; - let chunkStart = this.state.pos; - - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent); - } - - const ch = this.input.charCodeAt(this.state.pos); - - switch (ch) { - case 60: - case 123: - if (this.state.pos === this.state.start) { - if (ch === 60 && this.state.exprAllowed) { - ++this.state.pos; - return this.finishToken(types.jsxTagStart); - } - - return super.getTokenFromCode(ch); - } - - out += this.input.slice(chunkStart, this.state.pos); - return this.finishToken(types.jsxText, out); - - case 38: - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadEntity(); - chunkStart = this.state.pos; - break; - - case 62: - case 125: - - default: - if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadNewLine(true); - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } - - } - } - } - - jsxReadNewLine(normalizeCRLF) { - const ch = this.input.charCodeAt(this.state.pos); - let out; - ++this.state.pos; - - if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { - ++this.state.pos; - out = normalizeCRLF ? "\n" : "\r\n"; - } else { - out = String.fromCharCode(ch); - } - - ++this.state.curLine; - this.state.lineStart = this.state.pos; - return out; - } - - jsxReadString(quote) { - let out = ""; - let chunkStart = ++this.state.pos; - - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedString); - } - - const ch = this.input.charCodeAt(this.state.pos); - if (ch === quote) break; - - if (ch === 38) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadEntity(); - chunkStart = this.state.pos; - } else if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadNewLine(false); - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } - } - - out += this.input.slice(chunkStart, this.state.pos++); - return this.finishToken(types.string, out); - } - - jsxReadEntity() { - let str = ""; - let count = 0; - let entity; - let ch = this.input[this.state.pos]; - const startPos = ++this.state.pos; - - while (this.state.pos < this.length && count++ < 10) { - ch = this.input[this.state.pos++]; - - if (ch === ";") { - if (str[0] === "#") { - if (str[1] === "x") { - str = str.substr(2); - - if (HEX_NUMBER.test(str)) { - entity = String.fromCodePoint(parseInt(str, 16)); - } - } else { - str = str.substr(1); - - if (DECIMAL_NUMBER.test(str)) { - entity = String.fromCodePoint(parseInt(str, 10)); - } - } - } else { - entity = entities[str]; - } - - break; - } - - str += ch; - } - - if (!entity) { - this.state.pos = startPos; - return "&"; - } - - return entity; - } - - jsxReadWord() { - let ch; - const start = this.state.pos; - - do { - ch = this.input.charCodeAt(++this.state.pos); - } while (isIdentifierChar(ch) || ch === 45); - - return this.finishToken(types.jsxName, this.input.slice(start, this.state.pos)); - } - - jsxParseIdentifier() { - const node = this.startNode(); - - if (this.match(types.jsxName)) { - node.name = this.state.value; - } else if (this.state.type.keyword) { - node.name = this.state.type.keyword; - } else { - this.unexpected(); - } - - this.next(); - return this.finishNode(node, "JSXIdentifier"); - } - - jsxParseNamespacedName() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const name = this.jsxParseIdentifier(); - if (!this.eat(types.colon)) return name; - const node = this.startNodeAt(startPos, startLoc); - node.namespace = name; - node.name = this.jsxParseIdentifier(); - return this.finishNode(node, "JSXNamespacedName"); - } - - jsxParseElementName() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let node = this.jsxParseNamespacedName(); - - if (node.type === "JSXNamespacedName") { - return node; - } - - while (this.eat(types.dot)) { - const newNode = this.startNodeAt(startPos, startLoc); - newNode.object = node; - newNode.property = this.jsxParseIdentifier(); - node = this.finishNode(newNode, "JSXMemberExpression"); - } - - return node; - } - - jsxParseAttributeValue() { - let node; - - switch (this.state.type) { - case types.braceL: - node = this.startNode(); - this.next(); - node = this.jsxParseExpressionContainer(node); - - if (node.expression.type === "JSXEmptyExpression") { - this.raise(node.start, JsxErrors.AttributeIsEmpty); - } - - return node; - - case types.jsxTagStart: - case types.string: - return this.parseExprAtom(); - - default: - throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue); - } - } - - jsxParseEmptyExpression() { - const node = this.startNodeAt(this.state.lastTokEnd, this.state.lastTokEndLoc); - return this.finishNodeAt(node, "JSXEmptyExpression", this.state.start, this.state.startLoc); - } - - jsxParseSpreadChild(node) { - this.next(); - node.expression = this.parseExpression(); - this.expect(types.braceR); - return this.finishNode(node, "JSXSpreadChild"); - } - - jsxParseExpressionContainer(node) { - if (this.match(types.braceR)) { - node.expression = this.jsxParseEmptyExpression(); - } else { - const expression = this.parseExpression(); - node.expression = expression; - } - - this.expect(types.braceR); - return this.finishNode(node, "JSXExpressionContainer"); - } - - jsxParseAttribute() { - const node = this.startNode(); - - if (this.eat(types.braceL)) { - this.expect(types.ellipsis); - node.argument = this.parseMaybeAssignAllowIn(); - this.expect(types.braceR); - return this.finishNode(node, "JSXSpreadAttribute"); - } - - node.name = this.jsxParseNamespacedName(); - node.value = this.eat(types.eq) ? this.jsxParseAttributeValue() : null; - return this.finishNode(node, "JSXAttribute"); - } - - jsxParseOpeningElementAt(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - - if (this.match(types.jsxTagEnd)) { - this.expect(types.jsxTagEnd); - return this.finishNode(node, "JSXOpeningFragment"); - } - - node.name = this.jsxParseElementName(); - return this.jsxParseOpeningElementAfterName(node); - } - - jsxParseOpeningElementAfterName(node) { - const attributes = []; - - while (!this.match(types.slash) && !this.match(types.jsxTagEnd)) { - attributes.push(this.jsxParseAttribute()); - } - - node.attributes = attributes; - node.selfClosing = this.eat(types.slash); - this.expect(types.jsxTagEnd); - return this.finishNode(node, "JSXOpeningElement"); - } - - jsxParseClosingElementAt(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - - if (this.match(types.jsxTagEnd)) { - this.expect(types.jsxTagEnd); - return this.finishNode(node, "JSXClosingFragment"); - } - - node.name = this.jsxParseElementName(); - this.expect(types.jsxTagEnd); - return this.finishNode(node, "JSXClosingElement"); - } - - jsxParseElementAt(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - const children = []; - const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc); - let closingElement = null; - - if (!openingElement.selfClosing) { - contents: for (;;) { - switch (this.state.type) { - case types.jsxTagStart: - startPos = this.state.start; - startLoc = this.state.startLoc; - this.next(); - - if (this.eat(types.slash)) { - closingElement = this.jsxParseClosingElementAt(startPos, startLoc); - break contents; - } - - children.push(this.jsxParseElementAt(startPos, startLoc)); - break; - - case types.jsxText: - children.push(this.parseExprAtom()); - break; - - case types.braceL: - { - const node = this.startNode(); - this.next(); - - if (this.match(types.ellipsis)) { - children.push(this.jsxParseSpreadChild(node)); - } else { - children.push(this.jsxParseExpressionContainer(node)); - } - - break; - } - - default: - throw this.unexpected(); - } - } - - if (isFragment(openingElement) && !isFragment(closingElement)) { - this.raise(closingElement.start, JsxErrors.MissingClosingTagFragment); - } else if (!isFragment(openingElement) && isFragment(closingElement)) { - this.raise(closingElement.start, JsxErrors.MissingClosingTagElement, getQualifiedJSXName(openingElement.name)); - } else if (!isFragment(openingElement) && !isFragment(closingElement)) { - if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { - this.raise(closingElement.start, JsxErrors.MissingClosingTagElement, getQualifiedJSXName(openingElement.name)); - } - } - } - - if (isFragment(openingElement)) { - node.openingFragment = openingElement; - node.closingFragment = closingElement; - } else { - node.openingElement = openingElement; - node.closingElement = closingElement; - } - - node.children = children; - - if (this.isRelational("<")) { - throw this.raise(this.state.start, JsxErrors.UnwrappedAdjacentJSXElements); - } - - return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); - } - - jsxParseElement() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - this.next(); - return this.jsxParseElementAt(startPos, startLoc); - } - - parseExprAtom(refExpressionErrors) { - if (this.match(types.jsxText)) { - return this.parseLiteral(this.state.value, "JSXText"); - } else if (this.match(types.jsxTagStart)) { - return this.jsxParseElement(); - } else if (this.isRelational("<") && this.input.charCodeAt(this.state.pos) !== 33) { - this.finishToken(types.jsxTagStart); - return this.jsxParseElement(); - } else { - return super.parseExprAtom(refExpressionErrors); - } - } - - getTokenFromCode(code) { - if (this.state.inPropertyName) return super.getTokenFromCode(code); - const context = this.curContext(); - - if (context === types$1.j_expr) { - return this.jsxReadToken(); - } - - if (context === types$1.j_oTag || context === types$1.j_cTag) { - if (isIdentifierStart(code)) { - return this.jsxReadWord(); - } - - if (code === 62) { - ++this.state.pos; - return this.finishToken(types.jsxTagEnd); - } - - if ((code === 34 || code === 39) && context === types$1.j_oTag) { - return this.jsxReadString(code); - } - } - - if (code === 60 && this.state.exprAllowed && this.input.charCodeAt(this.state.pos + 1) !== 33) { - ++this.state.pos; - return this.finishToken(types.jsxTagStart); - } - - return super.getTokenFromCode(code); - } - - updateContext(prevType) { - if (this.match(types.braceL)) { - const curContext = this.curContext(); - - if (curContext === types$1.j_oTag) { - this.state.context.push(types$1.braceExpression); - } else if (curContext === types$1.j_expr) { - this.state.context.push(types$1.templateQuasi); - } else { - super.updateContext(prevType); - } - - this.state.exprAllowed = true; - } else if (this.match(types.slash) && prevType === types.jsxTagStart) { - this.state.context.length -= 2; - this.state.context.push(types$1.j_cTag); - this.state.exprAllowed = false; - } else { - return super.updateContext(prevType); - } - } - -}); - -class TypeScriptScope extends Scope { - constructor(...args) { - super(...args); - this.types = []; - this.enums = []; - this.constEnums = []; - this.classes = []; - this.exportOnlyBindings = []; - } - -} - -class TypeScriptScopeHandler extends ScopeHandler { - createScope(flags) { - return new TypeScriptScope(flags); - } - - declareName(name, bindingType, pos) { - const scope = this.currentScope(); - - if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) { - this.maybeExportDefined(scope, name); - scope.exportOnlyBindings.push(name); - return; - } - - super.declareName(...arguments); - - if (bindingType & BIND_KIND_TYPE) { - if (!(bindingType & BIND_KIND_VALUE)) { - this.checkRedeclarationInScope(scope, name, bindingType, pos); - this.maybeExportDefined(scope, name); - } - - scope.types.push(name); - } - - if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.push(name); - if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.push(name); - if (bindingType & BIND_FLAGS_CLASS) scope.classes.push(name); - } - - isRedeclaredInScope(scope, name, bindingType) { - if (scope.enums.indexOf(name) > -1) { - if (bindingType & BIND_FLAGS_TS_ENUM) { - const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM); - const wasConst = scope.constEnums.indexOf(name) > -1; - return isConst !== wasConst; - } - - return true; - } - - if (bindingType & BIND_FLAGS_CLASS && scope.classes.indexOf(name) > -1) { - if (scope.lexical.indexOf(name) > -1) { - return !!(bindingType & BIND_KIND_VALUE); - } else { - return false; - } - } - - if (bindingType & BIND_KIND_TYPE && scope.types.indexOf(name) > -1) { - return true; - } - - return super.isRedeclaredInScope(...arguments); - } - - checkLocalExport(id) { - if (this.scopeStack[0].types.indexOf(id.name) === -1 && this.scopeStack[0].exportOnlyBindings.indexOf(id.name) === -1) { - super.checkLocalExport(id); - } - } - -} - -const PARAM = 0b0000, - PARAM_YIELD = 0b0001, - PARAM_AWAIT = 0b0010, - PARAM_RETURN = 0b0100, - PARAM_IN = 0b1000; -class ProductionParameterHandler { - constructor() { - this.stacks = []; - } - - enter(flags) { - this.stacks.push(flags); - } - - exit() { - this.stacks.pop(); - } - - currentFlags() { - return this.stacks[this.stacks.length - 1]; - } - - get hasAwait() { - return (this.currentFlags() & PARAM_AWAIT) > 0; - } - - get hasYield() { - return (this.currentFlags() & PARAM_YIELD) > 0; - } - - get hasReturn() { - return (this.currentFlags() & PARAM_RETURN) > 0; - } - - get hasIn() { - return (this.currentFlags() & PARAM_IN) > 0; - } - -} -function functionFlags(isAsync, isGenerator) { - return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0); -} - -function nonNull(x) { - if (x == null) { - throw new Error(`Unexpected ${x} value.`); - } - - return x; -} - -function assert(x) { - if (!x) { - throw new Error("Assert fail"); - } -} - -const TSErrors = Object.freeze({ - AbstractMethodHasImplementation: "Method '%0' cannot have an implementation because it is marked abstract.", - ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier", - ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier", - ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.", - DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.", - DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.", - DuplicateAccessibilityModifier: "Accessibility modifier already seen.", - DuplicateModifier: "Duplicate modifier: '%0'", - EmptyHeritageClauseType: "'%0' list cannot be empty.", - EmptyTypeArguments: "Type argument list cannot be empty.", - EmptyTypeParameters: "Type parameter list cannot be empty.", - ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.", - ImportAliasHasImportType: "An import alias can not use 'import type'", - IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier", - IndexSignatureHasAccessibility: "Index signatures cannot have an accessibility modifier ('%0')", - IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier", - IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier", - InvalidModifierOnTypeMember: "'%0' modifier cannot appear on a type member.", - InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", - MixedLabeledAndUnlabeledElements: "Tuple members must all have names or all not have names.", - NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", - NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.", - OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", - PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", - PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.", - PrivateElementHasAccessibility: "Private elements cannot have an accessibility modifier ('%0')", - ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.", - TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`", - UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.", - UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.", - UnexpectedTypeAnnotation: "Did not expect a type annotation here.", - UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.", - UnsupportedImportTypeArgument: "Argument in a type import must be a string literal", - UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.", - UnsupportedSignatureParameterKind: "Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0" -}); - -function keywordTypeFromName(value) { - switch (value) { - case "any": - return "TSAnyKeyword"; - - case "boolean": - return "TSBooleanKeyword"; - - case "bigint": - return "TSBigIntKeyword"; - - case "never": - return "TSNeverKeyword"; - - case "number": - return "TSNumberKeyword"; - - case "object": - return "TSObjectKeyword"; - - case "string": - return "TSStringKeyword"; - - case "symbol": - return "TSSymbolKeyword"; - - case "undefined": - return "TSUndefinedKeyword"; - - case "unknown": - return "TSUnknownKeyword"; - - default: - return undefined; - } -} - -function tsIsAccessModifier(modifier) { - return modifier === "private" || modifier === "public" || modifier === "protected"; -} - -var typescript = (superClass => class extends superClass { - getScopeHandler() { - return TypeScriptScopeHandler; - } - - tsIsIdentifier() { - return this.match(types.name); - } - - tsNextTokenCanFollowModifier() { - this.next(); - return (this.match(types.bracketL) || this.match(types.braceL) || this.match(types.star) || this.match(types.ellipsis) || this.match(types.hash) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak(); - } - - tsParseModifier(allowedModifiers) { - if (!this.match(types.name)) { - return undefined; - } - - const modifier = this.state.value; - - if (allowedModifiers.indexOf(modifier) !== -1 && this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) { - return modifier; - } - - return undefined; - } - - tsParseModifiers(modified, allowedModifiers, disallowedModifiers, errorTemplate) { - for (;;) { - const startPos = this.state.start; - const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : [])); - if (!modifier) break; - - if (tsIsAccessModifier(modifier)) { - if (modified.accessibility) { - this.raise(startPos, TSErrors.DuplicateAccessibilityModifier); - } else { - modified.accessibility = modifier; - } - } else { - if (Object.hasOwnProperty.call(modified, modifier)) { - this.raise(startPos, TSErrors.DuplicateModifier, modifier); - } - - modified[modifier] = true; - } - - if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) { - this.raise(startPos, errorTemplate, modifier); - } - } - } - - tsIsListTerminator(kind) { - switch (kind) { - case "EnumMembers": - case "TypeMembers": - return this.match(types.braceR); - - case "HeritageClauseElement": - return this.match(types.braceL); - - case "TupleElementTypes": - return this.match(types.bracketR); - - case "TypeParametersOrArguments": - return this.isRelational(">"); - } - - throw new Error("Unreachable"); - } - - tsParseList(kind, parseElement) { - const result = []; - - while (!this.tsIsListTerminator(kind)) { - result.push(parseElement()); - } - - return result; - } - - tsParseDelimitedList(kind, parseElement) { - return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true)); - } - - tsParseDelimitedListWorker(kind, parseElement, expectSuccess) { - const result = []; - - for (;;) { - if (this.tsIsListTerminator(kind)) { - break; - } - - const element = parseElement(); - - if (element == null) { - return undefined; - } - - result.push(element); - - if (this.eat(types.comma)) { - continue; - } - - if (this.tsIsListTerminator(kind)) { - break; - } - - if (expectSuccess) { - this.expect(types.comma); - } - - return undefined; - } - - return result; - } - - tsParseBracketedList(kind, parseElement, bracket, skipFirstToken) { - if (!skipFirstToken) { - if (bracket) { - this.expect(types.bracketL); - } else { - this.expectRelational("<"); - } - } - - const result = this.tsParseDelimitedList(kind, parseElement); - - if (bracket) { - this.expect(types.bracketR); - } else { - this.expectRelational(">"); - } - - return result; - } - - tsParseImportType() { - const node = this.startNode(); - this.expect(types._import); - this.expect(types.parenL); - - if (!this.match(types.string)) { - this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument); - } - - node.argument = this.parseExprAtom(); - this.expect(types.parenR); - - if (this.eat(types.dot)) { - node.qualifier = this.tsParseEntityName(true); - } - - if (this.isRelational("<")) { - node.typeParameters = this.tsParseTypeArguments(); - } - - return this.finishNode(node, "TSImportType"); - } - - tsParseEntityName(allowReservedWords) { - let entity = this.parseIdentifier(); - - while (this.eat(types.dot)) { - const node = this.startNodeAtNode(entity); - node.left = entity; - node.right = this.parseIdentifier(allowReservedWords); - entity = this.finishNode(node, "TSQualifiedName"); - } - - return entity; - } - - tsParseTypeReference() { - const node = this.startNode(); - node.typeName = this.tsParseEntityName(false); - - if (!this.hasPrecedingLineBreak() && this.isRelational("<")) { - node.typeParameters = this.tsParseTypeArguments(); - } - - return this.finishNode(node, "TSTypeReference"); - } - - tsParseThisTypePredicate(lhs) { - this.next(); - const node = this.startNodeAtNode(lhs); - node.parameterName = lhs; - node.typeAnnotation = this.tsParseTypeAnnotation(false); - node.asserts = false; - return this.finishNode(node, "TSTypePredicate"); - } - - tsParseThisTypeNode() { - const node = this.startNode(); - this.next(); - return this.finishNode(node, "TSThisType"); - } - - tsParseTypeQuery() { - const node = this.startNode(); - this.expect(types._typeof); - - if (this.match(types._import)) { - node.exprName = this.tsParseImportType(); - } else { - node.exprName = this.tsParseEntityName(true); - } - - return this.finishNode(node, "TSTypeQuery"); - } - - tsParseTypeParameter() { - const node = this.startNode(); - node.name = this.parseIdentifierName(node.start); - node.constraint = this.tsEatThenParseType(types._extends); - node.default = this.tsEatThenParseType(types.eq); - return this.finishNode(node, "TSTypeParameter"); - } - - tsTryParseTypeParameters() { - if (this.isRelational("<")) { - return this.tsParseTypeParameters(); - } - } - - tsParseTypeParameters() { - const node = this.startNode(); - - if (this.isRelational("<") || this.match(types.jsxTagStart)) { - this.next(); - } else { - this.unexpected(); - } - - node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this), false, true); - - if (node.params.length === 0) { - this.raise(node.start, TSErrors.EmptyTypeParameters); - } - - return this.finishNode(node, "TSTypeParameterDeclaration"); - } - - tsTryNextParseConstantContext() { - if (this.lookahead().type === types._const) { - this.next(); - return this.tsParseTypeReference(); - } - - return null; - } - - tsFillSignature(returnToken, signature) { - const returnTokenRequired = returnToken === types.arrow; - signature.typeParameters = this.tsTryParseTypeParameters(); - this.expect(types.parenL); - signature.parameters = this.tsParseBindingListForSignature(); - - if (returnTokenRequired) { - signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(returnToken); - } else if (this.match(returnToken)) { - signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(returnToken); - } - } - - tsParseBindingListForSignature() { - return this.parseBindingList(types.parenR, 41).map(pattern => { - if (pattern.type !== "Identifier" && pattern.type !== "RestElement" && pattern.type !== "ObjectPattern" && pattern.type !== "ArrayPattern") { - this.raise(pattern.start, TSErrors.UnsupportedSignatureParameterKind, pattern.type); - } - - return pattern; - }); - } - - tsParseTypeMemberSemicolon() { - if (!this.eat(types.comma)) { - this.semicolon(); - } - } - - tsParseSignatureMember(kind, node) { - this.tsFillSignature(types.colon, node); - this.tsParseTypeMemberSemicolon(); - return this.finishNode(node, kind); - } - - tsIsUnambiguouslyIndexSignature() { - this.next(); - return this.eat(types.name) && this.match(types.colon); - } - - tsTryParseIndexSignature(node) { - if (!(this.match(types.bracketL) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) { - return undefined; - } - - this.expect(types.bracketL); - const id = this.parseIdentifier(); - id.typeAnnotation = this.tsParseTypeAnnotation(); - this.resetEndLocation(id); - this.expect(types.bracketR); - node.parameters = [id]; - const type = this.tsTryParseTypeAnnotation(); - if (type) node.typeAnnotation = type; - this.tsParseTypeMemberSemicolon(); - return this.finishNode(node, "TSIndexSignature"); - } - - tsParsePropertyOrMethodSignature(node, readonly) { - if (this.eat(types.question)) node.optional = true; - const nodeAny = node; - - if (this.match(types.parenL) || this.isRelational("<")) { - if (readonly) { - this.raise(node.start, TSErrors.ReadonlyForMethodSignature); - } - - const method = nodeAny; - this.tsFillSignature(types.colon, method); - this.tsParseTypeMemberSemicolon(); - return this.finishNode(method, "TSMethodSignature"); - } else { - const property = nodeAny; - if (readonly) property.readonly = true; - const type = this.tsTryParseTypeAnnotation(); - if (type) property.typeAnnotation = type; - this.tsParseTypeMemberSemicolon(); - return this.finishNode(property, "TSPropertySignature"); - } - } - - tsParseTypeMember() { - const node = this.startNode(); - - if (this.match(types.parenL) || this.isRelational("<")) { - return this.tsParseSignatureMember("TSCallSignatureDeclaration", node); - } - - if (this.match(types._new)) { - const id = this.startNode(); - this.next(); - - if (this.match(types.parenL) || this.isRelational("<")) { - return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node); - } else { - node.key = this.createIdentifier(id, "new"); - return this.tsParsePropertyOrMethodSignature(node, false); - } - } - - this.tsParseModifiers(node, ["readonly"], ["declare", "abstract", "private", "protected", "public", "static"], TSErrors.InvalidModifierOnTypeMember); - const idx = this.tsTryParseIndexSignature(node); - - if (idx) { - return idx; - } - - this.parsePropertyName(node, false); - return this.tsParsePropertyOrMethodSignature(node, !!node.readonly); - } - - tsParseTypeLiteral() { - const node = this.startNode(); - node.members = this.tsParseObjectTypeMembers(); - return this.finishNode(node, "TSTypeLiteral"); - } - - tsParseObjectTypeMembers() { - this.expect(types.braceL); - const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this)); - this.expect(types.braceR); - return members; - } - - tsIsStartOfMappedType() { - this.next(); - - if (this.eat(types.plusMin)) { - return this.isContextual("readonly"); - } - - if (this.isContextual("readonly")) { - this.next(); - } - - if (!this.match(types.bracketL)) { - return false; - } - - this.next(); - - if (!this.tsIsIdentifier()) { - return false; - } - - this.next(); - return this.match(types._in); - } - - tsParseMappedTypeParameter() { - const node = this.startNode(); - node.name = this.parseIdentifierName(node.start); - node.constraint = this.tsExpectThenParseType(types._in); - return this.finishNode(node, "TSTypeParameter"); - } - - tsParseMappedType() { - const node = this.startNode(); - this.expect(types.braceL); - - if (this.match(types.plusMin)) { - node.readonly = this.state.value; - this.next(); - this.expectContextual("readonly"); - } else if (this.eatContextual("readonly")) { - node.readonly = true; - } - - this.expect(types.bracketL); - node.typeParameter = this.tsParseMappedTypeParameter(); - node.nameType = this.eatContextual("as") ? this.tsParseType() : null; - this.expect(types.bracketR); - - if (this.match(types.plusMin)) { - node.optional = this.state.value; - this.next(); - this.expect(types.question); - } else if (this.eat(types.question)) { - node.optional = true; - } - - node.typeAnnotation = this.tsTryParseType(); - this.semicolon(); - this.expect(types.braceR); - return this.finishNode(node, "TSMappedType"); - } - - tsParseTupleType() { - const node = this.startNode(); - node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false); - let seenOptionalElement = false; - let labeledElements = null; - node.elementTypes.forEach(elementNode => { - var _labeledElements; - - let { - type - } = elementNode; - - if (seenOptionalElement && type !== "TSRestType" && type !== "TSOptionalType" && !(type === "TSNamedTupleMember" && elementNode.optional)) { - this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired); - } - - seenOptionalElement = seenOptionalElement || type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType"; - - if (type === "TSRestType") { - elementNode = elementNode.typeAnnotation; - type = elementNode.type; - } - - const isLabeled = type === "TSNamedTupleMember"; - labeledElements = (_labeledElements = labeledElements) != null ? _labeledElements : isLabeled; - - if (labeledElements !== isLabeled) { - this.raise(elementNode.start, TSErrors.MixedLabeledAndUnlabeledElements); - } - }); - return this.finishNode(node, "TSTupleType"); - } - - tsParseTupleElementType() { - const { - start: startPos, - startLoc - } = this.state; - const rest = this.eat(types.ellipsis); - let type = this.tsParseType(); - const optional = this.eat(types.question); - const labeled = this.eat(types.colon); - - if (labeled) { - const labeledNode = this.startNodeAtNode(type); - labeledNode.optional = optional; - - if (type.type === "TSTypeReference" && !type.typeParameters && type.typeName.type === "Identifier") { - labeledNode.label = type.typeName; - } else { - this.raise(type.start, TSErrors.InvalidTupleMemberLabel); - labeledNode.label = type; - } - - labeledNode.elementType = this.tsParseType(); - type = this.finishNode(labeledNode, "TSNamedTupleMember"); - } else if (optional) { - const optionalTypeNode = this.startNodeAtNode(type); - optionalTypeNode.typeAnnotation = type; - type = this.finishNode(optionalTypeNode, "TSOptionalType"); - } - - if (rest) { - const restNode = this.startNodeAt(startPos, startLoc); - restNode.typeAnnotation = type; - type = this.finishNode(restNode, "TSRestType"); - } - - return type; - } - - tsParseParenthesizedType() { - const node = this.startNode(); - this.expect(types.parenL); - node.typeAnnotation = this.tsParseType(); - this.expect(types.parenR); - return this.finishNode(node, "TSParenthesizedType"); - } - - tsParseFunctionOrConstructorType(type, abstract) { - const node = this.startNode(); - - if (type === "TSConstructorType") { - node.abstract = !!abstract; - if (abstract) this.next(); - this.next(); - } - - this.tsFillSignature(types.arrow, node); - return this.finishNode(node, type); - } - - tsParseLiteralTypeNode() { - const node = this.startNode(); - - node.literal = (() => { - switch (this.state.type) { - case types.num: - case types.bigint: - case types.string: - case types._true: - case types._false: - return this.parseExprAtom(); - - default: - throw this.unexpected(); - } - })(); - - return this.finishNode(node, "TSLiteralType"); - } - - tsParseTemplateLiteralType() { - const node = this.startNode(); - node.literal = this.parseTemplate(false); - return this.finishNode(node, "TSLiteralType"); - } - - parseTemplateSubstitution() { - if (this.state.inType) return this.tsParseType(); - return super.parseTemplateSubstitution(); - } - - tsParseThisTypeOrThisTypePredicate() { - const thisKeyword = this.tsParseThisTypeNode(); - - if (this.isContextual("is") && !this.hasPrecedingLineBreak()) { - return this.tsParseThisTypePredicate(thisKeyword); - } else { - return thisKeyword; - } - } - - tsParseNonArrayType() { - switch (this.state.type) { - case types.name: - case types._void: - case types._null: - { - const type = this.match(types._void) ? "TSVoidKeyword" : this.match(types._null) ? "TSNullKeyword" : keywordTypeFromName(this.state.value); - - if (type !== undefined && this.lookaheadCharCode() !== 46) { - const node = this.startNode(); - this.next(); - return this.finishNode(node, type); - } - - return this.tsParseTypeReference(); - } - - case types.string: - case types.num: - case types.bigint: - case types._true: - case types._false: - return this.tsParseLiteralTypeNode(); - - case types.plusMin: - if (this.state.value === "-") { - const node = this.startNode(); - const nextToken = this.lookahead(); - - if (nextToken.type !== types.num && nextToken.type !== types.bigint) { - throw this.unexpected(); - } - - node.literal = this.parseMaybeUnary(); - return this.finishNode(node, "TSLiteralType"); - } - - break; - - case types._this: - return this.tsParseThisTypeOrThisTypePredicate(); - - case types._typeof: - return this.tsParseTypeQuery(); - - case types._import: - return this.tsParseImportType(); - - case types.braceL: - return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral(); - - case types.bracketL: - return this.tsParseTupleType(); - - case types.parenL: - return this.tsParseParenthesizedType(); - - case types.backQuote: - return this.tsParseTemplateLiteralType(); - } - - throw this.unexpected(); - } - - tsParseArrayTypeOrHigher() { - let type = this.tsParseNonArrayType(); - - while (!this.hasPrecedingLineBreak() && this.eat(types.bracketL)) { - if (this.match(types.bracketR)) { - const node = this.startNodeAtNode(type); - node.elementType = type; - this.expect(types.bracketR); - type = this.finishNode(node, "TSArrayType"); - } else { - const node = this.startNodeAtNode(type); - node.objectType = type; - node.indexType = this.tsParseType(); - this.expect(types.bracketR); - type = this.finishNode(node, "TSIndexedAccessType"); - } - } - - return type; - } - - tsParseTypeOperator(operator) { - const node = this.startNode(); - this.expectContextual(operator); - node.operator = operator; - node.typeAnnotation = this.tsParseTypeOperatorOrHigher(); - - if (operator === "readonly") { - this.tsCheckTypeAnnotationForReadOnly(node); - } - - return this.finishNode(node, "TSTypeOperator"); - } - - tsCheckTypeAnnotationForReadOnly(node) { - switch (node.typeAnnotation.type) { - case "TSTupleType": - case "TSArrayType": - return; - - default: - this.raise(node.start, TSErrors.UnexpectedReadonly); - } - } - - tsParseInferType() { - const node = this.startNode(); - this.expectContextual("infer"); - const typeParameter = this.startNode(); - typeParameter.name = this.parseIdentifierName(typeParameter.start); - node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); - return this.finishNode(node, "TSInferType"); - } - - tsParseTypeOperatorOrHigher() { - const operator = ["keyof", "unique", "readonly"].find(kw => this.isContextual(kw)); - return operator ? this.tsParseTypeOperator(operator) : this.isContextual("infer") ? this.tsParseInferType() : this.tsParseArrayTypeOrHigher(); - } - - tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { - const node = this.startNode(); - const hasLeadingOperator = this.eat(operator); - const types = []; - - do { - types.push(parseConstituentType()); - } while (this.eat(operator)); - - if (types.length === 1 && !hasLeadingOperator) { - return types[0]; - } - - node.types = types; - return this.finishNode(node, kind); - } - - tsParseIntersectionTypeOrHigher() { - return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), types.bitwiseAND); - } - - tsParseUnionTypeOrHigher() { - return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), types.bitwiseOR); - } - - tsIsStartOfFunctionType() { - if (this.isRelational("<")) { - return true; - } - - return this.match(types.parenL) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this)); - } - - tsSkipParameterStart() { - if (this.match(types.name) || this.match(types._this)) { - this.next(); - return true; - } - - if (this.match(types.braceL)) { - let braceStackCounter = 1; - this.next(); - - while (braceStackCounter > 0) { - if (this.match(types.braceL)) { - ++braceStackCounter; - } else if (this.match(types.braceR)) { - --braceStackCounter; - } - - this.next(); - } - - return true; - } - - if (this.match(types.bracketL)) { - let braceStackCounter = 1; - this.next(); - - while (braceStackCounter > 0) { - if (this.match(types.bracketL)) { - ++braceStackCounter; - } else if (this.match(types.bracketR)) { - --braceStackCounter; - } - - this.next(); - } - - return true; - } - - return false; - } - - tsIsUnambiguouslyStartOfFunctionType() { - this.next(); - - if (this.match(types.parenR) || this.match(types.ellipsis)) { - return true; - } - - if (this.tsSkipParameterStart()) { - if (this.match(types.colon) || this.match(types.comma) || this.match(types.question) || this.match(types.eq)) { - return true; - } - - if (this.match(types.parenR)) { - this.next(); - - if (this.match(types.arrow)) { - return true; - } - } - } - - return false; - } - - tsParseTypeOrTypePredicateAnnotation(returnToken) { - return this.tsInType(() => { - const t = this.startNode(); - this.expect(returnToken); - const node = this.startNode(); - const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this)); - - if (asserts && this.match(types._this)) { - let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate(); - - if (thisTypePredicate.type === "TSThisType") { - node.parameterName = thisTypePredicate; - node.asserts = true; - thisTypePredicate = this.finishNode(node, "TSTypePredicate"); - } else { - this.resetStartLocationFromNode(thisTypePredicate, node); - thisTypePredicate.asserts = true; - } - - t.typeAnnotation = thisTypePredicate; - return this.finishNode(t, "TSTypeAnnotation"); - } - - const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this)); - - if (!typePredicateVariable) { - if (!asserts) { - return this.tsParseTypeAnnotation(false, t); - } - - node.parameterName = this.parseIdentifier(); - node.asserts = asserts; - t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); - return this.finishNode(t, "TSTypeAnnotation"); - } - - const type = this.tsParseTypeAnnotation(false); - node.parameterName = typePredicateVariable; - node.typeAnnotation = type; - node.asserts = asserts; - t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); - return this.finishNode(t, "TSTypeAnnotation"); - }); - } - - tsTryParseTypeOrTypePredicateAnnotation() { - return this.match(types.colon) ? this.tsParseTypeOrTypePredicateAnnotation(types.colon) : undefined; - } - - tsTryParseTypeAnnotation() { - return this.match(types.colon) ? this.tsParseTypeAnnotation() : undefined; - } - - tsTryParseType() { - return this.tsEatThenParseType(types.colon); - } - - tsParseTypePredicatePrefix() { - const id = this.parseIdentifier(); - - if (this.isContextual("is") && !this.hasPrecedingLineBreak()) { - this.next(); - return id; - } - } - - tsParseTypePredicateAsserts() { - if (!this.match(types.name) || this.state.value !== "asserts" || this.hasPrecedingLineBreak()) { - return false; - } - - const containsEsc = this.state.containsEsc; - this.next(); - - if (!this.match(types.name) && !this.match(types._this)) { - return false; - } - - if (containsEsc) { - this.raise(this.state.lastTokStart, ErrorMessages.InvalidEscapedReservedWord, "asserts"); - } - - return true; - } - - tsParseTypeAnnotation(eatColon = true, t = this.startNode()) { - this.tsInType(() => { - if (eatColon) this.expect(types.colon); - t.typeAnnotation = this.tsParseType(); - }); - return this.finishNode(t, "TSTypeAnnotation"); - } - - tsParseType() { - assert(this.state.inType); - const type = this.tsParseNonConditionalType(); - - if (this.hasPrecedingLineBreak() || !this.eat(types._extends)) { - return type; - } - - const node = this.startNodeAtNode(type); - node.checkType = type; - node.extendsType = this.tsParseNonConditionalType(); - this.expect(types.question); - node.trueType = this.tsParseType(); - this.expect(types.colon); - node.falseType = this.tsParseType(); - return this.finishNode(node, "TSConditionalType"); - } - - isAbstractConstructorSignature() { - return this.isContextual("abstract") && this.lookahead().type === types._new; - } - - tsParseNonConditionalType() { - if (this.tsIsStartOfFunctionType()) { - return this.tsParseFunctionOrConstructorType("TSFunctionType"); - } - - if (this.match(types._new)) { - return this.tsParseFunctionOrConstructorType("TSConstructorType"); - } else if (this.isAbstractConstructorSignature()) { - return this.tsParseFunctionOrConstructorType("TSConstructorType", true); - } - - return this.tsParseUnionTypeOrHigher(); - } - - tsParseTypeAssertion() { - const node = this.startNode(); - - const _const = this.tsTryNextParseConstantContext(); - - node.typeAnnotation = _const || this.tsNextThenParseType(); - this.expectRelational(">"); - node.expression = this.parseMaybeUnary(); - return this.finishNode(node, "TSTypeAssertion"); - } - - tsParseHeritageClause(descriptor) { - const originalStart = this.state.start; - const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", this.tsParseExpressionWithTypeArguments.bind(this)); - - if (!delimitedList.length) { - this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor); - } - - return delimitedList; - } - - tsParseExpressionWithTypeArguments() { - const node = this.startNode(); - node.expression = this.tsParseEntityName(false); - - if (this.isRelational("<")) { - node.typeParameters = this.tsParseTypeArguments(); - } - - return this.finishNode(node, "TSExpressionWithTypeArguments"); - } - - tsParseInterfaceDeclaration(node) { - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "typescript interface declaration", BIND_TS_INTERFACE); - node.typeParameters = this.tsTryParseTypeParameters(); - - if (this.eat(types._extends)) { - node.extends = this.tsParseHeritageClause("extends"); - } - - const body = this.startNode(); - body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)); - node.body = this.finishNode(body, "TSInterfaceBody"); - return this.finishNode(node, "TSInterfaceDeclaration"); - } - - tsParseTypeAliasDeclaration(node) { - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "typescript type alias", BIND_TS_TYPE); - node.typeParameters = this.tsTryParseTypeParameters(); - node.typeAnnotation = this.tsInType(() => { - this.expect(types.eq); - - if (this.isContextual("intrinsic") && this.lookahead().type !== types.dot) { - const node = this.startNode(); - this.next(); - return this.finishNode(node, "TSIntrinsicKeyword"); - } - - return this.tsParseType(); - }); - this.semicolon(); - return this.finishNode(node, "TSTypeAliasDeclaration"); - } - - tsInNoContext(cb) { - const oldContext = this.state.context; - this.state.context = [oldContext[0]]; - - try { - return cb(); - } finally { - this.state.context = oldContext; - } - } - - tsInType(cb) { - const oldInType = this.state.inType; - this.state.inType = true; - - try { - return cb(); - } finally { - this.state.inType = oldInType; - } - } - - tsEatThenParseType(token) { - return !this.match(token) ? undefined : this.tsNextThenParseType(); - } - - tsExpectThenParseType(token) { - return this.tsDoThenParseType(() => this.expect(token)); - } - - tsNextThenParseType() { - return this.tsDoThenParseType(() => this.next()); - } - - tsDoThenParseType(cb) { - return this.tsInType(() => { - cb(); - return this.tsParseType(); - }); - } - - tsParseEnumMember() { - const node = this.startNode(); - node.id = this.match(types.string) ? this.parseExprAtom() : this.parseIdentifier(true); - - if (this.eat(types.eq)) { - node.initializer = this.parseMaybeAssignAllowIn(); - } - - return this.finishNode(node, "TSEnumMember"); - } - - tsParseEnumDeclaration(node, isConst) { - if (isConst) node.const = true; - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "typescript enum declaration", isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM); - this.expect(types.braceL); - node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); - this.expect(types.braceR); - return this.finishNode(node, "TSEnumDeclaration"); - } - - tsParseModuleBlock() { - const node = this.startNode(); - this.scope.enter(SCOPE_OTHER); - this.expect(types.braceL); - this.parseBlockOrModuleBlockBody(node.body = [], undefined, true, types.braceR); - this.scope.exit(); - return this.finishNode(node, "TSModuleBlock"); - } - - tsParseModuleOrNamespaceDeclaration(node, nested = false) { - node.id = this.parseIdentifier(); - - if (!nested) { - this.checkLVal(node.id, "module or namespace declaration", BIND_TS_NAMESPACE); - } - - if (this.eat(types.dot)) { - const inner = this.startNode(); - this.tsParseModuleOrNamespaceDeclaration(inner, true); - node.body = inner; - } else { - this.scope.enter(SCOPE_TS_MODULE); - this.prodParam.enter(PARAM); - node.body = this.tsParseModuleBlock(); - this.prodParam.exit(); - this.scope.exit(); - } - - return this.finishNode(node, "TSModuleDeclaration"); - } - - tsParseAmbientExternalModuleDeclaration(node) { - if (this.isContextual("global")) { - node.global = true; - node.id = this.parseIdentifier(); - } else if (this.match(types.string)) { - node.id = this.parseExprAtom(); - } else { - this.unexpected(); - } - - if (this.match(types.braceL)) { - this.scope.enter(SCOPE_TS_MODULE); - this.prodParam.enter(PARAM); - node.body = this.tsParseModuleBlock(); - this.prodParam.exit(); - this.scope.exit(); - } else { - this.semicolon(); - } - - return this.finishNode(node, "TSModuleDeclaration"); - } - - tsParseImportEqualsDeclaration(node, isExport) { - node.isExport = isExport || false; - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "import equals declaration", BIND_LEXICAL); - this.expect(types.eq); - const moduleReference = this.tsParseModuleReference(); - - if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") { - this.raise(moduleReference.start, TSErrors.ImportAliasHasImportType); - } - - node.moduleReference = moduleReference; - this.semicolon(); - return this.finishNode(node, "TSImportEqualsDeclaration"); - } - - tsIsExternalModuleReference() { - return this.isContextual("require") && this.lookaheadCharCode() === 40; - } - - tsParseModuleReference() { - return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(false); - } - - tsParseExternalModuleReference() { - const node = this.startNode(); - this.expectContextual("require"); - this.expect(types.parenL); - - if (!this.match(types.string)) { - throw this.unexpected(); - } - - node.expression = this.parseExprAtom(); - this.expect(types.parenR); - return this.finishNode(node, "TSExternalModuleReference"); - } - - tsLookAhead(f) { - const state = this.state.clone(); - const res = f(); - this.state = state; - return res; - } - - tsTryParseAndCatch(f) { - const result = this.tryParse(abort => f() || abort()); - if (result.aborted || !result.node) return undefined; - if (result.error) this.state = result.failState; - return result.node; - } - - tsTryParse(f) { - const state = this.state.clone(); - const result = f(); - - if (result !== undefined && result !== false) { - return result; - } else { - this.state = state; - return undefined; - } - } - - tsTryParseDeclare(nany) { - if (this.isLineTerminator()) { - return; - } - - let starttype = this.state.type; - let kind; - - if (this.isContextual("let")) { - starttype = types._var; - kind = "let"; - } - - return this.tsInDeclareContext(() => { - switch (starttype) { - case types._function: - nany.declare = true; - return this.parseFunctionStatement(nany, false, true); - - case types._class: - nany.declare = true; - return this.parseClass(nany, true, false); - - case types._const: - if (this.match(types._const) && this.isLookaheadContextual("enum")) { - this.expect(types._const); - this.expectContextual("enum"); - return this.tsParseEnumDeclaration(nany, true); - } - - case types._var: - kind = kind || this.state.value; - return this.parseVarStatement(nany, kind); - - case types.name: - { - const value = this.state.value; - - if (value === "global") { - return this.tsParseAmbientExternalModuleDeclaration(nany); - } else { - return this.tsParseDeclaration(nany, value, true); - } - } - } - }); - } - - tsTryParseExportDeclaration() { - return this.tsParseDeclaration(this.startNode(), this.state.value, true); - } - - tsParseExpressionStatement(node, expr) { - switch (expr.name) { - case "declare": - { - const declaration = this.tsTryParseDeclare(node); - - if (declaration) { - declaration.declare = true; - return declaration; - } - - break; - } - - case "global": - if (this.match(types.braceL)) { - this.scope.enter(SCOPE_TS_MODULE); - this.prodParam.enter(PARAM); - const mod = node; - mod.global = true; - mod.id = expr; - mod.body = this.tsParseModuleBlock(); - this.scope.exit(); - this.prodParam.exit(); - return this.finishNode(mod, "TSModuleDeclaration"); - } - - break; - - default: - return this.tsParseDeclaration(node, expr.name, false); - } - } - - tsParseDeclaration(node, value, next) { - switch (value) { - case "abstract": - if (this.tsCheckLineTerminator(next) && (this.match(types._class) || this.match(types.name))) { - return this.tsParseAbstractDeclaration(node); - } - - break; - - case "enum": - if (next || this.match(types.name)) { - if (next) this.next(); - return this.tsParseEnumDeclaration(node, false); - } - - break; - - case "interface": - if (this.tsCheckLineTerminator(next) && this.match(types.name)) { - return this.tsParseInterfaceDeclaration(node); - } - - break; - - case "module": - if (this.tsCheckLineTerminator(next)) { - if (this.match(types.string)) { - return this.tsParseAmbientExternalModuleDeclaration(node); - } else if (this.match(types.name)) { - return this.tsParseModuleOrNamespaceDeclaration(node); - } - } - - break; - - case "namespace": - if (this.tsCheckLineTerminator(next) && this.match(types.name)) { - return this.tsParseModuleOrNamespaceDeclaration(node); - } - - break; - - case "type": - if (this.tsCheckLineTerminator(next) && this.match(types.name)) { - return this.tsParseTypeAliasDeclaration(node); - } - - break; - } - } - - tsCheckLineTerminator(next) { - if (next) { - if (this.hasFollowingLineBreak()) return false; - this.next(); - return true; - } - - return !this.isLineTerminator(); - } - - tsTryParseGenericAsyncArrowFunction(startPos, startLoc) { - if (!this.isRelational("<")) { - return undefined; - } - - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - this.state.maybeInArrowParameters = true; - const res = this.tsTryParseAndCatch(() => { - const node = this.startNodeAt(startPos, startLoc); - node.typeParameters = this.tsParseTypeParameters(); - super.parseFunctionParams(node); - node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(); - this.expect(types.arrow); - return node; - }); - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - - if (!res) { - return undefined; - } - - return this.parseArrowExpression(res, null, true); - } - - tsParseTypeArguments() { - const node = this.startNode(); - node.params = this.tsInType(() => this.tsInNoContext(() => { - this.expectRelational("<"); - return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this)); - })); - - if (node.params.length === 0) { - this.raise(node.start, TSErrors.EmptyTypeArguments); - } - - this.state.exprAllowed = false; - this.expectRelational(">"); - return this.finishNode(node, "TSTypeParameterInstantiation"); - } - - tsIsDeclarationStart() { - if (this.match(types.name)) { - switch (this.state.value) { - case "abstract": - case "declare": - case "enum": - case "interface": - case "module": - case "namespace": - case "type": - return true; - } - } - - return false; - } - - isExportDefaultSpecifier() { - if (this.tsIsDeclarationStart()) return false; - return super.isExportDefaultSpecifier(); - } - - parseAssignableListItem(allowModifiers, decorators) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let accessibility; - let readonly = false; - - if (allowModifiers !== undefined) { - accessibility = this.parseAccessModifier(); - readonly = !!this.tsParseModifier(["readonly"]); - - if (allowModifiers === false && (accessibility || readonly)) { - this.raise(startPos, TSErrors.UnexpectedParameterModifier); - } - } - - const left = this.parseMaybeDefault(); - this.parseAssignableListItemTypes(left); - const elt = this.parseMaybeDefault(left.start, left.loc.start, left); - - if (accessibility || readonly) { - const pp = this.startNodeAt(startPos, startLoc); - - if (decorators.length) { - pp.decorators = decorators; - } - - if (accessibility) pp.accessibility = accessibility; - if (readonly) pp.readonly = readonly; - - if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") { - this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind); - } - - pp.parameter = elt; - return this.finishNode(pp, "TSParameterProperty"); - } - - if (decorators.length) { - left.decorators = decorators; - } - - return elt; - } - - parseFunctionBodyAndFinish(node, type, isMethod = false) { - if (this.match(types.colon)) { - node.returnType = this.tsParseTypeOrTypePredicateAnnotation(types.colon); - } - - const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" ? "TSDeclareMethod" : undefined; - - if (bodilessType && !this.match(types.braceL) && this.isLineTerminator()) { - this.finishNode(node, bodilessType); - return; - } - - if (bodilessType === "TSDeclareFunction" && this.state.isDeclareContext) { - this.raise(node.start, TSErrors.DeclareFunctionHasImplementation); - - if (node.declare) { - super.parseFunctionBodyAndFinish(node, bodilessType, isMethod); - return; - } - } - - super.parseFunctionBodyAndFinish(node, type, isMethod); - } - - registerFunctionStatementId(node) { - if (!node.body && node.id) { - this.checkLVal(node.id, "function name", BIND_TS_AMBIENT); - } else { - super.registerFunctionStatementId(...arguments); - } - } - - tsCheckForInvalidTypeCasts(items) { - items.forEach(node => { - if ((node == null ? void 0 : node.type) === "TSTypeCastExpression") { - this.raise(node.typeAnnotation.start, TSErrors.UnexpectedTypeAnnotation); - } - }); - } - - toReferencedList(exprList, isInParens) { - this.tsCheckForInvalidTypeCasts(exprList); - return exprList; - } - - parseArrayLike(...args) { - const node = super.parseArrayLike(...args); - - if (node.type === "ArrayExpression") { - this.tsCheckForInvalidTypeCasts(node.elements); - } - - return node; - } - - parseSubscript(base, startPos, startLoc, noCalls, state) { - if (!this.hasPrecedingLineBreak() && this.match(types.bang)) { - this.state.exprAllowed = false; - this.next(); - const nonNullExpression = this.startNodeAt(startPos, startLoc); - nonNullExpression.expression = base; - return this.finishNode(nonNullExpression, "TSNonNullExpression"); - } - - if (this.isRelational("<")) { - const result = this.tsTryParseAndCatch(() => { - if (!noCalls && this.atPossibleAsyncArrow(base)) { - const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startPos, startLoc); - - if (asyncArrowFn) { - return asyncArrowFn; - } - } - - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - const typeArguments = this.tsParseTypeArguments(); - - if (typeArguments) { - if (!noCalls && this.eat(types.parenL)) { - node.arguments = this.parseCallExpressionArguments(types.parenR, false); - this.tsCheckForInvalidTypeCasts(node.arguments); - node.typeParameters = typeArguments; - - if (state.optionalChainMember) { - node.optional = false; - } - - return this.finishCallExpression(node, state.optionalChainMember); - } else if (this.match(types.backQuote)) { - const result = this.parseTaggedTemplateExpression(base, startPos, startLoc, state); - result.typeParameters = typeArguments; - return result; - } - } - - this.unexpected(); - }); - if (result) return result; - } - - return super.parseSubscript(base, startPos, startLoc, noCalls, state); - } - - parseNewArguments(node) { - if (this.isRelational("<")) { - const typeParameters = this.tsTryParseAndCatch(() => { - const args = this.tsParseTypeArguments(); - if (!this.match(types.parenL)) this.unexpected(); - return args; - }); - - if (typeParameters) { - node.typeParameters = typeParameters; - } - } - - super.parseNewArguments(node); - } - - parseExprOp(left, leftStartPos, leftStartLoc, minPrec) { - if (nonNull(types._in.binop) > minPrec && !this.hasPrecedingLineBreak() && this.isContextual("as")) { - const node = this.startNodeAt(leftStartPos, leftStartLoc); - node.expression = left; - - const _const = this.tsTryNextParseConstantContext(); - - if (_const) { - node.typeAnnotation = _const; - } else { - node.typeAnnotation = this.tsNextThenParseType(); - } - - this.finishNode(node, "TSAsExpression"); - this.reScan_lt_gt(); - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec); - } - - return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec); - } - - checkReservedWord(word, startLoc, checkKeywords, isBinding) {} - - checkDuplicateExports() {} - - parseImport(node) { - node.importKind = "value"; - - if (this.match(types.name) || this.match(types.star) || this.match(types.braceL)) { - let ahead = this.lookahead(); - - if (this.isContextual("type") && ahead.type !== types.comma && !(ahead.type === types.name && ahead.value === "from") && ahead.type !== types.eq) { - node.importKind = "type"; - this.next(); - ahead = this.lookahead(); - } - - if (this.match(types.name) && ahead.type === types.eq) { - return this.tsParseImportEqualsDeclaration(node); - } - } - - const importNode = super.parseImport(node); - - if (importNode.importKind === "type" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === "ImportDefaultSpecifier") { - this.raise(importNode.start, "A type-only import can specify a default import or named bindings, but not both."); - } - - return importNode; - } - - parseExport(node) { - if (this.match(types._import)) { - this.next(); - - if (this.isContextual("type") && this.lookaheadCharCode() !== 61) { - node.importKind = "type"; - this.next(); - } else { - node.importKind = "value"; - } - - return this.tsParseImportEqualsDeclaration(node, true); - } else if (this.eat(types.eq)) { - const assign = node; - assign.expression = this.parseExpression(); - this.semicolon(); - return this.finishNode(assign, "TSExportAssignment"); - } else if (this.eatContextual("as")) { - const decl = node; - this.expectContextual("namespace"); - decl.id = this.parseIdentifier(); - this.semicolon(); - return this.finishNode(decl, "TSNamespaceExportDeclaration"); - } else { - if (this.isContextual("type") && this.lookahead().type === types.braceL) { - this.next(); - node.exportKind = "type"; - } else { - node.exportKind = "value"; - } - - return super.parseExport(node); - } - } - - isAbstractClass() { - return this.isContextual("abstract") && this.lookahead().type === types._class; - } - - parseExportDefaultExpression() { - if (this.isAbstractClass()) { - const cls = this.startNode(); - this.next(); - cls.abstract = true; - this.parseClass(cls, true, true); - return cls; - } - - if (this.state.value === "interface") { - const result = this.tsParseDeclaration(this.startNode(), this.state.value, true); - if (result) return result; - } - - return super.parseExportDefaultExpression(); - } - - parseStatementContent(context, topLevel) { - if (this.state.type === types._const) { - const ahead = this.lookahead(); - - if (ahead.type === types.name && ahead.value === "enum") { - const node = this.startNode(); - this.expect(types._const); - this.expectContextual("enum"); - return this.tsParseEnumDeclaration(node, true); - } - } - - return super.parseStatementContent(context, topLevel); - } - - parseAccessModifier() { - return this.tsParseModifier(["public", "protected", "private"]); - } - - parseClassMember(classBody, member, state) { - this.tsParseModifiers(member, ["declare", "private", "public", "protected"]); - - const callParseClassMember = () => { - super.parseClassMember(classBody, member, state); - }; - - if (member.declare) { - this.tsInDeclareContext(callParseClassMember); - } else { - callParseClassMember(); - } - } - - parseClassMemberWithIsStatic(classBody, member, state, isStatic) { - this.tsParseModifiers(member, ["abstract", "readonly", "declare"]); - const idx = this.tsTryParseIndexSignature(member); - - if (idx) { - classBody.body.push(idx); - - if (member.abstract) { - this.raise(member.start, TSErrors.IndexSignatureHasAbstract); - } - - if (isStatic) { - this.raise(member.start, TSErrors.IndexSignatureHasStatic); - } - - if (member.accessibility) { - this.raise(member.start, TSErrors.IndexSignatureHasAccessibility, member.accessibility); - } - - if (member.declare) { - this.raise(member.start, TSErrors.IndexSignatureHasDeclare); - } - - return; - } - - if (!this.state.inAbstractClass && member.abstract) { - this.raise(member.start, TSErrors.NonAbstractClassHasAbstractMethod); - } - - super.parseClassMemberWithIsStatic(classBody, member, state, isStatic); - } - - parsePostMemberNameModifiers(methodOrProp) { - const optional = this.eat(types.question); - if (optional) methodOrProp.optional = true; - - if (methodOrProp.readonly && this.match(types.parenL)) { - this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly); - } - - if (methodOrProp.declare && this.match(types.parenL)) { - this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare); - } - } - - parseExpressionStatement(node, expr) { - const decl = expr.type === "Identifier" ? this.tsParseExpressionStatement(node, expr) : undefined; - return decl || super.parseExpressionStatement(node, expr); - } - - shouldParseExportDeclaration() { - if (this.tsIsDeclarationStart()) return true; - return super.shouldParseExportDeclaration(); - } - - parseConditional(expr, startPos, startLoc, refNeedsArrowPos) { - if (!refNeedsArrowPos || !this.match(types.question)) { - return super.parseConditional(expr, startPos, startLoc, refNeedsArrowPos); - } - - const result = this.tryParse(() => super.parseConditional(expr, startPos, startLoc)); - - if (!result.node) { - refNeedsArrowPos.start = result.error.pos || this.state.start; - return expr; - } - - if (result.error) this.state = result.failState; - return result.node; - } - - parseParenItem(node, startPos, startLoc) { - node = super.parseParenItem(node, startPos, startLoc); - - if (this.eat(types.question)) { - node.optional = true; - this.resetEndLocation(node); - } - - if (this.match(types.colon)) { - const typeCastNode = this.startNodeAt(startPos, startLoc); - typeCastNode.expression = node; - typeCastNode.typeAnnotation = this.tsParseTypeAnnotation(); - return this.finishNode(typeCastNode, "TSTypeCastExpression"); - } - - return node; - } - - parseExportDeclaration(node) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const isDeclare = this.eatContextual("declare"); - - if (isDeclare && (this.isContextual("declare") || !this.shouldParseExportDeclaration())) { - throw this.raise(this.state.start, TSErrors.ExpectedAmbientAfterExportDeclare); - } - - let declaration; - - if (this.match(types.name)) { - declaration = this.tsTryParseExportDeclaration(); - } - - if (!declaration) { - declaration = super.parseExportDeclaration(node); - } - - if (declaration && (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare)) { - node.exportKind = "type"; - } - - if (declaration && isDeclare) { - this.resetStartLocation(declaration, startPos, startLoc); - declaration.declare = true; - } - - return declaration; - } - - parseClassId(node, isStatement, optionalId) { - if ((!isStatement || optionalId) && this.isContextual("implements")) { - return; - } - - super.parseClassId(node, isStatement, optionalId, node.declare ? BIND_TS_AMBIENT : BIND_CLASS); - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) node.typeParameters = typeParameters; - } - - parseClassPropertyAnnotation(node) { - if (!node.optional && this.eat(types.bang)) { - node.definite = true; - } - - const type = this.tsTryParseTypeAnnotation(); - if (type) node.typeAnnotation = type; - } - - parseClassProperty(node) { - this.parseClassPropertyAnnotation(node); - - if (this.state.isDeclareContext && this.match(types.eq)) { - this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer); - } - - return super.parseClassProperty(node); - } - - parseClassPrivateProperty(node) { - if (node.abstract) { - this.raise(node.start, TSErrors.PrivateElementHasAbstract); - } - - if (node.accessibility) { - this.raise(node.start, TSErrors.PrivateElementHasAccessibility, node.accessibility); - } - - this.parseClassPropertyAnnotation(node); - return super.parseClassPrivateProperty(node); - } - - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - const typeParameters = this.tsTryParseTypeParameters(); - - if (typeParameters && isConstructor) { - this.raise(typeParameters.start, TSErrors.ConstructorHasTypeParameters); - } - - if (typeParameters) method.typeParameters = typeParameters; - super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); - } - - pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) method.typeParameters = typeParameters; - super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); - } - - parseClassSuper(node) { - super.parseClassSuper(node); - - if (node.superClass && this.isRelational("<")) { - node.superTypeParameters = this.tsParseTypeArguments(); - } - - if (this.eatContextual("implements")) { - node.implements = this.tsParseHeritageClause("implements"); - } - } - - parseObjPropValue(prop, ...args) { - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) prop.typeParameters = typeParameters; - super.parseObjPropValue(prop, ...args); - } - - parseFunctionParams(node, allowModifiers) { - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) node.typeParameters = typeParameters; - super.parseFunctionParams(node, allowModifiers); - } - - parseVarId(decl, kind) { - super.parseVarId(decl, kind); - - if (decl.id.type === "Identifier" && this.eat(types.bang)) { - decl.definite = true; - } - - const type = this.tsTryParseTypeAnnotation(); - - if (type) { - decl.id.typeAnnotation = type; - this.resetEndLocation(decl.id); - } - } - - parseAsyncArrowFromCallExpression(node, call) { - if (this.match(types.colon)) { - node.returnType = this.tsParseTypeAnnotation(); - } - - return super.parseAsyncArrowFromCallExpression(node, call); - } - - parseMaybeAssign(...args) { - var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2, _jsx4, _typeCast3; - - let state; - let jsx; - let typeCast; - - if (this.hasPlugin("jsx") && (this.match(types.jsxTagStart) || this.isRelational("<"))) { - state = this.state.clone(); - jsx = this.tryParse(() => super.parseMaybeAssign(...args), state); - if (!jsx.error) return jsx.node; - const { - context - } = this.state; - - if (context[context.length - 1] === types$1.j_oTag) { - context.length -= 2; - } else if (context[context.length - 1] === types$1.j_expr) { - context.length -= 1; - } - } - - if (!((_jsx = jsx) != null && _jsx.error) && !this.isRelational("<")) { - return super.parseMaybeAssign(...args); - } - - let typeParameters; - state = state || this.state.clone(); - const arrow = this.tryParse(abort => { - var _expr$extra, _typeParameters; - - typeParameters = this.tsParseTypeParameters(); - const expr = super.parseMaybeAssign(...args); - - if (expr.type !== "ArrowFunctionExpression" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { - abort(); - } - - if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) { - this.resetStartLocationFromNode(expr, typeParameters); - } - - expr.typeParameters = typeParameters; - return expr; - }, state); - if (!arrow.error && !arrow.aborted) return arrow.node; - - if (!jsx) { - assert(!this.hasPlugin("jsx")); - typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state); - if (!typeCast.error) return typeCast.node; - } - - if ((_jsx2 = jsx) != null && _jsx2.node) { - this.state = jsx.failState; - return jsx.node; - } - - if (arrow.node) { - this.state = arrow.failState; - return arrow.node; - } - - if ((_typeCast = typeCast) != null && _typeCast.node) { - this.state = typeCast.failState; - return typeCast.node; - } - - if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; - if (arrow.thrown) throw arrow.error; - if ((_typeCast2 = typeCast) != null && _typeCast2.thrown) throw typeCast.error; - throw ((_jsx4 = jsx) == null ? void 0 : _jsx4.error) || arrow.error || ((_typeCast3 = typeCast) == null ? void 0 : _typeCast3.error); - } - - parseMaybeUnary(refExpressionErrors) { - if (!this.hasPlugin("jsx") && this.isRelational("<")) { - return this.tsParseTypeAssertion(); - } else { - return super.parseMaybeUnary(refExpressionErrors); - } - } - - parseArrow(node) { - if (this.match(types.colon)) { - const result = this.tryParse(abort => { - const returnType = this.tsParseTypeOrTypePredicateAnnotation(types.colon); - if (this.canInsertSemicolon() || !this.match(types.arrow)) abort(); - return returnType; - }); - if (result.aborted) return; - - if (!result.thrown) { - if (result.error) this.state = result.failState; - node.returnType = result.node; - } - } - - return super.parseArrow(node); - } - - parseAssignableListItemTypes(param) { - if (this.eat(types.question)) { - if (param.type !== "Identifier" && !this.state.isDeclareContext && !this.state.inType) { - this.raise(param.start, TSErrors.PatternIsOptional); - } - - param.optional = true; - } - - const type = this.tsTryParseTypeAnnotation(); - if (type) param.typeAnnotation = type; - this.resetEndLocation(param); - return param; - } - - toAssignable(node, isLHS = false) { - switch (node.type) { - case "TSTypeCastExpression": - return super.toAssignable(this.typeCastToParameter(node), isLHS); - - case "TSParameterProperty": - return super.toAssignable(node, isLHS); - - case "ParenthesizedExpression": - return this.toAssignableParenthesizedExpression(node, isLHS); - - case "TSAsExpression": - case "TSNonNullExpression": - case "TSTypeAssertion": - node.expression = this.toAssignable(node.expression, isLHS); - return node; - - default: - return super.toAssignable(node, isLHS); - } - } - - toAssignableParenthesizedExpression(node, isLHS) { - switch (node.expression.type) { - case "TSAsExpression": - case "TSNonNullExpression": - case "TSTypeAssertion": - case "ParenthesizedExpression": - node.expression = this.toAssignable(node.expression, isLHS); - return node; - - default: - return super.toAssignable(node, isLHS); - } - } - - checkLVal(expr, contextDescription, ...args) { - var _expr$extra2; - - switch (expr.type) { - case "TSTypeCastExpression": - return; - - case "TSParameterProperty": - this.checkLVal(expr.parameter, "parameter property", ...args); - return; - - case "TSAsExpression": - case "TSTypeAssertion": - if (!args[0] && contextDescription !== "parenthesized expression" && !((_expr$extra2 = expr.extra) != null && _expr$extra2.parenthesized)) { - this.raise(expr.start, ErrorMessages.InvalidLhs, contextDescription); - break; - } - - this.checkLVal(expr.expression, "parenthesized expression", ...args); - return; - - case "TSNonNullExpression": - this.checkLVal(expr.expression, contextDescription, ...args); - return; - - default: - super.checkLVal(expr, contextDescription, ...args); - return; - } - } - - parseBindingAtom() { - switch (this.state.type) { - case types._this: - return this.parseIdentifier(true); - - default: - return super.parseBindingAtom(); - } - } - - parseMaybeDecoratorArguments(expr) { - if (this.isRelational("<")) { - const typeArguments = this.tsParseTypeArguments(); - - if (this.match(types.parenL)) { - const call = super.parseMaybeDecoratorArguments(expr); - call.typeParameters = typeArguments; - return call; - } - - this.unexpected(this.state.start, types.parenL); - } - - return super.parseMaybeDecoratorArguments(expr); - } - - checkCommaAfterRest(close) { - if (this.state.isDeclareContext && this.match(types.comma) && this.lookaheadCharCode() === close) { - this.next(); - } else { - super.checkCommaAfterRest(close); - } - } - - isClassMethod() { - return this.isRelational("<") || super.isClassMethod(); - } - - isClassProperty() { - return this.match(types.bang) || this.match(types.colon) || super.isClassProperty(); - } - - parseMaybeDefault(...args) { - const node = super.parseMaybeDefault(...args); - - if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { - this.raise(node.typeAnnotation.start, TSErrors.TypeAnnotationAfterAssign); - } - - return node; - } - - getTokenFromCode(code) { - if (this.state.inType && (code === 62 || code === 60)) { - return this.finishOp(types.relational, 1); - } else { - return super.getTokenFromCode(code); - } - } - - reScan_lt_gt() { - if (this.match(types.relational)) { - const code = this.input.charCodeAt(this.state.start); - - if (code === 60 || code === 62) { - this.state.pos -= 1; - this.readToken_lt_gt(code); - } - } - } - - toAssignableList(exprList) { - for (let i = 0; i < exprList.length; i++) { - const expr = exprList[i]; - if (!expr) continue; - - switch (expr.type) { - case "TSTypeCastExpression": - exprList[i] = this.typeCastToParameter(expr); - break; - - case "TSAsExpression": - case "TSTypeAssertion": - if (!this.state.maybeInArrowParameters) { - exprList[i] = this.typeCastToParameter(expr); - } else { - this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter); - } - - break; - } - } - - return super.toAssignableList(...arguments); - } - - typeCastToParameter(node) { - node.expression.typeAnnotation = node.typeAnnotation; - this.resetEndLocation(node.expression, node.typeAnnotation.end, node.typeAnnotation.loc.end); - return node.expression; - } - - shouldParseArrow() { - return this.match(types.colon) || super.shouldParseArrow(); - } - - shouldParseAsyncArrow() { - return this.match(types.colon) || super.shouldParseAsyncArrow(); - } - - canHaveLeadingDecorator() { - return super.canHaveLeadingDecorator() || this.isAbstractClass(); - } - - jsxParseOpeningElementAfterName(node) { - if (this.isRelational("<")) { - const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArguments()); - if (typeArguments) node.typeParameters = typeArguments; - } - - return super.jsxParseOpeningElementAfterName(node); - } - - getGetterSetterExpectedParamCount(method) { - const baseCount = super.getGetterSetterExpectedParamCount(method); - const params = this.getObjectOrClassMethodParams(method); - const firstParam = params[0]; - const hasContextParam = firstParam && firstParam.type === "Identifier" && firstParam.name === "this"; - return hasContextParam ? baseCount + 1 : baseCount; - } - - parseCatchClauseParam() { - const param = super.parseCatchClauseParam(); - const type = this.tsTryParseTypeAnnotation(); - - if (type) { - param.typeAnnotation = type; - this.resetEndLocation(param); - } - - return param; - } - - tsInDeclareContext(cb) { - const oldIsDeclareContext = this.state.isDeclareContext; - this.state.isDeclareContext = true; - - try { - return cb(); - } finally { - this.state.isDeclareContext = oldIsDeclareContext; - } - } - - parseClass(node, ...args) { - const oldInAbstractClass = this.state.inAbstractClass; - this.state.inAbstractClass = !!node.abstract; - - try { - return super.parseClass(node, ...args); - } finally { - this.state.inAbstractClass = oldInAbstractClass; - } - } - - tsParseAbstractDeclaration(node) { - if (this.match(types._class)) { - node.abstract = true; - return this.parseClass(node, true, false); - } else if (this.isContextual("interface")) { - if (!this.hasFollowingLineBreak()) { - node.abstract = true; - this.raise(node.start, TSErrors.NonClassMethodPropertyHasAbstractModifer); - this.next(); - return this.tsParseInterfaceDeclaration(node); - } - } else { - this.unexpected(null, types._class); - } - } - - parseMethod(...args) { - const method = super.parseMethod(...args); - - if (method.abstract) { - const hasBody = this.hasPlugin("estree") ? !!method.value.body : !!method.body; - - if (hasBody) { - const { - key - } = method; - this.raise(method.start, TSErrors.AbstractMethodHasImplementation, key.type === "Identifier" ? key.name : `[${this.input.slice(key.start, key.end)}]`); - } - } - - return method; - } - -}); - -types.placeholder = new TokenType("%%", { - startsExpr: true -}); -var placeholders = (superClass => class extends superClass { - parsePlaceholder(expectedNode) { - if (this.match(types.placeholder)) { - const node = this.startNode(); - this.next(); - this.assertNoSpace("Unexpected space in placeholder."); - node.name = super.parseIdentifier(true); - this.assertNoSpace("Unexpected space in placeholder."); - this.expect(types.placeholder); - return this.finishPlaceholder(node, expectedNode); - } - } - - finishPlaceholder(node, expectedNode) { - const isFinished = !!(node.expectedNode && node.type === "Placeholder"); - node.expectedNode = expectedNode; - return isFinished ? node : this.finishNode(node, "Placeholder"); - } - - getTokenFromCode(code) { - if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { - return this.finishOp(types.placeholder, 2); - } - - return super.getTokenFromCode(...arguments); - } - - parseExprAtom() { - return this.parsePlaceholder("Expression") || super.parseExprAtom(...arguments); - } - - parseIdentifier() { - return this.parsePlaceholder("Identifier") || super.parseIdentifier(...arguments); - } - - checkReservedWord(word) { - if (word !== undefined) super.checkReservedWord(...arguments); - } - - parseBindingAtom() { - return this.parsePlaceholder("Pattern") || super.parseBindingAtom(...arguments); - } - - checkLVal(expr) { - if (expr.type !== "Placeholder") super.checkLVal(...arguments); - } - - toAssignable(node) { - if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { - node.expectedNode = "Pattern"; - return node; - } - - return super.toAssignable(...arguments); - } - - isLet(context) { - if (super.isLet(context)) { - return true; - } - - if (!this.isContextual("let")) { - return false; - } - - if (context) return false; - const nextToken = this.lookahead(); - - if (nextToken.type === types.placeholder) { - return true; - } - - return false; - } - - verifyBreakContinue(node) { - if (node.label && node.label.type === "Placeholder") return; - super.verifyBreakContinue(...arguments); - } - - parseExpressionStatement(node, expr) { - if (expr.type !== "Placeholder" || expr.extra && expr.extra.parenthesized) { - return super.parseExpressionStatement(...arguments); - } - - if (this.match(types.colon)) { - const stmt = node; - stmt.label = this.finishPlaceholder(expr, "Identifier"); - this.next(); - stmt.body = this.parseStatement("label"); - return this.finishNode(stmt, "LabeledStatement"); - } - - this.semicolon(); - node.name = expr.name; - return this.finishPlaceholder(node, "Statement"); - } - - parseBlock() { - return this.parsePlaceholder("BlockStatement") || super.parseBlock(...arguments); - } - - parseFunctionId() { - return this.parsePlaceholder("Identifier") || super.parseFunctionId(...arguments); - } - - parseClass(node, isStatement, optionalId) { - const type = isStatement ? "ClassDeclaration" : "ClassExpression"; - this.next(); - this.takeDecorators(node); - const oldStrict = this.state.strict; - const placeholder = this.parsePlaceholder("Identifier"); - - if (placeholder) { - if (this.match(types._extends) || this.match(types.placeholder) || this.match(types.braceL)) { - node.id = placeholder; - } else if (optionalId || !isStatement) { - node.id = null; - node.body = this.finishPlaceholder(placeholder, "ClassBody"); - return this.finishNode(node, type); - } else { - this.unexpected(null, "A class name is required"); - } - } else { - this.parseClassId(node, isStatement, optionalId); - } - - this.parseClassSuper(node); - node.body = this.parsePlaceholder("ClassBody") || this.parseClassBody(!!node.superClass, oldStrict); - return this.finishNode(node, type); - } - - parseExport(node) { - const placeholder = this.parsePlaceholder("Identifier"); - if (!placeholder) return super.parseExport(...arguments); - - if (!this.isContextual("from") && !this.match(types.comma)) { - node.specifiers = []; - node.source = null; - node.declaration = this.finishPlaceholder(placeholder, "Declaration"); - return this.finishNode(node, "ExportNamedDeclaration"); - } - - this.expectPlugin("exportDefaultFrom"); - const specifier = this.startNode(); - specifier.exported = placeholder; - node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; - return super.parseExport(node); - } - - isExportDefaultSpecifier() { - if (this.match(types._default)) { - const next = this.nextTokenStart(); - - if (this.isUnparsedContextual(next, "from")) { - if (this.input.startsWith(types.placeholder.label, this.nextTokenStartSince(next + 4))) { - return true; - } - } - } - - return super.isExportDefaultSpecifier(); - } - - maybeParseExportDefaultSpecifier(node) { - if (node.specifiers && node.specifiers.length > 0) { - return true; - } - - return super.maybeParseExportDefaultSpecifier(...arguments); - } - - checkExport(node) { - const { - specifiers - } = node; - - if (specifiers != null && specifiers.length) { - node.specifiers = specifiers.filter(node => node.exported.type === "Placeholder"); - } - - super.checkExport(node); - node.specifiers = specifiers; - } - - parseImport(node) { - const placeholder = this.parsePlaceholder("Identifier"); - if (!placeholder) return super.parseImport(...arguments); - node.specifiers = []; - - if (!this.isContextual("from") && !this.match(types.comma)) { - node.source = this.finishPlaceholder(placeholder, "StringLiteral"); - this.semicolon(); - return this.finishNode(node, "ImportDeclaration"); - } - - const specifier = this.startNodeAtNode(placeholder); - specifier.local = placeholder; - this.finishNode(specifier, "ImportDefaultSpecifier"); - node.specifiers.push(specifier); - - if (this.eat(types.comma)) { - const hasStarImport = this.maybeParseStarImportSpecifier(node); - if (!hasStarImport) this.parseNamedImportSpecifiers(node); - } - - this.expectContextual("from"); - node.source = this.parseImportSource(); - this.semicolon(); - return this.finishNode(node, "ImportDeclaration"); - } - - parseImportSource() { - return this.parsePlaceholder("StringLiteral") || super.parseImportSource(...arguments); - } - -}); - -var v8intrinsic = (superClass => class extends superClass { - parseV8Intrinsic() { - if (this.match(types.modulo)) { - const v8IntrinsicStart = this.state.start; - const node = this.startNode(); - this.eat(types.modulo); - - if (this.match(types.name)) { - const name = this.parseIdentifierName(this.state.start); - const identifier = this.createIdentifier(node, name); - identifier.type = "V8IntrinsicIdentifier"; - - if (this.match(types.parenL)) { - return identifier; - } - } - - this.unexpected(v8IntrinsicStart); - } - } - - parseExprAtom() { - return this.parseV8Intrinsic() || super.parseExprAtom(...arguments); - } - -}); - -function hasPlugin(plugins, name) { - return plugins.some(plugin => { - if (Array.isArray(plugin)) { - return plugin[0] === name; - } else { - return plugin === name; - } - }); -} -function getPluginOption(plugins, name, option) { - const plugin = plugins.find(plugin => { - if (Array.isArray(plugin)) { - return plugin[0] === name; - } else { - return plugin === name; - } - }); - - if (plugin && Array.isArray(plugin)) { - return plugin[1][option]; - } - - return null; -} -const PIPELINE_PROPOSALS = ["minimal", "smart", "fsharp"]; -const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; -function validatePlugins(plugins) { - if (hasPlugin(plugins, "decorators")) { - if (hasPlugin(plugins, "decorators-legacy")) { - throw new Error("Cannot use the decorators and decorators-legacy plugin together"); - } - - const decoratorsBeforeExport = getPluginOption(plugins, "decorators", "decoratorsBeforeExport"); - - if (decoratorsBeforeExport == null) { - throw new Error("The 'decorators' plugin requires a 'decoratorsBeforeExport' option," + " whose value must be a boolean. If you are migrating from" + " Babylon/Babel 6 or want to use the old decorators proposal, you" + " should use the 'decorators-legacy' plugin instead of 'decorators'."); - } else if (typeof decoratorsBeforeExport !== "boolean") { - throw new Error("'decoratorsBeforeExport' must be a boolean."); - } - } - - if (hasPlugin(plugins, "flow") && hasPlugin(plugins, "typescript")) { - throw new Error("Cannot combine flow and typescript plugins."); - } - - if (hasPlugin(plugins, "placeholders") && hasPlugin(plugins, "v8intrinsic")) { - throw new Error("Cannot combine placeholders and v8intrinsic plugins."); - } - - if (hasPlugin(plugins, "pipelineOperator") && !PIPELINE_PROPOSALS.includes(getPluginOption(plugins, "pipelineOperator", "proposal"))) { - throw new Error("'pipelineOperator' requires 'proposal' option whose value should be one of: " + PIPELINE_PROPOSALS.map(p => `'${p}'`).join(", ")); - } - - if (hasPlugin(plugins, "moduleAttributes")) { - if (hasPlugin(plugins, "importAssertions")) { - throw new Error("Cannot combine importAssertions and moduleAttributes plugins."); - } - - const moduleAttributesVerionPluginOption = getPluginOption(plugins, "moduleAttributes", "version"); - - if (moduleAttributesVerionPluginOption !== "may-2020") { - throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'."); - } - } - - if (hasPlugin(plugins, "recordAndTuple") && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) { - throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); - } -} -const mixinPlugins = { - estree, - jsx, - flow, - typescript, - v8intrinsic, - placeholders -}; -const mixinPluginNames = Object.keys(mixinPlugins); - -const defaultOptions = { - sourceType: "script", - sourceFilename: undefined, - startLine: 1, - allowAwaitOutsideFunction: false, - allowReturnOutsideFunction: false, - allowImportExportEverywhere: false, - allowSuperOutsideMethod: false, - allowUndeclaredExports: false, - plugins: [], - strictMode: null, - ranges: false, - tokens: false, - createParenthesizedExpressions: false, - errorRecovery: false -}; -function getOptions(opts) { - const options = {}; - - for (const key of Object.keys(defaultOptions)) { - options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key]; - } - - return options; -} - -class State { - constructor() { - this.strict = void 0; - this.curLine = void 0; - this.startLoc = void 0; - this.endLoc = void 0; - this.errors = []; - this.potentialArrowAt = -1; - this.noArrowAt = []; - this.noArrowParamsConversionAt = []; - this.maybeInArrowParameters = false; - this.inPipeline = false; - this.inType = false; - this.noAnonFunctionType = false; - this.inPropertyName = false; - this.hasFlowComment = false; - this.isIterator = false; - this.isDeclareContext = false; - this.inAbstractClass = false; - this.topicContext = { - maxNumOfResolvableTopics: 0, - maxTopicIndex: null - }; - this.soloAwait = false; - this.inFSharpPipelineDirectBody = false; - this.labels = []; - this.decoratorStack = [[]]; - this.comments = []; - this.trailingComments = []; - this.leadingComments = []; - this.commentStack = []; - this.commentPreviousNode = null; - this.pos = 0; - this.lineStart = 0; - this.type = types.eof; - this.value = null; - this.start = 0; - this.end = 0; - this.lastTokEndLoc = null; - this.lastTokStartLoc = null; - this.lastTokStart = 0; - this.lastTokEnd = 0; - this.context = [types$1.braceStatement]; - this.exprAllowed = true; - this.containsEsc = false; - this.strictErrors = new Map(); - this.exportedIdentifiers = []; - this.tokensLength = 0; - } - - init(options) { - this.strict = options.strictMode === false ? false : options.sourceType === "module"; - this.curLine = options.startLine; - this.startLoc = this.endLoc = this.curPosition(); - } - - curPosition() { - return new Position(this.curLine, this.pos - this.lineStart); - } - - clone(skipArrays) { - const state = new State(); - const keys = Object.keys(this); - - for (let i = 0, length = keys.length; i < length; i++) { - const key = keys[i]; - let val = this[key]; - - if (!skipArrays && Array.isArray(val)) { - val = val.slice(); - } - - state[key] = val; - } - - return state; - } - -} - -var _isDigit = function isDigit(code) { - return code >= 48 && code <= 57; -}; -const VALID_REGEX_FLAGS = new Set(["g", "m", "s", "i", "y", "u"]); -const forbiddenNumericSeparatorSiblings = { - decBinOct: [46, 66, 69, 79, 95, 98, 101, 111], - hex: [46, 88, 95, 120] -}; -const allowedNumericSeparatorSiblings = {}; -allowedNumericSeparatorSiblings.bin = [48, 49]; -allowedNumericSeparatorSiblings.oct = [...allowedNumericSeparatorSiblings.bin, 50, 51, 52, 53, 54, 55]; -allowedNumericSeparatorSiblings.dec = [...allowedNumericSeparatorSiblings.oct, 56, 57]; -allowedNumericSeparatorSiblings.hex = [...allowedNumericSeparatorSiblings.dec, 65, 66, 67, 68, 69, 70, 97, 98, 99, 100, 101, 102]; -class Token { - constructor(state) { - this.type = state.type; - this.value = state.value; - this.start = state.start; - this.end = state.end; - this.loc = new SourceLocation(state.startLoc, state.endLoc); - } - -} -class Tokenizer extends ParserError { - constructor(options, input) { - super(); - this.isLookahead = void 0; - this.tokens = []; - this.state = new State(); - this.state.init(options); - this.input = input; - this.length = input.length; - this.isLookahead = false; - } - - pushToken(token) { - this.tokens.length = this.state.tokensLength; - this.tokens.push(token); - ++this.state.tokensLength; - } - - next() { - if (!this.isLookahead) { - this.checkKeywordEscapes(); - - if (this.options.tokens) { - this.pushToken(new Token(this.state)); - } - } - - this.state.lastTokEnd = this.state.end; - this.state.lastTokStart = this.state.start; - this.state.lastTokEndLoc = this.state.endLoc; - this.state.lastTokStartLoc = this.state.startLoc; - this.nextToken(); - } - - eat(type) { - if (this.match(type)) { - this.next(); - return true; - } else { - return false; - } - } - - match(type) { - return this.state.type === type; - } - - lookahead() { - const old = this.state; - this.state = old.clone(true); - this.isLookahead = true; - this.next(); - this.isLookahead = false; - const curr = this.state; - this.state = old; - return curr; - } - - nextTokenStart() { - return this.nextTokenStartSince(this.state.pos); - } - - nextTokenStartSince(pos) { - skipWhiteSpace.lastIndex = pos; - const skip = skipWhiteSpace.exec(this.input); - return pos + skip[0].length; - } - - lookaheadCharCode() { - return this.input.charCodeAt(this.nextTokenStart()); - } - - setStrict(strict) { - this.state.strict = strict; - - if (strict) { - this.state.strictErrors.forEach((message, pos) => this.raise(pos, message)); - this.state.strictErrors.clear(); - } - } - - curContext() { - return this.state.context[this.state.context.length - 1]; - } - - nextToken() { - const curContext = this.curContext(); - if (!(curContext != null && curContext.preserveSpace)) this.skipSpace(); - this.state.start = this.state.pos; - this.state.startLoc = this.state.curPosition(); - - if (this.state.pos >= this.length) { - this.finishToken(types.eof); - return; - } - - const override = curContext == null ? void 0 : curContext.override; - - if (override) { - override(this); - } else { - this.getTokenFromCode(this.input.codePointAt(this.state.pos)); - } - } - - pushComment(block, text, start, end, startLoc, endLoc) { - const comment = { - type: block ? "CommentBlock" : "CommentLine", - value: text, - start: start, - end: end, - loc: new SourceLocation(startLoc, endLoc) - }; - if (this.options.tokens) this.pushToken(comment); - this.state.comments.push(comment); - this.addComment(comment); - } - - skipBlockComment() { - const startLoc = this.state.curPosition(); - const start = this.state.pos; - const end = this.input.indexOf("*/", this.state.pos + 2); - if (end === -1) throw this.raise(start, ErrorMessages.UnterminatedComment); - this.state.pos = end + 2; - lineBreakG.lastIndex = start; - let match; - - while ((match = lineBreakG.exec(this.input)) && match.index < this.state.pos) { - ++this.state.curLine; - this.state.lineStart = match.index + match[0].length; - } - - if (this.isLookahead) return; - this.pushComment(true, this.input.slice(start + 2, end), start, this.state.pos, startLoc, this.state.curPosition()); - } - - skipLineComment(startSkip) { - const start = this.state.pos; - const startLoc = this.state.curPosition(); - let ch = this.input.charCodeAt(this.state.pos += startSkip); - - if (this.state.pos < this.length) { - while (!isNewLine(ch) && ++this.state.pos < this.length) { - ch = this.input.charCodeAt(this.state.pos); - } - } - - if (this.isLookahead) return; - this.pushComment(false, this.input.slice(start + startSkip, this.state.pos), start, this.state.pos, startLoc, this.state.curPosition()); - } - - skipSpace() { - loop: while (this.state.pos < this.length) { - const ch = this.input.charCodeAt(this.state.pos); - - switch (ch) { - case 32: - case 160: - case 9: - ++this.state.pos; - break; - - case 13: - if (this.input.charCodeAt(this.state.pos + 1) === 10) { - ++this.state.pos; - } - - case 10: - case 8232: - case 8233: - ++this.state.pos; - ++this.state.curLine; - this.state.lineStart = this.state.pos; - break; - - case 47: - switch (this.input.charCodeAt(this.state.pos + 1)) { - case 42: - this.skipBlockComment(); - break; - - case 47: - this.skipLineComment(2); - break; - - default: - break loop; - } - - break; - - default: - if (isWhitespace(ch)) { - ++this.state.pos; - } else { - break loop; - } - - } - } - } - - finishToken(type, val) { - this.state.end = this.state.pos; - this.state.endLoc = this.state.curPosition(); - const prevType = this.state.type; - this.state.type = type; - this.state.value = val; - if (!this.isLookahead) this.updateContext(prevType); - } - - readToken_numberSign() { - if (this.state.pos === 0 && this.readToken_interpreter()) { - return; - } - - const nextPos = this.state.pos + 1; - const next = this.input.charCodeAt(nextPos); - - if (next >= 48 && next <= 57) { - throw this.raise(this.state.pos, ErrorMessages.UnexpectedDigitAfterHash); - } - - if (next === 123 || next === 91 && this.hasPlugin("recordAndTuple")) { - this.expectPlugin("recordAndTuple"); - - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "hash") { - throw this.raise(this.state.pos, next === 123 ? ErrorMessages.RecordExpressionHashIncorrectStartSyntaxType : ErrorMessages.TupleExpressionHashIncorrectStartSyntaxType); - } - - if (next === 123) { - this.finishToken(types.braceHashL); - } else { - this.finishToken(types.bracketHashL); - } - - this.state.pos += 2; - } else { - this.finishOp(types.hash, 1); - } - } - - readToken_dot() { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next >= 48 && next <= 57) { - this.readNumber(true); - return; - } - - if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) { - this.state.pos += 3; - this.finishToken(types.ellipsis); - } else { - ++this.state.pos; - this.finishToken(types.dot); - } - } - - readToken_slash() { - if (this.state.exprAllowed && !this.state.inType) { - ++this.state.pos; - this.readRegexp(); - return; - } - - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === 61) { - this.finishOp(types.assign, 2); - } else { - this.finishOp(types.slash, 1); - } - } - - readToken_interpreter() { - if (this.state.pos !== 0 || this.length < 2) return false; - let ch = this.input.charCodeAt(this.state.pos + 1); - if (ch !== 33) return false; - const start = this.state.pos; - this.state.pos += 1; - - while (!isNewLine(ch) && ++this.state.pos < this.length) { - ch = this.input.charCodeAt(this.state.pos); - } - - const value = this.input.slice(start + 2, this.state.pos); - this.finishToken(types.interpreterDirective, value); - return true; - } - - readToken_mult_modulo(code) { - let type = code === 42 ? types.star : types.modulo; - let width = 1; - let next = this.input.charCodeAt(this.state.pos + 1); - const exprAllowed = this.state.exprAllowed; - - if (code === 42 && next === 42) { - width++; - next = this.input.charCodeAt(this.state.pos + 2); - type = types.exponent; - } - - if (next === 61 && !exprAllowed) { - width++; - type = types.assign; - } - - this.finishOp(type, width); - } - - readToken_pipe_amp(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === code) { - if (this.input.charCodeAt(this.state.pos + 2) === 61) { - this.finishOp(types.assign, 3); - } else { - this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2); - } - - return; - } - - if (code === 124) { - if (next === 62) { - this.finishOp(types.pipeline, 2); - return; - } - - if (this.hasPlugin("recordAndTuple") && next === 125) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.RecordExpressionBarIncorrectEndSyntaxType); - } - - this.finishOp(types.braceBarR, 2); - return; - } - - if (this.hasPlugin("recordAndTuple") && next === 93) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.TupleExpressionBarIncorrectEndSyntaxType); - } - - this.finishOp(types.bracketBarR, 2); - return; - } - } - - if (next === 61) { - this.finishOp(types.assign, 2); - return; - } - - this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1); - } - - readToken_caret() { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === 61) { - this.finishOp(types.assign, 2); - } else { - this.finishOp(types.bitwiseXOR, 1); - } - } - - readToken_plus_min(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === code) { - if (next === 45 && !this.inModule && this.input.charCodeAt(this.state.pos + 2) === 62 && (this.state.lastTokEnd === 0 || this.hasPrecedingLineBreak())) { - this.skipLineComment(3); - this.skipSpace(); - this.nextToken(); - return; - } - - this.finishOp(types.incDec, 2); - return; - } - - if (next === 61) { - this.finishOp(types.assign, 2); - } else { - this.finishOp(types.plusMin, 1); - } - } - - readToken_lt_gt(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - let size = 1; - - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.state.pos + 2) === 62 ? 3 : 2; - - if (this.input.charCodeAt(this.state.pos + size) === 61) { - this.finishOp(types.assign, size + 1); - return; - } - - this.finishOp(types.bitShift, size); - return; - } - - if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.state.pos + 2) === 45 && this.input.charCodeAt(this.state.pos + 3) === 45) { - this.skipLineComment(4); - this.skipSpace(); - this.nextToken(); - return; - } - - if (next === 61) { - size = 2; - } - - this.finishOp(types.relational, size); - } - - readToken_eq_excl(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === 61) { - this.finishOp(types.equality, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2); - return; - } - - if (code === 61 && next === 62) { - this.state.pos += 2; - this.finishToken(types.arrow); - return; - } - - this.finishOp(code === 61 ? types.eq : types.bang, 1); - } - - readToken_question() { - const next = this.input.charCodeAt(this.state.pos + 1); - const next2 = this.input.charCodeAt(this.state.pos + 2); - - if (next === 63) { - if (next2 === 61) { - this.finishOp(types.assign, 3); - } else { - this.finishOp(types.nullishCoalescing, 2); - } - } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) { - this.state.pos += 2; - this.finishToken(types.questionDot); - } else { - ++this.state.pos; - this.finishToken(types.question); - } - } - - getTokenFromCode(code) { - switch (code) { - case 46: - this.readToken_dot(); - return; - - case 40: - ++this.state.pos; - this.finishToken(types.parenL); - return; - - case 41: - ++this.state.pos; - this.finishToken(types.parenR); - return; - - case 59: - ++this.state.pos; - this.finishToken(types.semi); - return; - - case 44: - ++this.state.pos; - this.finishToken(types.comma); - return; - - case 91: - if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.TupleExpressionBarIncorrectStartSyntaxType); - } - - this.finishToken(types.bracketBarL); - this.state.pos += 2; - } else { - ++this.state.pos; - this.finishToken(types.bracketL); - } - - return; - - case 93: - ++this.state.pos; - this.finishToken(types.bracketR); - return; - - case 123: - if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.RecordExpressionBarIncorrectStartSyntaxType); - } - - this.finishToken(types.braceBarL); - this.state.pos += 2; - } else { - ++this.state.pos; - this.finishToken(types.braceL); - } - - return; - - case 125: - ++this.state.pos; - this.finishToken(types.braceR); - return; - - case 58: - if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { - this.finishOp(types.doubleColon, 2); - } else { - ++this.state.pos; - this.finishToken(types.colon); - } - - return; - - case 63: - this.readToken_question(); - return; - - case 96: - ++this.state.pos; - this.finishToken(types.backQuote); - return; - - case 48: - { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === 120 || next === 88) { - this.readRadixNumber(16); - return; - } - - if (next === 111 || next === 79) { - this.readRadixNumber(8); - return; - } - - if (next === 98 || next === 66) { - this.readRadixNumber(2); - return; - } - } - - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - this.readNumber(false); - return; - - case 34: - case 39: - this.readString(code); - return; - - case 47: - this.readToken_slash(); - return; - - case 37: - case 42: - this.readToken_mult_modulo(code); - return; - - case 124: - case 38: - this.readToken_pipe_amp(code); - return; - - case 94: - this.readToken_caret(); - return; - - case 43: - case 45: - this.readToken_plus_min(code); - return; - - case 60: - case 62: - this.readToken_lt_gt(code); - return; - - case 61: - case 33: - this.readToken_eq_excl(code); - return; - - case 126: - this.finishOp(types.tilde, 1); - return; - - case 64: - ++this.state.pos; - this.finishToken(types.at); - return; - - case 35: - this.readToken_numberSign(); - return; - - case 92: - this.readWord(); - return; - - default: - if (isIdentifierStart(code)) { - this.readWord(); - return; - } - - } - - throw this.raise(this.state.pos, ErrorMessages.InvalidOrUnexpectedToken, String.fromCodePoint(code)); - } - - finishOp(type, size) { - const str = this.input.slice(this.state.pos, this.state.pos + size); - this.state.pos += size; - this.finishToken(type, str); - } - - readRegexp() { - const start = this.state.pos; - let escaped, inClass; - - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(start, ErrorMessages.UnterminatedRegExp); - } - - const ch = this.input.charAt(this.state.pos); - - if (lineBreak.test(ch)) { - throw this.raise(start, ErrorMessages.UnterminatedRegExp); - } - - if (escaped) { - escaped = false; - } else { - if (ch === "[") { - inClass = true; - } else if (ch === "]" && inClass) { - inClass = false; - } else if (ch === "/" && !inClass) { - break; - } - - escaped = ch === "\\"; - } - - ++this.state.pos; - } - - const content = this.input.slice(start, this.state.pos); - ++this.state.pos; - let mods = ""; - - while (this.state.pos < this.length) { - const char = this.input[this.state.pos]; - const charCode = this.input.codePointAt(this.state.pos); - - if (VALID_REGEX_FLAGS.has(char)) { - if (mods.indexOf(char) > -1) { - this.raise(this.state.pos + 1, ErrorMessages.DuplicateRegExpFlags); - } - } else if (isIdentifierChar(charCode) || charCode === 92) { - this.raise(this.state.pos + 1, ErrorMessages.MalformedRegExpFlags); - } else { - break; - } - - ++this.state.pos; - mods += char; - } - - this.finishToken(types.regexp, { - pattern: content, - flags: mods - }); - } - - readInt(radix, len, forceLen, allowNumSeparator = true) { - const start = this.state.pos; - const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; - const allowedSiblings = radix === 16 ? allowedNumericSeparatorSiblings.hex : radix === 10 ? allowedNumericSeparatorSiblings.dec : radix === 8 ? allowedNumericSeparatorSiblings.oct : allowedNumericSeparatorSiblings.bin; - let invalid = false; - let total = 0; - - for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { - const code = this.input.charCodeAt(this.state.pos); - let val; - - if (code === 95) { - const prev = this.input.charCodeAt(this.state.pos - 1); - const next = this.input.charCodeAt(this.state.pos + 1); - - if (allowedSiblings.indexOf(next) === -1) { - this.raise(this.state.pos, ErrorMessages.UnexpectedNumericSeparator); - } else if (forbiddenSiblings.indexOf(prev) > -1 || forbiddenSiblings.indexOf(next) > -1 || Number.isNaN(next)) { - this.raise(this.state.pos, ErrorMessages.UnexpectedNumericSeparator); - } - - if (!allowNumSeparator) { - this.raise(this.state.pos, ErrorMessages.NumericSeparatorInEscapeSequence); - } - - ++this.state.pos; - continue; - } - - if (code >= 97) { - val = code - 97 + 10; - } else if (code >= 65) { - val = code - 65 + 10; - } else if (_isDigit(code)) { - val = code - 48; - } else { - val = Infinity; - } - - if (val >= radix) { - if (this.options.errorRecovery && val <= 9) { - val = 0; - this.raise(this.state.start + i + 2, ErrorMessages.InvalidDigit, radix); - } else if (forceLen) { - val = 0; - invalid = true; - } else { - break; - } - } - - ++this.state.pos; - total = total * radix + val; - } - - if (this.state.pos === start || len != null && this.state.pos - start !== len || invalid) { - return null; - } - - return total; - } - - readRadixNumber(radix) { - const start = this.state.pos; - let isBigInt = false; - this.state.pos += 2; - const val = this.readInt(radix); - - if (val == null) { - this.raise(this.state.start + 2, ErrorMessages.InvalidDigit, radix); - } - - const next = this.input.charCodeAt(this.state.pos); - - if (next === 110) { - ++this.state.pos; - isBigInt = true; - } else if (next === 109) { - throw this.raise(start, ErrorMessages.InvalidDecimal); - } - - if (isIdentifierStart(this.input.codePointAt(this.state.pos))) { - throw this.raise(this.state.pos, ErrorMessages.NumberIdentifier); - } - - if (isBigInt) { - const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, ""); - this.finishToken(types.bigint, str); - return; - } - - this.finishToken(types.num, val); - } - - readNumber(startsWithDot) { - const start = this.state.pos; - let isFloat = false; - let isBigInt = false; - let isDecimal = false; - let hasExponent = false; - let isOctal = false; - - if (!startsWithDot && this.readInt(10) === null) { - this.raise(start, ErrorMessages.InvalidNumber); - } - - const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48; - - if (hasLeadingZero) { - const integer = this.input.slice(start, this.state.pos); - this.recordStrictModeErrors(start, ErrorMessages.StrictOctalLiteral); - - if (!this.state.strict) { - const underscorePos = integer.indexOf("_"); - - if (underscorePos > 0) { - this.raise(underscorePos + start, ErrorMessages.ZeroDigitNumericSeparator); - } - } - - isOctal = hasLeadingZero && !/[89]/.test(integer); - } - - let next = this.input.charCodeAt(this.state.pos); - - if (next === 46 && !isOctal) { - ++this.state.pos; - this.readInt(10); - isFloat = true; - next = this.input.charCodeAt(this.state.pos); - } - - if ((next === 69 || next === 101) && !isOctal) { - next = this.input.charCodeAt(++this.state.pos); - - if (next === 43 || next === 45) { - ++this.state.pos; - } - - if (this.readInt(10) === null) { - this.raise(start, ErrorMessages.InvalidOrMissingExponent); - } - - isFloat = true; - hasExponent = true; - next = this.input.charCodeAt(this.state.pos); - } - - if (next === 110) { - if (isFloat || hasLeadingZero) { - this.raise(start, ErrorMessages.InvalidBigIntLiteral); - } - - ++this.state.pos; - isBigInt = true; - } - - if (next === 109) { - this.expectPlugin("decimal", this.state.pos); - - if (hasExponent || hasLeadingZero) { - this.raise(start, ErrorMessages.InvalidDecimal); - } - - ++this.state.pos; - isDecimal = true; - } - - if (isIdentifierStart(this.input.codePointAt(this.state.pos))) { - throw this.raise(this.state.pos, ErrorMessages.NumberIdentifier); - } - - const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); - - if (isBigInt) { - this.finishToken(types.bigint, str); - return; - } - - if (isDecimal) { - this.finishToken(types.decimal, str); - return; - } - - const val = isOctal ? parseInt(str, 8) : parseFloat(str); - this.finishToken(types.num, val); - } - - readCodePoint(throwOnInvalid) { - const ch = this.input.charCodeAt(this.state.pos); - let code; - - if (ch === 123) { - const codePos = ++this.state.pos; - code = this.readHexChar(this.input.indexOf("}", this.state.pos) - this.state.pos, true, throwOnInvalid); - ++this.state.pos; - - if (code !== null && code > 0x10ffff) { - if (throwOnInvalid) { - this.raise(codePos, ErrorMessages.InvalidCodePoint); - } else { - return null; - } - } - } else { - code = this.readHexChar(4, false, throwOnInvalid); - } - - return code; - } - - readString(quote) { - let out = "", - chunkStart = ++this.state.pos; - - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedString); - } - - const ch = this.input.charCodeAt(this.state.pos); - if (ch === quote) break; - - if (ch === 92) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.readEscapedChar(false); - chunkStart = this.state.pos; - } else if (ch === 8232 || ch === 8233) { - ++this.state.pos; - ++this.state.curLine; - this.state.lineStart = this.state.pos; - } else if (isNewLine(ch)) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedString); - } else { - ++this.state.pos; - } - } - - out += this.input.slice(chunkStart, this.state.pos++); - this.finishToken(types.string, out); - } - - readTmplToken() { - let out = "", - chunkStart = this.state.pos, - containsInvalid = false; - - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedTemplate); - } - - const ch = this.input.charCodeAt(this.state.pos); - - if (ch === 96 || ch === 36 && this.input.charCodeAt(this.state.pos + 1) === 123) { - if (this.state.pos === this.state.start && this.match(types.template)) { - if (ch === 36) { - this.state.pos += 2; - this.finishToken(types.dollarBraceL); - return; - } else { - ++this.state.pos; - this.finishToken(types.backQuote); - return; - } - } - - out += this.input.slice(chunkStart, this.state.pos); - this.finishToken(types.template, containsInvalid ? null : out); - return; - } - - if (ch === 92) { - out += this.input.slice(chunkStart, this.state.pos); - const escaped = this.readEscapedChar(true); - - if (escaped === null) { - containsInvalid = true; - } else { - out += escaped; - } - - chunkStart = this.state.pos; - } else if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - ++this.state.pos; - - switch (ch) { - case 13: - if (this.input.charCodeAt(this.state.pos) === 10) { - ++this.state.pos; - } - - case 10: - out += "\n"; - break; - - default: - out += String.fromCharCode(ch); - break; - } - - ++this.state.curLine; - this.state.lineStart = this.state.pos; - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } - } - } - - recordStrictModeErrors(pos, message) { - if (this.state.strict && !this.state.strictErrors.has(pos)) { - this.raise(pos, message); - } else { - this.state.strictErrors.set(pos, message); - } - } - - readEscapedChar(inTemplate) { - const throwOnInvalid = !inTemplate; - const ch = this.input.charCodeAt(++this.state.pos); - ++this.state.pos; - - switch (ch) { - case 110: - return "\n"; - - case 114: - return "\r"; - - case 120: - { - const code = this.readHexChar(2, false, throwOnInvalid); - return code === null ? null : String.fromCharCode(code); - } - - case 117: - { - const code = this.readCodePoint(throwOnInvalid); - return code === null ? null : String.fromCodePoint(code); - } - - case 116: - return "\t"; - - case 98: - return "\b"; - - case 118: - return "\u000b"; - - case 102: - return "\f"; - - case 13: - if (this.input.charCodeAt(this.state.pos) === 10) { - ++this.state.pos; - } - - case 10: - this.state.lineStart = this.state.pos; - ++this.state.curLine; - - case 8232: - case 8233: - return ""; - - case 56: - case 57: - if (inTemplate) { - return null; - } else { - this.recordStrictModeErrors(this.state.pos - 1, ErrorMessages.StrictNumericEscape); - } - - default: - if (ch >= 48 && ch <= 55) { - const codePos = this.state.pos - 1; - const match = this.input.substr(this.state.pos - 1, 3).match(/^[0-7]+/); - let octalStr = match[0]; - let octal = parseInt(octalStr, 8); - - if (octal > 255) { - octalStr = octalStr.slice(0, -1); - octal = parseInt(octalStr, 8); - } - - this.state.pos += octalStr.length - 1; - const next = this.input.charCodeAt(this.state.pos); - - if (octalStr !== "0" || next === 56 || next === 57) { - if (inTemplate) { - return null; - } else { - this.recordStrictModeErrors(codePos, ErrorMessages.StrictNumericEscape); - } - } - - return String.fromCharCode(octal); - } - - return String.fromCharCode(ch); - } - } - - readHexChar(len, forceLen, throwOnInvalid) { - const codePos = this.state.pos; - const n = this.readInt(16, len, forceLen, false); - - if (n === null) { - if (throwOnInvalid) { - this.raise(codePos, ErrorMessages.InvalidEscapeSequence); - } else { - this.state.pos = codePos - 1; - } - } - - return n; - } - - readWord1() { - let word = ""; - this.state.containsEsc = false; - const start = this.state.pos; - let chunkStart = this.state.pos; - - while (this.state.pos < this.length) { - const ch = this.input.codePointAt(this.state.pos); - - if (isIdentifierChar(ch)) { - this.state.pos += ch <= 0xffff ? 1 : 2; - } else if (this.state.isIterator && ch === 64) { - ++this.state.pos; - } else if (ch === 92) { - this.state.containsEsc = true; - word += this.input.slice(chunkStart, this.state.pos); - const escStart = this.state.pos; - const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar; - - if (this.input.charCodeAt(++this.state.pos) !== 117) { - this.raise(this.state.pos, ErrorMessages.MissingUnicodeEscape); - continue; - } - - ++this.state.pos; - const esc = this.readCodePoint(true); - - if (esc !== null) { - if (!identifierCheck(esc)) { - this.raise(escStart, ErrorMessages.EscapedCharNotAnIdentifier); - } - - word += String.fromCodePoint(esc); - } - - chunkStart = this.state.pos; - } else { - break; - } - } - - return word + this.input.slice(chunkStart, this.state.pos); - } - - isIterator(word) { - return word === "@@iterator" || word === "@@asyncIterator"; - } - - readWord() { - const word = this.readWord1(); - const type = keywords.get(word) || types.name; - - if (this.state.isIterator && (!this.isIterator(word) || !this.state.inType)) { - this.raise(this.state.pos, ErrorMessages.InvalidIdentifier, word); - } - - this.finishToken(type, word); - } - - checkKeywordEscapes() { - const kw = this.state.type.keyword; - - if (kw && this.state.containsEsc) { - this.raise(this.state.start, ErrorMessages.InvalidEscapedReservedWord, kw); - } - } - - braceIsBlock(prevType) { - const parent = this.curContext(); - - if (parent === types$1.functionExpression || parent === types$1.functionStatement) { - return true; - } - - if (prevType === types.colon && (parent === types$1.braceStatement || parent === types$1.braceExpression)) { - return !parent.isExpr; - } - - if (prevType === types._return || prevType === types.name && this.state.exprAllowed) { - return this.hasPrecedingLineBreak(); - } - - if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow) { - return true; - } - - if (prevType === types.braceL) { - return parent === types$1.braceStatement; - } - - if (prevType === types._var || prevType === types._const || prevType === types.name) { - return false; - } - - if (prevType === types.relational) { - return true; - } - - return !this.state.exprAllowed; - } - - updateContext(prevType) { - const type = this.state.type; - let update; - - if (type.keyword && (prevType === types.dot || prevType === types.questionDot)) { - this.state.exprAllowed = false; - } else if (update = type.updateContext) { - update.call(this, prevType); - } else { - this.state.exprAllowed = type.beforeExpr; - } - } - -} - -class ClassScope { - constructor() { - this.privateNames = new Set(); - this.loneAccessors = new Map(); - this.undefinedPrivateNames = new Map(); - } - -} -class ClassScopeHandler { - constructor(raise) { - this.stack = []; - this.undefinedPrivateNames = new Map(); - this.raise = raise; - } - - current() { - return this.stack[this.stack.length - 1]; - } - - enter() { - this.stack.push(new ClassScope()); - } - - exit() { - const oldClassScope = this.stack.pop(); - const current = this.current(); - - for (const [name, pos] of Array.from(oldClassScope.undefinedPrivateNames)) { - if (current) { - if (!current.undefinedPrivateNames.has(name)) { - current.undefinedPrivateNames.set(name, pos); - } - } else { - this.raise(pos, ErrorMessages.InvalidPrivateFieldResolution, name); - } - } - } - - declarePrivateName(name, elementType, pos) { - const classScope = this.current(); - let redefined = classScope.privateNames.has(name); - - if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) { - const accessor = redefined && classScope.loneAccessors.get(name); - - if (accessor) { - const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC; - const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC; - const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR; - const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR; - redefined = oldKind === newKind || oldStatic !== newStatic; - if (!redefined) classScope.loneAccessors.delete(name); - } else if (!redefined) { - classScope.loneAccessors.set(name, elementType); - } - } - - if (redefined) { - this.raise(pos, ErrorMessages.PrivateNameRedeclaration, name); - } - - classScope.privateNames.add(name); - classScope.undefinedPrivateNames.delete(name); - } - - usePrivateName(name, pos) { - let classScope; - - for (classScope of this.stack) { - if (classScope.privateNames.has(name)) return; - } - - if (classScope) { - classScope.undefinedPrivateNames.set(name, pos); - } else { - this.raise(pos, ErrorMessages.InvalidPrivateFieldResolution, name); - } - } - -} - -const kExpression = 0, - kMaybeArrowParameterDeclaration = 1, - kMaybeAsyncArrowParameterDeclaration = 2, - kParameterDeclaration = 3; - -class ExpressionScope { - constructor(type = kExpression) { - this.type = void 0; - this.type = type; - } - - canBeArrowParameterDeclaration() { - return this.type === kMaybeAsyncArrowParameterDeclaration || this.type === kMaybeArrowParameterDeclaration; - } - - isCertainlyParameterDeclaration() { - return this.type === kParameterDeclaration; - } - -} - -class ArrowHeadParsingScope extends ExpressionScope { - constructor(type) { - super(type); - this.errors = new Map(); - } - - recordDeclarationError(pos, message) { - this.errors.set(pos, message); - } - - clearDeclarationError(pos) { - this.errors.delete(pos); - } - - iterateErrors(iterator) { - this.errors.forEach(iterator); - } - -} - -class ExpressionScopeHandler { - constructor(raise) { - this.stack = [new ExpressionScope()]; - this.raise = raise; - } - - enter(scope) { - this.stack.push(scope); - } - - exit() { - this.stack.pop(); - } - - recordParameterInitializerError(pos, message) { - const { - stack - } = this; - let i = stack.length - 1; - let scope = stack[i]; - - while (!scope.isCertainlyParameterDeclaration()) { - if (scope.canBeArrowParameterDeclaration()) { - scope.recordDeclarationError(pos, message); - } else { - return; - } - - scope = stack[--i]; - } - - this.raise(pos, message); - } - - recordParenthesizedIdentifierError(pos, message) { - const { - stack - } = this; - const scope = stack[stack.length - 1]; - - if (scope.isCertainlyParameterDeclaration()) { - this.raise(pos, message); - } else if (scope.canBeArrowParameterDeclaration()) { - scope.recordDeclarationError(pos, message); - } else { - return; - } - } - - recordAsyncArrowParametersError(pos, message) { - const { - stack - } = this; - let i = stack.length - 1; - let scope = stack[i]; - - while (scope.canBeArrowParameterDeclaration()) { - if (scope.type === kMaybeAsyncArrowParameterDeclaration) { - scope.recordDeclarationError(pos, message); - } - - scope = stack[--i]; - } - } - - validateAsPattern() { - const { - stack - } = this; - const currentScope = stack[stack.length - 1]; - if (!currentScope.canBeArrowParameterDeclaration()) return; - currentScope.iterateErrors((message, pos) => { - this.raise(pos, message); - let i = stack.length - 2; - let scope = stack[i]; - - while (scope.canBeArrowParameterDeclaration()) { - scope.clearDeclarationError(pos); - scope = stack[--i]; - } - }); - } - -} -function newParameterDeclarationScope() { - return new ExpressionScope(kParameterDeclaration); -} -function newArrowHeadScope() { - return new ArrowHeadParsingScope(kMaybeArrowParameterDeclaration); -} -function newAsyncArrowScope() { - return new ArrowHeadParsingScope(kMaybeAsyncArrowParameterDeclaration); -} -function newExpressionScope() { - return new ExpressionScope(); -} - -class UtilParser extends Tokenizer { - addExtra(node, key, val) { - if (!node) return; - const extra = node.extra = node.extra || {}; - extra[key] = val; - } - - isRelational(op) { - return this.match(types.relational) && this.state.value === op; - } - - expectRelational(op) { - if (this.isRelational(op)) { - this.next(); - } else { - this.unexpected(null, types.relational); - } - } - - isContextual(name) { - return this.match(types.name) && this.state.value === name && !this.state.containsEsc; - } - - isUnparsedContextual(nameStart, name) { - const nameEnd = nameStart + name.length; - return this.input.slice(nameStart, nameEnd) === name && (nameEnd === this.input.length || !isIdentifierChar(this.input.charCodeAt(nameEnd))); - } - - isLookaheadContextual(name) { - const next = this.nextTokenStart(); - return this.isUnparsedContextual(next, name); - } - - eatContextual(name) { - return this.isContextual(name) && this.eat(types.name); - } - - expectContextual(name, message) { - if (!this.eatContextual(name)) this.unexpected(null, message); - } - - canInsertSemicolon() { - return this.match(types.eof) || this.match(types.braceR) || this.hasPrecedingLineBreak(); - } - - hasPrecedingLineBreak() { - return lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start)); - } - - hasFollowingLineBreak() { - return lineBreak.test(this.input.slice(this.state.end, this.nextTokenStart())); - } - - isLineTerminator() { - return this.eat(types.semi) || this.canInsertSemicolon(); - } - - semicolon(allowAsi = true) { - if (allowAsi ? this.isLineTerminator() : this.eat(types.semi)) return; - this.raise(this.state.lastTokEnd, ErrorMessages.MissingSemicolon); - } - - expect(type, pos) { - this.eat(type) || this.unexpected(pos, type); - } - - assertNoSpace(message = "Unexpected space.") { - if (this.state.start > this.state.lastTokEnd) { - this.raise(this.state.lastTokEnd, message); - } - } - - unexpected(pos, messageOrType = "Unexpected token") { - if (typeof messageOrType !== "string") { - messageOrType = `Unexpected token, expected "${messageOrType.label}"`; - } - - throw this.raise(pos != null ? pos : this.state.start, messageOrType); - } - - expectPlugin(name, pos) { - if (!this.hasPlugin(name)) { - throw this.raiseWithData(pos != null ? pos : this.state.start, { - missingPlugin: [name] - }, `This experimental syntax requires enabling the parser plugin: '${name}'`); - } - - return true; - } - - expectOnePlugin(names, pos) { - if (!names.some(n => this.hasPlugin(n))) { - throw this.raiseWithData(pos != null ? pos : this.state.start, { - missingPlugin: names - }, `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(", ")}'`); - } - } - - tryParse(fn, oldState = this.state.clone()) { - const abortSignal = { - node: null - }; - - try { - const node = fn((node = null) => { - abortSignal.node = node; - throw abortSignal; - }); - - if (this.state.errors.length > oldState.errors.length) { - const failState = this.state; - this.state = oldState; - return { - node, - error: failState.errors[oldState.errors.length], - thrown: false, - aborted: false, - failState - }; - } - - return { - node, - error: null, - thrown: false, - aborted: false, - failState: null - }; - } catch (error) { - const failState = this.state; - this.state = oldState; - - if (error instanceof SyntaxError) { - return { - node: null, - error, - thrown: true, - aborted: false, - failState - }; - } - - if (error === abortSignal) { - return { - node: abortSignal.node, - error: null, - thrown: false, - aborted: true, - failState - }; - } - - throw error; - } - } - - checkExpressionErrors(refExpressionErrors, andThrow) { - if (!refExpressionErrors) return false; - const { - shorthandAssign, - doubleProto - } = refExpressionErrors; - if (!andThrow) return shorthandAssign >= 0 || doubleProto >= 0; - - if (shorthandAssign >= 0) { - this.unexpected(shorthandAssign); - } - - if (doubleProto >= 0) { - this.raise(doubleProto, ErrorMessages.DuplicateProto); - } - } - - isLiteralPropertyName() { - return this.match(types.name) || !!this.state.type.keyword || this.match(types.string) || this.match(types.num) || this.match(types.bigint) || this.match(types.decimal); - } - - isPrivateName(node) { - return node.type === "PrivateName"; - } - - getPrivateNameSV(node) { - return node.id.name; - } - - hasPropertyAsPrivateName(node) { - return (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") && this.isPrivateName(node.property); - } - - isOptionalChain(node) { - return node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression"; - } - - isObjectProperty(node) { - return node.type === "ObjectProperty"; - } - - isObjectMethod(node) { - return node.type === "ObjectMethod"; - } - - initializeScopes(inModule = this.options.sourceType === "module") { - const oldLabels = this.state.labels; - this.state.labels = []; - const oldExportedIdentifiers = this.state.exportedIdentifiers; - this.state.exportedIdentifiers = []; - const oldInModule = this.inModule; - this.inModule = inModule; - const oldScope = this.scope; - const ScopeHandler = this.getScopeHandler(); - this.scope = new ScopeHandler(this.raise.bind(this), this.inModule); - const oldProdParam = this.prodParam; - this.prodParam = new ProductionParameterHandler(); - const oldClassScope = this.classScope; - this.classScope = new ClassScopeHandler(this.raise.bind(this)); - const oldExpressionScope = this.expressionScope; - this.expressionScope = new ExpressionScopeHandler(this.raise.bind(this)); - return () => { - this.state.labels = oldLabels; - this.state.exportedIdentifiers = oldExportedIdentifiers; - this.inModule = oldInModule; - this.scope = oldScope; - this.prodParam = oldProdParam; - this.classScope = oldClassScope; - this.expressionScope = oldExpressionScope; - }; - } - - enterInitialScopes() { - let paramFlags = PARAM; - - if (this.hasPlugin("topLevelAwait") && this.inModule) { - paramFlags |= PARAM_AWAIT; - } - - this.scope.enter(SCOPE_PROGRAM); - this.prodParam.enter(paramFlags); - } - -} -class ExpressionErrors { - constructor() { - this.shorthandAssign = -1; - this.doubleProto = -1; - } - -} - -class Node { - constructor(parser, pos, loc) { - this.type = void 0; - this.start = void 0; - this.end = void 0; - this.loc = void 0; - this.range = void 0; - this.leadingComments = void 0; - this.trailingComments = void 0; - this.innerComments = void 0; - this.extra = void 0; - this.type = ""; - this.start = pos; - this.end = 0; - this.loc = new SourceLocation(loc); - if (parser != null && parser.options.ranges) this.range = [pos, 0]; - if (parser != null && parser.filename) this.loc.filename = parser.filename; - } - - __clone() { - const newNode = new Node(); - const keys = Object.keys(this); - - for (let i = 0, length = keys.length; i < length; i++) { - const key = keys[i]; - - if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { - newNode[key] = this[key]; - } - } - - return newNode; - } - -} - -class NodeUtils extends UtilParser { - startNode() { - return new Node(this, this.state.start, this.state.startLoc); - } - - startNodeAt(pos, loc) { - return new Node(this, pos, loc); - } - - startNodeAtNode(type) { - return this.startNodeAt(type.start, type.loc.start); - } - - finishNode(node, type) { - return this.finishNodeAt(node, type, this.state.lastTokEnd, this.state.lastTokEndLoc); - } - - finishNodeAt(node, type, pos, loc) { - - node.type = type; - node.end = pos; - node.loc.end = loc; - if (this.options.ranges) node.range[1] = pos; - this.processComment(node); - return node; - } - - resetStartLocation(node, start, startLoc) { - node.start = start; - node.loc.start = startLoc; - if (this.options.ranges) node.range[0] = start; - } - - resetEndLocation(node, end = this.state.lastTokEnd, endLoc = this.state.lastTokEndLoc) { - node.end = end; - node.loc.end = endLoc; - if (this.options.ranges) node.range[1] = end; - } - - resetStartLocationFromNode(node, locationNode) { - this.resetStartLocation(node, locationNode.start, locationNode.loc.start); - } - -} - -const unwrapParenthesizedExpression = node => { - return node.type === "ParenthesizedExpression" ? unwrapParenthesizedExpression(node.expression) : node; -}; - -class LValParser extends NodeUtils { - toAssignable(node, isLHS = false) { - var _node$extra, _node$extra3; - - let parenthesized = undefined; - - if (node.type === "ParenthesizedExpression" || (_node$extra = node.extra) != null && _node$extra.parenthesized) { - parenthesized = unwrapParenthesizedExpression(node); - - if (isLHS) { - if (parenthesized.type === "Identifier") { - this.expressionScope.recordParenthesizedIdentifierError(node.start, ErrorMessages.InvalidParenthesizedAssignment); - } else if (parenthesized.type !== "MemberExpression") { - this.raise(node.start, ErrorMessages.InvalidParenthesizedAssignment); - } - } else { - this.raise(node.start, ErrorMessages.InvalidParenthesizedAssignment); - } - } - - switch (node.type) { - case "Identifier": - case "ObjectPattern": - case "ArrayPattern": - case "AssignmentPattern": - break; - - case "ObjectExpression": - node.type = "ObjectPattern"; - - for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) { - var _node$extra2; - - const prop = node.properties[i]; - const isLast = i === last; - this.toAssignableObjectExpressionProp(prop, isLast, isLHS); - - if (isLast && prop.type === "RestElement" && (_node$extra2 = node.extra) != null && _node$extra2.trailingComma) { - this.raiseRestNotLast(node.extra.trailingComma); - } - } - - break; - - case "ObjectProperty": - this.toAssignable(node.value, isLHS); - break; - - case "SpreadElement": - { - this.checkToRestConversion(node); - node.type = "RestElement"; - const arg = node.argument; - this.toAssignable(arg, isLHS); - break; - } - - case "ArrayExpression": - node.type = "ArrayPattern"; - this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingComma, isLHS); - break; - - case "AssignmentExpression": - if (node.operator !== "=") { - this.raise(node.left.end, ErrorMessages.MissingEqInAssignment); - } - - node.type = "AssignmentPattern"; - delete node.operator; - this.toAssignable(node.left, isLHS); - break; - - case "ParenthesizedExpression": - this.toAssignable(parenthesized, isLHS); - break; - } - - return node; - } - - toAssignableObjectExpressionProp(prop, isLast, isLHS) { - if (prop.type === "ObjectMethod") { - const error = prop.kind === "get" || prop.kind === "set" ? ErrorMessages.PatternHasAccessor : ErrorMessages.PatternHasMethod; - this.raise(prop.key.start, error); - } else if (prop.type === "SpreadElement" && !isLast) { - this.raiseRestNotLast(prop.start); - } else { - this.toAssignable(prop, isLHS); - } - } - - toAssignableList(exprList, trailingCommaPos, isLHS) { - let end = exprList.length; - - if (end) { - const last = exprList[end - 1]; - - if ((last == null ? void 0 : last.type) === "RestElement") { - --end; - } else if ((last == null ? void 0 : last.type) === "SpreadElement") { - last.type = "RestElement"; - let arg = last.argument; - this.toAssignable(arg, isLHS); - arg = unwrapParenthesizedExpression(arg); - - if (arg.type !== "Identifier" && arg.type !== "MemberExpression" && arg.type !== "ArrayPattern" && arg.type !== "ObjectPattern") { - this.unexpected(arg.start); - } - - if (trailingCommaPos) { - this.raiseTrailingCommaAfterRest(trailingCommaPos); - } - - --end; - } - } - - for (let i = 0; i < end; i++) { - const elt = exprList[i]; - - if (elt) { - this.toAssignable(elt, isLHS); - - if (elt.type === "RestElement") { - this.raiseRestNotLast(elt.start); - } - } - } - - return exprList; - } - - toReferencedList(exprList, isParenthesizedExpr) { - return exprList; - } - - toReferencedListDeep(exprList, isParenthesizedExpr) { - this.toReferencedList(exprList, isParenthesizedExpr); - - for (const expr of exprList) { - if ((expr == null ? void 0 : expr.type) === "ArrayExpression") { - this.toReferencedListDeep(expr.elements); - } - } - } - - parseSpread(refExpressionErrors, refNeedsArrowPos) { - const node = this.startNode(); - this.next(); - node.argument = this.parseMaybeAssignAllowIn(refExpressionErrors, undefined, refNeedsArrowPos); - return this.finishNode(node, "SpreadElement"); - } - - parseRestBinding() { - const node = this.startNode(); - this.next(); - node.argument = this.parseBindingAtom(); - return this.finishNode(node, "RestElement"); - } - - parseBindingAtom() { - switch (this.state.type) { - case types.bracketL: - { - const node = this.startNode(); - this.next(); - node.elements = this.parseBindingList(types.bracketR, 93, true); - return this.finishNode(node, "ArrayPattern"); - } - - case types.braceL: - return this.parseObjectLike(types.braceR, true); - } - - return this.parseIdentifier(); - } - - parseBindingList(close, closeCharCode, allowEmpty, allowModifiers) { - const elts = []; - let first = true; - - while (!this.eat(close)) { - if (first) { - first = false; - } else { - this.expect(types.comma); - } - - if (allowEmpty && this.match(types.comma)) { - elts.push(null); - } else if (this.eat(close)) { - break; - } else if (this.match(types.ellipsis)) { - elts.push(this.parseAssignableListItemTypes(this.parseRestBinding())); - this.checkCommaAfterRest(closeCharCode); - this.expect(close); - break; - } else { - const decorators = []; - - if (this.match(types.at) && this.hasPlugin("decorators")) { - this.raise(this.state.start, ErrorMessages.UnsupportedParameterDecorator); - } - - while (this.match(types.at)) { - decorators.push(this.parseDecorator()); - } - - elts.push(this.parseAssignableListItem(allowModifiers, decorators)); - } - } - - return elts; - } - - parseAssignableListItem(allowModifiers, decorators) { - const left = this.parseMaybeDefault(); - this.parseAssignableListItemTypes(left); - const elt = this.parseMaybeDefault(left.start, left.loc.start, left); - - if (decorators.length) { - left.decorators = decorators; - } - - return elt; - } - - parseAssignableListItemTypes(param) { - return param; - } - - parseMaybeDefault(startPos, startLoc, left) { - var _startLoc, _startPos, _left; - - startLoc = (_startLoc = startLoc) != null ? _startLoc : this.state.startLoc; - startPos = (_startPos = startPos) != null ? _startPos : this.state.start; - left = (_left = left) != null ? _left : this.parseBindingAtom(); - if (!this.eat(types.eq)) return left; - const node = this.startNodeAt(startPos, startLoc); - node.left = left; - node.right = this.parseMaybeAssignAllowIn(); - return this.finishNode(node, "AssignmentPattern"); - } - - checkLVal(expr, contextDescription, bindingType = BIND_NONE, checkClashes, disallowLetBinding, strictModeChanged = false) { - switch (expr.type) { - case "Identifier": - { - const { - name - } = expr; - - if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(name, this.inModule) : isStrictBindOnlyReservedWord(name))) { - this.raise(expr.start, bindingType === BIND_NONE ? ErrorMessages.StrictEvalArguments : ErrorMessages.StrictEvalArgumentsBinding, name); - } - - if (checkClashes) { - if (checkClashes.has(name)) { - this.raise(expr.start, ErrorMessages.ParamDupe); - } else { - checkClashes.add(name); - } - } - - if (disallowLetBinding && name === "let") { - this.raise(expr.start, ErrorMessages.LetInLexicalBinding); - } - - if (!(bindingType & BIND_NONE)) { - this.scope.declareName(name, bindingType, expr.start); - } - - break; - } - - case "MemberExpression": - if (bindingType !== BIND_NONE) { - this.raise(expr.start, ErrorMessages.InvalidPropertyBindingPattern); - } - - break; - - case "ObjectPattern": - for (let prop of expr.properties) { - if (this.isObjectProperty(prop)) prop = prop.value;else if (this.isObjectMethod(prop)) continue; - this.checkLVal(prop, "object destructuring pattern", bindingType, checkClashes, disallowLetBinding); - } - - break; - - case "ArrayPattern": - for (const elem of expr.elements) { - if (elem) { - this.checkLVal(elem, "array destructuring pattern", bindingType, checkClashes, disallowLetBinding); - } - } - - break; - - case "AssignmentPattern": - this.checkLVal(expr.left, "assignment pattern", bindingType, checkClashes); - break; - - case "RestElement": - this.checkLVal(expr.argument, "rest element", bindingType, checkClashes); - break; - - case "ParenthesizedExpression": - this.checkLVal(expr.expression, "parenthesized expression", bindingType, checkClashes); - break; - - default: - { - this.raise(expr.start, bindingType === BIND_NONE ? ErrorMessages.InvalidLhs : ErrorMessages.InvalidLhsBinding, contextDescription); - } - } - } - - checkToRestConversion(node) { - if (node.argument.type !== "Identifier" && node.argument.type !== "MemberExpression") { - this.raise(node.argument.start, ErrorMessages.InvalidRestAssignmentPattern); - } - } - - checkCommaAfterRest(close) { - if (this.match(types.comma)) { - if (this.lookaheadCharCode() === close) { - this.raiseTrailingCommaAfterRest(this.state.start); - } else { - this.raiseRestNotLast(this.state.start); - } - } - } - - raiseRestNotLast(pos) { - throw this.raise(pos, ErrorMessages.ElementAfterRest); - } - - raiseTrailingCommaAfterRest(pos) { - this.raise(pos, ErrorMessages.RestTrailingComma); - } - -} - -class ExpressionParser extends LValParser { - checkProto(prop, isRecord, protoRef, refExpressionErrors) { - if (prop.type === "SpreadElement" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) { - return; - } - - const key = prop.key; - const name = key.type === "Identifier" ? key.name : key.value; - - if (name === "__proto__") { - if (isRecord) { - this.raise(key.start, ErrorMessages.RecordNoProto); - return; - } - - if (protoRef.used) { - if (refExpressionErrors) { - if (refExpressionErrors.doubleProto === -1) { - refExpressionErrors.doubleProto = key.start; - } - } else { - this.raise(key.start, ErrorMessages.DuplicateProto); - } - } - - protoRef.used = true; - } - } - - shouldExitDescending(expr, potentialArrowAt) { - return expr.type === "ArrowFunctionExpression" && expr.start === potentialArrowAt; - } - - getExpression() { - let paramFlags = PARAM; - - if (this.hasPlugin("topLevelAwait") && this.inModule) { - paramFlags |= PARAM_AWAIT; - } - - this.scope.enter(SCOPE_PROGRAM); - this.prodParam.enter(paramFlags); - this.nextToken(); - const expr = this.parseExpression(); - - if (!this.match(types.eof)) { - this.unexpected(); - } - - expr.comments = this.state.comments; - expr.errors = this.state.errors; - - if (this.options.tokens) { - expr.tokens = this.tokens; - } - - return expr; - } - - parseExpression(disallowIn, refExpressionErrors) { - if (disallowIn) { - return this.disallowInAnd(() => this.parseExpressionBase(refExpressionErrors)); - } - - return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors)); - } - - parseExpressionBase(refExpressionErrors) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const expr = this.parseMaybeAssign(refExpressionErrors); - - if (this.match(types.comma)) { - const node = this.startNodeAt(startPos, startLoc); - node.expressions = [expr]; - - while (this.eat(types.comma)) { - node.expressions.push(this.parseMaybeAssign(refExpressionErrors)); - } - - this.toReferencedList(node.expressions); - return this.finishNode(node, "SequenceExpression"); - } - - return expr; - } - - parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse, refNeedsArrowPos) { - return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos)); - } - - parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse, refNeedsArrowPos) { - return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos)); - } - - parseMaybeAssign(refExpressionErrors, afterLeftParse, refNeedsArrowPos) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - - if (this.isContextual("yield")) { - if (this.prodParam.hasYield) { - this.state.exprAllowed = true; - let left = this.parseYield(); - - if (afterLeftParse) { - left = afterLeftParse.call(this, left, startPos, startLoc); - } - - return left; - } - } - - let ownExpressionErrors; - - if (refExpressionErrors) { - ownExpressionErrors = false; - } else { - refExpressionErrors = new ExpressionErrors(); - ownExpressionErrors = true; - } - - if (this.match(types.parenL) || this.match(types.name)) { - this.state.potentialArrowAt = this.state.start; - } - - let left = this.parseMaybeConditional(refExpressionErrors, refNeedsArrowPos); - - if (afterLeftParse) { - left = afterLeftParse.call(this, left, startPos, startLoc); - } - - if (this.state.type.isAssign) { - const node = this.startNodeAt(startPos, startLoc); - const operator = this.state.value; - node.operator = operator; - - if (this.match(types.eq)) { - node.left = this.toAssignable(left, true); - refExpressionErrors.doubleProto = -1; - } else { - node.left = left; - } - - if (refExpressionErrors.shorthandAssign >= node.left.start) { - refExpressionErrors.shorthandAssign = -1; - } - - this.checkLVal(left, "assignment expression"); - this.next(); - node.right = this.parseMaybeAssign(); - return this.finishNode(node, "AssignmentExpression"); - } else if (ownExpressionErrors) { - this.checkExpressionErrors(refExpressionErrors, true); - } - - return left; - } - - parseMaybeConditional(refExpressionErrors, refNeedsArrowPos) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const potentialArrowAt = this.state.potentialArrowAt; - const expr = this.parseExprOps(refExpressionErrors); - - if (this.shouldExitDescending(expr, potentialArrowAt)) { - return expr; - } - - return this.parseConditional(expr, startPos, startLoc, refNeedsArrowPos); - } - - parseConditional(expr, startPos, startLoc, refNeedsArrowPos) { - if (this.eat(types.question)) { - const node = this.startNodeAt(startPos, startLoc); - node.test = expr; - node.consequent = this.parseMaybeAssignAllowIn(); - this.expect(types.colon); - node.alternate = this.parseMaybeAssign(); - return this.finishNode(node, "ConditionalExpression"); - } - - return expr; - } - - parseExprOps(refExpressionErrors) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const potentialArrowAt = this.state.potentialArrowAt; - const expr = this.parseMaybeUnary(refExpressionErrors); - - if (this.shouldExitDescending(expr, potentialArrowAt)) { - return expr; - } - - return this.parseExprOp(expr, startPos, startLoc, -1); - } - - parseExprOp(left, leftStartPos, leftStartLoc, minPrec) { - let prec = this.state.type.binop; - - if (prec != null && (this.prodParam.hasIn || !this.match(types._in))) { - if (prec > minPrec) { - const op = this.state.type; - - if (op === types.pipeline) { - this.expectPlugin("pipelineOperator"); - - if (this.state.inFSharpPipelineDirectBody) { - return left; - } - - this.state.inPipeline = true; - this.checkPipelineAtInfixOperator(left, leftStartPos); - } - - const node = this.startNodeAt(leftStartPos, leftStartLoc); - node.left = left; - node.operator = this.state.value; - const logical = op === types.logicalOR || op === types.logicalAND; - const coalesce = op === types.nullishCoalescing; - - if (coalesce) { - prec = types.logicalAND.binop; - } - - this.next(); - - if (op === types.pipeline && this.getPluginOption("pipelineOperator", "proposal") === "minimal") { - if (this.match(types.name) && this.state.value === "await" && this.prodParam.hasAwait) { - throw this.raise(this.state.start, ErrorMessages.UnexpectedAwaitAfterPipelineBody); - } - } - - node.right = this.parseExprOpRightExpr(op, prec); - this.finishNode(node, logical || coalesce ? "LogicalExpression" : "BinaryExpression"); - const nextOp = this.state.type; - - if (coalesce && (nextOp === types.logicalOR || nextOp === types.logicalAND) || logical && nextOp === types.nullishCoalescing) { - throw this.raise(this.state.start, ErrorMessages.MixingCoalesceWithLogical); - } - - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec); - } - } - - return left; - } - - parseExprOpRightExpr(op, prec) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - - switch (op) { - case types.pipeline: - switch (this.getPluginOption("pipelineOperator", "proposal")) { - case "smart": - return this.withTopicPermittingContext(() => { - return this.parseSmartPipelineBody(this.parseExprOpBaseRightExpr(op, prec), startPos, startLoc); - }); - - case "fsharp": - return this.withSoloAwaitPermittingContext(() => { - return this.parseFSharpPipelineBody(prec); - }); - } - - default: - return this.parseExprOpBaseRightExpr(op, prec); - } - } - - parseExprOpBaseRightExpr(op, prec) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - return this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, op.rightAssociative ? prec - 1 : prec); - } - - checkExponentialAfterUnary(node) { - if (this.match(types.exponent)) { - this.raise(node.argument.start, ErrorMessages.UnexpectedTokenUnaryExponentiation); - } - } - - parseMaybeUnary(refExpressionErrors, sawUnary) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const isAwait = this.isContextual("await"); - - if (isAwait && this.isAwaitAllowed()) { - this.next(); - const expr = this.parseAwait(startPos, startLoc); - if (!sawUnary) this.checkExponentialAfterUnary(expr); - return expr; - } - - if (this.isContextual("module") && this.lookaheadCharCode() === 123 && !this.hasFollowingLineBreak()) { - return this.parseModuleExpression(); - } - - const update = this.match(types.incDec); - const node = this.startNode(); - - if (this.state.type.prefix) { - node.operator = this.state.value; - node.prefix = true; - - if (this.match(types._throw)) { - this.expectPlugin("throwExpressions"); - } - - const isDelete = this.match(types._delete); - this.next(); - node.argument = this.parseMaybeUnary(null, true); - this.checkExpressionErrors(refExpressionErrors, true); - - if (this.state.strict && isDelete) { - const arg = node.argument; - - if (arg.type === "Identifier") { - this.raise(node.start, ErrorMessages.StrictDelete); - } else if (this.hasPropertyAsPrivateName(arg)) { - this.raise(node.start, ErrorMessages.DeletePrivateField); - } - } - - if (!update) { - if (!sawUnary) this.checkExponentialAfterUnary(node); - return this.finishNode(node, "UnaryExpression"); - } - } - - const expr = this.parseUpdate(node, update, refExpressionErrors); - - if (isAwait) { - const startsExpr = this.hasPlugin("v8intrinsic") ? this.state.type.startsExpr : this.state.type.startsExpr && !this.match(types.modulo); - - if (startsExpr && !this.isAmbiguousAwait()) { - this.raiseOverwrite(startPos, this.hasPlugin("topLevelAwait") ? ErrorMessages.AwaitNotInAsyncContext : ErrorMessages.AwaitNotInAsyncFunction); - return this.parseAwait(startPos, startLoc); - } - } - - return expr; - } - - parseUpdate(node, update, refExpressionErrors) { - if (update) { - this.checkLVal(node.argument, "prefix operation"); - return this.finishNode(node, "UpdateExpression"); - } - - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let expr = this.parseExprSubscripts(refExpressionErrors); - if (this.checkExpressionErrors(refExpressionErrors, false)) return expr; - - while (this.state.type.postfix && !this.canInsertSemicolon()) { - const node = this.startNodeAt(startPos, startLoc); - node.operator = this.state.value; - node.prefix = false; - node.argument = expr; - this.checkLVal(expr, "postfix operation"); - this.next(); - expr = this.finishNode(node, "UpdateExpression"); - } - - return expr; - } - - parseExprSubscripts(refExpressionErrors) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const potentialArrowAt = this.state.potentialArrowAt; - const expr = this.parseExprAtom(refExpressionErrors); - - if (this.shouldExitDescending(expr, potentialArrowAt)) { - return expr; - } - - return this.parseSubscripts(expr, startPos, startLoc); - } - - parseSubscripts(base, startPos, startLoc, noCalls) { - const state = { - optionalChainMember: false, - maybeAsyncArrow: this.atPossibleAsyncArrow(base), - stop: false - }; - - do { - base = this.parseSubscript(base, startPos, startLoc, noCalls, state); - state.maybeAsyncArrow = false; - } while (!state.stop); - - return base; - } - - parseSubscript(base, startPos, startLoc, noCalls, state) { - if (!noCalls && this.eat(types.doubleColon)) { - return this.parseBind(base, startPos, startLoc, noCalls, state); - } else if (this.match(types.backQuote)) { - return this.parseTaggedTemplateExpression(base, startPos, startLoc, state); - } - - let optional = false; - - if (this.match(types.questionDot)) { - if (noCalls && this.lookaheadCharCode() === 40) { - state.stop = true; - return base; - } - - state.optionalChainMember = optional = true; - this.next(); - } - - if (!noCalls && this.match(types.parenL)) { - return this.parseCoverCallAndAsyncArrowHead(base, startPos, startLoc, state, optional); - } else if (optional || this.match(types.bracketL) || this.eat(types.dot)) { - return this.parseMember(base, startPos, startLoc, state, optional); - } else { - state.stop = true; - return base; - } - } - - parseMember(base, startPos, startLoc, state, optional) { - const node = this.startNodeAt(startPos, startLoc); - const computed = this.eat(types.bracketL); - node.object = base; - node.computed = computed; - const property = computed ? this.parseExpression() : this.parseMaybePrivateName(true); - - if (this.isPrivateName(property)) { - if (node.object.type === "Super") { - this.raise(startPos, ErrorMessages.SuperPrivateField); - } - - this.classScope.usePrivateName(this.getPrivateNameSV(property), property.start); - } - - node.property = property; - - if (computed) { - this.expect(types.bracketR); - } - - if (state.optionalChainMember) { - node.optional = optional; - return this.finishNode(node, "OptionalMemberExpression"); - } else { - return this.finishNode(node, "MemberExpression"); - } - } - - parseBind(base, startPos, startLoc, noCalls, state) { - const node = this.startNodeAt(startPos, startLoc); - node.object = base; - node.callee = this.parseNoCallExpr(); - state.stop = true; - return this.parseSubscripts(this.finishNode(node, "BindExpression"), startPos, startLoc, noCalls); - } - - parseCoverCallAndAsyncArrowHead(base, startPos, startLoc, state, optional) { - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - this.state.maybeInArrowParameters = true; - this.next(); - let node = this.startNodeAt(startPos, startLoc); - node.callee = base; - - if (state.maybeAsyncArrow) { - this.expressionScope.enter(newAsyncArrowScope()); - } - - if (state.optionalChainMember) { - node.optional = optional; - } - - if (optional) { - node.arguments = this.parseCallExpressionArguments(types.parenR, false); - } else { - node.arguments = this.parseCallExpressionArguments(types.parenR, state.maybeAsyncArrow, base.type === "Import", base.type !== "Super", node); - } - - this.finishCallExpression(node, state.optionalChainMember); - - if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) { - state.stop = true; - this.expressionScope.validateAsPattern(); - this.expressionScope.exit(); - node = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startPos, startLoc), node); - } else { - if (state.maybeAsyncArrow) { - this.expressionScope.exit(); - } - - this.toReferencedArguments(node); - } - - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - return node; - } - - toReferencedArguments(node, isParenthesizedExpr) { - this.toReferencedListDeep(node.arguments, isParenthesizedExpr); - } - - parseTaggedTemplateExpression(base, startPos, startLoc, state) { - const node = this.startNodeAt(startPos, startLoc); - node.tag = base; - node.quasi = this.parseTemplate(true); - - if (state.optionalChainMember) { - this.raise(startPos, ErrorMessages.OptionalChainingNoTemplate); - } - - return this.finishNode(node, "TaggedTemplateExpression"); - } - - atPossibleAsyncArrow(base) { - return base.type === "Identifier" && base.name === "async" && this.state.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && base.start === this.state.potentialArrowAt; - } - - finishCallExpression(node, optional) { - if (node.callee.type === "Import") { - if (node.arguments.length === 2) { - if (!this.hasPlugin("moduleAttributes")) { - this.expectPlugin("importAssertions"); - } - } - - if (node.arguments.length === 0 || node.arguments.length > 2) { - this.raise(node.start, ErrorMessages.ImportCallArity, this.hasPlugin("importAssertions") || this.hasPlugin("moduleAttributes") ? "one or two arguments" : "one argument"); - } else { - for (const arg of node.arguments) { - if (arg.type === "SpreadElement") { - this.raise(arg.start, ErrorMessages.ImportCallSpreadArgument); - } - } - } - } - - return this.finishNode(node, optional ? "OptionalCallExpression" : "CallExpression"); - } - - parseCallExpressionArguments(close, possibleAsyncArrow, dynamicImport, allowPlaceholder, nodeForExtra) { - const elts = []; - let first = true; - const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; - this.state.inFSharpPipelineDirectBody = false; - - while (!this.eat(close)) { - if (first) { - first = false; - } else { - this.expect(types.comma); - - if (this.match(close)) { - if (dynamicImport && !this.hasPlugin("importAssertions") && !this.hasPlugin("moduleAttributes")) { - this.raise(this.state.lastTokStart, ErrorMessages.ImportCallArgumentTrailingComma); - } - - if (nodeForExtra) { - this.addExtra(nodeForExtra, "trailingComma", this.state.lastTokStart); - } - - this.next(); - break; - } - } - - elts.push(this.parseExprListItem(false, possibleAsyncArrow ? new ExpressionErrors() : undefined, possibleAsyncArrow ? { - start: 0 - } : undefined, allowPlaceholder)); - } - - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - return elts; - } - - shouldParseAsyncArrow() { - return this.match(types.arrow) && !this.canInsertSemicolon(); - } - - parseAsyncArrowFromCallExpression(node, call) { - var _call$extra; - - this.expect(types.arrow); - this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingComma); - return node; - } - - parseNoCallExpr() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true); - } - - parseExprAtom(refExpressionErrors) { - if (this.state.type === types.slash) this.readRegexp(); - const canBeArrow = this.state.potentialArrowAt === this.state.start; - let node; - - switch (this.state.type) { - case types._super: - return this.parseSuper(); - - case types._import: - node = this.startNode(); - this.next(); - - if (this.match(types.dot)) { - return this.parseImportMetaProperty(node); - } - - if (!this.match(types.parenL)) { - this.raise(this.state.lastTokStart, ErrorMessages.UnsupportedImport); - } - - return this.finishNode(node, "Import"); - - case types._this: - node = this.startNode(); - this.next(); - return this.finishNode(node, "ThisExpression"); - - case types.name: - { - const containsEsc = this.state.containsEsc; - const id = this.parseIdentifier(); - - if (!containsEsc && id.name === "async" && !this.canInsertSemicolon()) { - if (this.match(types._function)) { - const last = this.state.context.length - 1; - - if (this.state.context[last] !== types$1.functionStatement) { - throw new Error("Internal error"); - } - - this.state.context[last] = types$1.functionExpression; - this.next(); - return this.parseFunction(this.startNodeAtNode(id), undefined, true); - } else if (this.match(types.name)) { - return this.parseAsyncArrowUnaryFunction(id); - } - } - - if (canBeArrow && this.match(types.arrow) && !this.canInsertSemicolon()) { - this.next(); - return this.parseArrowExpression(this.startNodeAtNode(id), [id], false); - } - - return id; - } - - case types._do: - { - return this.parseDo(); - } - - case types.regexp: - { - const value = this.state.value; - node = this.parseLiteral(value.value, "RegExpLiteral"); - node.pattern = value.pattern; - node.flags = value.flags; - return node; - } - - case types.num: - return this.parseLiteral(this.state.value, "NumericLiteral"); - - case types.bigint: - return this.parseLiteral(this.state.value, "BigIntLiteral"); - - case types.decimal: - return this.parseLiteral(this.state.value, "DecimalLiteral"); - - case types.string: - return this.parseLiteral(this.state.value, "StringLiteral"); - - case types._null: - node = this.startNode(); - this.next(); - return this.finishNode(node, "NullLiteral"); - - case types._true: - case types._false: - return this.parseBooleanLiteral(); - - case types.parenL: - return this.parseParenAndDistinguishExpression(canBeArrow); - - case types.bracketBarL: - case types.bracketHashL: - { - return this.parseArrayLike(this.state.type === types.bracketBarL ? types.bracketBarR : types.bracketR, false, true, refExpressionErrors); - } - - case types.bracketL: - { - return this.parseArrayLike(types.bracketR, true, false, refExpressionErrors); - } - - case types.braceBarL: - case types.braceHashL: - { - return this.parseObjectLike(this.state.type === types.braceBarL ? types.braceBarR : types.braceR, false, true, refExpressionErrors); - } - - case types.braceL: - { - return this.parseObjectLike(types.braceR, false, false, refExpressionErrors); - } - - case types._function: - return this.parseFunctionOrFunctionSent(); - - case types.at: - this.parseDecorators(); - - case types._class: - node = this.startNode(); - this.takeDecorators(node); - return this.parseClass(node, false); - - case types._new: - return this.parseNewOrNewTarget(); - - case types.backQuote: - return this.parseTemplate(false); - - case types.doubleColon: - { - node = this.startNode(); - this.next(); - node.object = null; - const callee = node.callee = this.parseNoCallExpr(); - - if (callee.type === "MemberExpression") { - return this.finishNode(node, "BindExpression"); - } else { - throw this.raise(callee.start, ErrorMessages.UnsupportedBind); - } - } - - case types.hash: - { - if (this.state.inPipeline) { - node = this.startNode(); - - if (this.getPluginOption("pipelineOperator", "proposal") !== "smart") { - this.raise(node.start, ErrorMessages.PrimaryTopicRequiresSmartPipeline); - } - - this.next(); - - if (!this.primaryTopicReferenceIsAllowedInCurrentTopicContext()) { - this.raise(node.start, ErrorMessages.PrimaryTopicNotAllowed); - } - - this.registerTopicReference(); - return this.finishNode(node, "PipelinePrimaryTopicReference"); - } - - const nextCh = this.input.codePointAt(this.state.end); - - if (isIdentifierStart(nextCh) || nextCh === 92) { - const start = this.state.start; - node = this.parseMaybePrivateName(true); - - if (this.match(types._in)) { - this.expectPlugin("privateIn"); - this.classScope.usePrivateName(this.getPrivateNameSV(node), node.start); - } else if (this.hasPlugin("privateIn")) { - this.raise(this.state.start, ErrorMessages.PrivateInExpectedIn, this.getPrivateNameSV(node)); - } else { - throw this.unexpected(start); - } - - return node; - } - } - - case types.relational: - { - if (this.state.value === "<") { - const lookaheadCh = this.input.codePointAt(this.nextTokenStart()); - - if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) { - this.expectOnePlugin(["jsx", "flow", "typescript"]); - } - } - } - - default: - throw this.unexpected(); - } - } - - parseAsyncArrowUnaryFunction(id) { - const node = this.startNodeAtNode(id); - this.prodParam.enter(functionFlags(true, this.prodParam.hasYield)); - const params = [this.parseIdentifier()]; - this.prodParam.exit(); - - if (this.hasPrecedingLineBreak()) { - this.raise(this.state.pos, ErrorMessages.LineTerminatorBeforeArrow); - } - - this.expect(types.arrow); - this.parseArrowExpression(node, params, true); - return node; - } - - parseDo() { - this.expectPlugin("doExpressions"); - const node = this.startNode(); - this.next(); - const oldLabels = this.state.labels; - this.state.labels = []; - node.body = this.parseBlock(); - this.state.labels = oldLabels; - return this.finishNode(node, "DoExpression"); - } - - parseSuper() { - const node = this.startNode(); - this.next(); - - if (this.match(types.parenL) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod) { - this.raise(node.start, ErrorMessages.SuperNotAllowed); - } else if (!this.scope.allowSuper && !this.options.allowSuperOutsideMethod) { - this.raise(node.start, ErrorMessages.UnexpectedSuper); - } - - if (!this.match(types.parenL) && !this.match(types.bracketL) && !this.match(types.dot)) { - this.raise(node.start, ErrorMessages.UnsupportedSuper); - } - - return this.finishNode(node, "Super"); - } - - parseBooleanLiteral() { - const node = this.startNode(); - node.value = this.match(types._true); - this.next(); - return this.finishNode(node, "BooleanLiteral"); - } - - parseMaybePrivateName(isPrivateNameAllowed) { - const isPrivate = this.match(types.hash); - - if (isPrivate) { - this.expectOnePlugin(["classPrivateProperties", "classPrivateMethods"]); - - if (!isPrivateNameAllowed) { - this.raise(this.state.pos, ErrorMessages.UnexpectedPrivateField); - } - - const node = this.startNode(); - this.next(); - this.assertNoSpace("Unexpected space between # and identifier"); - node.id = this.parseIdentifier(true); - return this.finishNode(node, "PrivateName"); - } else { - return this.parseIdentifier(true); - } - } - - parseFunctionOrFunctionSent() { - const node = this.startNode(); - this.next(); - - if (this.prodParam.hasYield && this.match(types.dot)) { - const meta = this.createIdentifier(this.startNodeAtNode(node), "function"); - this.next(); - return this.parseMetaProperty(node, meta, "sent"); - } - - return this.parseFunction(node); - } - - parseMetaProperty(node, meta, propertyName) { - node.meta = meta; - - if (meta.name === "function" && propertyName === "sent") { - if (this.isContextual(propertyName)) { - this.expectPlugin("functionSent"); - } else if (!this.hasPlugin("functionSent")) { - this.unexpected(); - } - } - - const containsEsc = this.state.containsEsc; - node.property = this.parseIdentifier(true); - - if (node.property.name !== propertyName || containsEsc) { - this.raise(node.property.start, ErrorMessages.UnsupportedMetaProperty, meta.name, propertyName); - } - - return this.finishNode(node, "MetaProperty"); - } - - parseImportMetaProperty(node) { - const id = this.createIdentifier(this.startNodeAtNode(node), "import"); - this.next(); - - if (this.isContextual("meta")) { - if (!this.inModule) { - this.raiseWithData(id.start, { - code: "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED" - }, ErrorMessages.ImportMetaOutsideModule); - } - - this.sawUnambiguousESM = true; - } - - return this.parseMetaProperty(node, id, "meta"); - } - - parseLiteral(value, type, startPos, startLoc) { - startPos = startPos || this.state.start; - startLoc = startLoc || this.state.startLoc; - const node = this.startNodeAt(startPos, startLoc); - this.addExtra(node, "rawValue", value); - this.addExtra(node, "raw", this.input.slice(startPos, this.state.end)); - node.value = value; - this.next(); - return this.finishNode(node, type); - } - - parseParenAndDistinguishExpression(canBeArrow) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let val; - this.next(); - this.expressionScope.enter(newArrowHeadScope()); - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; - this.state.maybeInArrowParameters = true; - this.state.inFSharpPipelineDirectBody = false; - const innerStartPos = this.state.start; - const innerStartLoc = this.state.startLoc; - const exprList = []; - const refExpressionErrors = new ExpressionErrors(); - const refNeedsArrowPos = { - start: 0 - }; - let first = true; - let spreadStart; - let optionalCommaStart; - - while (!this.match(types.parenR)) { - if (first) { - first = false; - } else { - this.expect(types.comma, refNeedsArrowPos.start || null); - - if (this.match(types.parenR)) { - optionalCommaStart = this.state.start; - break; - } - } - - if (this.match(types.ellipsis)) { - const spreadNodeStartPos = this.state.start; - const spreadNodeStartLoc = this.state.startLoc; - spreadStart = this.state.start; - exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartPos, spreadNodeStartLoc)); - this.checkCommaAfterRest(41); - break; - } else { - exprList.push(this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem, refNeedsArrowPos)); - } - } - - const innerEndPos = this.state.lastTokEnd; - const innerEndLoc = this.state.lastTokEndLoc; - this.expect(types.parenR); - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - let arrowNode = this.startNodeAt(startPos, startLoc); - - if (canBeArrow && this.shouldParseArrow() && (arrowNode = this.parseArrow(arrowNode))) { - this.expressionScope.validateAsPattern(); - this.expressionScope.exit(); - this.parseArrowExpression(arrowNode, exprList, false); - return arrowNode; - } - - this.expressionScope.exit(); - - if (!exprList.length) { - this.unexpected(this.state.lastTokStart); - } - - if (optionalCommaStart) this.unexpected(optionalCommaStart); - if (spreadStart) this.unexpected(spreadStart); - this.checkExpressionErrors(refExpressionErrors, true); - if (refNeedsArrowPos.start) this.unexpected(refNeedsArrowPos.start); - this.toReferencedListDeep(exprList, true); - - if (exprList.length > 1) { - val = this.startNodeAt(innerStartPos, innerStartLoc); - val.expressions = exprList; - this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc); - } else { - val = exprList[0]; - } - - if (!this.options.createParenthesizedExpressions) { - this.addExtra(val, "parenthesized", true); - this.addExtra(val, "parenStart", startPos); - return val; - } - - const parenExpression = this.startNodeAt(startPos, startLoc); - parenExpression.expression = val; - this.finishNode(parenExpression, "ParenthesizedExpression"); - return parenExpression; - } - - shouldParseArrow() { - return !this.canInsertSemicolon(); - } - - parseArrow(node) { - if (this.eat(types.arrow)) { - return node; - } - } - - parseParenItem(node, startPos, startLoc) { - return node; - } - - parseNewOrNewTarget() { - const node = this.startNode(); - this.next(); - - if (this.match(types.dot)) { - const meta = this.createIdentifier(this.startNodeAtNode(node), "new"); - this.next(); - const metaProp = this.parseMetaProperty(node, meta, "target"); - - if (!this.scope.inNonArrowFunction && !this.scope.inClass) { - let error = ErrorMessages.UnexpectedNewTarget; - - if (this.hasPlugin("classProperties")) { - error += " or class properties"; - } - - this.raise(metaProp.start, error); - } - - return metaProp; - } - - return this.parseNew(node); - } - - parseNew(node) { - node.callee = this.parseNoCallExpr(); - - if (node.callee.type === "Import") { - this.raise(node.callee.start, ErrorMessages.ImportCallNotNewExpression); - } else if (this.isOptionalChain(node.callee)) { - this.raise(this.state.lastTokEnd, ErrorMessages.OptionalChainingNoNew); - } else if (this.eat(types.questionDot)) { - this.raise(this.state.start, ErrorMessages.OptionalChainingNoNew); - } - - this.parseNewArguments(node); - return this.finishNode(node, "NewExpression"); - } - - parseNewArguments(node) { - if (this.eat(types.parenL)) { - const args = this.parseExprList(types.parenR); - this.toReferencedList(args); - node.arguments = args; - } else { - node.arguments = []; - } - } - - parseTemplateElement(isTagged) { - const elem = this.startNode(); - - if (this.state.value === null) { - if (!isTagged) { - this.raise(this.state.start + 1, ErrorMessages.InvalidEscapeSequenceTemplate); - } - } - - elem.value = { - raw: this.input.slice(this.state.start, this.state.end).replace(/\r\n?/g, "\n"), - cooked: this.state.value - }; - this.next(); - elem.tail = this.match(types.backQuote); - return this.finishNode(elem, "TemplateElement"); - } - - parseTemplate(isTagged) { - const node = this.startNode(); - this.next(); - node.expressions = []; - let curElt = this.parseTemplateElement(isTagged); - node.quasis = [curElt]; - - while (!curElt.tail) { - this.expect(types.dollarBraceL); - node.expressions.push(this.parseTemplateSubstitution()); - this.expect(types.braceR); - node.quasis.push(curElt = this.parseTemplateElement(isTagged)); - } - - this.next(); - return this.finishNode(node, "TemplateLiteral"); - } - - parseTemplateSubstitution() { - return this.parseExpression(); - } - - parseObjectLike(close, isPattern, isRecord, refExpressionErrors) { - if (isRecord) { - this.expectPlugin("recordAndTuple"); - } - - const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; - this.state.inFSharpPipelineDirectBody = false; - const propHash = Object.create(null); - let first = true; - const node = this.startNode(); - node.properties = []; - this.next(); - - while (!this.match(close)) { - if (first) { - first = false; - } else { - this.expect(types.comma); - - if (this.match(close)) { - this.addExtra(node, "trailingComma", this.state.lastTokStart); - break; - } - } - - const prop = this.parsePropertyDefinition(isPattern, refExpressionErrors); - - if (!isPattern) { - this.checkProto(prop, isRecord, propHash, refExpressionErrors); - } - - if (isRecord && !this.isObjectProperty(prop) && prop.type !== "SpreadElement") { - this.raise(prop.start, ErrorMessages.InvalidRecordProperty); - } - - if (prop.shorthand) { - this.addExtra(prop, "shorthand", true); - } - - node.properties.push(prop); - } - - this.state.exprAllowed = false; - this.next(); - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - let type = "ObjectExpression"; - - if (isPattern) { - type = "ObjectPattern"; - } else if (isRecord) { - type = "RecordExpression"; - } - - return this.finishNode(node, type); - } - - maybeAsyncOrAccessorProp(prop) { - return !prop.computed && prop.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(types.bracketL) || this.match(types.star)); - } - - parsePropertyDefinition(isPattern, refExpressionErrors) { - let decorators = []; - - if (this.match(types.at)) { - if (this.hasPlugin("decorators")) { - this.raise(this.state.start, ErrorMessages.UnsupportedPropertyDecorator); - } - - while (this.match(types.at)) { - decorators.push(this.parseDecorator()); - } - } - - const prop = this.startNode(); - let isGenerator = false; - let isAsync = false; - let isAccessor = false; - let startPos; - let startLoc; - - if (this.match(types.ellipsis)) { - if (decorators.length) this.unexpected(); - - if (isPattern) { - this.next(); - prop.argument = this.parseIdentifier(); - this.checkCommaAfterRest(125); - return this.finishNode(prop, "RestElement"); - } - - return this.parseSpread(); - } - - if (decorators.length) { - prop.decorators = decorators; - decorators = []; - } - - prop.method = false; - - if (isPattern || refExpressionErrors) { - startPos = this.state.start; - startLoc = this.state.startLoc; - } - - if (!isPattern) { - isGenerator = this.eat(types.star); - } - - const containsEsc = this.state.containsEsc; - const key = this.parsePropertyName(prop, false); - - if (!isPattern && !isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) { - const keyName = key.name; - - if (keyName === "async" && !this.hasPrecedingLineBreak()) { - isAsync = true; - isGenerator = this.eat(types.star); - this.parsePropertyName(prop, false); - } - - if (keyName === "get" || keyName === "set") { - isAccessor = true; - prop.kind = keyName; - - if (this.match(types.star)) { - isGenerator = true; - this.raise(this.state.pos, ErrorMessages.AccessorIsGenerator, keyName); - this.next(); - } - - this.parsePropertyName(prop, false); - } - } - - this.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); - return prop; - } - - getGetterSetterExpectedParamCount(method) { - return method.kind === "get" ? 0 : 1; - } - - getObjectOrClassMethodParams(method) { - return method.params; - } - - checkGetterSetterParams(method) { - var _params; - - const paramCount = this.getGetterSetterExpectedParamCount(method); - const params = this.getObjectOrClassMethodParams(method); - const start = method.start; - - if (params.length !== paramCount) { - if (method.kind === "get") { - this.raise(start, ErrorMessages.BadGetterArity); - } else { - this.raise(start, ErrorMessages.BadSetterArity); - } - } - - if (method.kind === "set" && ((_params = params[params.length - 1]) == null ? void 0 : _params.type) === "RestElement") { - this.raise(start, ErrorMessages.BadSetterRestParameter); - } - } - - parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { - if (isAccessor) { - this.parseMethod(prop, isGenerator, false, false, false, "ObjectMethod"); - this.checkGetterSetterParams(prop); - return prop; - } - - if (isAsync || isGenerator || this.match(types.parenL)) { - if (isPattern) this.unexpected(); - prop.kind = "method"; - prop.method = true; - return this.parseMethod(prop, isGenerator, isAsync, false, false, "ObjectMethod"); - } - } - - parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors) { - prop.shorthand = false; - - if (this.eat(types.colon)) { - prop.value = isPattern ? this.parseMaybeDefault(this.state.start, this.state.startLoc) : this.parseMaybeAssignAllowIn(refExpressionErrors); - return this.finishNode(prop, "ObjectProperty"); - } - - if (!prop.computed && prop.key.type === "Identifier") { - this.checkReservedWord(prop.key.name, prop.key.start, true, false); - - if (isPattern) { - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone()); - } else if (this.match(types.eq) && refExpressionErrors) { - if (refExpressionErrors.shorthandAssign === -1) { - refExpressionErrors.shorthandAssign = this.state.start; - } - - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone()); - } else { - prop.value = prop.key.__clone(); - } - - prop.shorthand = true; - return this.finishNode(prop, "ObjectProperty"); - } - } - - parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { - const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors); - if (!node) this.unexpected(); - return node; - } - - parsePropertyName(prop, isPrivateNameAllowed) { - if (this.eat(types.bracketL)) { - prop.computed = true; - prop.key = this.parseMaybeAssignAllowIn(); - this.expect(types.bracketR); - } else { - const oldInPropertyName = this.state.inPropertyName; - this.state.inPropertyName = true; - prop.key = this.match(types.num) || this.match(types.string) || this.match(types.bigint) || this.match(types.decimal) ? this.parseExprAtom() : this.parseMaybePrivateName(isPrivateNameAllowed); - - if (!this.isPrivateName(prop.key)) { - prop.computed = false; - } - - this.state.inPropertyName = oldInPropertyName; - } - - return prop.key; - } - - initFunction(node, isAsync) { - node.id = null; - node.generator = false; - node.async = !!isAsync; - } - - parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { - this.initFunction(node, isAsync); - node.generator = !!isGenerator; - const allowModifiers = isConstructor; - this.scope.enter(SCOPE_FUNCTION | SCOPE_SUPER | (inClassScope ? SCOPE_CLASS : 0) | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0)); - this.prodParam.enter(functionFlags(isAsync, node.generator)); - this.parseFunctionParams(node, allowModifiers); - this.parseFunctionBodyAndFinish(node, type, true); - this.prodParam.exit(); - this.scope.exit(); - return node; - } - - parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { - if (isTuple) { - this.expectPlugin("recordAndTuple"); - } - - const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; - this.state.inFSharpPipelineDirectBody = false; - const node = this.startNode(); - this.next(); - node.elements = this.parseExprList(close, !isTuple, refExpressionErrors, node); - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - return this.finishNode(node, isTuple ? "TupleExpression" : "ArrayExpression"); - } - - parseArrowExpression(node, params, isAsync, trailingCommaPos) { - this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW); - let flags = functionFlags(isAsync, false); - - if (!this.match(types.bracketL) && this.prodParam.hasIn) { - flags |= PARAM_IN; - } - - this.prodParam.enter(flags); - this.initFunction(node, isAsync); - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - - if (params) { - this.state.maybeInArrowParameters = true; - this.setArrowFunctionParameters(node, params, trailingCommaPos); - } - - this.state.maybeInArrowParameters = false; - this.parseFunctionBody(node, true); - this.prodParam.exit(); - this.scope.exit(); - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - return this.finishNode(node, "ArrowFunctionExpression"); - } - - setArrowFunctionParameters(node, params, trailingCommaPos) { - node.params = this.toAssignableList(params, trailingCommaPos, false); - } - - parseFunctionBodyAndFinish(node, type, isMethod = false) { - this.parseFunctionBody(node, false, isMethod); - this.finishNode(node, type); - } - - parseFunctionBody(node, allowExpression, isMethod = false) { - const isExpression = allowExpression && !this.match(types.braceL); - this.expressionScope.enter(newExpressionScope()); - - if (isExpression) { - node.body = this.parseMaybeAssign(); - this.checkParams(node, false, allowExpression, false); - } else { - const oldStrict = this.state.strict; - const oldLabels = this.state.labels; - this.state.labels = []; - this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN); - node.body = this.parseBlock(true, false, hasStrictModeDirective => { - const nonSimple = !this.isSimpleParamList(node.params); - - if (hasStrictModeDirective && nonSimple) { - const errorPos = (node.kind === "method" || node.kind === "constructor") && !!node.key ? node.key.end : node.start; - this.raise(errorPos, ErrorMessages.IllegalLanguageModeDirective); - } - - const strictModeChanged = !oldStrict && this.state.strict; - this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged); - - if (this.state.strict && node.id) { - this.checkLVal(node.id, "function name", BIND_OUTSIDE, undefined, undefined, strictModeChanged); - } - }); - this.prodParam.exit(); - this.expressionScope.exit(); - this.state.labels = oldLabels; - } - } - - isSimpleParamList(params) { - for (let i = 0, len = params.length; i < len; i++) { - if (params[i].type !== "Identifier") return false; - } - - return true; - } - - checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { - const checkClashes = new Set(); - - for (const param of node.params) { - this.checkLVal(param, "function parameter list", BIND_VAR, allowDuplicates ? null : checkClashes, undefined, strictModeChanged); - } - } - - parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) { - const elts = []; - let first = true; - - while (!this.eat(close)) { - if (first) { - first = false; - } else { - this.expect(types.comma); - - if (this.match(close)) { - if (nodeForExtra) { - this.addExtra(nodeForExtra, "trailingComma", this.state.lastTokStart); - } - - this.next(); - break; - } - } - - elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors)); - } - - return elts; - } - - parseExprListItem(allowEmpty, refExpressionErrors, refNeedsArrowPos, allowPlaceholder) { - let elt; - - if (this.match(types.comma)) { - if (!allowEmpty) { - this.raise(this.state.pos, ErrorMessages.UnexpectedToken, ","); - } - - elt = null; - } else if (this.match(types.ellipsis)) { - const spreadNodeStartPos = this.state.start; - const spreadNodeStartLoc = this.state.startLoc; - elt = this.parseParenItem(this.parseSpread(refExpressionErrors, refNeedsArrowPos), spreadNodeStartPos, spreadNodeStartLoc); - } else if (this.match(types.question)) { - this.expectPlugin("partialApplication"); - - if (!allowPlaceholder) { - this.raise(this.state.start, ErrorMessages.UnexpectedArgumentPlaceholder); - } - - const node = this.startNode(); - this.next(); - elt = this.finishNode(node, "ArgumentPlaceholder"); - } else { - elt = this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem, refNeedsArrowPos); - } - - return elt; - } - - parseIdentifier(liberal) { - const node = this.startNode(); - const name = this.parseIdentifierName(node.start, liberal); - return this.createIdentifier(node, name); - } - - createIdentifier(node, name) { - node.name = name; - node.loc.identifierName = name; - return this.finishNode(node, "Identifier"); - } - - parseIdentifierName(pos, liberal) { - let name; - const { - start, - type - } = this.state; - - if (type === types.name) { - name = this.state.value; - } else if (type.keyword) { - name = type.keyword; - const curContext = this.curContext(); - - if ((type === types._class || type === types._function) && (curContext === types$1.functionStatement || curContext === types$1.functionExpression)) { - this.state.context.pop(); - } - } else { - throw this.unexpected(); - } - - if (liberal) { - this.state.type = types.name; - } else { - this.checkReservedWord(name, start, !!type.keyword, false); - } - - this.next(); - return name; - } - - checkReservedWord(word, startLoc, checkKeywords, isBinding) { - if (this.prodParam.hasYield && word === "yield") { - this.raise(startLoc, ErrorMessages.YieldBindingIdentifier); - return; - } - - if (word === "await") { - if (this.prodParam.hasAwait) { - this.raise(startLoc, ErrorMessages.AwaitBindingIdentifier); - return; - } else if (this.scope.inStaticBlock && !this.scope.inNonArrowFunction) { - this.raise(startLoc, ErrorMessages.AwaitBindingIdentifierInStaticBlock); - return; - } else { - this.expressionScope.recordAsyncArrowParametersError(startLoc, ErrorMessages.AwaitBindingIdentifier); - } - } - - if (this.scope.inClass && !this.scope.inNonArrowFunction && word === "arguments") { - this.raise(startLoc, ErrorMessages.ArgumentsInClass); - return; - } - - if (checkKeywords && isKeyword(word)) { - this.raise(startLoc, ErrorMessages.UnexpectedKeyword, word); - return; - } - - const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord; - - if (reservedTest(word, this.inModule)) { - this.raise(startLoc, ErrorMessages.UnexpectedReservedWord, word); - } - } - - isAwaitAllowed() { - if (this.prodParam.hasAwait) return true; - - if (this.options.allowAwaitOutsideFunction && !this.scope.inFunction) { - return true; - } - - return false; - } - - parseAwait(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - this.expressionScope.recordParameterInitializerError(node.start, ErrorMessages.AwaitExpressionFormalParameter); - - if (this.eat(types.star)) { - this.raise(node.start, ErrorMessages.ObsoleteAwaitStar); - } - - if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) { - if (this.isAmbiguousAwait()) { - this.ambiguousScriptDifferentAst = true; - } else { - this.sawUnambiguousESM = true; - } - } - - if (!this.state.soloAwait) { - node.argument = this.parseMaybeUnary(null, true); - } - - return this.finishNode(node, "AwaitExpression"); - } - - isAmbiguousAwait() { - return this.hasPrecedingLineBreak() || this.match(types.plusMin) || this.match(types.parenL) || this.match(types.bracketL) || this.match(types.backQuote) || this.match(types.regexp) || this.match(types.slash) || this.hasPlugin("v8intrinsic") && this.match(types.modulo); - } - - parseYield() { - const node = this.startNode(); - this.expressionScope.recordParameterInitializerError(node.start, ErrorMessages.YieldInParameter); - this.next(); - - if (this.match(types.semi) || !this.match(types.star) && !this.state.type.startsExpr || this.hasPrecedingLineBreak()) { - node.delegate = false; - node.argument = null; - } else { - node.delegate = this.eat(types.star); - node.argument = this.parseMaybeAssign(); - } - - return this.finishNode(node, "YieldExpression"); - } - - checkPipelineAtInfixOperator(left, leftStartPos) { - if (this.getPluginOption("pipelineOperator", "proposal") === "smart") { - if (left.type === "SequenceExpression") { - this.raise(leftStartPos, ErrorMessages.PipelineHeadSequenceExpression); - } - } - } - - parseSmartPipelineBody(childExpression, startPos, startLoc) { - this.checkSmartPipelineBodyEarlyErrors(childExpression, startPos); - return this.parseSmartPipelineBodyInStyle(childExpression, startPos, startLoc); - } - - checkSmartPipelineBodyEarlyErrors(childExpression, startPos) { - if (this.match(types.arrow)) { - throw this.raise(this.state.start, ErrorMessages.PipelineBodyNoArrow); - } else if (childExpression.type === "SequenceExpression") { - this.raise(startPos, ErrorMessages.PipelineBodySequenceExpression); - } - } - - parseSmartPipelineBodyInStyle(childExpression, startPos, startLoc) { - const bodyNode = this.startNodeAt(startPos, startLoc); - const isSimpleReference = this.isSimpleReference(childExpression); - - if (isSimpleReference) { - bodyNode.callee = childExpression; - } else { - if (!this.topicReferenceWasUsedInCurrentTopicContext()) { - this.raise(startPos, ErrorMessages.PipelineTopicUnused); - } - - bodyNode.expression = childExpression; - } - - return this.finishNode(bodyNode, isSimpleReference ? "PipelineBareFunction" : "PipelineTopicExpression"); - } - - isSimpleReference(expression) { - switch (expression.type) { - case "MemberExpression": - return !expression.computed && this.isSimpleReference(expression.object); - - case "Identifier": - return true; - - default: - return false; - } - } - - withTopicPermittingContext(callback) { - const outerContextTopicState = this.state.topicContext; - this.state.topicContext = { - maxNumOfResolvableTopics: 1, - maxTopicIndex: null - }; - - try { - return callback(); - } finally { - this.state.topicContext = outerContextTopicState; - } - } - - withTopicForbiddingContext(callback) { - const outerContextTopicState = this.state.topicContext; - this.state.topicContext = { - maxNumOfResolvableTopics: 0, - maxTopicIndex: null - }; - - try { - return callback(); - } finally { - this.state.topicContext = outerContextTopicState; - } - } - - withSoloAwaitPermittingContext(callback) { - const outerContextSoloAwaitState = this.state.soloAwait; - this.state.soloAwait = true; - - try { - return callback(); - } finally { - this.state.soloAwait = outerContextSoloAwaitState; - } - } - - allowInAnd(callback) { - const flags = this.prodParam.currentFlags(); - const prodParamToSet = PARAM_IN & ~flags; - - if (prodParamToSet) { - this.prodParam.enter(flags | PARAM_IN); - - try { - return callback(); - } finally { - this.prodParam.exit(); - } - } - - return callback(); - } - - disallowInAnd(callback) { - const flags = this.prodParam.currentFlags(); - const prodParamToClear = PARAM_IN & flags; - - if (prodParamToClear) { - this.prodParam.enter(flags & ~PARAM_IN); - - try { - return callback(); - } finally { - this.prodParam.exit(); - } - } - - return callback(); - } - - registerTopicReference() { - this.state.topicContext.maxTopicIndex = 0; - } - - primaryTopicReferenceIsAllowedInCurrentTopicContext() { - return this.state.topicContext.maxNumOfResolvableTopics >= 1; - } - - topicReferenceWasUsedInCurrentTopicContext() { - return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0; - } - - parseFSharpPipelineBody(prec) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - this.state.potentialArrowAt = this.state.start; - const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; - this.state.inFSharpPipelineDirectBody = true; - const ret = this.parseExprOp(this.parseMaybeUnary(), startPos, startLoc, prec); - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - return ret; - } - - parseModuleExpression() { - this.expectPlugin("moduleBlocks"); - const node = this.startNode(); - this.next(); - this.eat(types.braceL); - const revertScopes = this.initializeScopes(true); - this.enterInitialScopes(); - const program = this.startNode(); - - try { - node.body = this.parseProgram(program, types.braceR, "module"); - } finally { - revertScopes(); - } - - this.eat(types.braceR); - return this.finishNode(node, "ModuleExpression"); - } - -} - -const loopLabel = { - kind: "loop" -}, - switchLabel = { - kind: "switch" -}; -const FUNC_NO_FLAGS = 0b000, - FUNC_STATEMENT = 0b001, - FUNC_HANGING_STATEMENT = 0b010, - FUNC_NULLABLE_ID = 0b100; -const loneSurrogate = /[\uD800-\uDFFF]/u; -class StatementParser extends ExpressionParser { - parseTopLevel(file, program) { - file.program = this.parseProgram(program); - file.comments = this.state.comments; - if (this.options.tokens) file.tokens = this.tokens; - return this.finishNode(file, "File"); - } - - parseProgram(program, end = types.eof, sourceType = this.options.sourceType) { - program.sourceType = sourceType; - program.interpreter = this.parseInterpreterDirective(); - this.parseBlockBody(program, true, true, end); - - if (this.inModule && !this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0) { - for (const [name] of Array.from(this.scope.undefinedExports)) { - const pos = this.scope.undefinedExports.get(name); - this.raise(pos, ErrorMessages.ModuleExportUndefined, name); - } - } - - return this.finishNode(program, "Program"); - } - - stmtToDirective(stmt) { - const expr = stmt.expression; - const directiveLiteral = this.startNodeAt(expr.start, expr.loc.start); - const directive = this.startNodeAt(stmt.start, stmt.loc.start); - const raw = this.input.slice(expr.start, expr.end); - const val = directiveLiteral.value = raw.slice(1, -1); - this.addExtra(directiveLiteral, "raw", raw); - this.addExtra(directiveLiteral, "rawValue", val); - directive.value = this.finishNodeAt(directiveLiteral, "DirectiveLiteral", expr.end, expr.loc.end); - return this.finishNodeAt(directive, "Directive", stmt.end, stmt.loc.end); - } - - parseInterpreterDirective() { - if (!this.match(types.interpreterDirective)) { - return null; - } - - const node = this.startNode(); - node.value = this.state.value; - this.next(); - return this.finishNode(node, "InterpreterDirective"); - } - - isLet(context) { - if (!this.isContextual("let")) { - return false; - } - - return this.isLetKeyword(context); - } - - isLetKeyword(context) { - const next = this.nextTokenStart(); - const nextCh = this.input.charCodeAt(next); - if (nextCh === 91) return true; - if (context) return false; - if (nextCh === 123) return true; - - if (isIdentifierStart(nextCh)) { - let pos = next + 1; - - while (isIdentifierChar(this.input.charCodeAt(pos))) { - ++pos; - } - - const ident = this.input.slice(next, pos); - if (!keywordRelationalOperator.test(ident)) return true; - } - - return false; - } - - parseStatement(context, topLevel) { - if (this.match(types.at)) { - this.parseDecorators(true); - } - - return this.parseStatementContent(context, topLevel); - } - - parseStatementContent(context, topLevel) { - let starttype = this.state.type; - const node = this.startNode(); - let kind; - - if (this.isLet(context)) { - starttype = types._var; - kind = "let"; - } - - switch (starttype) { - case types._break: - case types._continue: - return this.parseBreakContinueStatement(node, starttype.keyword); - - case types._debugger: - return this.parseDebuggerStatement(node); - - case types._do: - return this.parseDoStatement(node); - - case types._for: - return this.parseForStatement(node); - - case types._function: - if (this.lookaheadCharCode() === 46) break; - - if (context) { - if (this.state.strict) { - this.raise(this.state.start, ErrorMessages.StrictFunction); - } else if (context !== "if" && context !== "label") { - this.raise(this.state.start, ErrorMessages.SloppyFunction); - } - } - - return this.parseFunctionStatement(node, false, !context); - - case types._class: - if (context) this.unexpected(); - return this.parseClass(node, true); - - case types._if: - return this.parseIfStatement(node); - - case types._return: - return this.parseReturnStatement(node); - - case types._switch: - return this.parseSwitchStatement(node); - - case types._throw: - return this.parseThrowStatement(node); - - case types._try: - return this.parseTryStatement(node); - - case types._const: - case types._var: - kind = kind || this.state.value; - - if (context && kind !== "var") { - this.raise(this.state.start, ErrorMessages.UnexpectedLexicalDeclaration); - } - - return this.parseVarStatement(node, kind); - - case types._while: - return this.parseWhileStatement(node); - - case types._with: - return this.parseWithStatement(node); - - case types.braceL: - return this.parseBlock(); - - case types.semi: - return this.parseEmptyStatement(node); - - case types._import: - { - const nextTokenCharCode = this.lookaheadCharCode(); - - if (nextTokenCharCode === 40 || nextTokenCharCode === 46) { - break; - } - } - - case types._export: - { - if (!this.options.allowImportExportEverywhere && !topLevel) { - this.raise(this.state.start, ErrorMessages.UnexpectedImportExport); - } - - this.next(); - let result; - - if (starttype === types._import) { - result = this.parseImport(node); - - if (result.type === "ImportDeclaration" && (!result.importKind || result.importKind === "value")) { - this.sawUnambiguousESM = true; - } - } else { - result = this.parseExport(node); - - if (result.type === "ExportNamedDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportAllDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportDefaultDeclaration") { - this.sawUnambiguousESM = true; - } - } - - this.assertModuleNodeAllowed(node); - return result; - } - - default: - { - if (this.isAsyncFunction()) { - if (context) { - this.raise(this.state.start, ErrorMessages.AsyncFunctionInSingleStatementContext); - } - - this.next(); - return this.parseFunctionStatement(node, true, !context); - } - } - } - - const maybeName = this.state.value; - const expr = this.parseExpression(); - - if (starttype === types.name && expr.type === "Identifier" && this.eat(types.colon)) { - return this.parseLabeledStatement(node, maybeName, expr, context); - } else { - return this.parseExpressionStatement(node, expr); - } - } - - assertModuleNodeAllowed(node) { - if (!this.options.allowImportExportEverywhere && !this.inModule) { - this.raiseWithData(node.start, { - code: "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED" - }, ErrorMessages.ImportOutsideModule); - } - } - - takeDecorators(node) { - const decorators = this.state.decoratorStack[this.state.decoratorStack.length - 1]; - - if (decorators.length) { - node.decorators = decorators; - this.resetStartLocationFromNode(node, decorators[0]); - this.state.decoratorStack[this.state.decoratorStack.length - 1] = []; - } - } - - canHaveLeadingDecorator() { - return this.match(types._class); - } - - parseDecorators(allowExport) { - const currentContextDecorators = this.state.decoratorStack[this.state.decoratorStack.length - 1]; - - while (this.match(types.at)) { - const decorator = this.parseDecorator(); - currentContextDecorators.push(decorator); - } - - if (this.match(types._export)) { - if (!allowExport) { - this.unexpected(); - } - - if (this.hasPlugin("decorators") && !this.getPluginOption("decorators", "decoratorsBeforeExport")) { - this.raise(this.state.start, ErrorMessages.DecoratorExportClass); - } - } else if (!this.canHaveLeadingDecorator()) { - throw this.raise(this.state.start, ErrorMessages.UnexpectedLeadingDecorator); - } - } - - parseDecorator() { - this.expectOnePlugin(["decorators-legacy", "decorators"]); - const node = this.startNode(); - this.next(); - - if (this.hasPlugin("decorators")) { - this.state.decoratorStack.push([]); - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let expr; - - if (this.eat(types.parenL)) { - expr = this.parseExpression(); - this.expect(types.parenR); - } else { - expr = this.parseIdentifier(false); - - while (this.eat(types.dot)) { - const node = this.startNodeAt(startPos, startLoc); - node.object = expr; - node.property = this.parseIdentifier(true); - node.computed = false; - expr = this.finishNode(node, "MemberExpression"); - } - } - - node.expression = this.parseMaybeDecoratorArguments(expr); - this.state.decoratorStack.pop(); - } else { - node.expression = this.parseExprSubscripts(); - } - - return this.finishNode(node, "Decorator"); - } - - parseMaybeDecoratorArguments(expr) { - if (this.eat(types.parenL)) { - const node = this.startNodeAtNode(expr); - node.callee = expr; - node.arguments = this.parseCallExpressionArguments(types.parenR, false); - this.toReferencedList(node.arguments); - return this.finishNode(node, "CallExpression"); - } - - return expr; - } - - parseBreakContinueStatement(node, keyword) { - const isBreak = keyword === "break"; - this.next(); - - if (this.isLineTerminator()) { - node.label = null; - } else { - node.label = this.parseIdentifier(); - this.semicolon(); - } - - this.verifyBreakContinue(node, keyword); - return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); - } - - verifyBreakContinue(node, keyword) { - const isBreak = keyword === "break"; - let i; - - for (i = 0; i < this.state.labels.length; ++i) { - const lab = this.state.labels[i]; - - if (node.label == null || lab.name === node.label.name) { - if (lab.kind != null && (isBreak || lab.kind === "loop")) break; - if (node.label && isBreak) break; - } - } - - if (i === this.state.labels.length) { - this.raise(node.start, ErrorMessages.IllegalBreakContinue, keyword); - } - } - - parseDebuggerStatement(node) { - this.next(); - this.semicolon(); - return this.finishNode(node, "DebuggerStatement"); - } - - parseHeaderExpression() { - this.expect(types.parenL); - const val = this.parseExpression(); - this.expect(types.parenR); - return val; - } - - parseDoStatement(node) { - this.next(); - this.state.labels.push(loopLabel); - node.body = this.withTopicForbiddingContext(() => this.parseStatement("do")); - this.state.labels.pop(); - this.expect(types._while); - node.test = this.parseHeaderExpression(); - this.eat(types.semi); - return this.finishNode(node, "DoWhileStatement"); - } - - parseForStatement(node) { - this.next(); - this.state.labels.push(loopLabel); - let awaitAt = -1; - - if (this.isAwaitAllowed() && this.eatContextual("await")) { - awaitAt = this.state.lastTokStart; - } - - this.scope.enter(SCOPE_OTHER); - this.expect(types.parenL); - - if (this.match(types.semi)) { - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - - return this.parseFor(node, null); - } - - const startsWithLet = this.isContextual("let"); - const isLet = startsWithLet && this.isLetKeyword(); - - if (this.match(types._var) || this.match(types._const) || isLet) { - const init = this.startNode(); - const kind = isLet ? "let" : this.state.value; - this.next(); - this.parseVar(init, true, kind); - this.finishNode(init, "VariableDeclaration"); - - if ((this.match(types._in) || this.isContextual("of")) && init.declarations.length === 1) { - return this.parseForIn(node, init, awaitAt); - } - - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - - return this.parseFor(node, init); - } - - const refExpressionErrors = new ExpressionErrors(); - const init = this.parseExpression(true, refExpressionErrors); - const isForOf = this.isContextual("of"); - - if (isForOf || this.match(types._in)) { - if (isForOf && startsWithLet) { - this.raise(init.start, ErrorMessages.ForOfLet); - } - - this.toAssignable(init, true); - const description = isForOf ? "for-of statement" : "for-in statement"; - this.checkLVal(init, description); - return this.parseForIn(node, init, awaitAt); - } else { - this.checkExpressionErrors(refExpressionErrors, true); - } - - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - - return this.parseFor(node, init); - } - - parseFunctionStatement(node, isAsync, declarationPosition) { - this.next(); - return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), isAsync); - } - - parseIfStatement(node) { - this.next(); - node.test = this.parseHeaderExpression(); - node.consequent = this.parseStatement("if"); - node.alternate = this.eat(types._else) ? this.parseStatement("if") : null; - return this.finishNode(node, "IfStatement"); - } - - parseReturnStatement(node) { - if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) { - this.raise(this.state.start, ErrorMessages.IllegalReturn); - } - - this.next(); - - if (this.isLineTerminator()) { - node.argument = null; - } else { - node.argument = this.parseExpression(); - this.semicolon(); - } - - return this.finishNode(node, "ReturnStatement"); - } - - parseSwitchStatement(node) { - this.next(); - node.discriminant = this.parseHeaderExpression(); - const cases = node.cases = []; - this.expect(types.braceL); - this.state.labels.push(switchLabel); - this.scope.enter(SCOPE_OTHER); - let cur; - - for (let sawDefault; !this.match(types.braceR);) { - if (this.match(types._case) || this.match(types._default)) { - const isCase = this.match(types._case); - if (cur) this.finishNode(cur, "SwitchCase"); - cases.push(cur = this.startNode()); - cur.consequent = []; - this.next(); - - if (isCase) { - cur.test = this.parseExpression(); - } else { - if (sawDefault) { - this.raise(this.state.lastTokStart, ErrorMessages.MultipleDefaultsInSwitch); - } - - sawDefault = true; - cur.test = null; - } - - this.expect(types.colon); - } else { - if (cur) { - cur.consequent.push(this.parseStatement(null)); - } else { - this.unexpected(); - } - } - } - - this.scope.exit(); - if (cur) this.finishNode(cur, "SwitchCase"); - this.next(); - this.state.labels.pop(); - return this.finishNode(node, "SwitchStatement"); - } - - parseThrowStatement(node) { - this.next(); - - if (this.hasPrecedingLineBreak()) { - this.raise(this.state.lastTokEnd, ErrorMessages.NewlineAfterThrow); - } - - node.argument = this.parseExpression(); - this.semicolon(); - return this.finishNode(node, "ThrowStatement"); - } - - parseCatchClauseParam() { - const param = this.parseBindingAtom(); - const simple = param.type === "Identifier"; - this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0); - this.checkLVal(param, "catch clause", BIND_LEXICAL); - return param; - } - - parseTryStatement(node) { - this.next(); - node.block = this.parseBlock(); - node.handler = null; - - if (this.match(types._catch)) { - const clause = this.startNode(); - this.next(); - - if (this.match(types.parenL)) { - this.expect(types.parenL); - clause.param = this.parseCatchClauseParam(); - this.expect(types.parenR); - } else { - clause.param = null; - this.scope.enter(SCOPE_OTHER); - } - - clause.body = this.withTopicForbiddingContext(() => this.parseBlock(false, false)); - this.scope.exit(); - node.handler = this.finishNode(clause, "CatchClause"); - } - - node.finalizer = this.eat(types._finally) ? this.parseBlock() : null; - - if (!node.handler && !node.finalizer) { - this.raise(node.start, ErrorMessages.NoCatchOrFinally); - } - - return this.finishNode(node, "TryStatement"); - } - - parseVarStatement(node, kind) { - this.next(); - this.parseVar(node, false, kind); - this.semicolon(); - return this.finishNode(node, "VariableDeclaration"); - } - - parseWhileStatement(node) { - this.next(); - node.test = this.parseHeaderExpression(); - this.state.labels.push(loopLabel); - node.body = this.withTopicForbiddingContext(() => this.parseStatement("while")); - this.state.labels.pop(); - return this.finishNode(node, "WhileStatement"); - } - - parseWithStatement(node) { - if (this.state.strict) { - this.raise(this.state.start, ErrorMessages.StrictWith); - } - - this.next(); - node.object = this.parseHeaderExpression(); - node.body = this.withTopicForbiddingContext(() => this.parseStatement("with")); - return this.finishNode(node, "WithStatement"); - } - - parseEmptyStatement(node) { - this.next(); - return this.finishNode(node, "EmptyStatement"); - } - - parseLabeledStatement(node, maybeName, expr, context) { - for (const label of this.state.labels) { - if (label.name === maybeName) { - this.raise(expr.start, ErrorMessages.LabelRedeclaration, maybeName); - } - } - - const kind = this.state.type.isLoop ? "loop" : this.match(types._switch) ? "switch" : null; - - for (let i = this.state.labels.length - 1; i >= 0; i--) { - const label = this.state.labels[i]; - - if (label.statementStart === node.start) { - label.statementStart = this.state.start; - label.kind = kind; - } else { - break; - } - } - - this.state.labels.push({ - name: maybeName, - kind: kind, - statementStart: this.state.start - }); - node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label"); - this.state.labels.pop(); - node.label = expr; - return this.finishNode(node, "LabeledStatement"); - } - - parseExpressionStatement(node, expr) { - node.expression = expr; - this.semicolon(); - return this.finishNode(node, "ExpressionStatement"); - } - - parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) { - const node = this.startNode(); - - if (allowDirectives) { - this.state.strictErrors.clear(); - } - - this.expect(types.braceL); - - if (createNewLexicalScope) { - this.scope.enter(SCOPE_OTHER); - } - - this.parseBlockBody(node, allowDirectives, false, types.braceR, afterBlockParse); - - if (createNewLexicalScope) { - this.scope.exit(); - } - - return this.finishNode(node, "BlockStatement"); - } - - isValidDirective(stmt) { - return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && !stmt.expression.extra.parenthesized; - } - - parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { - const body = node.body = []; - const directives = node.directives = []; - this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse); - } - - parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) { - const oldStrict = this.state.strict; - let hasStrictModeDirective = false; - let parsedNonDirective = false; - - while (!this.match(end)) { - const stmt = this.parseStatement(null, topLevel); - - if (directives && !parsedNonDirective) { - if (this.isValidDirective(stmt)) { - const directive = this.stmtToDirective(stmt); - directives.push(directive); - - if (!hasStrictModeDirective && directive.value.value === "use strict") { - hasStrictModeDirective = true; - this.setStrict(true); - } - - continue; - } - - parsedNonDirective = true; - this.state.strictErrors.clear(); - } - - body.push(stmt); - } - - if (afterBlockParse) { - afterBlockParse.call(this, hasStrictModeDirective); - } - - if (!oldStrict) { - this.setStrict(false); - } - - this.next(); - } - - parseFor(node, init) { - node.init = init; - this.semicolon(false); - node.test = this.match(types.semi) ? null : this.parseExpression(); - this.semicolon(false); - node.update = this.match(types.parenR) ? null : this.parseExpression(); - this.expect(types.parenR); - node.body = this.withTopicForbiddingContext(() => this.parseStatement("for")); - this.scope.exit(); - this.state.labels.pop(); - return this.finishNode(node, "ForStatement"); - } - - parseForIn(node, init, awaitAt) { - const isForIn = this.match(types._in); - this.next(); - - if (isForIn) { - if (awaitAt > -1) this.unexpected(awaitAt); - } else { - node.await = awaitAt > -1; - } - - if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || this.state.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) { - this.raise(init.start, ErrorMessages.ForInOfLoopInitializer, isForIn ? "for-in" : "for-of"); - } else if (init.type === "AssignmentPattern") { - this.raise(init.start, ErrorMessages.InvalidLhs, "for-loop"); - } - - node.left = init; - node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn(); - this.expect(types.parenR); - node.body = this.withTopicForbiddingContext(() => this.parseStatement("for")); - this.scope.exit(); - this.state.labels.pop(); - return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); - } - - parseVar(node, isFor, kind) { - const declarations = node.declarations = []; - const isTypescript = this.hasPlugin("typescript"); - node.kind = kind; - - for (;;) { - const decl = this.startNode(); - this.parseVarId(decl, kind); - - if (this.eat(types.eq)) { - decl.init = isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn(); - } else { - if (kind === "const" && !(this.match(types._in) || this.isContextual("of"))) { - if (!isTypescript) { - this.raise(this.state.lastTokEnd, ErrorMessages.DeclarationMissingInitializer, "Const declarations"); - } - } else if (decl.id.type !== "Identifier" && !(isFor && (this.match(types._in) || this.isContextual("of")))) { - this.raise(this.state.lastTokEnd, ErrorMessages.DeclarationMissingInitializer, "Complex binding patterns"); - } - - decl.init = null; - } - - declarations.push(this.finishNode(decl, "VariableDeclarator")); - if (!this.eat(types.comma)) break; - } - - return node; - } - - parseVarId(decl, kind) { - decl.id = this.parseBindingAtom(); - this.checkLVal(decl.id, "variable declaration", kind === "var" ? BIND_VAR : BIND_LEXICAL, undefined, kind !== "var"); - } - - parseFunction(node, statement = FUNC_NO_FLAGS, isAsync = false) { - const isStatement = statement & FUNC_STATEMENT; - const isHangingStatement = statement & FUNC_HANGING_STATEMENT; - const requireId = !!isStatement && !(statement & FUNC_NULLABLE_ID); - this.initFunction(node, isAsync); - - if (this.match(types.star) && isHangingStatement) { - this.raise(this.state.start, ErrorMessages.GeneratorInSingleStatementContext); - } - - node.generator = this.eat(types.star); - - if (isStatement) { - node.id = this.parseFunctionId(requireId); - } - - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - this.state.maybeInArrowParameters = false; - this.scope.enter(SCOPE_FUNCTION); - this.prodParam.enter(functionFlags(isAsync, node.generator)); - - if (!isStatement) { - node.id = this.parseFunctionId(); - } - - this.parseFunctionParams(node, false); - this.withTopicForbiddingContext(() => { - this.parseFunctionBodyAndFinish(node, isStatement ? "FunctionDeclaration" : "FunctionExpression"); - }); - this.prodParam.exit(); - this.scope.exit(); - - if (isStatement && !isHangingStatement) { - this.registerFunctionStatementId(node); - } - - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - return node; - } - - parseFunctionId(requireId) { - return requireId || this.match(types.name) ? this.parseIdentifier() : null; - } - - parseFunctionParams(node, allowModifiers) { - this.expect(types.parenL); - this.expressionScope.enter(newParameterDeclarationScope()); - node.params = this.parseBindingList(types.parenR, 41, false, allowModifiers); - this.expressionScope.exit(); - } - - registerFunctionStatementId(node) { - if (!node.id) return; - this.scope.declareName(node.id.name, this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION, node.id.start); - } - - parseClass(node, isStatement, optionalId) { - this.next(); - this.takeDecorators(node); - const oldStrict = this.state.strict; - this.state.strict = true; - this.parseClassId(node, isStatement, optionalId); - this.parseClassSuper(node); - node.body = this.parseClassBody(!!node.superClass, oldStrict); - return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); - } - - isClassProperty() { - return this.match(types.eq) || this.match(types.semi) || this.match(types.braceR); - } - - isClassMethod() { - return this.match(types.parenL); - } - - isNonstaticConstructor(method) { - return !method.computed && !method.static && (method.key.name === "constructor" || method.key.value === "constructor"); - } - - parseClassBody(constructorAllowsSuper, oldStrict) { - this.classScope.enter(); - const state = { - constructorAllowsSuper, - hadConstructor: false - }; - let decorators = []; - const classBody = this.startNode(); - classBody.body = []; - this.expect(types.braceL); - this.withTopicForbiddingContext(() => { - while (!this.match(types.braceR)) { - if (this.eat(types.semi)) { - if (decorators.length > 0) { - throw this.raise(this.state.lastTokEnd, ErrorMessages.DecoratorSemicolon); - } - - continue; - } - - if (this.match(types.at)) { - decorators.push(this.parseDecorator()); - continue; - } - - const member = this.startNode(); - - if (decorators.length) { - member.decorators = decorators; - this.resetStartLocationFromNode(member, decorators[0]); - decorators = []; - } - - this.parseClassMember(classBody, member, state); - - if (member.kind === "constructor" && member.decorators && member.decorators.length > 0) { - this.raise(member.start, ErrorMessages.DecoratorConstructor); - } - } - }); - this.state.strict = oldStrict; - this.next(); - - if (decorators.length) { - throw this.raise(this.state.start, ErrorMessages.TrailingDecorator); - } - - this.classScope.exit(); - return this.finishNode(classBody, "ClassBody"); - } - - parseClassMemberFromModifier(classBody, member) { - const key = this.parseIdentifier(true); - - if (this.isClassMethod()) { - const method = member; - method.kind = "method"; - method.computed = false; - method.key = key; - method.static = false; - this.pushClassMethod(classBody, method, false, false, false, false); - return true; - } else if (this.isClassProperty()) { - const prop = member; - prop.computed = false; - prop.key = key; - prop.static = false; - classBody.body.push(this.parseClassProperty(prop)); - return true; - } - - return false; - } - - parseClassMember(classBody, member, state) { - const isStatic = this.isContextual("static"); - - if (isStatic) { - if (this.parseClassMemberFromModifier(classBody, member)) { - return; - } - - if (this.eat(types.braceL)) { - this.parseClassStaticBlock(classBody, member); - return; - } - } - - this.parseClassMemberWithIsStatic(classBody, member, state, isStatic); - } - - parseClassMemberWithIsStatic(classBody, member, state, isStatic) { - const publicMethod = member; - const privateMethod = member; - const publicProp = member; - const privateProp = member; - const method = publicMethod; - const publicMember = publicMethod; - member.static = isStatic; - - if (this.eat(types.star)) { - method.kind = "method"; - this.parseClassElementName(method); - - if (this.isPrivateName(method.key)) { - this.pushClassPrivateMethod(classBody, privateMethod, true, false); - return; - } - - if (this.isNonstaticConstructor(publicMethod)) { - this.raise(publicMethod.key.start, ErrorMessages.ConstructorIsGenerator); - } - - this.pushClassMethod(classBody, publicMethod, true, false, false, false); - return; - } - - const containsEsc = this.state.containsEsc; - const key = this.parseClassElementName(member); - const isPrivate = this.isPrivateName(key); - const isSimple = key.type === "Identifier"; - const maybeQuestionTokenStart = this.state.start; - this.parsePostMemberNameModifiers(publicMember); - - if (this.isClassMethod()) { - method.kind = "method"; - - if (isPrivate) { - this.pushClassPrivateMethod(classBody, privateMethod, false, false); - return; - } - - const isConstructor = this.isNonstaticConstructor(publicMethod); - let allowsDirectSuper = false; - - if (isConstructor) { - publicMethod.kind = "constructor"; - - if (state.hadConstructor && !this.hasPlugin("typescript")) { - this.raise(key.start, ErrorMessages.DuplicateConstructor); - } - - state.hadConstructor = true; - allowsDirectSuper = state.constructorAllowsSuper; - } - - this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper); - } else if (this.isClassProperty()) { - if (isPrivate) { - this.pushClassPrivateProperty(classBody, privateProp); - } else { - this.pushClassProperty(classBody, publicProp); - } - } else if (isSimple && key.name === "async" && !containsEsc && !this.isLineTerminator()) { - const isGenerator = this.eat(types.star); - - if (publicMember.optional) { - this.unexpected(maybeQuestionTokenStart); - } - - method.kind = "method"; - this.parseClassElementName(method); - this.parsePostMemberNameModifiers(publicMember); - - if (this.isPrivateName(method.key)) { - this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true); - } else { - if (this.isNonstaticConstructor(publicMethod)) { - this.raise(publicMethod.key.start, ErrorMessages.ConstructorIsAsync); - } - - this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false); - } - } else if (isSimple && (key.name === "get" || key.name === "set") && !containsEsc && !(this.match(types.star) && this.isLineTerminator())) { - method.kind = key.name; - this.parseClassElementName(publicMethod); - - if (this.isPrivateName(method.key)) { - this.pushClassPrivateMethod(classBody, privateMethod, false, false); - } else { - if (this.isNonstaticConstructor(publicMethod)) { - this.raise(publicMethod.key.start, ErrorMessages.ConstructorIsAccessor); - } - - this.pushClassMethod(classBody, publicMethod, false, false, false, false); - } - - this.checkGetterSetterParams(publicMethod); - } else if (this.isLineTerminator()) { - if (isPrivate) { - this.pushClassPrivateProperty(classBody, privateProp); - } else { - this.pushClassProperty(classBody, publicProp); - } - } else { - this.unexpected(); - } - } - - parseClassElementName(member) { - const key = this.parsePropertyName(member, true); - - if (!member.computed && member.static && (key.name === "prototype" || key.value === "prototype")) { - this.raise(key.start, ErrorMessages.StaticPrototype); - } - - if (this.isPrivateName(key) && this.getPrivateNameSV(key) === "constructor") { - this.raise(key.start, ErrorMessages.ConstructorClassPrivateField); - } - - return key; - } - - parseClassStaticBlock(classBody, member) { - var _member$decorators; - - this.expectPlugin("classStaticBlock", member.start); - this.scope.enter(SCOPE_CLASS | SCOPE_STATIC_BLOCK | SCOPE_SUPER); - const oldLabels = this.state.labels; - this.state.labels = []; - this.prodParam.enter(PARAM); - const body = member.body = []; - this.parseBlockOrModuleBlockBody(body, undefined, false, types.braceR); - this.prodParam.exit(); - this.scope.exit(); - this.state.labels = oldLabels; - classBody.body.push(this.finishNode(member, "StaticBlock")); - - if ((_member$decorators = member.decorators) != null && _member$decorators.length) { - this.raise(member.start, ErrorMessages.DecoratorStaticBlock); - } - } - - pushClassProperty(classBody, prop) { - if (!prop.computed && (prop.key.name === "constructor" || prop.key.value === "constructor")) { - this.raise(prop.key.start, ErrorMessages.ConstructorClassField); - } - - classBody.body.push(this.parseClassProperty(prop)); - } - - pushClassPrivateProperty(classBody, prop) { - this.expectPlugin("classPrivateProperties", prop.key.start); - const node = this.parseClassPrivateProperty(prop); - classBody.body.push(node); - this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), CLASS_ELEMENT_OTHER, node.key.start); - } - - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true)); - } - - pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { - this.expectPlugin("classPrivateMethods", method.key.start); - const node = this.parseMethod(method, isGenerator, isAsync, false, false, "ClassPrivateMethod", true); - classBody.body.push(node); - const kind = node.kind === "get" ? node.static ? CLASS_ELEMENT_STATIC_GETTER : CLASS_ELEMENT_INSTANCE_GETTER : node.kind === "set" ? node.static ? CLASS_ELEMENT_STATIC_SETTER : CLASS_ELEMENT_INSTANCE_SETTER : CLASS_ELEMENT_OTHER; - this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), kind, node.key.start); - } - - parsePostMemberNameModifiers(methodOrProp) {} - - parseClassPrivateProperty(node) { - this.parseInitializer(node); - this.semicolon(); - return this.finishNode(node, "ClassPrivateProperty"); - } - - parseClassProperty(node) { - if (!node.typeAnnotation || this.match(types.eq)) { - this.expectPlugin("classProperties"); - } - - this.parseInitializer(node); - this.semicolon(); - return this.finishNode(node, "ClassProperty"); - } - - parseInitializer(node) { - this.scope.enter(SCOPE_CLASS | SCOPE_SUPER); - this.expressionScope.enter(newExpressionScope()); - this.prodParam.enter(PARAM); - node.value = this.eat(types.eq) ? this.parseMaybeAssignAllowIn() : null; - this.expressionScope.exit(); - this.prodParam.exit(); - this.scope.exit(); - } - - parseClassId(node, isStatement, optionalId, bindingType = BIND_CLASS) { - if (this.match(types.name)) { - node.id = this.parseIdentifier(); - - if (isStatement) { - this.checkLVal(node.id, "class name", bindingType); - } - } else { - if (optionalId || !isStatement) { - node.id = null; - } else { - this.unexpected(null, ErrorMessages.MissingClassName); - } - } - } - - parseClassSuper(node) { - node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null; - } - - parseExport(node) { - const hasDefault = this.maybeParseExportDefaultSpecifier(node); - const parseAfterDefault = !hasDefault || this.eat(types.comma); - const hasStar = parseAfterDefault && this.eatExportStar(node); - const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node); - const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(types.comma)); - const isFromRequired = hasDefault || hasStar; - - if (hasStar && !hasNamespace) { - if (hasDefault) this.unexpected(); - this.parseExportFrom(node, true); - return this.finishNode(node, "ExportAllDeclaration"); - } - - const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node); - - if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers || hasNamespace && parseAfterNamespace && !hasSpecifiers) { - throw this.unexpected(null, types.braceL); - } - - let hasDeclaration; - - if (isFromRequired || hasSpecifiers) { - hasDeclaration = false; - this.parseExportFrom(node, isFromRequired); - } else { - hasDeclaration = this.maybeParseExportDeclaration(node); - } - - if (isFromRequired || hasSpecifiers || hasDeclaration) { - this.checkExport(node, true, false, !!node.source); - return this.finishNode(node, "ExportNamedDeclaration"); - } - - if (this.eat(types._default)) { - node.declaration = this.parseExportDefaultExpression(); - this.checkExport(node, true, true); - return this.finishNode(node, "ExportDefaultDeclaration"); - } - - throw this.unexpected(null, types.braceL); - } - - eatExportStar(node) { - return this.eat(types.star); - } - - maybeParseExportDefaultSpecifier(node) { - if (this.isExportDefaultSpecifier()) { - this.expectPlugin("exportDefaultFrom"); - const specifier = this.startNode(); - specifier.exported = this.parseIdentifier(true); - node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; - return true; - } - - return false; - } - - maybeParseExportNamespaceSpecifier(node) { - if (this.isContextual("as")) { - if (!node.specifiers) node.specifiers = []; - const specifier = this.startNodeAt(this.state.lastTokStart, this.state.lastTokStartLoc); - this.next(); - specifier.exported = this.parseModuleExportName(); - node.specifiers.push(this.finishNode(specifier, "ExportNamespaceSpecifier")); - return true; - } - - return false; - } - - maybeParseExportNamedSpecifiers(node) { - if (this.match(types.braceL)) { - if (!node.specifiers) node.specifiers = []; - node.specifiers.push(...this.parseExportSpecifiers()); - node.source = null; - node.declaration = null; - return true; - } - - return false; - } - - maybeParseExportDeclaration(node) { - if (this.shouldParseExportDeclaration()) { - node.specifiers = []; - node.source = null; - node.declaration = this.parseExportDeclaration(node); - return true; - } - - return false; - } - - isAsyncFunction() { - if (!this.isContextual("async")) return false; - const next = this.nextTokenStart(); - return !lineBreak.test(this.input.slice(this.state.pos, next)) && this.isUnparsedContextual(next, "function"); - } - - parseExportDefaultExpression() { - const expr = this.startNode(); - const isAsync = this.isAsyncFunction(); - - if (this.match(types._function) || isAsync) { - this.next(); - - if (isAsync) { - this.next(); - } - - return this.parseFunction(expr, FUNC_STATEMENT | FUNC_NULLABLE_ID, isAsync); - } else if (this.match(types._class)) { - return this.parseClass(expr, true, true); - } else if (this.match(types.at)) { - if (this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport")) { - this.raise(this.state.start, ErrorMessages.DecoratorBeforeExport); - } - - this.parseDecorators(false); - return this.parseClass(expr, true, true); - } else if (this.match(types._const) || this.match(types._var) || this.isLet()) { - throw this.raise(this.state.start, ErrorMessages.UnsupportedDefaultExport); - } else { - const res = this.parseMaybeAssignAllowIn(); - this.semicolon(); - return res; - } - } - - parseExportDeclaration(node) { - return this.parseStatement(null); - } - - isExportDefaultSpecifier() { - if (this.match(types.name)) { - const value = this.state.value; - - if (value === "async" && !this.state.containsEsc || value === "let") { - return false; - } - - if ((value === "type" || value === "interface") && !this.state.containsEsc) { - const l = this.lookahead(); - - if (l.type === types.name && l.value !== "from" || l.type === types.braceL) { - this.expectOnePlugin(["flow", "typescript"]); - return false; - } - } - } else if (!this.match(types._default)) { - return false; - } - - const next = this.nextTokenStart(); - const hasFrom = this.isUnparsedContextual(next, "from"); - - if (this.input.charCodeAt(next) === 44 || this.match(types.name) && hasFrom) { - return true; - } - - if (this.match(types._default) && hasFrom) { - const nextAfterFrom = this.input.charCodeAt(this.nextTokenStartSince(next + 4)); - return nextAfterFrom === 34 || nextAfterFrom === 39; - } - - return false; - } - - parseExportFrom(node, expect) { - if (this.eatContextual("from")) { - node.source = this.parseImportSource(); - this.checkExport(node); - const assertions = this.maybeParseImportAssertions(); - - if (assertions) { - node.assertions = assertions; - } - } else { - if (expect) { - this.unexpected(); - } else { - node.source = null; - } - } - - this.semicolon(); - } - - shouldParseExportDeclaration() { - if (this.match(types.at)) { - this.expectOnePlugin(["decorators", "decorators-legacy"]); - - if (this.hasPlugin("decorators")) { - if (this.getPluginOption("decorators", "decoratorsBeforeExport")) { - this.unexpected(this.state.start, ErrorMessages.DecoratorBeforeExport); - } else { - return true; - } - } - } - - return this.state.type.keyword === "var" || this.state.type.keyword === "const" || this.state.type.keyword === "function" || this.state.type.keyword === "class" || this.isLet() || this.isAsyncFunction(); - } - - checkExport(node, checkNames, isDefault, isFrom) { - if (checkNames) { - if (isDefault) { - this.checkDuplicateExports(node, "default"); - - if (this.hasPlugin("exportDefaultFrom")) { - var _declaration$extra; - - const declaration = node.declaration; - - if (declaration.type === "Identifier" && declaration.name === "from" && declaration.end - declaration.start === 4 && !((_declaration$extra = declaration.extra) != null && _declaration$extra.parenthesized)) { - this.raise(declaration.start, ErrorMessages.ExportDefaultFromAsIdentifier); - } - } - } else if (node.specifiers && node.specifiers.length) { - for (const specifier of node.specifiers) { - const { - exported - } = specifier; - const exportedName = exported.type === "Identifier" ? exported.name : exported.value; - this.checkDuplicateExports(specifier, exportedName); - - if (!isFrom && specifier.local) { - const { - local - } = specifier; - - if (local.type === "StringLiteral") { - this.raise(specifier.start, ErrorMessages.ExportBindingIsString, local.value, exportedName); - } else { - this.checkReservedWord(local.name, local.start, true, false); - this.scope.checkLocalExport(local); - } - } - } - } else if (node.declaration) { - if (node.declaration.type === "FunctionDeclaration" || node.declaration.type === "ClassDeclaration") { - const id = node.declaration.id; - if (!id) throw new Error("Assertion failure"); - this.checkDuplicateExports(node, id.name); - } else if (node.declaration.type === "VariableDeclaration") { - for (const declaration of node.declaration.declarations) { - this.checkDeclaration(declaration.id); - } - } - } - } - - const currentContextDecorators = this.state.decoratorStack[this.state.decoratorStack.length - 1]; - - if (currentContextDecorators.length) { - throw this.raise(node.start, ErrorMessages.UnsupportedDecoratorExport); - } - } - - checkDeclaration(node) { - if (node.type === "Identifier") { - this.checkDuplicateExports(node, node.name); - } else if (node.type === "ObjectPattern") { - for (const prop of node.properties) { - this.checkDeclaration(prop); - } - } else if (node.type === "ArrayPattern") { - for (const elem of node.elements) { - if (elem) { - this.checkDeclaration(elem); - } - } - } else if (node.type === "ObjectProperty") { - this.checkDeclaration(node.value); - } else if (node.type === "RestElement") { - this.checkDeclaration(node.argument); - } else if (node.type === "AssignmentPattern") { - this.checkDeclaration(node.left); - } - } - - checkDuplicateExports(node, name) { - if (this.state.exportedIdentifiers.indexOf(name) > -1) { - this.raise(node.start, name === "default" ? ErrorMessages.DuplicateDefaultExport : ErrorMessages.DuplicateExport, name); - } - - this.state.exportedIdentifiers.push(name); - } - - parseExportSpecifiers() { - const nodes = []; - let first = true; - this.expect(types.braceL); - - while (!this.eat(types.braceR)) { - if (first) { - first = false; - } else { - this.expect(types.comma); - if (this.eat(types.braceR)) break; - } - - const node = this.startNode(); - node.local = this.parseModuleExportName(); - node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local.__clone(); - nodes.push(this.finishNode(node, "ExportSpecifier")); - } - - return nodes; - } - - parseModuleExportName() { - if (this.match(types.string)) { - this.expectPlugin("moduleStringNames"); - const result = this.parseLiteral(this.state.value, "StringLiteral"); - const surrogate = result.value.match(loneSurrogate); - - if (surrogate) { - this.raise(result.start, ErrorMessages.ModuleExportNameHasLoneSurrogate, surrogate[0].charCodeAt(0).toString(16)); - } - - return result; - } - - return this.parseIdentifier(true); - } - - parseImport(node) { - node.specifiers = []; - - if (!this.match(types.string)) { - const hasDefault = this.maybeParseDefaultImportSpecifier(node); - const parseNext = !hasDefault || this.eat(types.comma); - const hasStar = parseNext && this.maybeParseStarImportSpecifier(node); - if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node); - this.expectContextual("from"); - } - - node.source = this.parseImportSource(); - const assertions = this.maybeParseImportAssertions(); - - if (assertions) { - node.assertions = assertions; - } else { - const attributes = this.maybeParseModuleAttributes(); - - if (attributes) { - node.attributes = attributes; - } - } - - this.semicolon(); - return this.finishNode(node, "ImportDeclaration"); - } - - parseImportSource() { - if (!this.match(types.string)) this.unexpected(); - return this.parseExprAtom(); - } - - shouldParseDefaultImport(node) { - return this.match(types.name); - } - - parseImportSpecifierLocal(node, specifier, type, contextDescription) { - specifier.local = this.parseIdentifier(); - this.checkLVal(specifier.local, contextDescription, BIND_LEXICAL); - node.specifiers.push(this.finishNode(specifier, type)); - } - - parseAssertEntries() { - const attrs = []; - const attrNames = new Set(); - - do { - if (this.match(types.braceR)) { - break; - } - - const node = this.startNode(); - const keyName = this.state.value; - - if (this.match(types.string)) { - node.key = this.parseLiteral(keyName, "StringLiteral"); - } else { - node.key = this.parseIdentifier(true); - } - - this.expect(types.colon); - - if (keyName !== "type") { - this.raise(node.key.start, ErrorMessages.ModuleAttributeDifferentFromType, keyName); - } - - if (attrNames.has(keyName)) { - this.raise(node.key.start, ErrorMessages.ModuleAttributesWithDuplicateKeys, keyName); - } - - attrNames.add(keyName); - - if (!this.match(types.string)) { - throw this.unexpected(this.state.start, ErrorMessages.ModuleAttributeInvalidValue); - } - - node.value = this.parseLiteral(this.state.value, "StringLiteral"); - this.finishNode(node, "ImportAttribute"); - attrs.push(node); - } while (this.eat(types.comma)); - - return attrs; - } - - maybeParseModuleAttributes() { - if (this.match(types._with) && !this.hasPrecedingLineBreak()) { - this.expectPlugin("moduleAttributes"); - this.next(); - } else { - if (this.hasPlugin("moduleAttributes")) return []; - return null; - } - - const attrs = []; - const attributes = new Set(); - - do { - const node = this.startNode(); - node.key = this.parseIdentifier(true); - - if (node.key.name !== "type") { - this.raise(node.key.start, ErrorMessages.ModuleAttributeDifferentFromType, node.key.name); - } - - if (attributes.has(node.key.name)) { - this.raise(node.key.start, ErrorMessages.ModuleAttributesWithDuplicateKeys, node.key.name); - } - - attributes.add(node.key.name); - this.expect(types.colon); - - if (!this.match(types.string)) { - throw this.unexpected(this.state.start, ErrorMessages.ModuleAttributeInvalidValue); - } - - node.value = this.parseLiteral(this.state.value, "StringLiteral"); - this.finishNode(node, "ImportAttribute"); - attrs.push(node); - } while (this.eat(types.comma)); - - return attrs; - } - - maybeParseImportAssertions() { - if (this.isContextual("assert") && !this.hasPrecedingLineBreak()) { - this.expectPlugin("importAssertions"); - this.next(); - } else { - if (this.hasPlugin("importAssertions")) return []; - return null; - } - - this.eat(types.braceL); - const attrs = this.parseAssertEntries(); - this.eat(types.braceR); - return attrs; - } - - maybeParseDefaultImportSpecifier(node) { - if (this.shouldParseDefaultImport(node)) { - this.parseImportSpecifierLocal(node, this.startNode(), "ImportDefaultSpecifier", "default import specifier"); - return true; - } - - return false; - } - - maybeParseStarImportSpecifier(node) { - if (this.match(types.star)) { - const specifier = this.startNode(); - this.next(); - this.expectContextual("as"); - this.parseImportSpecifierLocal(node, specifier, "ImportNamespaceSpecifier", "import namespace specifier"); - return true; - } - - return false; - } - - parseNamedImportSpecifiers(node) { - let first = true; - this.expect(types.braceL); - - while (!this.eat(types.braceR)) { - if (first) { - first = false; - } else { - if (this.eat(types.colon)) { - throw this.raise(this.state.start, ErrorMessages.DestructureNamedImport); - } - - this.expect(types.comma); - if (this.eat(types.braceR)) break; - } - - this.parseImportSpecifier(node); - } - } - - parseImportSpecifier(node) { - const specifier = this.startNode(); - specifier.imported = this.parseModuleExportName(); - - if (this.eatContextual("as")) { - specifier.local = this.parseIdentifier(); - } else { - const { - imported - } = specifier; - - if (imported.type === "StringLiteral") { - throw this.raise(specifier.start, ErrorMessages.ImportBindingIsString, imported.value); - } - - this.checkReservedWord(imported.name, specifier.start, true, true); - specifier.local = imported.__clone(); - } - - this.checkLVal(specifier.local, "import specifier", BIND_LEXICAL); - node.specifiers.push(this.finishNode(specifier, "ImportSpecifier")); - } - -} - -class Parser extends StatementParser { - constructor(options, input) { - options = getOptions(options); - super(options, input); - this.options = options; - this.initializeScopes(); - this.plugins = pluginsMap(this.options.plugins); - this.filename = options.sourceFilename; - } - - getScopeHandler() { - return ScopeHandler; - } - - parse() { - this.enterInitialScopes(); - const file = this.startNode(); - const program = this.startNode(); - this.nextToken(); - file.errors = null; - this.parseTopLevel(file, program); - file.errors = this.state.errors; - return file; - } - -} - -function pluginsMap(plugins) { - const pluginMap = new Map(); - - for (const plugin of plugins) { - const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}]; - if (!pluginMap.has(name)) pluginMap.set(name, options || {}); - } - - return pluginMap; -} - -function parse(input, options) { - var _options; - - if (((_options = options) == null ? void 0 : _options.sourceType) === "unambiguous") { - options = Object.assign({}, options); - - try { - options.sourceType = "module"; - const parser = getParser(options, input); - const ast = parser.parse(); - - if (parser.sawUnambiguousESM) { - return ast; - } - - if (parser.ambiguousScriptDifferentAst) { - try { - options.sourceType = "script"; - return getParser(options, input).parse(); - } catch (_unused) {} - } else { - ast.program.sourceType = "script"; - } - - return ast; - } catch (moduleError) { - try { - options.sourceType = "script"; - return getParser(options, input).parse(); - } catch (_unused2) {} - - throw moduleError; - } - } else { - return getParser(options, input).parse(); - } -} -function parseExpression(input, options) { - const parser = getParser(options, input); - - if (parser.options.strictMode) { - parser.state.strict = true; - } - - return parser.getExpression(); -} - -function getParser(options, input) { - let cls = Parser; - - if (options != null && options.plugins) { - validatePlugins(options.plugins); - cls = getParserClass(options.plugins); - } - - return new cls(options, input); -} - -const parserClassCache = {}; - -function getParserClass(pluginsFromOptions) { - const pluginList = mixinPluginNames.filter(name => hasPlugin(pluginsFromOptions, name)); - const key = pluginList.join("/"); - let cls = parserClassCache[key]; - - if (!cls) { - cls = Parser; - - for (const plugin of pluginList) { - cls = mixinPlugins[plugin](cls); - } - - parserClassCache[key] = cls; - } - - return cls; -} - -exports.parse = parse; -exports.parseExpression = parseExpression; -exports.tokTypes = types; -//# sourceMappingURL=index.js.map diff --git a/views/node_modules/@babel/parser/lib/index.js.map b/views/node_modules/@babel/parser/lib/index.js.map deleted file mode 100644 index 9b63254..0000000 --- a/views/node_modules/@babel/parser/lib/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sources":["../src/tokenizer/types.js","../src/util/whitespace.js","../src/util/location.js","../src/parser/base.js","../src/parser/comments.js","../src/parser/error-message.js","../src/parser/error.js","../src/plugins/estree.js","../src/tokenizer/context.js","../../babel-helper-validator-identifier/src/identifier.ts","../../babel-helper-validator-identifier/src/keyword.ts","../src/util/identifier.js","../src/util/scopeflags.js","../src/util/scope.js","../src/plugins/flow/scope.js","../src/plugins/flow/index.js","../src/plugins/jsx/xhtml.js","../src/plugins/jsx/index.js","../src/plugins/typescript/scope.js","../src/util/production-parameter.js","../src/plugins/typescript/index.js","../src/plugins/placeholders.js","../src/plugins/v8intrinsic.js","../src/plugin-utils.js","../src/options.js","../src/tokenizer/state.js","../src/tokenizer/index.js","../src/util/class-scope.js","../src/util/expression-scope.js","../src/parser/util.js","../src/parser/node.js","../src/parser/lval.js","../src/parser/expression.js","../src/parser/statement.js","../src/parser/index.js","../src/index.js"],"sourcesContent":["// @flow\n\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between regular\n// expressions and divisions. It is set on all token types that can\n// be followed by an expression (thus, a slash after them would be a\n// regular expression).\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n keyword?: string,\n beforeExpr?: boolean,\n startsExpr?: boolean,\n rightAssociative?: boolean,\n isLoop?: boolean,\n isAssign?: boolean,\n prefix?: boolean,\n postfix?: boolean,\n binop?: ?number,\n};\n\nexport class TokenType {\n label: string;\n keyword: ?string;\n beforeExpr: boolean;\n startsExpr: boolean;\n rightAssociative: boolean;\n isLoop: boolean;\n isAssign: boolean;\n prefix: boolean;\n postfix: boolean;\n binop: ?number;\n updateContext: ?(prevType: TokenType) => void;\n\n constructor(label: string, conf: TokenOptions = {}) {\n this.label = label;\n this.keyword = conf.keyword;\n this.beforeExpr = !!conf.beforeExpr;\n this.startsExpr = !!conf.startsExpr;\n this.rightAssociative = !!conf.rightAssociative;\n this.isLoop = !!conf.isLoop;\n this.isAssign = !!conf.isAssign;\n this.prefix = !!conf.prefix;\n this.postfix = !!conf.postfix;\n this.binop = conf.binop != null ? conf.binop : null;\n this.updateContext = null;\n }\n}\n\nexport const keywords = new Map();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n options.keyword = name;\n const token = new TokenType(name, options);\n keywords.set(name, token);\n return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n return new TokenType(name, { beforeExpr, binop });\n}\n\nexport const types: { [name: string]: TokenType } = {\n num: new TokenType(\"num\", { startsExpr }),\n bigint: new TokenType(\"bigint\", { startsExpr }),\n decimal: new TokenType(\"decimal\", { startsExpr }),\n regexp: new TokenType(\"regexp\", { startsExpr }),\n string: new TokenType(\"string\", { startsExpr }),\n name: new TokenType(\"name\", { startsExpr }),\n eof: new TokenType(\"eof\"),\n\n // Punctuation token types.\n bracketL: new TokenType(\"[\", { beforeExpr, startsExpr }),\n bracketHashL: new TokenType(\"#[\", { beforeExpr, startsExpr }),\n bracketBarL: new TokenType(\"[|\", { beforeExpr, startsExpr }),\n bracketR: new TokenType(\"]\"),\n bracketBarR: new TokenType(\"|]\"),\n braceL: new TokenType(\"{\", { beforeExpr, startsExpr }),\n braceBarL: new TokenType(\"{|\", { beforeExpr, startsExpr }),\n braceHashL: new TokenType(\"#{\", { beforeExpr, startsExpr }),\n braceR: new TokenType(\"}\"),\n braceBarR: new TokenType(\"|}\"),\n parenL: new TokenType(\"(\", { beforeExpr, startsExpr }),\n parenR: new TokenType(\")\"),\n comma: new TokenType(\",\", { beforeExpr }),\n semi: new TokenType(\";\", { beforeExpr }),\n colon: new TokenType(\":\", { beforeExpr }),\n doubleColon: new TokenType(\"::\", { beforeExpr }),\n dot: new TokenType(\".\"),\n question: new TokenType(\"?\", { beforeExpr }),\n questionDot: new TokenType(\"?.\"),\n arrow: new TokenType(\"=>\", { beforeExpr }),\n template: new TokenType(\"template\"),\n ellipsis: new TokenType(\"...\", { beforeExpr }),\n backQuote: new TokenType(\"`\", { startsExpr }),\n dollarBraceL: new TokenType(\"${\", { beforeExpr, startsExpr }),\n at: new TokenType(\"@\"),\n hash: new TokenType(\"#\", { startsExpr }),\n\n // Special hashbang token.\n interpreterDirective: new TokenType(\"#!...\"),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n eq: new TokenType(\"=\", { beforeExpr, isAssign }),\n assign: new TokenType(\"_=\", { beforeExpr, isAssign }),\n incDec: new TokenType(\"++/--\", { prefix, postfix, startsExpr }),\n bang: new TokenType(\"!\", { beforeExpr, prefix, startsExpr }),\n tilde: new TokenType(\"~\", { beforeExpr, prefix, startsExpr }),\n pipeline: createBinop(\"|>\", 0),\n nullishCoalescing: createBinop(\"??\", 1),\n logicalOR: createBinop(\"||\", 1),\n logicalAND: createBinop(\"&&\", 2),\n bitwiseOR: createBinop(\"|\", 3),\n bitwiseXOR: createBinop(\"^\", 4),\n bitwiseAND: createBinop(\"&\", 5),\n equality: createBinop(\"==/!=/===/!==\", 6),\n relational: createBinop(\"/<=/>=\", 7),\n bitShift: createBinop(\"<>/>>>\", 8),\n plusMin: new TokenType(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n // startsExpr: required by v8intrinsic plugin\n modulo: new TokenType(\"%\", { beforeExpr, binop: 10, startsExpr }),\n // unset `beforeExpr` as it can be `function *`\n star: new TokenType(\"*\", { binop: 10 }),\n slash: createBinop(\"/\", 10),\n exponent: new TokenType(\"**\", {\n beforeExpr,\n binop: 11,\n rightAssociative: true,\n }),\n\n // Keywords\n // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n // when new keywords are added\n _break: createKeyword(\"break\"),\n _case: createKeyword(\"case\", { beforeExpr }),\n _catch: createKeyword(\"catch\"),\n _continue: createKeyword(\"continue\"),\n _debugger: createKeyword(\"debugger\"),\n _default: createKeyword(\"default\", { beforeExpr }),\n _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n _else: createKeyword(\"else\", { beforeExpr }),\n _finally: createKeyword(\"finally\"),\n _for: createKeyword(\"for\", { isLoop }),\n _function: createKeyword(\"function\", { startsExpr }),\n _if: createKeyword(\"if\"),\n _return: createKeyword(\"return\", { beforeExpr }),\n _switch: createKeyword(\"switch\"),\n _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n _try: createKeyword(\"try\"),\n _var: createKeyword(\"var\"),\n _const: createKeyword(\"const\"),\n _while: createKeyword(\"while\", { isLoop }),\n _with: createKeyword(\"with\"),\n _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n _this: createKeyword(\"this\", { startsExpr }),\n _super: createKeyword(\"super\", { startsExpr }),\n _class: createKeyword(\"class\", { startsExpr }),\n _extends: createKeyword(\"extends\", { beforeExpr }),\n _export: createKeyword(\"export\"),\n _import: createKeyword(\"import\", { startsExpr }),\n _null: createKeyword(\"null\", { startsExpr }),\n _true: createKeyword(\"true\", { startsExpr }),\n _false: createKeyword(\"false\", { startsExpr }),\n _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n};\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n?|[\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n switch (code) {\n case charCodes.lineFeed:\n case charCodes.carriageReturn:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return true;\n\n default:\n return false;\n }\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n switch (code) {\n case 0x0009: // CHARACTER TABULATION\n case 0x000b: // LINE TABULATION\n case 0x000c: // FORM FEED\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.oghamSpaceMark:\n case 0x2000: // EN QUAD\n case 0x2001: // EM QUAD\n case 0x2002: // EN SPACE\n case 0x2003: // EM SPACE\n case 0x2004: // THREE-PER-EM SPACE\n case 0x2005: // FOUR-PER-EM SPACE\n case 0x2006: // SIX-PER-EM SPACE\n case 0x2007: // FIGURE SPACE\n case 0x2008: // PUNCTUATION SPACE\n case 0x2009: // THIN SPACE\n case 0x200a: // HAIR SPACE\n case 0x202f: // NARROW NO-BREAK SPACE\n case 0x205f: // MEDIUM MATHEMATICAL SPACE\n case 0x3000: // IDEOGRAPHIC SPACE\n case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n return true;\n\n default:\n return false;\n }\n}\n","// @flow\n\nimport { lineBreakG } from \"./whitespace\";\n\nexport type Pos = {\n start: number,\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n line: number;\n column: number;\n\n constructor(line: number, col: number) {\n this.line = line;\n this.column = col;\n }\n}\n\nexport class SourceLocation {\n start: Position;\n end: Position;\n filename: string;\n identifierName: ?string;\n\n constructor(start: Position, end?: Position) {\n this.start = start;\n // $FlowIgnore (may start as null, but initialized later)\n this.end = end;\n }\n}\n\n// The `getLineInfo` function is mostly useful when the\n// `locations` option is off (for performance reasons) and you\n// want to find the line/column position for a given character\n// offset. `input` should be the code string that the offset refers\n// into.\n\nexport function getLineInfo(input: string, offset: number): Position {\n let line = 1;\n let lineStart = 0;\n let match;\n lineBreakG.lastIndex = 0;\n while ((match = lineBreakG.exec(input)) && match.index < offset) {\n line++;\n lineStart = lineBreakG.lastIndex;\n }\n\n return new Position(line, offset - lineStart);\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport type State from \"../tokenizer/state\";\nimport type { PluginsMap } from \"./index\";\nimport type ScopeHandler from \"../util/scope\";\nimport type ExpressionScopeHandler from \"../util/expression-scope\";\nimport type ClassScopeHandler from \"../util/class-scope\";\nimport type ProductionParameterHandler from \"../util/production-parameter\";\n\nexport default class BaseParser {\n // Properties set by constructor in index.js\n declare options: Options;\n declare inModule: boolean;\n declare scope: ScopeHandler<*>;\n declare classScope: ClassScopeHandler;\n declare prodParam: ProductionParameterHandler;\n declare expressionScope: ExpressionScopeHandler;\n declare plugins: PluginsMap;\n declare filename: ?string;\n sawUnambiguousESM: boolean = false;\n ambiguousScriptDifferentAst: boolean = false;\n\n // Initialized by Tokenizer\n declare state: State;\n // input and length are not in state as they are constant and we do\n // not want to ever copy them, which happens if state gets cloned\n declare input: string;\n declare length: number;\n\n hasPlugin(name: string): boolean {\n return this.plugins.has(name);\n }\n\n getPluginOption(plugin: string, name: string) {\n // $FlowIssue\n if (this.hasPlugin(plugin)) return this.plugins.get(plugin)[name];\n }\n}\n","// @flow\n\n/**\n * Based on the comment attachment algorithm used in espree and estraverse.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above copyright\n * notice, this list of conditions and the following disclaimer in the\n * documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY\n * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nimport BaseParser from \"./base\";\nimport type { Comment, Node } from \"../types\";\n\nfunction last(stack: $ReadOnlyArray): T {\n return stack[stack.length - 1];\n}\n\nexport default class CommentsParser extends BaseParser {\n addComment(comment: Comment): void {\n if (this.filename) comment.loc.filename = this.filename;\n this.state.trailingComments.push(comment);\n this.state.leadingComments.push(comment);\n }\n\n adjustCommentsAfterTrailingComma(\n node: Node,\n elements: (Node | null)[],\n // When the current node is followed by a token which hasn't a respective AST node, we\n // need to take all the trailing comments to prevent them from being attached to an\n // unrelated node. e.g. in\n // var { x } /* cmt */ = { y }\n // we don't want /* cmt */ to be attached to { y }.\n // On the other hand, in\n // fn(x) [new line] /* cmt */ [new line] y\n // /* cmt */ is both a trailing comment of fn(x) and a leading comment of y\n takeAllComments?: boolean,\n ) {\n if (this.state.leadingComments.length === 0) {\n return;\n }\n\n let lastElement = null;\n let i = elements.length;\n while (lastElement === null && i > 0) {\n lastElement = elements[--i];\n }\n if (lastElement === null) {\n return;\n }\n\n for (let j = 0; j < this.state.leadingComments.length; j++) {\n if (\n this.state.leadingComments[j].end < this.state.commentPreviousNode.end\n ) {\n this.state.leadingComments.splice(j, 1);\n j--;\n }\n }\n\n const newTrailingComments = [];\n for (let i = 0; i < this.state.leadingComments.length; i++) {\n const leadingComment = this.state.leadingComments[i];\n if (leadingComment.end < node.end) {\n newTrailingComments.push(leadingComment);\n\n // Perf: we don't need to splice if we are going to reset the array anyway\n if (!takeAllComments) {\n this.state.leadingComments.splice(i, 1);\n i--;\n }\n } else {\n if (node.trailingComments === undefined) {\n node.trailingComments = [];\n }\n node.trailingComments.push(leadingComment);\n }\n }\n if (takeAllComments) this.state.leadingComments = [];\n\n if (newTrailingComments.length > 0) {\n lastElement.trailingComments = newTrailingComments;\n } else if (lastElement.trailingComments !== undefined) {\n lastElement.trailingComments = [];\n }\n }\n\n processComment(node: Node): void {\n if (node.type === \"Program\" && node.body.length > 0) return;\n\n const stack = this.state.commentStack;\n\n let firstChild, lastChild, trailingComments, i, j;\n\n if (this.state.trailingComments.length > 0) {\n // If the first comment in trailingComments comes after the\n // current node, then we're good - all comments in the array will\n // come after the node and so it's safe to add them as official\n // trailingComments.\n if (this.state.trailingComments[0].start >= node.end) {\n trailingComments = this.state.trailingComments;\n this.state.trailingComments = [];\n } else {\n // Otherwise, if the first comment doesn't come after the\n // current node, that means we have a mix of leading and trailing\n // comments in the array and that leadingComments contains the\n // same items as trailingComments. Reset trailingComments to\n // zero items and we'll handle this by evaluating leadingComments\n // later.\n this.state.trailingComments.length = 0;\n }\n } else if (stack.length > 0) {\n const lastInStack = last(stack);\n if (\n lastInStack.trailingComments &&\n lastInStack.trailingComments[0].start >= node.end\n ) {\n trailingComments = lastInStack.trailingComments;\n delete lastInStack.trailingComments;\n }\n }\n\n // Eating the stack.\n if (stack.length > 0 && last(stack).start >= node.start) {\n firstChild = stack.pop();\n }\n\n while (stack.length > 0 && last(stack).start >= node.start) {\n lastChild = stack.pop();\n }\n\n if (!lastChild && firstChild) lastChild = firstChild;\n\n // Adjust comments that follow a trailing comma on the last element in a\n // comma separated list of nodes to be the trailing comments on the last\n // element\n if (firstChild) {\n switch (node.type) {\n case \"ObjectExpression\":\n this.adjustCommentsAfterTrailingComma(node, node.properties);\n break;\n case \"ObjectPattern\":\n this.adjustCommentsAfterTrailingComma(node, node.properties, true);\n break;\n case \"CallExpression\":\n this.adjustCommentsAfterTrailingComma(node, node.arguments);\n break;\n case \"ArrayExpression\":\n this.adjustCommentsAfterTrailingComma(node, node.elements);\n break;\n case \"ArrayPattern\":\n this.adjustCommentsAfterTrailingComma(node, node.elements, true);\n break;\n }\n } else if (\n this.state.commentPreviousNode &&\n ((this.state.commentPreviousNode.type === \"ImportSpecifier\" &&\n node.type !== \"ImportSpecifier\") ||\n (this.state.commentPreviousNode.type === \"ExportSpecifier\" &&\n node.type !== \"ExportSpecifier\"))\n ) {\n this.adjustCommentsAfterTrailingComma(node, [\n this.state.commentPreviousNode,\n ]);\n }\n\n if (lastChild) {\n if (lastChild.leadingComments) {\n if (\n lastChild !== node &&\n lastChild.leadingComments.length > 0 &&\n last(lastChild.leadingComments).end <= node.start\n ) {\n node.leadingComments = lastChild.leadingComments;\n delete lastChild.leadingComments;\n } else {\n // A leading comment for an anonymous class had been stolen by its first ClassMethod,\n // so this takes back the leading comment.\n // See also: https://github.com/eslint/espree/issues/158\n for (i = lastChild.leadingComments.length - 2; i >= 0; --i) {\n if (lastChild.leadingComments[i].end <= node.start) {\n node.leadingComments = lastChild.leadingComments.splice(0, i + 1);\n break;\n }\n }\n }\n }\n } else if (this.state.leadingComments.length > 0) {\n if (last(this.state.leadingComments).end <= node.start) {\n if (this.state.commentPreviousNode) {\n for (j = 0; j < this.state.leadingComments.length; j++) {\n if (\n this.state.leadingComments[j].end <\n this.state.commentPreviousNode.end\n ) {\n this.state.leadingComments.splice(j, 1);\n j--;\n }\n }\n }\n if (this.state.leadingComments.length > 0) {\n node.leadingComments = this.state.leadingComments;\n this.state.leadingComments = [];\n }\n } else {\n // https://github.com/eslint/espree/issues/2\n //\n // In special cases, such as return (without a value) and\n // debugger, all comments will end up as leadingComments and\n // will otherwise be eliminated. This step runs when the\n // commentStack is empty and there are comments left\n // in leadingComments.\n //\n // This loop figures out the stopping point between the actual\n // leading and trailing comments by finding the location of the\n // first comment that comes after the given node.\n for (i = 0; i < this.state.leadingComments.length; i++) {\n if (this.state.leadingComments[i].end > node.start) {\n break;\n }\n }\n\n // Split the array based on the location of the first comment\n // that comes after the node. Keep in mind that this could\n // result in an empty array, and if so, the array must be\n // deleted.\n const leadingComments = this.state.leadingComments.slice(0, i);\n\n if (leadingComments.length) {\n node.leadingComments = leadingComments;\n }\n\n // Similarly, trailing comments are attached later. The variable\n // must be reset to null if there are no trailing comments.\n trailingComments = this.state.leadingComments.slice(i);\n if (trailingComments.length === 0) {\n trailingComments = null;\n }\n }\n }\n\n this.state.commentPreviousNode = node;\n\n if (trailingComments) {\n if (\n trailingComments.length &&\n trailingComments[0].start >= node.start &&\n last(trailingComments).end <= node.end\n ) {\n node.innerComments = trailingComments;\n } else {\n // TrailingComments maybe contain innerComments\n const firstTrailingCommentIndex = trailingComments.findIndex(\n comment => comment.end >= node.end,\n );\n\n if (firstTrailingCommentIndex > 0) {\n node.innerComments = trailingComments.slice(\n 0,\n firstTrailingCommentIndex,\n );\n node.trailingComments = trailingComments.slice(\n firstTrailingCommentIndex,\n );\n } else {\n node.trailingComments = trailingComments;\n }\n }\n }\n\n stack.push(node);\n }\n}\n","// @flow\n/* eslint sort-keys: \"error\" */\n\n/**\n * @module parser/error-message\n */\n\n// The Errors key follows https://cs.chromium.org/chromium/src/v8/src/common/message-template.h unless it does not exist\nexport const ErrorMessages = Object.freeze({\n AccessorIsGenerator: \"A %0ter cannot be a generator\",\n ArgumentsInClass:\n \"'arguments' is only allowed in functions and class methods\",\n AsyncFunctionInSingleStatementContext:\n \"Async functions can only be declared at the top level or inside a block\",\n AwaitBindingIdentifier:\n \"Can not use 'await' as identifier inside an async function\",\n AwaitBindingIdentifierInStaticBlock:\n \"Can not use 'await' as identifier inside a static block\",\n AwaitExpressionFormalParameter:\n \"await is not allowed in async function parameters\",\n AwaitNotInAsyncContext:\n \"'await' is only allowed within async functions and at the top levels of modules\",\n AwaitNotInAsyncFunction: \"'await' is only allowed within async functions\",\n BadGetterArity: \"getter must not have any formal parameters\",\n BadSetterArity: \"setter must have exactly one formal parameter\",\n BadSetterRestParameter:\n \"setter function argument must not be a rest parameter\",\n ConstructorClassField: \"Classes may not have a field named 'constructor'\",\n ConstructorClassPrivateField:\n \"Classes may not have a private field named '#constructor'\",\n ConstructorIsAccessor: \"Class constructor may not be an accessor\",\n ConstructorIsAsync: \"Constructor can't be an async function\",\n ConstructorIsGenerator: \"Constructor can't be a generator\",\n DeclarationMissingInitializer: \"%0 require an initialization value\",\n DecoratorBeforeExport:\n \"Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax\",\n DecoratorConstructor:\n \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n DecoratorExportClass:\n \"Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.\",\n DecoratorSemicolon: \"Decorators must not be followed by a semicolon\",\n DecoratorStaticBlock: \"Decorators can't be used with a static block\",\n DeletePrivateField: \"Deleting a private field is not allowed\",\n DestructureNamedImport:\n \"ES2015 named imports do not destructure. Use another statement for destructuring after the import.\",\n DuplicateConstructor: \"Duplicate constructor in the same class\",\n DuplicateDefaultExport: \"Only one default export allowed per module.\",\n DuplicateExport:\n \"`%0` has already been exported. Exported identifiers must be unique.\",\n DuplicateProto: \"Redefinition of __proto__ property\",\n DuplicateRegExpFlags: \"Duplicate regular expression flag\",\n ElementAfterRest: \"Rest element must be last element\",\n EscapedCharNotAnIdentifier: \"Invalid Unicode escape\",\n ExportBindingIsString:\n \"A string literal cannot be used as an exported binding without `from`.\\n- Did you mean `export { '%0' as '%1' } from 'some-module'`?\",\n ExportDefaultFromAsIdentifier:\n \"'from' is not allowed as an identifier after 'export default'\",\n ForInOfLoopInitializer:\n \"%0 loop variable declaration may not have an initializer\",\n ForOfLet: \"The left-hand side of a for-of loop may not start with 'let'.\",\n GeneratorInSingleStatementContext:\n \"Generators can only be declared at the top level or inside a block\",\n IllegalBreakContinue: \"Unsyntactic %0\",\n IllegalLanguageModeDirective:\n \"Illegal 'use strict' directive in function with non-simple parameter list\",\n IllegalReturn: \"'return' outside of function\",\n ImportBindingIsString:\n 'A string literal cannot be used as an imported binding.\\n- Did you mean `import { \"%0\" as foo }`?',\n ImportCallArgumentTrailingComma:\n \"Trailing comma is disallowed inside import(...) arguments\",\n ImportCallArity: \"import() requires exactly %0\",\n ImportCallNotNewExpression: \"Cannot use new with import(...)\",\n ImportCallSpreadArgument: \"... is not allowed in import()\",\n ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: \"module\"'`,\n ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: \"module\"'`,\n InvalidBigIntLiteral: \"Invalid BigIntLiteral\",\n InvalidCodePoint: \"Code point out of bounds\",\n InvalidDecimal: \"Invalid decimal\",\n InvalidDigit: \"Expected number in radix %0\",\n InvalidEscapeSequence: \"Bad character escape sequence\",\n InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template\",\n InvalidEscapedReservedWord: \"Escape sequence in keyword %0\",\n InvalidIdentifier: \"Invalid identifier %0\",\n InvalidLhs: \"Invalid left-hand side in %0\",\n InvalidLhsBinding: \"Binding invalid left-hand side in %0\",\n InvalidNumber: \"Invalid number\",\n InvalidOrMissingExponent:\n \"Floating-point numbers require a valid exponent after the 'e'\",\n InvalidOrUnexpectedToken: \"Unexpected character '%0'\",\n InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern\",\n InvalidPrivateFieldResolution: \"Private name #%0 is not defined\",\n InvalidPropertyBindingPattern: \"Binding member expression\",\n InvalidRecordProperty:\n \"Only properties and spread elements are allowed in record definitions\",\n InvalidRestAssignmentPattern: \"Invalid rest operator's argument\",\n LabelRedeclaration: \"Label '%0' is already declared\",\n LetInLexicalBinding:\n \"'let' is not allowed to be used as a name in 'let' or 'const' declarations.\",\n LineTerminatorBeforeArrow: \"No line break is allowed before '=>'\",\n MalformedRegExpFlags: \"Invalid regular expression flag\",\n MissingClassName: \"A class name is required\",\n MissingEqInAssignment:\n \"Only '=' operator can be used for specifying default value.\",\n MissingSemicolon: \"Missing semicolon\",\n MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX\",\n MixingCoalesceWithLogical:\n \"Nullish coalescing operator(??) requires parens when mixing with logical operators\",\n ModuleAttributeDifferentFromType:\n \"The only accepted module attribute is `type`\",\n ModuleAttributeInvalidValue:\n \"Only string literals are allowed as module attribute values\",\n ModuleAttributesWithDuplicateKeys:\n 'Duplicate key \"%0\" is not allowed in module attributes',\n ModuleExportNameHasLoneSurrogate:\n \"An export name cannot include a lone surrogate, found '\\\\u%0'\",\n ModuleExportUndefined: \"Export '%0' is not defined\",\n MultipleDefaultsInSwitch: \"Multiple default clauses\",\n NewlineAfterThrow: \"Illegal newline after throw\",\n NoCatchOrFinally: \"Missing catch or finally clause\",\n NumberIdentifier: \"Identifier directly after number\",\n NumericSeparatorInEscapeSequence:\n \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences\",\n ObsoleteAwaitStar:\n \"await* has been removed from the async functions proposal. Use Promise.all() instead.\",\n OptionalChainingNoNew:\n \"constructors in/after an Optional Chain are not allowed\",\n OptionalChainingNoTemplate:\n \"Tagged Template Literals are not allowed in optionalChain\",\n ParamDupe: \"Argument name clash\",\n PatternHasAccessor: \"Object pattern can't contain getter or setter\",\n PatternHasMethod: \"Object pattern can't contain methods\",\n PipelineBodyNoArrow:\n 'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized',\n PipelineBodySequenceExpression:\n \"Pipeline body may not be a comma-separated sequence expression\",\n PipelineHeadSequenceExpression:\n \"Pipeline head should not be a comma-separated sequence expression\",\n PipelineTopicUnused:\n \"Pipeline is in topic style but does not use topic reference\",\n PrimaryTopicNotAllowed:\n \"Topic reference was used in a lexical context without topic binding\",\n PrimaryTopicRequiresSmartPipeline:\n \"Primary Topic Reference found but pipelineOperator not passed 'smart' for 'proposal' option.\",\n PrivateInExpectedIn:\n \"Private names are only allowed in property accesses (`obj.#%0`) or in `in` expressions (`#%0 in obj`)\",\n PrivateNameRedeclaration: \"Duplicate private name #%0\",\n RecordExpressionBarIncorrectEndSyntaxType:\n \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n RecordExpressionBarIncorrectStartSyntaxType:\n \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n RecordExpressionHashIncorrectStartSyntaxType:\n \"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n RecordNoProto: \"'__proto__' is not allowed in Record expressions\",\n RestTrailingComma: \"Unexpected trailing comma after rest element\",\n SloppyFunction:\n \"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement\",\n StaticPrototype: \"Classes may not have static property named prototype\",\n StrictDelete: \"Deleting local variable in strict mode\",\n StrictEvalArguments: \"Assigning to '%0' in strict mode\",\n StrictEvalArgumentsBinding: \"Binding '%0' in strict mode\",\n StrictFunction:\n \"In strict mode code, functions can only be declared at top level or inside a block\",\n StrictNumericEscape: \"The only valid numeric escape in strict mode is '\\\\0'\",\n StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode\",\n StrictWith: \"'with' in strict mode\",\n SuperNotAllowed:\n \"super() is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?\",\n SuperPrivateField: \"Private fields can't be accessed on super\",\n TrailingDecorator: \"Decorators must be attached to a class element\",\n TupleExpressionBarIncorrectEndSyntaxType:\n \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n TupleExpressionBarIncorrectStartSyntaxType:\n \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'\",\n TupleExpressionHashIncorrectStartSyntaxType:\n \"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'\",\n UnexpectedArgumentPlaceholder: \"Unexpected argument placeholder\",\n UnexpectedAwaitAfterPipelineBody:\n 'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal',\n UnexpectedDigitAfterHash: \"Unexpected digit after hash token\",\n UnexpectedImportExport:\n \"'import' and 'export' may only appear at the top level\",\n UnexpectedKeyword: \"Unexpected keyword '%0'\",\n UnexpectedLeadingDecorator:\n \"Leading decorators must be attached to a class declaration\",\n UnexpectedLexicalDeclaration:\n \"Lexical declaration cannot appear in a single-statement context\",\n UnexpectedNewTarget: \"new.target can only be used in functions\",\n UnexpectedNumericSeparator:\n \"A numeric separator is only allowed between two digits\",\n UnexpectedPrivateField:\n \"Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\\n or a property of member expression (i.e. this.#p).\",\n UnexpectedReservedWord: \"Unexpected reserved word '%0'\",\n UnexpectedSuper: \"super is only allowed in object methods and classes\",\n UnexpectedToken: \"Unexpected token '%0'\",\n UnexpectedTokenUnaryExponentiation:\n \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n UnsupportedBind: \"Binding should be performed on object property.\",\n UnsupportedDecoratorExport:\n \"A decorated export must export a class declaration\",\n UnsupportedDefaultExport:\n \"Only expressions, functions or classes are allowed as the `default` export.\",\n UnsupportedImport: \"import can only be used in import() or import.meta\",\n UnsupportedMetaProperty: \"The only valid meta property for %0 is %0.%1\",\n UnsupportedParameterDecorator:\n \"Decorators cannot be used to decorate parameters\",\n UnsupportedPropertyDecorator:\n \"Decorators cannot be used to decorate object literal properties\",\n UnsupportedSuper:\n \"super can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop])\",\n UnterminatedComment: \"Unterminated comment\",\n UnterminatedRegExp: \"Unterminated regular expression\",\n UnterminatedString: \"Unterminated string constant\",\n UnterminatedTemplate: \"Unterminated template\",\n VarRedeclaration: \"Identifier '%0' has already been declared\",\n YieldBindingIdentifier:\n \"Can not use 'yield' as identifier inside a generator\",\n YieldInParameter: \"Yield expression is not allowed in formal parameters\",\n ZeroDigitNumericSeparator:\n \"Numeric separator can not be used after leading 0\",\n});\n","// @flow\n/* eslint sort-keys: \"error\" */\nimport { getLineInfo, type Position } from \"../util/location\";\nimport CommentsParser from \"./comments\";\n\n// This function is used to raise exceptions on parse errors. It\n// takes an offset integer (into the current `input`) to indicate\n// the location of the error, attaches the position to the end\n// of the error message, and then raises a `SyntaxError` with that\n// message.\n\ntype ErrorContext = {\n pos: number,\n loc: Position,\n missingPlugin?: Array,\n code?: string,\n};\n\nexport type ParsingError = SyntaxError & ErrorContext;\n\nexport { ErrorMessages as Errors } from \"./error-message\";\n\nexport default class ParserError extends CommentsParser {\n // Forward-declaration: defined in tokenizer/index.js\n /*::\n +isLookahead: boolean;\n */\n\n getLocationForPosition(pos: number): Position {\n let loc;\n if (pos === this.state.start) loc = this.state.startLoc;\n else if (pos === this.state.lastTokStart) loc = this.state.lastTokStartLoc;\n else if (pos === this.state.end) loc = this.state.endLoc;\n else if (pos === this.state.lastTokEnd) loc = this.state.lastTokEndLoc;\n else loc = getLineInfo(this.input, pos);\n\n return loc;\n }\n\n raise(pos: number, errorTemplate: string, ...params: any): Error | empty {\n return this.raiseWithData(pos, undefined, errorTemplate, ...params);\n }\n\n /**\n * Raise a parsing error on given position pos. If errorRecovery is true,\n * it will first search current errors and overwrite the error thrown on the exact\n * position before with the new error message. If errorRecovery is false, it\n * fallbacks to `raise`.\n *\n * @param {number} pos\n * @param {string} errorTemplate\n * @param {...any} params\n * @returns {(Error | empty)}\n * @memberof ParserError\n */\n raiseOverwrite(\n pos: number,\n errorTemplate: string,\n ...params: any\n ): Error | empty {\n const loc = this.getLocationForPosition(pos);\n const message =\n errorTemplate.replace(/%(\\d+)/g, (_, i: number) => params[i]) +\n ` (${loc.line}:${loc.column})`;\n if (this.options.errorRecovery) {\n const errors = this.state.errors;\n for (let i = errors.length - 1; i >= 0; i--) {\n const error = errors[i];\n if (error.pos === pos) {\n return Object.assign(error, { message });\n } else if (error.pos < pos) {\n break;\n }\n }\n }\n return this._raise({ loc, pos }, message);\n }\n\n raiseWithData(\n pos: number,\n data?: {\n missingPlugin?: Array,\n code?: string,\n },\n errorTemplate: string,\n ...params: any\n ): Error | empty {\n const loc = this.getLocationForPosition(pos);\n const message =\n errorTemplate.replace(/%(\\d+)/g, (_, i: number) => params[i]) +\n ` (${loc.line}:${loc.column})`;\n return this._raise(Object.assign(({ loc, pos }: Object), data), message);\n }\n\n _raise(errorContext: ErrorContext, message: string): Error | empty {\n // $FlowIgnore\n const err: SyntaxError & ErrorContext = new SyntaxError(message);\n Object.assign(err, errorContext);\n if (this.options.errorRecovery) {\n if (!this.isLookahead) this.state.errors.push(err);\n return err;\n } else {\n throw err;\n }\n }\n}\n","// @flow\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport type { ExpressionErrors } from \"../parser/util\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport { Errors } from \"../parser/error\";\n\nexport default (superClass: Class): Class =>\n class extends superClass {\n estreeParseRegExpLiteral({ pattern, flags }: N.RegExpLiteral): N.Node {\n let regex = null;\n try {\n regex = new RegExp(pattern, flags);\n } catch (e) {\n // In environments that don't support these flags value will\n // be null as the regex can't be represented natively.\n }\n const node = this.estreeParseLiteral(regex);\n node.regex = { pattern, flags };\n\n return node;\n }\n\n estreeParseBigIntLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n let bigInt;\n try {\n // $FlowIgnore\n bigInt = BigInt(value);\n } catch {\n bigInt = null;\n }\n const node = this.estreeParseLiteral(bigInt);\n node.bigint = String(node.value || value);\n\n return node;\n }\n\n estreeParseDecimalLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/experimental/decimal.md\n // todo: use BigDecimal when node supports it.\n const decimal = null;\n const node = this.estreeParseLiteral(decimal);\n node.decimal = String(node.value || value);\n\n return node;\n }\n\n estreeParseLiteral(value: any): N.Node {\n return this.parseLiteral(value, \"Literal\");\n }\n\n directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n const directiveLiteral = directive.value;\n\n const stmt = this.startNodeAt(directive.start, directive.loc.start);\n const expression = this.startNodeAt(\n directiveLiteral.start,\n directiveLiteral.loc.start,\n );\n\n expression.value = directiveLiteral.extra.expressionValue;\n expression.raw = directiveLiteral.extra.raw;\n\n stmt.expression = this.finishNodeAt(\n expression,\n \"Literal\",\n directiveLiteral.end,\n directiveLiteral.loc.end,\n );\n stmt.directive = directiveLiteral.extra.raw.slice(1, -1);\n\n return this.finishNodeAt(\n stmt,\n \"ExpressionStatement\",\n directive.end,\n directive.loc.end,\n );\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n initFunction(\n node: N.BodilessFunctionOrMethodBase,\n isAsync: ?boolean,\n ): void {\n super.initFunction(node, isAsync);\n node.expression = false;\n }\n\n checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n if (node != null && this.isObjectProperty(node)) {\n this.checkDeclaration(((node: any): N.EstreeProperty).value);\n } else {\n super.checkDeclaration(node);\n }\n }\n\n getObjectOrClassMethodParams(method: N.ObjectMethod | N.ClassMethod) {\n return ((method: any): N.EstreeProperty | N.EstreeMethodDefinition).value\n .params;\n }\n\n isValidDirective(stmt: N.Statement): boolean {\n return (\n stmt.type === \"ExpressionStatement\" &&\n stmt.expression.type === \"Literal\" &&\n typeof stmt.expression.value === \"string\" &&\n !stmt.expression.extra?.parenthesized\n );\n }\n\n stmtToDirective(stmt: N.Statement): N.Directive {\n const directive = super.stmtToDirective(stmt);\n const value = stmt.expression.value;\n\n // Record the expression value as in estree mode we want\n // the stmt to have the real value e.g. (\"use strict\") and\n // not the raw value e.g. (\"use\\\\x20strict\")\n this.addExtra(directive.value, \"expressionValue\", value);\n\n return directive;\n }\n\n parseBlockBody(\n node: N.BlockStatementLike,\n ...args: [?boolean, boolean, TokenType, void | (boolean => void)]\n ): void {\n super.parseBlockBody(node, ...args);\n\n const directiveStatements = node.directives.map(d =>\n this.directiveToStmt(d),\n );\n node.body = directiveStatements.concat(node.body);\n // $FlowIgnore - directives isn't optional in the type definition\n delete node.directives;\n }\n\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n this.parseMethod(\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n \"ClassMethod\",\n true,\n );\n if (method.typeParameters) {\n // $FlowIgnore\n method.value.typeParameters = method.typeParameters;\n delete method.typeParameters;\n }\n classBody.body.push(method);\n }\n\n parseExprAtom(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n switch (this.state.type) {\n case tt.num:\n case tt.string:\n return this.estreeParseLiteral(this.state.value);\n\n case tt.regexp:\n return this.estreeParseRegExpLiteral(this.state.value);\n\n case tt.bigint:\n return this.estreeParseBigIntLiteral(this.state.value);\n\n case tt.decimal:\n return this.estreeParseDecimalLiteral(this.state.value);\n\n case tt._null:\n return this.estreeParseLiteral(null);\n\n case tt._true:\n return this.estreeParseLiteral(true);\n\n case tt._false:\n return this.estreeParseLiteral(false);\n\n default:\n return super.parseExprAtom(refExpressionErrors);\n }\n }\n\n parseMaybePrivateName(...args: [boolean]): any {\n const node = super.parseMaybePrivateName(...args);\n if (\n node.type === \"PrivateName\" &&\n this.getPluginOption(\"estree\", \"classFeatures\")\n ) {\n return this.convertPrivateNameToPrivateIdentifier(node);\n }\n return node;\n }\n\n convertPrivateNameToPrivateIdentifier(\n node: N.PrivateName,\n ): N.EstreePrivateIdentifier {\n const name = super.getPrivateNameSV(node);\n node = (node: any);\n delete node.id;\n node.name = name;\n node.type = \"PrivateIdentifier\";\n return node;\n }\n\n isPrivateName(node: N.Node): boolean {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.isPrivateName(node);\n }\n return node.type === \"PrivateIdentifier\";\n }\n\n getPrivateNameSV(node: N.Node): string {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.getPrivateNameSV(node);\n }\n return node.name;\n }\n\n parseLiteral(\n value: any,\n type: /*T[\"kind\"]*/ string,\n startPos?: number,\n startLoc?: Position,\n ): T {\n const node = super.parseLiteral(value, type, startPos, startLoc);\n node.raw = node.extra.raw;\n delete node.extra;\n\n return node;\n }\n\n parseFunctionBody(\n node: N.Function,\n allowExpression: ?boolean,\n isMethod?: boolean = false,\n ): void {\n super.parseFunctionBody(node, allowExpression, isMethod);\n node.expression = node.body.type !== \"BlockStatement\";\n }\n\n parseMethod(\n node: T,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowDirectSuper: boolean,\n type: string,\n inClassScope: boolean = false,\n ): T {\n let funcNode = this.startNode();\n funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n funcNode = super.parseMethod(\n funcNode,\n isGenerator,\n isAsync,\n isConstructor,\n allowDirectSuper,\n type,\n inClassScope,\n );\n funcNode.type = \"FunctionExpression\";\n delete funcNode.kind;\n // $FlowIgnore\n node.value = funcNode;\n if (type === \"ClassPrivateMethod\") {\n // $FlowIgnore\n node.computed = false;\n }\n type = \"MethodDefinition\";\n return this.finishNode(node, type);\n }\n\n parseClassProperty(...args: [N.ClassProperty]): any {\n const propertyNode = (super.parseClassProperty(...args): any);\n if (this.getPluginOption(\"estree\", \"classFeatures\")) {\n propertyNode.type = \"PropertyDefinition\";\n }\n return (propertyNode: N.EstreePropertyDefinition);\n }\n\n parseClassPrivateProperty(...args: [N.ClassPrivateProperty]): any {\n const propertyNode = (super.parseClassPrivateProperty(...args): any);\n if (this.getPluginOption(\"estree\", \"classFeatures\")) {\n propertyNode.type = \"PropertyDefinition\";\n propertyNode.computed = false;\n }\n return (propertyNode: N.EstreePropertyDefinition);\n }\n\n parseObjectMethod(\n prop: N.ObjectMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n ): ?N.ObjectMethod {\n const node: N.EstreeProperty = (super.parseObjectMethod(\n prop,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n ): any);\n\n if (node) {\n node.type = \"Property\";\n if (((node: any): N.ClassMethod).kind === \"method\") node.kind = \"init\";\n node.shorthand = false;\n }\n\n return (node: any);\n }\n\n parseObjectProperty(\n prop: N.ObjectProperty,\n startPos: ?number,\n startLoc: ?Position,\n isPattern: boolean,\n refExpressionErrors: ?ExpressionErrors,\n ): ?N.ObjectProperty {\n const node: N.EstreeProperty = (super.parseObjectProperty(\n prop,\n startPos,\n startLoc,\n isPattern,\n refExpressionErrors,\n ): any);\n\n if (node) {\n node.kind = \"init\";\n node.type = \"Property\";\n }\n\n return (node: any);\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): N.Node {\n if (node != null && this.isObjectProperty(node)) {\n this.toAssignable(node.value, isLHS);\n\n return node;\n }\n\n return super.toAssignable(node, isLHS);\n }\n\n toAssignableObjectExpressionProp(prop: N.Node, ...args) {\n if (prop.kind === \"get\" || prop.kind === \"set\") {\n this.raise(prop.key.start, Errors.PatternHasAccessor);\n } else if (prop.method) {\n this.raise(prop.key.start, Errors.PatternHasMethod);\n } else {\n super.toAssignableObjectExpressionProp(prop, ...args);\n }\n }\n\n finishCallExpression(\n node: T,\n optional: boolean,\n ): N.Expression {\n super.finishCallExpression(node, optional);\n\n if (node.callee.type === \"Import\") {\n ((node: N.Node): N.EstreeImportExpression).type = \"ImportExpression\";\n ((node: N.Node): N.EstreeImportExpression).source = node.arguments[0];\n // $FlowIgnore - arguments isn't optional in the type definition\n delete node.arguments;\n // $FlowIgnore - callee isn't optional in the type definition\n delete node.callee;\n }\n\n return node;\n }\n\n toReferencedArguments(\n node:\n | N.CallExpression\n | N.OptionalCallExpression\n | N.EstreeImportExpression,\n /* isParenthesizedExpr?: boolean, */\n ) {\n // ImportExpressions do not have an arguments array.\n if (node.type === \"ImportExpression\") {\n return;\n }\n\n super.toReferencedArguments(node);\n }\n\n parseExport(node: N.Node) {\n super.parseExport(node);\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n node.exported = null;\n break;\n\n case \"ExportNamedDeclaration\":\n if (\n node.specifiers.length === 1 &&\n node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n ) {\n node.type = \"ExportAllDeclaration\";\n node.exported = node.specifiers[0].exported;\n delete node.specifiers;\n }\n\n break;\n }\n\n return node;\n }\n\n parseSubscript(\n base: N.Expression,\n startPos: number,\n startLoc: Position,\n noCalls: ?boolean,\n state: N.ParseSubscriptState,\n ) {\n const node = super.parseSubscript(\n base,\n startPos,\n startLoc,\n noCalls,\n state,\n );\n\n if (state.optionalChainMember) {\n // https://github.com/estree/estree/blob/master/es2020.md#chainexpression\n if (\n node.type === \"OptionalMemberExpression\" ||\n node.type === \"OptionalCallExpression\"\n ) {\n node.type = node.type.substring(8); // strip Optional prefix\n }\n if (state.stop) {\n const chain = this.startNodeAtNode(node);\n chain.expression = node;\n return this.finishNode(chain, \"ChainExpression\");\n }\n } else if (\n node.type === \"MemberExpression\" ||\n node.type === \"CallExpression\"\n ) {\n node.optional = false;\n }\n\n return node;\n }\n\n hasPropertyAsPrivateName(node: N.Node): boolean {\n if (node.type === \"ChainExpression\") {\n node = node.expression;\n }\n return super.hasPropertyAsPrivateName(node);\n }\n\n isOptionalChain(node: N.Node): boolean {\n return node.type === \"ChainExpression\";\n }\n\n isObjectProperty(node: N.Node): boolean {\n return node.type === \"Property\" && node.kind === \"init\" && !node.method;\n }\n\n isObjectMethod(node: N.Node): boolean {\n return node.method || node.kind === \"get\" || node.kind === \"set\";\n }\n };\n","// @flow\n\n// The algorithm used to determine whether a regexp can appear at a\n// given point in the program is loosely based on sweet.js' approach.\n// See https://github.com/mozilla/sweet.js/wiki/design\n\nimport { types as tt } from \"./types\";\n\nexport class TokContext {\n constructor(\n token: string,\n isExpr?: boolean,\n preserveSpace?: boolean,\n override?: ?Function, // Takes a Tokenizer as a this-parameter, and returns void.\n ) {\n this.token = token;\n this.isExpr = !!isExpr;\n this.preserveSpace = !!preserveSpace;\n this.override = override;\n }\n\n token: string;\n isExpr: boolean;\n preserveSpace: boolean;\n override: ?Function;\n}\n\nexport const types: {\n [key: string]: TokContext,\n} = {\n braceStatement: new TokContext(\"{\", false),\n braceExpression: new TokContext(\"{\", true),\n recordExpression: new TokContext(\"#{\", true),\n templateQuasi: new TokContext(\"${\", false),\n parenStatement: new TokContext(\"(\", false),\n parenExpression: new TokContext(\"(\", true),\n template: new TokContext(\"`\", true, true, p => p.readTmplToken()),\n functionExpression: new TokContext(\"function\", true),\n functionStatement: new TokContext(\"function\", false),\n};\n\n// Token-specific context update code\n// Note that we should avoid accessing `this.prodParam` in context update,\n// because it is executed immediately when last token is consumed, which may be\n// before `this.prodParam` is updated. e.g.\n// ```\n// function *g() { () => yield / 2 }\n// ```\n// When `=>` is eaten, the context update of `yield` is executed, however,\n// `this.prodParam` still has `[Yield]` production because it is not yet updated\n\ntt.parenR.updateContext = tt.braceR.updateContext = function () {\n if (this.state.context.length === 1) {\n this.state.exprAllowed = true;\n return;\n }\n\n let out = this.state.context.pop();\n if (out === types.braceStatement && this.curContext().token === \"function\") {\n out = this.state.context.pop();\n }\n\n this.state.exprAllowed = !out.isExpr;\n};\n\ntt.name.updateContext = function (prevType) {\n let allowed = false;\n if (prevType !== tt.dot) {\n if (\n this.state.value === \"of\" &&\n !this.state.exprAllowed &&\n prevType !== tt._function &&\n prevType !== tt._class\n ) {\n allowed = true;\n }\n }\n this.state.exprAllowed = allowed;\n\n if (this.state.isIterator) {\n this.state.isIterator = false;\n }\n};\n\ntt.braceL.updateContext = function (prevType) {\n this.state.context.push(\n this.braceIsBlock(prevType) ? types.braceStatement : types.braceExpression,\n );\n this.state.exprAllowed = true;\n};\n\ntt.dollarBraceL.updateContext = function () {\n this.state.context.push(types.templateQuasi);\n this.state.exprAllowed = true;\n};\n\ntt.parenL.updateContext = function (prevType) {\n const statementParens =\n prevType === tt._if ||\n prevType === tt._for ||\n prevType === tt._with ||\n prevType === tt._while;\n this.state.context.push(\n statementParens ? types.parenStatement : types.parenExpression,\n );\n this.state.exprAllowed = true;\n};\n\ntt.incDec.updateContext = function () {\n // tokExprAllowed stays unchanged\n};\n\ntt._function.updateContext = tt._class.updateContext = function (prevType) {\n if (\n prevType.beforeExpr &&\n prevType !== tt.semi &&\n prevType !== tt._else &&\n !(prevType === tt._return && this.hasPrecedingLineBreak()) &&\n !(\n (prevType === tt.colon || prevType === tt.braceL) &&\n this.curContext() === types.b_stat\n )\n ) {\n this.state.context.push(types.functionExpression);\n } else {\n this.state.context.push(types.functionStatement);\n }\n\n this.state.exprAllowed = false;\n};\n\ntt.backQuote.updateContext = function () {\n if (this.curContext() === types.template) {\n this.state.context.pop();\n } else {\n this.state.context.push(types.template);\n }\n this.state.exprAllowed = false;\n};\n\n// we don't need to update context for tt.braceBarL because we do not pop context for tt.braceBarR\ntt.braceHashL.updateContext = function () {\n this.state.context.push(types.recordExpression);\n this.state.exprAllowed = true; /* tt.braceHashL.beforeExpr */\n};\n","import * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\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\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\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-\\u08c7\\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\\u0d04-\\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\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\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-\\u1878\\u1880-\\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\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\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\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\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\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\u9ffc\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7ca\\ua7f5-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\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-\\uab69\\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\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u08d3-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf\\u1ac0\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1df9\\u1dfb-\\u1dff\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (const char of Array.from(name)) {\n const cp = char.codePointAt(0);\n if (isFirst) {\n if (!isIdentifierStart(cp)) {\n return false;\n }\n isFirst = false;\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n","const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n","/* eslint max-len: 0 */\n\n// @flow\n\nimport * as charCodes from \"charcodes\";\n\nexport {\n isIdentifierStart,\n isIdentifierChar,\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(current: number, next: number): boolean {\n return current === charCodes.atSign && next === charCodes.atSign;\n}\n","// @flow\n\n// Each scope gets a bitset that may contain these flags\n// prettier-ignore\nexport const SCOPE_OTHER = 0b000000000,\n SCOPE_PROGRAM = 0b000000001,\n SCOPE_FUNCTION = 0b000000010,\n SCOPE_ARROW = 0b000000100,\n SCOPE_SIMPLE_CATCH = 0b000001000,\n SCOPE_SUPER = 0b000010000,\n SCOPE_DIRECT_SUPER = 0b000100000,\n SCOPE_CLASS = 0b001000000,\n SCOPE_STATIC_BLOCK = 0b010000000,\n SCOPE_TS_MODULE = 0b100000000,\n SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_TS_MODULE;\n\nexport type ScopeFlags =\n | typeof SCOPE_OTHER\n | typeof SCOPE_PROGRAM\n | typeof SCOPE_FUNCTION\n | typeof SCOPE_VAR\n | typeof SCOPE_ARROW\n | typeof SCOPE_SIMPLE_CATCH\n | typeof SCOPE_SUPER\n | typeof SCOPE_DIRECT_SUPER\n | typeof SCOPE_CLASS\n | typeof SCOPE_STATIC_BLOCK;\n\n// These flags are meant to be _only_ used inside the Scope class (or subclasses).\n// prettier-ignore\nexport const BIND_KIND_VALUE = 0b000000_0000_01,\n BIND_KIND_TYPE = 0b000000_0000_10,\n // Used in checkLVal and declareName to determine the type of a binding\n BIND_SCOPE_VAR = 0b000000_0001_00, // Var-style binding\n BIND_SCOPE_LEXICAL = 0b000000_0010_00, // Let- or const-style binding\n BIND_SCOPE_FUNCTION = 0b000000_0100_00, // Function declaration\n BIND_SCOPE_OUTSIDE = 0b000000_1000_00, // Special case for function names as\n // bound inside the function\n // Misc flags\n BIND_FLAGS_NONE = 0b000001_0000_00,\n BIND_FLAGS_CLASS = 0b000010_0000_00,\n BIND_FLAGS_TS_ENUM = 0b000100_0000_00,\n BIND_FLAGS_TS_CONST_ENUM = 0b001000_0000_00,\n BIND_FLAGS_TS_EXPORT_ONLY = 0b010000_0000_00,\n BIND_FLAGS_FLOW_DECLARE_FN = 0b100000_0000_00;\n\n// These flags are meant to be _only_ used by Scope consumers\n// prettier-ignore\n/* = is value? | is type? | scope | misc flags */\nexport const BIND_CLASS = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL | BIND_FLAGS_CLASS ,\n BIND_LEXICAL = BIND_KIND_VALUE | 0 | BIND_SCOPE_LEXICAL | 0 ,\n BIND_VAR = BIND_KIND_VALUE | 0 | BIND_SCOPE_VAR | 0 ,\n BIND_FUNCTION = BIND_KIND_VALUE | 0 | BIND_SCOPE_FUNCTION | 0 ,\n BIND_TS_INTERFACE = 0 | BIND_KIND_TYPE | 0 | BIND_FLAGS_CLASS ,\n BIND_TS_TYPE = 0 | BIND_KIND_TYPE | 0 | 0 ,\n BIND_TS_ENUM = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL | BIND_FLAGS_TS_ENUM,\n BIND_TS_AMBIENT = 0 | 0 | 0 | BIND_FLAGS_TS_EXPORT_ONLY,\n // These bindings don't introduce anything in the scope. They are used for assignments and\n // function expressions IDs.\n BIND_NONE = 0 | 0 | 0 | BIND_FLAGS_NONE ,\n BIND_OUTSIDE = BIND_KIND_VALUE | 0 | 0 | BIND_FLAGS_NONE ,\n\n BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM,\n BIND_TS_NAMESPACE = 0 | 0 | 0 | BIND_FLAGS_TS_EXPORT_ONLY,\n\n BIND_FLOW_DECLARE_FN = BIND_FLAGS_FLOW_DECLARE_FN;\n\nexport type BindingTypes =\n | typeof BIND_NONE\n | typeof BIND_OUTSIDE\n | typeof BIND_VAR\n | typeof BIND_LEXICAL\n | typeof BIND_CLASS\n | typeof BIND_FUNCTION\n | typeof BIND_TS_INTERFACE\n | typeof BIND_TS_TYPE\n | typeof BIND_TS_ENUM\n | typeof BIND_TS_AMBIENT\n | typeof BIND_TS_NAMESPACE;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_FLAG_STATIC = 0b1_00,\n CLASS_ELEMENT_KIND_GETTER = 0b0_10,\n CLASS_ELEMENT_KIND_SETTER = 0b0_01,\n CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER;\n\n// prettier-ignore\nexport const CLASS_ELEMENT_STATIC_GETTER = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC,\n CLASS_ELEMENT_STATIC_SETTER = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC,\n CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER,\n CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER,\n CLASS_ELEMENT_OTHER = 0;\n\nexport type ClassElementTypes =\n | typeof CLASS_ELEMENT_STATIC_GETTER\n | typeof CLASS_ELEMENT_STATIC_SETTER\n | typeof CLASS_ELEMENT_INSTANCE_GETTER\n | typeof CLASS_ELEMENT_INSTANCE_SETTER\n | typeof CLASS_ELEMENT_OTHER;\n","// @flow\nimport {\n SCOPE_ARROW,\n SCOPE_DIRECT_SUPER,\n SCOPE_FUNCTION,\n SCOPE_SIMPLE_CATCH,\n SCOPE_SUPER,\n SCOPE_PROGRAM,\n SCOPE_VAR,\n SCOPE_CLASS,\n SCOPE_STATIC_BLOCK,\n BIND_SCOPE_FUNCTION,\n BIND_SCOPE_VAR,\n BIND_SCOPE_LEXICAL,\n BIND_KIND_VALUE,\n type ScopeFlags,\n type BindingTypes,\n} from \"./scopeflags\";\nimport * as N from \"../types\";\nimport { Errors } from \"../parser/error\";\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n flags: ScopeFlags;\n // A list of var-declared names in the current lexical scope\n var: string[] = [];\n // A list of lexically-declared names in the current lexical scope\n lexical: string[] = [];\n // A list of lexically-declared FunctionDeclaration names in the current lexical scope\n functions: string[] = [];\n\n constructor(flags: ScopeFlags) {\n this.flags = flags;\n }\n}\n\ntype raiseFunction = (number, string, ...any) => void;\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler {\n scopeStack: Array = [];\n declare raise: raiseFunction;\n declare inModule: boolean;\n undefinedExports: Map = new Map();\n undefinedPrivateNames: Map = new Map();\n\n constructor(raise: raiseFunction, inModule: boolean) {\n this.raise = raise;\n this.inModule = inModule;\n }\n\n get inFunction() {\n return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0;\n }\n get allowSuper() {\n return (this.currentThisScope().flags & SCOPE_SUPER) > 0;\n }\n get allowDirectSuper() {\n return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0;\n }\n get inClass() {\n return (this.currentThisScope().flags & SCOPE_CLASS) > 0;\n }\n get inStaticBlock() {\n return (this.currentThisScope().flags & SCOPE_STATIC_BLOCK) > 0;\n }\n get inNonArrowFunction() {\n return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0;\n }\n get treatFunctionsAsVar() {\n return this.treatFunctionsAsVarInScope(this.currentScope());\n }\n\n createScope(flags: ScopeFlags): Scope {\n return new Scope(flags);\n }\n // This method will be overwritten by subclasses\n /*:: +createScope: (flags: ScopeFlags) => IScope; */\n\n enter(flags: ScopeFlags) {\n this.scopeStack.push(this.createScope(flags));\n }\n\n exit() {\n this.scopeStack.pop();\n }\n\n // The spec says:\n // > At the top level of a function, or script, function declarations are\n // > treated like var declarations rather than like lexical declarations.\n treatFunctionsAsVarInScope(scope: IScope): boolean {\n return !!(\n scope.flags & SCOPE_FUNCTION ||\n (!this.inModule && scope.flags & SCOPE_PROGRAM)\n );\n }\n\n declareName(name: string, bindingType: BindingTypes, pos: number) {\n let scope = this.currentScope();\n if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) {\n this.checkRedeclarationInScope(scope, name, bindingType, pos);\n\n if (bindingType & BIND_SCOPE_FUNCTION) {\n scope.functions.push(name);\n } else {\n scope.lexical.push(name);\n }\n\n if (bindingType & BIND_SCOPE_LEXICAL) {\n this.maybeExportDefined(scope, name);\n }\n } else if (bindingType & BIND_SCOPE_VAR) {\n for (let i = this.scopeStack.length - 1; i >= 0; --i) {\n scope = this.scopeStack[i];\n this.checkRedeclarationInScope(scope, name, bindingType, pos);\n scope.var.push(name);\n this.maybeExportDefined(scope, name);\n\n if (scope.flags & SCOPE_VAR) break;\n }\n }\n if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n maybeExportDefined(scope: IScope, name: string) {\n if (this.inModule && scope.flags & SCOPE_PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n checkRedeclarationInScope(\n scope: IScope,\n name: string,\n bindingType: BindingTypes,\n pos: number,\n ) {\n if (this.isRedeclaredInScope(scope, name, bindingType)) {\n this.raise(pos, Errors.VarRedeclaration, name);\n }\n }\n\n isRedeclaredInScope(\n scope: IScope,\n name: string,\n bindingType: BindingTypes,\n ): boolean {\n if (!(bindingType & BIND_KIND_VALUE)) return false;\n\n if (bindingType & BIND_SCOPE_LEXICAL) {\n return (\n scope.lexical.indexOf(name) > -1 ||\n scope.functions.indexOf(name) > -1 ||\n scope.var.indexOf(name) > -1\n );\n }\n\n if (bindingType & BIND_SCOPE_FUNCTION) {\n return (\n scope.lexical.indexOf(name) > -1 ||\n (!this.treatFunctionsAsVarInScope(scope) &&\n scope.var.indexOf(name) > -1)\n );\n }\n\n return (\n (scope.lexical.indexOf(name) > -1 &&\n !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical[0] === name)) ||\n (!this.treatFunctionsAsVarInScope(scope) &&\n scope.functions.indexOf(name) > -1)\n );\n }\n\n checkLocalExport(id: N.Identifier) {\n if (\n this.scopeStack[0].lexical.indexOf(id.name) === -1 &&\n this.scopeStack[0].var.indexOf(id.name) === -1 &&\n // In strict mode, scope.functions will always be empty.\n // Modules are strict by default, but the `scriptMode` option\n // can overwrite this behavior.\n this.scopeStack[0].functions.indexOf(id.name) === -1\n ) {\n this.undefinedExports.set(id.name, id.start);\n }\n }\n\n currentScope(): IScope {\n return this.scopeStack[this.scopeStack.length - 1];\n }\n\n // $FlowIgnore\n currentVarScope(): IScope {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const scope = this.scopeStack[i];\n if (scope.flags & SCOPE_VAR) {\n return scope;\n }\n }\n }\n\n // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n // $FlowIgnore\n currentThisScope(): IScope {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const scope = this.scopeStack[i];\n if (\n (scope.flags & SCOPE_VAR || scope.flags & SCOPE_CLASS) &&\n !(scope.flags & SCOPE_ARROW)\n ) {\n return scope;\n }\n }\n }\n}\n","// @flow\n\nimport ScopeHandler, { Scope } from \"../../util/scope\";\nimport {\n BIND_FLAGS_FLOW_DECLARE_FN,\n type ScopeFlags,\n type BindingTypes,\n} from \"../../util/scopeflags\";\nimport * as N from \"../../types\";\n\n// Reference implementation: https://github.com/facebook/flow/blob/23aeb2a2ef6eb4241ce178fde5d8f17c5f747fb5/src/typing/env.ml#L536-L584\nclass FlowScope extends Scope {\n // declare function foo(): type;\n declareFunctions: string[] = [];\n}\n\nexport default class FlowScopeHandler extends ScopeHandler {\n createScope(flags: ScopeFlags): FlowScope {\n return new FlowScope(flags);\n }\n\n declareName(name: string, bindingType: BindingTypes, pos: number) {\n const scope = this.currentScope();\n if (bindingType & BIND_FLAGS_FLOW_DECLARE_FN) {\n this.checkRedeclarationInScope(scope, name, bindingType, pos);\n this.maybeExportDefined(scope, name);\n scope.declareFunctions.push(name);\n return;\n }\n\n super.declareName(...arguments);\n }\n\n isRedeclaredInScope(\n scope: FlowScope,\n name: string,\n bindingType: BindingTypes,\n ): boolean {\n if (super.isRedeclaredInScope(...arguments)) return true;\n\n if (bindingType & BIND_FLAGS_FLOW_DECLARE_FN) {\n return (\n !scope.declareFunctions.includes(name) &&\n (scope.lexical.includes(name) || scope.functions.includes(name))\n );\n }\n\n return false;\n }\n\n checkLocalExport(id: N.Identifier) {\n if (this.scopeStack[0].declareFunctions.indexOf(id.name) === -1) {\n super.checkLocalExport(id);\n }\n }\n}\n","// @flow\n\n/*:: declare var invariant; */\n\n// Error messages are colocated with the plugin.\n/* eslint-disable @babel/development-internal/dry-error-messages */\n\nimport type Parser from \"../../parser\";\nimport { types as tt, type TokenType } from \"../../tokenizer/types\";\nimport * as N from \"../../types\";\nimport type { Pos, Position } from \"../../util/location\";\nimport type State from \"../../tokenizer/state\";\nimport { types as tc } from \"../../tokenizer/context\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart, isKeyword } from \"../../util/identifier\";\nimport FlowScopeHandler from \"./scope\";\nimport {\n type BindingTypes,\n BIND_LEXICAL,\n BIND_VAR,\n BIND_FUNCTION,\n BIND_FLOW_DECLARE_FN,\n SCOPE_ARROW,\n SCOPE_FUNCTION,\n SCOPE_OTHER,\n} from \"../../util/scopeflags\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { Errors } from \"../../parser/error\";\n\nconst reservedTypes = new Set([\n \"_\",\n \"any\",\n \"bool\",\n \"boolean\",\n \"empty\",\n \"extends\",\n \"false\",\n \"interface\",\n \"mixed\",\n \"null\",\n \"number\",\n \"static\",\n \"string\",\n \"true\",\n \"typeof\",\n \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = Object.freeze({\n AmbiguousConditionalArrow:\n \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n AmbiguousDeclareModuleKind:\n \"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module\",\n AssignReservedType: \"Cannot overwrite reserved type %0\",\n DeclareClassElement:\n \"The `declare` modifier can only appear on class fields.\",\n DeclareClassFieldInitializer:\n \"Initializers are not allowed in fields with the `declare` modifier.\",\n DuplicateDeclareModuleExports: \"Duplicate `declare module.exports` statement\",\n EnumBooleanMemberNotInitialized:\n \"Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.\",\n EnumDuplicateMemberName:\n \"Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.\",\n EnumInconsistentMemberValues:\n \"Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.\",\n EnumInvalidExplicitType:\n \"Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n EnumInvalidExplicitTypeUnknownSupplied:\n \"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.\",\n EnumInvalidMemberInitializerPrimaryType:\n \"Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.\",\n EnumInvalidMemberInitializerSymbolType:\n \"Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.\",\n EnumInvalidMemberInitializerUnknownType:\n \"The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.\",\n EnumInvalidMemberName:\n \"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.\",\n EnumNumberMemberNotInitialized:\n \"Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.\",\n EnumStringMemberInconsistentlyInitailized:\n \"String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.\",\n GetterMayNotHaveThisParam: \"A getter cannot have a `this` parameter.\",\n ImportTypeShorthandOnlyInPureImport:\n \"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements\",\n InexactInsideExact:\n \"Explicit inexact syntax cannot appear inside an explicit exact object type\",\n InexactInsideNonObject:\n \"Explicit inexact syntax cannot appear in class or interface definitions\",\n InexactVariance: \"Explicit inexact syntax cannot have variance\",\n InvalidNonTypeImportInDeclareModule:\n \"Imports within a `declare module` body must always be `import type` or `import typeof`\",\n MissingTypeParamDefault:\n \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n NestedDeclareModule:\n \"`declare module` cannot be used inside another `declare module`\",\n NestedFlowComment: \"Cannot have a flow comment inside another flow comment\",\n OptionalBindingPattern:\n \"A binding pattern parameter cannot be optional in an implementation signature.\",\n SetterMayNotHaveThisParam: \"A setter cannot have a `this` parameter.\",\n SpreadVariance: \"Spread properties cannot have variance\",\n ThisParamAnnotationRequired:\n \"A type annotation is required for the `this` parameter.\",\n ThisParamBannedInConstructor:\n \"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\",\n ThisParamMayNotBeOptional: \"The `this` parameter cannot be optional.\",\n ThisParamMustBeFirst:\n \"The `this` parameter must be the first function parameter.\",\n ThisParamNoDefault: \"The `this` parameter may not have a default value.\",\n TypeBeforeInitializer:\n \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n TypeCastInPattern:\n \"The type cast expression is expected to be wrapped with parenthesis\",\n UnexpectedExplicitInexactInObject:\n \"Explicit inexact syntax must appear at the end of an inexact object\",\n UnexpectedReservedType: \"Unexpected reserved type %0\",\n UnexpectedReservedUnderscore:\n \"`_` is only allowed as a type argument to call or new\",\n UnexpectedSpaceBetweenModuloChecks:\n \"Spaces between `%` and `checks` are not allowed here.\",\n UnexpectedSpreadType:\n \"Spread operator cannot appear in class or interface definitions\",\n UnexpectedSubtractionOperand:\n 'Unexpected token, expected \"number\" or \"bigint\"',\n UnexpectedTokenAfterTypeParameter:\n \"Expected an arrow function after this type parameter declaration\",\n UnexpectedTypeParameterBeforeAsyncArrowFunction:\n \"Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`\",\n UnsupportedDeclareExportKind:\n \"`declare export %0` is not supported. Use `%1` instead\",\n UnsupportedStatementInDeclareModule:\n \"Only declares and type imports are allowed inside declare module\",\n UnterminatedFlowComment: \"Unterminated flow-comment\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n return (\n bodyElement.type === \"DeclareExportAllDeclaration\" ||\n (bodyElement.type === \"DeclareExportDeclaration\" &&\n (!bodyElement.declaration ||\n (bodyElement.declaration.type !== \"TypeAlias\" &&\n bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n );\n}\n\nfunction hasTypeImportKind(node: N.Node): boolean {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nfunction isMaybeDefaultImport(state: State): boolean {\n return (\n (state.type === tt.name || !!state.type.keyword) && state.value !== \"from\"\n );\n}\n\nconst exportSuggestions = {\n const: \"declare export var\",\n let: \"declare export var\",\n type: \"export type\",\n interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition(\n list: T[],\n test: (T, number, T[]) => ?boolean,\n): [T[], T[]] {\n const list1 = [];\n const list2 = [];\n for (let i = 0; i < list.length; i++) {\n (test(list[i], i, list) ? list1 : list2).push(list[i]);\n }\n return [list1, list2];\n}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\ntype EnumContext = {|\n enumName: string,\n explicitType: EnumExplicitType,\n memberName: string,\n|};\ntype EnumMemberInit =\n | {| type: \"number\", pos: number, value: N.Node |}\n | {| type: \"string\", pos: number, value: N.Node |}\n | {| type: \"boolean\", pos: number, value: N.Node |}\n | {| type: \"invalid\", pos: number |}\n | {| type: \"none\", pos: number |};\n\nexport default (superClass: Class): Class =>\n class extends superClass {\n // The value of the @flow/@noflow pragma. Initially undefined, transitions\n // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n // past the initial comment.\n flowPragma: void | null | \"flow\" | \"noflow\" = undefined;\n\n getScopeHandler(): Class {\n return FlowScopeHandler;\n }\n\n shouldParseTypes(): boolean {\n return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n }\n\n shouldParseEnums(): boolean {\n return !!this.getPluginOption(\"flow\", \"enums\");\n }\n\n finishToken(type: TokenType, val: any): void {\n if (\n type !== tt.string &&\n type !== tt.semi &&\n type !== tt.interpreterDirective\n ) {\n if (this.flowPragma === undefined) {\n this.flowPragma = null;\n }\n }\n return super.finishToken(type, val);\n }\n\n addComment(comment: N.Comment): void {\n if (this.flowPragma === undefined) {\n // Try to parse a flow pragma.\n const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n if (!matches) {\n // do nothing\n } else if (matches[1] === \"flow\") {\n this.flowPragma = \"flow\";\n } else if (matches[1] === \"noflow\") {\n this.flowPragma = \"noflow\";\n } else {\n throw new Error(\"Unexpected flow pragma\");\n }\n }\n return super.addComment(comment);\n }\n\n flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tok || tt.colon);\n\n const type = this.flowParseType();\n this.state.inType = oldInType;\n return type;\n }\n\n flowParsePredicate(): N.FlowType {\n const node = this.startNode();\n const moduloLoc = this.state.startLoc;\n const moduloPos = this.state.start;\n this.expect(tt.modulo);\n const checksLoc = this.state.startLoc;\n this.expectContextual(\"checks\");\n // Force '%' and 'checks' to be adjacent\n if (\n moduloLoc.line !== checksLoc.line ||\n moduloLoc.column !== checksLoc.column - 1\n ) {\n this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks);\n }\n if (this.eat(tt.parenL)) {\n node.value = this.parseExpression();\n this.expect(tt.parenR);\n return this.finishNode(node, \"DeclaredPredicate\");\n } else {\n return this.finishNode(node, \"InferredPredicate\");\n }\n }\n\n flowParseTypeAndPredicateInitialiser(): [?N.FlowType, ?N.FlowPredicate] {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tt.colon);\n let type = null;\n let predicate = null;\n if (this.match(tt.modulo)) {\n this.state.inType = oldInType;\n predicate = this.flowParsePredicate();\n } else {\n type = this.flowParseType();\n this.state.inType = oldInType;\n if (this.match(tt.modulo)) {\n predicate = this.flowParsePredicate();\n }\n }\n return [type, predicate];\n }\n\n flowParseDeclareClass(node: N.FlowDeclareClass): N.FlowDeclareClass {\n this.next();\n this.flowParseInterfaceish(node, /*isClass*/ true);\n return this.finishNode(node, \"DeclareClass\");\n }\n\n flowParseDeclareFunction(\n node: N.FlowDeclareFunction,\n ): N.FlowDeclareFunction {\n this.next();\n\n const id = (node.id = this.parseIdentifier());\n\n const typeNode = this.startNode();\n const typeContainer = this.startNode();\n\n if (this.isRelational(\"<\")) {\n typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n typeNode.typeParameters = null;\n }\n\n this.expect(tt.parenL);\n const tmp = this.flowParseFunctionTypeParams();\n typeNode.params = tmp.params;\n typeNode.rest = tmp.rest;\n typeNode.this = tmp._this;\n this.expect(tt.parenR);\n\n [\n // $FlowFixMe (destructuring not supported yet)\n typeNode.returnType,\n // $FlowFixMe (destructuring not supported yet)\n node.predicate,\n ] = this.flowParseTypeAndPredicateInitialiser();\n\n typeContainer.typeAnnotation = this.finishNode(\n typeNode,\n \"FunctionTypeAnnotation\",\n );\n\n id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n this.resetEndLocation(id);\n this.semicolon();\n\n this.scope.declareName(node.id.name, BIND_FLOW_DECLARE_FN, node.id.start);\n\n return this.finishNode(node, \"DeclareFunction\");\n }\n\n flowParseDeclare(\n node: N.FlowDeclare,\n insideModule?: boolean,\n ): N.FlowDeclare {\n if (this.match(tt._class)) {\n return this.flowParseDeclareClass(node);\n } else if (this.match(tt._function)) {\n return this.flowParseDeclareFunction(node);\n } else if (this.match(tt._var)) {\n return this.flowParseDeclareVariable(node);\n } else if (this.eatContextual(\"module\")) {\n if (this.match(tt.dot)) {\n return this.flowParseDeclareModuleExports(node);\n } else {\n if (insideModule) {\n this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule);\n }\n return this.flowParseDeclareModule(node);\n }\n } else if (this.isContextual(\"type\")) {\n return this.flowParseDeclareTypeAlias(node);\n } else if (this.isContextual(\"opaque\")) {\n return this.flowParseDeclareOpaqueType(node);\n } else if (this.isContextual(\"interface\")) {\n return this.flowParseDeclareInterface(node);\n } else if (this.match(tt._export)) {\n return this.flowParseDeclareExportDeclaration(node, insideModule);\n } else {\n throw this.unexpected();\n }\n }\n\n flowParseDeclareVariable(\n node: N.FlowDeclareVariable,\n ): N.FlowDeclareVariable {\n this.next();\n node.id = this.flowParseTypeAnnotatableIdentifier(\n /*allowPrimitiveOverride*/ true,\n );\n this.scope.declareName(node.id.name, BIND_VAR, node.id.start);\n this.semicolon();\n return this.finishNode(node, \"DeclareVariable\");\n }\n\n flowParseDeclareModule(node: N.FlowDeclareModule): N.FlowDeclareModule {\n this.scope.enter(SCOPE_OTHER);\n\n if (this.match(tt.string)) {\n node.id = this.parseExprAtom();\n } else {\n node.id = this.parseIdentifier();\n }\n\n const bodyNode = (node.body = this.startNode());\n const body = (bodyNode.body = []);\n this.expect(tt.braceL);\n while (!this.match(tt.braceR)) {\n let bodyNode = this.startNode();\n\n if (this.match(tt._import)) {\n this.next();\n if (!this.isContextual(\"type\") && !this.match(tt._typeof)) {\n this.raise(\n this.state.lastTokStart,\n FlowErrors.InvalidNonTypeImportInDeclareModule,\n );\n }\n this.parseImport(bodyNode);\n } else {\n this.expectContextual(\n \"declare\",\n FlowErrors.UnsupportedStatementInDeclareModule,\n );\n\n bodyNode = this.flowParseDeclare(bodyNode, true);\n }\n\n body.push(bodyNode);\n }\n\n this.scope.exit();\n\n this.expect(tt.braceR);\n\n this.finishNode(bodyNode, \"BlockStatement\");\n\n let kind = null;\n let hasModuleExport = false;\n body.forEach(bodyElement => {\n if (isEsModuleType(bodyElement)) {\n if (kind === \"CommonJS\") {\n this.raise(\n bodyElement.start,\n FlowErrors.AmbiguousDeclareModuleKind,\n );\n }\n kind = \"ES\";\n } else if (bodyElement.type === \"DeclareModuleExports\") {\n if (hasModuleExport) {\n this.raise(\n bodyElement.start,\n FlowErrors.DuplicateDeclareModuleExports,\n );\n }\n if (kind === \"ES\") {\n this.raise(\n bodyElement.start,\n FlowErrors.AmbiguousDeclareModuleKind,\n );\n }\n kind = \"CommonJS\";\n hasModuleExport = true;\n }\n });\n\n node.kind = kind || \"CommonJS\";\n return this.finishNode(node, \"DeclareModule\");\n }\n\n flowParseDeclareExportDeclaration(\n node: N.FlowDeclareExportDeclaration,\n insideModule: ?boolean,\n ): N.FlowDeclareExportDeclaration {\n this.expect(tt._export);\n\n if (this.eat(tt._default)) {\n if (this.match(tt._function) || this.match(tt._class)) {\n // declare export default class ...\n // declare export default function ...\n node.declaration = this.flowParseDeclare(this.startNode());\n } else {\n // declare export default [type];\n node.declaration = this.flowParseType();\n this.semicolon();\n }\n node.default = true;\n\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else {\n if (\n this.match(tt._const) ||\n this.isLet() ||\n ((this.isContextual(\"type\") || this.isContextual(\"interface\")) &&\n !insideModule)\n ) {\n const label = this.state.value;\n const suggestion = exportSuggestions[label];\n\n throw this.raise(\n this.state.start,\n FlowErrors.UnsupportedDeclareExportKind,\n label,\n suggestion,\n );\n }\n\n if (\n this.match(tt._var) || // declare export var ...\n this.match(tt._function) || // declare export function ...\n this.match(tt._class) || // declare export class ...\n this.isContextual(\"opaque\") // declare export opaque ..\n ) {\n node.declaration = this.flowParseDeclare(this.startNode());\n node.default = false;\n\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else if (\n this.match(tt.star) || // declare export * from ''\n this.match(tt.braceL) || // declare export {} ...\n this.isContextual(\"interface\") || // declare export interface ...\n this.isContextual(\"type\") || // declare export type ...\n this.isContextual(\"opaque\") // declare export opaque type ...\n ) {\n node = this.parseExport(node);\n if (node.type === \"ExportNamedDeclaration\") {\n // flow does not support the ExportNamedDeclaration\n // $FlowIgnore\n node.type = \"ExportDeclaration\";\n // $FlowFixMe\n node.default = false;\n delete node.exportKind;\n }\n\n // $FlowIgnore\n node.type = \"Declare\" + node.type;\n\n return node;\n }\n }\n\n throw this.unexpected();\n }\n\n flowParseDeclareModuleExports(\n node: N.FlowDeclareModuleExports,\n ): N.FlowDeclareModuleExports {\n this.next();\n this.expectContextual(\"exports\");\n node.typeAnnotation = this.flowParseTypeAnnotation();\n this.semicolon();\n\n return this.finishNode(node, \"DeclareModuleExports\");\n }\n\n flowParseDeclareTypeAlias(\n node: N.FlowDeclareTypeAlias,\n ): N.FlowDeclareTypeAlias {\n this.next();\n this.flowParseTypeAlias(node);\n // Don't do finishNode as we don't want to process comments twice\n node.type = \"DeclareTypeAlias\";\n return node;\n }\n\n flowParseDeclareOpaqueType(\n node: N.FlowDeclareOpaqueType,\n ): N.FlowDeclareOpaqueType {\n this.next();\n this.flowParseOpaqueType(node, true);\n // Don't do finishNode as we don't want to process comments twice\n node.type = \"DeclareOpaqueType\";\n return node;\n }\n\n flowParseDeclareInterface(\n node: N.FlowDeclareInterface,\n ): N.FlowDeclareInterface {\n this.next();\n this.flowParseInterfaceish(node);\n return this.finishNode(node, \"DeclareInterface\");\n }\n\n // Interfaces\n\n flowParseInterfaceish(\n node: N.FlowDeclare,\n isClass?: boolean = false,\n ): void {\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ !isClass,\n /* declaration */ true,\n );\n\n this.scope.declareName(\n node.id.name,\n isClass ? BIND_FUNCTION : BIND_LEXICAL,\n node.id.start,\n );\n\n if (this.isRelational(\"<\")) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n node.extends = [];\n node.implements = [];\n node.mixins = [];\n\n if (this.eat(tt._extends)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (!isClass && this.eat(tt.comma));\n }\n\n if (this.isContextual(\"mixins\")) {\n this.next();\n do {\n node.mixins.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n\n if (this.isContextual(\"implements\")) {\n this.next();\n do {\n node.implements.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n\n node.body = this.flowParseObjectType({\n allowStatic: isClass,\n allowExact: false,\n allowSpread: false,\n allowProto: isClass,\n allowInexact: false,\n });\n }\n\n flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n const node = this.startNode();\n\n node.id = this.flowParseQualifiedTypeIdentifier();\n if (this.isRelational(\"<\")) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n\n return this.finishNode(node, \"InterfaceExtends\");\n }\n\n flowParseInterface(node: N.FlowInterface): N.FlowInterface {\n this.flowParseInterfaceish(node);\n return this.finishNode(node, \"InterfaceDeclaration\");\n }\n\n checkNotUnderscore(word: string) {\n if (word === \"_\") {\n this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore);\n }\n }\n\n checkReservedType(word: string, startLoc: number, declaration?: boolean) {\n if (!reservedTypes.has(word)) return;\n\n this.raise(\n startLoc,\n declaration\n ? FlowErrors.AssignReservedType\n : FlowErrors.UnexpectedReservedType,\n word,\n );\n }\n\n flowParseRestrictedIdentifier(\n liberal?: boolean,\n declaration?: boolean,\n ): N.Identifier {\n this.checkReservedType(this.state.value, this.state.start, declaration);\n return this.parseIdentifier(liberal);\n }\n\n // Type aliases\n\n flowParseTypeAlias(node: N.FlowTypeAlias): N.FlowTypeAlias {\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ false,\n /* declaration */ true,\n );\n this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n if (this.isRelational(\"<\")) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n node.right = this.flowParseTypeInitialiser(tt.eq);\n this.semicolon();\n\n return this.finishNode(node, \"TypeAlias\");\n }\n\n flowParseOpaqueType(\n node: N.FlowOpaqueType,\n declare: boolean,\n ): N.FlowOpaqueType {\n this.expectContextual(\"type\");\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ true,\n /* declaration */ true,\n );\n this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start);\n\n if (this.isRelational(\"<\")) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n // Parse the supertype\n node.supertype = null;\n if (this.match(tt.colon)) {\n node.supertype = this.flowParseTypeInitialiser(tt.colon);\n }\n\n node.impltype = null;\n if (!declare) {\n node.impltype = this.flowParseTypeInitialiser(tt.eq);\n }\n this.semicolon();\n\n return this.finishNode(node, \"OpaqueType\");\n }\n\n // Type annotations\n\n flowParseTypeParameter(requireDefault?: boolean = false): N.TypeParameter {\n const nodeStart = this.state.start;\n\n const node = this.startNode();\n\n const variance = this.flowParseVariance();\n\n const ident = this.flowParseTypeAnnotatableIdentifier();\n node.name = ident.name;\n node.variance = variance;\n node.bound = ident.typeAnnotation;\n\n if (this.match(tt.eq)) {\n this.eat(tt.eq);\n node.default = this.flowParseType();\n } else {\n if (requireDefault) {\n this.raise(nodeStart, FlowErrors.MissingTypeParamDefault);\n }\n }\n\n return this.finishNode(node, \"TypeParameter\");\n }\n\n flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n const oldInType = this.state.inType;\n const node = this.startNode();\n node.params = [];\n\n this.state.inType = true;\n\n // istanbul ignore else: this condition is already checked at all call sites\n if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n this.next();\n } else {\n this.unexpected();\n }\n\n let defaultRequired = false;\n\n do {\n const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n node.params.push(typeParameter);\n\n if (typeParameter.default) {\n defaultRequired = true;\n }\n\n if (!this.isRelational(\">\")) {\n this.expect(tt.comma);\n }\n } while (!this.isRelational(\">\"));\n this.expectRelational(\">\");\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterDeclaration\");\n }\n\n flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n const node = this.startNode();\n const oldInType = this.state.inType;\n node.params = [];\n\n this.state.inType = true;\n\n this.expectRelational(\"<\");\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = false;\n while (!this.isRelational(\">\")) {\n node.params.push(this.flowParseType());\n if (!this.isRelational(\">\")) {\n this.expect(tt.comma);\n }\n }\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n this.expectRelational(\">\");\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n\n flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation {\n const node = this.startNode();\n const oldInType = this.state.inType;\n node.params = [];\n\n this.state.inType = true;\n\n this.expectRelational(\"<\");\n while (!this.isRelational(\">\")) {\n node.params.push(this.flowParseTypeOrImplicitInstantiation());\n if (!this.isRelational(\">\")) {\n this.expect(tt.comma);\n }\n }\n this.expectRelational(\">\");\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n\n flowParseInterfaceType(): N.FlowInterfaceType {\n const node = this.startNode();\n this.expectContextual(\"interface\");\n\n node.extends = [];\n if (this.eat(tt._extends)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n\n node.body = this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: false,\n allowProto: false,\n allowInexact: false,\n });\n\n return this.finishNode(node, \"InterfaceTypeAnnotation\");\n }\n\n flowParseObjectPropertyKey(): N.Expression {\n return this.match(tt.num) || this.match(tt.string)\n ? this.parseExprAtom()\n : this.parseIdentifier(true);\n }\n\n flowParseObjectTypeIndexer(\n node: N.FlowObjectTypeIndexer,\n isStatic: boolean,\n variance: ?N.FlowVariance,\n ): N.FlowObjectTypeIndexer {\n node.static = isStatic;\n\n // Note: bracketL has already been consumed\n if (this.lookahead().type === tt.colon) {\n node.id = this.flowParseObjectPropertyKey();\n node.key = this.flowParseTypeInitialiser();\n } else {\n node.id = null;\n node.key = this.flowParseType();\n }\n this.expect(tt.bracketR);\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n\n return this.finishNode(node, \"ObjectTypeIndexer\");\n }\n\n flowParseObjectTypeInternalSlot(\n node: N.FlowObjectTypeInternalSlot,\n isStatic: boolean,\n ): N.FlowObjectTypeInternalSlot {\n node.static = isStatic;\n // Note: both bracketL have already been consumed\n node.id = this.flowParseObjectPropertyKey();\n this.expect(tt.bracketR);\n this.expect(tt.bracketR);\n if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n node.method = true;\n node.optional = false;\n node.value = this.flowParseObjectTypeMethodish(\n this.startNodeAt(node.start, node.loc.start),\n );\n } else {\n node.method = false;\n if (this.eat(tt.question)) {\n node.optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n }\n return this.finishNode(node, \"ObjectTypeInternalSlot\");\n }\n\n flowParseObjectTypeMethodish(\n node: N.FlowFunctionTypeAnnotation,\n ): N.FlowFunctionTypeAnnotation {\n node.params = [];\n node.rest = null;\n node.typeParameters = null;\n node.this = null;\n\n if (this.isRelational(\"<\")) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n this.expect(tt.parenL);\n if (this.match(tt._this)) {\n node.this = this.flowParseFunctionTypeParam(/* first */ true);\n // match Flow parser behavior\n node.this.name = null;\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n node.params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n\n if (this.eat(tt.ellipsis)) {\n node.rest = this.flowParseFunctionTypeParam(false);\n }\n this.expect(tt.parenR);\n node.returnType = this.flowParseTypeInitialiser();\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n\n flowParseObjectTypeCallProperty(\n node: N.FlowObjectTypeCallProperty,\n isStatic: boolean,\n ): N.FlowObjectTypeCallProperty {\n const valueNode = this.startNode();\n node.static = isStatic;\n node.value = this.flowParseObjectTypeMethodish(valueNode);\n return this.finishNode(node, \"ObjectTypeCallProperty\");\n }\n\n flowParseObjectType({\n allowStatic,\n allowExact,\n allowSpread,\n allowProto,\n allowInexact,\n }: {\n allowStatic: boolean,\n allowExact: boolean,\n allowSpread: boolean,\n allowProto: boolean,\n allowInexact: boolean,\n }): N.FlowObjectTypeAnnotation {\n const oldInType = this.state.inType;\n this.state.inType = true;\n\n const nodeStart = this.startNode();\n\n nodeStart.callProperties = [];\n nodeStart.properties = [];\n nodeStart.indexers = [];\n nodeStart.internalSlots = [];\n\n let endDelim;\n let exact;\n let inexact = false;\n if (allowExact && this.match(tt.braceBarL)) {\n this.expect(tt.braceBarL);\n endDelim = tt.braceBarR;\n exact = true;\n } else {\n this.expect(tt.braceL);\n endDelim = tt.braceR;\n exact = false;\n }\n\n nodeStart.exact = exact;\n\n while (!this.match(endDelim)) {\n let isStatic = false;\n let protoStart: ?number = null;\n let inexactStart: ?number = null;\n const node = this.startNode();\n\n if (allowProto && this.isContextual(\"proto\")) {\n const lookahead = this.lookahead();\n\n if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n this.next();\n protoStart = this.state.start;\n allowStatic = false;\n }\n }\n\n if (allowStatic && this.isContextual(\"static\")) {\n const lookahead = this.lookahead();\n\n // static is a valid identifier name\n if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n this.next();\n isStatic = true;\n }\n }\n\n const variance = this.flowParseVariance();\n\n if (this.eat(tt.bracketL)) {\n if (protoStart != null) {\n this.unexpected(protoStart);\n }\n if (this.eat(tt.bracketL)) {\n if (variance) {\n this.unexpected(variance.start);\n }\n nodeStart.internalSlots.push(\n this.flowParseObjectTypeInternalSlot(node, isStatic),\n );\n } else {\n nodeStart.indexers.push(\n this.flowParseObjectTypeIndexer(node, isStatic, variance),\n );\n }\n } else if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n if (protoStart != null) {\n this.unexpected(protoStart);\n }\n if (variance) {\n this.unexpected(variance.start);\n }\n nodeStart.callProperties.push(\n this.flowParseObjectTypeCallProperty(node, isStatic),\n );\n } else {\n let kind = \"init\";\n\n if (this.isContextual(\"get\") || this.isContextual(\"set\")) {\n const lookahead = this.lookahead();\n if (\n lookahead.type === tt.name ||\n lookahead.type === tt.string ||\n lookahead.type === tt.num\n ) {\n kind = this.state.value;\n this.next();\n }\n }\n\n const propOrInexact = this.flowParseObjectTypeProperty(\n node,\n isStatic,\n protoStart,\n variance,\n kind,\n allowSpread,\n allowInexact ?? !exact,\n );\n\n if (propOrInexact === null) {\n inexact = true;\n inexactStart = this.state.lastTokStart;\n } else {\n nodeStart.properties.push(propOrInexact);\n }\n }\n\n this.flowObjectTypeSemicolon();\n\n if (\n inexactStart &&\n !this.match(tt.braceR) &&\n !this.match(tt.braceBarR)\n ) {\n this.raise(\n inexactStart,\n FlowErrors.UnexpectedExplicitInexactInObject,\n );\n }\n }\n\n this.expect(endDelim);\n\n /* The inexact flag should only be added on ObjectTypeAnnotations that\n * are not the body of an interface, declare interface, or declare class.\n * Since spreads are only allowed in object types, checking that is\n * sufficient here.\n */\n if (allowSpread) {\n nodeStart.inexact = inexact;\n }\n\n const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n this.state.inType = oldInType;\n\n return out;\n }\n\n flowParseObjectTypeProperty(\n node: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n isStatic: boolean,\n protoStart: ?number,\n variance: ?N.FlowVariance,\n kind: string,\n allowSpread: boolean,\n allowInexact: boolean,\n ): (N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty) | null {\n if (this.eat(tt.ellipsis)) {\n const isInexactToken =\n this.match(tt.comma) ||\n this.match(tt.semi) ||\n this.match(tt.braceR) ||\n this.match(tt.braceBarR);\n\n if (isInexactToken) {\n if (!allowSpread) {\n this.raise(\n this.state.lastTokStart,\n FlowErrors.InexactInsideNonObject,\n );\n } else if (!allowInexact) {\n this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact);\n }\n if (variance) {\n this.raise(variance.start, FlowErrors.InexactVariance);\n }\n\n return null;\n }\n\n if (!allowSpread) {\n this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType);\n }\n if (protoStart != null) {\n this.unexpected(protoStart);\n }\n if (variance) {\n this.raise(variance.start, FlowErrors.SpreadVariance);\n }\n\n node.argument = this.flowParseType();\n return this.finishNode(node, \"ObjectTypeSpreadProperty\");\n } else {\n node.key = this.flowParseObjectPropertyKey();\n node.static = isStatic;\n node.proto = protoStart != null;\n node.kind = kind;\n\n let optional = false;\n if (this.isRelational(\"<\") || this.match(tt.parenL)) {\n // This is a method property\n node.method = true;\n\n if (protoStart != null) {\n this.unexpected(protoStart);\n }\n if (variance) {\n this.unexpected(variance.start);\n }\n\n node.value = this.flowParseObjectTypeMethodish(\n this.startNodeAt(node.start, node.loc.start),\n );\n if (kind === \"get\" || kind === \"set\") {\n this.flowCheckGetterSetterParams(node);\n }\n /** Declared classes/interfaces do not allow spread */\n if (\n !allowSpread &&\n node.key.name === \"constructor\" &&\n node.value.this\n ) {\n this.raise(\n node.value.this.start,\n FlowErrors.ThisParamBannedInConstructor,\n );\n }\n } else {\n if (kind !== \"init\") this.unexpected();\n\n node.method = false;\n\n if (this.eat(tt.question)) {\n optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n }\n\n node.optional = optional;\n\n return this.finishNode(node, \"ObjectTypeProperty\");\n }\n }\n\n // This is similar to checkGetterSetterParams, but as\n // @babel/parser uses non estree properties we cannot reuse it here\n flowCheckGetterSetterParams(\n property: N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty,\n ): void {\n const paramCount = property.kind === \"get\" ? 0 : 1;\n const start = property.start;\n const length =\n property.value.params.length + (property.value.rest ? 1 : 0);\n\n if (property.value.this) {\n this.raise(\n property.value.this.start,\n property.kind === \"get\"\n ? FlowErrors.GetterMayNotHaveThisParam\n : FlowErrors.SetterMayNotHaveThisParam,\n );\n }\n\n if (length !== paramCount) {\n if (property.kind === \"get\") {\n this.raise(start, Errors.BadGetterArity);\n } else {\n this.raise(start, Errors.BadSetterArity);\n }\n }\n\n if (property.kind === \"set\" && property.value.rest) {\n this.raise(start, Errors.BadSetterRestParameter);\n }\n }\n\n flowObjectTypeSemicolon(): void {\n if (\n !this.eat(tt.semi) &&\n !this.eat(tt.comma) &&\n !this.match(tt.braceR) &&\n !this.match(tt.braceBarR)\n ) {\n this.unexpected();\n }\n }\n\n flowParseQualifiedTypeIdentifier(\n startPos?: number,\n startLoc?: Position,\n id?: N.Identifier,\n ): N.FlowQualifiedTypeIdentifier {\n startPos = startPos || this.state.start;\n startLoc = startLoc || this.state.startLoc;\n let node = id || this.flowParseRestrictedIdentifier(true);\n\n while (this.eat(tt.dot)) {\n const node2 = this.startNodeAt(startPos, startLoc);\n node2.qualification = node;\n node2.id = this.flowParseRestrictedIdentifier(true);\n node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n }\n\n return node;\n }\n\n flowParseGenericType(\n startPos: number,\n startLoc: Position,\n id: N.Identifier,\n ): N.FlowGenericTypeAnnotation {\n const node = this.startNodeAt(startPos, startLoc);\n\n node.typeParameters = null;\n node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id);\n\n if (this.isRelational(\"<\")) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n }\n\n return this.finishNode(node, \"GenericTypeAnnotation\");\n }\n\n flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n const node = this.startNode();\n this.expect(tt._typeof);\n node.argument = this.flowParsePrimaryType();\n return this.finishNode(node, \"TypeofTypeAnnotation\");\n }\n\n flowParseTupleType(): N.FlowTupleTypeAnnotation {\n const node = this.startNode();\n node.types = [];\n this.expect(tt.bracketL);\n // We allow trailing commas\n while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n node.types.push(this.flowParseType());\n if (this.match(tt.bracketR)) break;\n this.expect(tt.comma);\n }\n this.expect(tt.bracketR);\n return this.finishNode(node, \"TupleTypeAnnotation\");\n }\n\n flowParseFunctionTypeParam(first: boolean): N.FlowFunctionTypeParam {\n let name = null;\n let optional = false;\n let typeAnnotation = null;\n const node = this.startNode();\n const lh = this.lookahead();\n const isThis = this.state.type === tt._this;\n\n if (lh.type === tt.colon || lh.type === tt.question) {\n if (isThis && !first) {\n this.raise(node.start, FlowErrors.ThisParamMustBeFirst);\n }\n name = this.parseIdentifier(isThis);\n if (this.eat(tt.question)) {\n optional = true;\n if (isThis) {\n this.raise(node.start, FlowErrors.ThisParamMayNotBeOptional);\n }\n }\n typeAnnotation = this.flowParseTypeInitialiser();\n } else {\n typeAnnotation = this.flowParseType();\n }\n node.name = name;\n node.optional = optional;\n node.typeAnnotation = typeAnnotation;\n return this.finishNode(node, \"FunctionTypeParam\");\n }\n\n reinterpretTypeAsFunctionTypeParam(\n type: N.FlowType,\n ): N.FlowFunctionTypeParam {\n const node = this.startNodeAt(type.start, type.loc.start);\n node.name = null;\n node.optional = false;\n node.typeAnnotation = type;\n return this.finishNode(node, \"FunctionTypeParam\");\n }\n\n flowParseFunctionTypeParams(\n params: N.FlowFunctionTypeParam[] = [],\n ): {\n params: N.FlowFunctionTypeParam[],\n rest: ?N.FlowFunctionTypeParam,\n _this: ?N.FlowFunctionTypeParam,\n } {\n let rest: ?N.FlowFunctionTypeParam = null;\n let _this: ?N.FlowFunctionTypeParam = null;\n if (this.match(tt._this)) {\n _this = this.flowParseFunctionTypeParam(/* first */ true);\n // match Flow parser behavior\n _this.name = null;\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n if (this.eat(tt.ellipsis)) {\n rest = this.flowParseFunctionTypeParam(false);\n }\n return { params, rest, _this };\n }\n\n flowIdentToTypeAnnotation(\n startPos: number,\n startLoc: Position,\n node: N.FlowTypeAnnotation,\n id: N.Identifier,\n ): N.FlowTypeAnnotation {\n switch (id.name) {\n case \"any\":\n return this.finishNode(node, \"AnyTypeAnnotation\");\n\n case \"bool\":\n case \"boolean\":\n return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n case \"mixed\":\n return this.finishNode(node, \"MixedTypeAnnotation\");\n\n case \"empty\":\n return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n case \"number\":\n return this.finishNode(node, \"NumberTypeAnnotation\");\n\n case \"string\":\n return this.finishNode(node, \"StringTypeAnnotation\");\n\n case \"symbol\":\n return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n default:\n this.checkNotUnderscore(id.name);\n return this.flowParseGenericType(startPos, startLoc, id);\n }\n }\n\n // The parsing of types roughly parallels the parsing of expressions, and\n // primary types are kind of like primary expressions...they're the\n // primitives with which other types are constructed.\n flowParsePrimaryType(): N.FlowTypeAnnotation {\n const startPos = this.state.start;\n const startLoc = this.state.startLoc;\n const node = this.startNode();\n let tmp;\n let type;\n let isGroupedType = false;\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n\n switch (this.state.type) {\n case tt.name:\n if (this.isContextual(\"interface\")) {\n return this.flowParseInterfaceType();\n }\n\n return this.flowIdentToTypeAnnotation(\n startPos,\n startLoc,\n node,\n this.parseIdentifier(),\n );\n\n case tt.braceL:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: true,\n allowProto: false,\n allowInexact: true,\n });\n\n case tt.braceBarL:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: true,\n allowSpread: true,\n allowProto: false,\n allowInexact: false,\n });\n\n case tt.bracketL:\n this.state.noAnonFunctionType = false;\n type = this.flowParseTupleType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n return type;\n\n case tt.relational:\n if (this.state.value === \"<\") {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n this.expect(tt.parenL);\n tmp = this.flowParseFunctionTypeParams();\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n this.expect(tt.parenR);\n\n this.expect(tt.arrow);\n\n node.returnType = this.flowParseType();\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n break;\n\n case tt.parenL:\n this.next();\n\n // Check to see if this is actually a grouped type\n if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n if (this.match(tt.name) || this.match(tt._this)) {\n const token = this.lookahead().type;\n isGroupedType = token !== tt.question && token !== tt.colon;\n } else {\n isGroupedType = true;\n }\n }\n\n if (isGroupedType) {\n this.state.noAnonFunctionType = false;\n type = this.flowParseType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n // A `,` or a `) =>` means this is an anonymous function type\n if (\n this.state.noAnonFunctionType ||\n !(\n this.match(tt.comma) ||\n (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n )\n ) {\n this.expect(tt.parenR);\n return type;\n } else {\n // Eat a comma if there is one\n this.eat(tt.comma);\n }\n }\n\n if (type) {\n tmp = this.flowParseFunctionTypeParams([\n this.reinterpretTypeAsFunctionTypeParam(type),\n ]);\n } else {\n tmp = this.flowParseFunctionTypeParams();\n }\n\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n\n this.expect(tt.parenR);\n\n this.expect(tt.arrow);\n\n node.returnType = this.flowParseType();\n\n node.typeParameters = null;\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n case tt.string:\n return this.parseLiteral(\n this.state.value,\n \"StringLiteralTypeAnnotation\",\n );\n\n case tt._true:\n case tt._false:\n node.value = this.match(tt._true);\n this.next();\n return this.finishNode(node, \"BooleanLiteralTypeAnnotation\");\n\n case tt.plusMin:\n if (this.state.value === \"-\") {\n this.next();\n if (this.match(tt.num)) {\n return this.parseLiteral(\n -this.state.value,\n \"NumberLiteralTypeAnnotation\",\n node.start,\n node.loc.start,\n );\n }\n\n if (this.match(tt.bigint)) {\n return this.parseLiteral(\n -this.state.value,\n \"BigIntLiteralTypeAnnotation\",\n node.start,\n node.loc.start,\n );\n }\n\n throw this.raise(\n this.state.start,\n FlowErrors.UnexpectedSubtractionOperand,\n );\n }\n\n throw this.unexpected();\n case tt.num:\n return this.parseLiteral(\n this.state.value,\n \"NumberLiteralTypeAnnotation\",\n );\n\n case tt.bigint:\n return this.parseLiteral(\n this.state.value,\n \"BigIntLiteralTypeAnnotation\",\n );\n\n case tt._void:\n this.next();\n return this.finishNode(node, \"VoidTypeAnnotation\");\n\n case tt._null:\n this.next();\n return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n case tt._this:\n this.next();\n return this.finishNode(node, \"ThisTypeAnnotation\");\n\n case tt.star:\n this.next();\n return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n default:\n if (this.state.type.keyword === \"typeof\") {\n return this.flowParseTypeofType();\n } else if (this.state.type.keyword) {\n const label = this.state.type.label;\n this.next();\n return super.createIdentifier(node, label);\n }\n }\n\n throw this.unexpected();\n }\n\n flowParsePostfixType(): N.FlowTypeAnnotation {\n const startPos = this.state.start,\n startLoc = this.state.startLoc;\n let type = this.flowParsePrimaryType();\n while (this.match(tt.bracketL) && !this.canInsertSemicolon()) {\n const node = this.startNodeAt(startPos, startLoc);\n node.elementType = type;\n this.expect(tt.bracketL);\n this.expect(tt.bracketR);\n type = this.finishNode(node, \"ArrayTypeAnnotation\");\n }\n return type;\n }\n\n flowParsePrefixType(): N.FlowTypeAnnotation {\n const node = this.startNode();\n if (this.eat(tt.question)) {\n node.typeAnnotation = this.flowParsePrefixType();\n return this.finishNode(node, \"NullableTypeAnnotation\");\n } else {\n return this.flowParsePostfixType();\n }\n }\n\n flowParseAnonFunctionWithoutParens(): N.FlowTypeAnnotation {\n const param = this.flowParsePrefixType();\n if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\n const node = this.startNodeAt(param.start, param.loc.start);\n node.params = [this.reinterpretTypeAsFunctionTypeParam(param)];\n node.rest = null;\n node.this = null;\n node.returnType = this.flowParseType();\n node.typeParameters = null;\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n return param;\n }\n\n flowParseIntersectionType(): N.FlowTypeAnnotation {\n const node = this.startNode();\n this.eat(tt.bitwiseAND);\n const type = this.flowParseAnonFunctionWithoutParens();\n node.types = [type];\n while (this.eat(tt.bitwiseAND)) {\n node.types.push(this.flowParseAnonFunctionWithoutParens());\n }\n return node.types.length === 1\n ? type\n : this.finishNode(node, \"IntersectionTypeAnnotation\");\n }\n\n flowParseUnionType(): N.FlowTypeAnnotation {\n const node = this.startNode();\n this.eat(tt.bitwiseOR);\n const type = this.flowParseIntersectionType();\n node.types = [type];\n while (this.eat(tt.bitwiseOR)) {\n node.types.push(this.flowParseIntersectionType());\n }\n return node.types.length === 1\n ? type\n : this.finishNode(node, \"UnionTypeAnnotation\");\n }\n\n flowParseType(): N.FlowTypeAnnotation {\n const oldInType = this.state.inType;\n this.state.inType = true;\n const type = this.flowParseUnionType();\n this.state.inType = oldInType;\n // Ensure that a brace after a function generic type annotation is a\n // statement, except in arrow functions (noAnonFunctionType)\n this.state.exprAllowed =\n this.state.exprAllowed || this.state.noAnonFunctionType;\n return type;\n }\n\n flowParseTypeOrImplicitInstantiation(): N.FlowTypeAnnotation {\n if (this.state.type === tt.name && this.state.value === \"_\") {\n const startPos = this.state.start;\n const startLoc = this.state.startLoc;\n const node = this.parseIdentifier();\n return this.flowParseGenericType(startPos, startLoc, node);\n } else {\n return this.flowParseType();\n }\n }\n\n flowParseTypeAnnotation(): N.FlowTypeAnnotation {\n const node = this.startNode();\n node.typeAnnotation = this.flowParseTypeInitialiser();\n return this.finishNode(node, \"TypeAnnotation\");\n }\n\n flowParseTypeAnnotatableIdentifier(\n allowPrimitiveOverride?: boolean,\n ): N.Identifier {\n const ident = allowPrimitiveOverride\n ? this.parseIdentifier()\n : this.flowParseRestrictedIdentifier();\n if (this.match(tt.colon)) {\n ident.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(ident);\n }\n return ident;\n }\n\n typeCastToParameter(node: N.Node): N.Node {\n node.expression.typeAnnotation = node.typeAnnotation;\n\n this.resetEndLocation(\n node.expression,\n node.typeAnnotation.end,\n node.typeAnnotation.loc.end,\n );\n\n return node.expression;\n }\n\n flowParseVariance(): ?N.FlowVariance {\n let variance = null;\n if (this.match(tt.plusMin)) {\n variance = this.startNode();\n if (this.state.value === \"+\") {\n variance.kind = \"plus\";\n } else {\n variance.kind = \"minus\";\n }\n this.next();\n this.finishNode(variance, \"Variance\");\n }\n return variance;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n parseFunctionBody(\n node: N.Function,\n allowExpressionBody: ?boolean,\n isMethod?: boolean = false,\n ): void {\n if (allowExpressionBody) {\n return this.forwardNoArrowParamsConversionAt(node, () =>\n super.parseFunctionBody(node, true, isMethod),\n );\n }\n\n return super.parseFunctionBody(node, false, isMethod);\n }\n\n parseFunctionBodyAndFinish(\n node: N.BodilessFunctionOrMethodBase,\n type: string,\n isMethod?: boolean = false,\n ): void {\n if (this.match(tt.colon)) {\n const typeNode = this.startNode();\n\n [\n // $FlowFixMe (destructuring not supported yet)\n typeNode.typeAnnotation,\n // $FlowFixMe (destructuring not supported yet)\n node.predicate,\n ] = this.flowParseTypeAndPredicateInitialiser();\n\n node.returnType = typeNode.typeAnnotation\n ? this.finishNode(typeNode, \"TypeAnnotation\")\n : null;\n }\n\n super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n\n // interfaces and enums\n parseStatement(context: ?string, topLevel?: boolean): N.Statement {\n // strict mode handling of `interface` since it's a reserved word\n if (\n this.state.strict &&\n this.match(tt.name) &&\n this.state.value === \"interface\"\n ) {\n const lookahead = this.lookahead();\n if (lookahead.type === tt.name || isKeyword(lookahead.value)) {\n const node = this.startNode();\n this.next();\n return this.flowParseInterface(node);\n }\n } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n const stmt = super.parseStatement(context, topLevel);\n // We will parse a flow pragma in any comment before the first statement.\n if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n this.flowPragma = null;\n }\n return stmt;\n }\n\n // declares, interfaces and type aliases\n parseExpressionStatement(\n node: N.ExpressionStatement,\n expr: N.Expression,\n ): N.ExpressionStatement {\n if (expr.type === \"Identifier\") {\n if (expr.name === \"declare\") {\n if (\n this.match(tt._class) ||\n this.match(tt.name) ||\n this.match(tt._function) ||\n this.match(tt._var) ||\n this.match(tt._export)\n ) {\n return this.flowParseDeclare(node);\n }\n } else if (this.match(tt.name)) {\n if (expr.name === \"interface\") {\n return this.flowParseInterface(node);\n } else if (expr.name === \"type\") {\n return this.flowParseTypeAlias(node);\n } else if (expr.name === \"opaque\") {\n return this.flowParseOpaqueType(node, false);\n }\n }\n }\n\n return super.parseExpressionStatement(node, expr);\n }\n\n // export type\n shouldParseExportDeclaration(): boolean {\n return (\n this.isContextual(\"type\") ||\n this.isContextual(\"interface\") ||\n this.isContextual(\"opaque\") ||\n (this.shouldParseEnums() && this.isContextual(\"enum\")) ||\n super.shouldParseExportDeclaration()\n );\n }\n\n isExportDefaultSpecifier(): boolean {\n if (\n this.match(tt.name) &&\n (this.state.value === \"type\" ||\n this.state.value === \"interface\" ||\n this.state.value === \"opaque\" ||\n (this.shouldParseEnums() && this.state.value === \"enum\"))\n ) {\n return false;\n }\n\n return super.isExportDefaultSpecifier();\n }\n\n parseExportDefaultExpression(): N.Expression | N.Declaration {\n if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n return super.parseExportDefaultExpression();\n }\n\n parseConditional(\n expr: N.Expression,\n startPos: number,\n startLoc: Position,\n refNeedsArrowPos?: ?Pos,\n ): N.Expression {\n if (!this.match(tt.question)) return expr;\n\n // only use the expensive \"tryParse\" method if there is a question mark\n // and if we come from inside parens\n if (refNeedsArrowPos) {\n const result = this.tryParse(() =>\n super.parseConditional(expr, startPos, startLoc),\n );\n\n if (!result.node) {\n // $FlowIgnore\n refNeedsArrowPos.start = result.error.pos || this.state.start;\n return expr;\n }\n\n if (result.error) this.state = result.failState;\n return result.node;\n }\n\n this.expect(tt.question);\n const state = this.state.clone();\n const originalNoArrowAt = this.state.noArrowAt;\n const node = this.startNodeAt(startPos, startLoc);\n let { consequent, failed } = this.tryParseConditionalConsequent();\n let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n if (failed || invalid.length > 0) {\n const noArrowAt = [...originalNoArrowAt];\n\n if (invalid.length > 0) {\n this.state = state;\n this.state.noArrowAt = noArrowAt;\n\n for (let i = 0; i < invalid.length; i++) {\n noArrowAt.push(invalid[i].start);\n }\n\n ({ consequent, failed } = this.tryParseConditionalConsequent());\n [valid, invalid] = this.getArrowLikeExpressions(consequent);\n }\n\n if (failed && valid.length > 1) {\n // if there are two or more possible correct ways of parsing, throw an\n // error.\n // e.g. Source: a ? (b): c => (d): e => f\n // Result 1: a ? b : (c => ((d): e => f))\n // Result 2: a ? ((b): c => d) : (e => f)\n this.raise(state.start, FlowErrors.AmbiguousConditionalArrow);\n }\n\n if (failed && valid.length === 1) {\n this.state = state;\n this.state.noArrowAt = noArrowAt.concat(valid[0].start);\n ({ consequent, failed } = this.tryParseConditionalConsequent());\n }\n }\n\n this.getArrowLikeExpressions(consequent, true);\n\n this.state.noArrowAt = originalNoArrowAt;\n this.expect(tt.colon);\n\n node.test = expr;\n node.consequent = consequent;\n node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n this.parseMaybeAssign(undefined, undefined, undefined),\n );\n\n return this.finishNode(node, \"ConditionalExpression\");\n }\n\n tryParseConditionalConsequent(): {\n consequent: N.Expression,\n failed: boolean,\n } {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n\n const consequent = this.parseMaybeAssignAllowIn();\n const failed = !this.match(tt.colon);\n\n this.state.noArrowParamsConversionAt.pop();\n\n return { consequent, failed };\n }\n\n // Given an expression, walks through out its arrow functions whose body is\n // an expression and through out conditional expressions. It returns every\n // function which has been parsed with a return type but could have been\n // parenthesized expressions.\n // These functions are separated into two arrays: one containing the ones\n // whose parameters can be converted to assignable lists, one containing the\n // others.\n getArrowLikeExpressions(\n node: N.Expression,\n disallowInvalid?: boolean,\n ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n const stack = [node];\n const arrows: N.ArrowFunctionExpression[] = [];\n\n while (stack.length !== 0) {\n const node = stack.pop();\n if (node.type === \"ArrowFunctionExpression\") {\n if (node.typeParameters || !node.returnType) {\n // This is an arrow expression without ambiguity, so check its parameters\n this.finishArrowValidation(node);\n } else {\n arrows.push(node);\n }\n stack.push(node.body);\n } else if (node.type === \"ConditionalExpression\") {\n stack.push(node.consequent);\n stack.push(node.alternate);\n }\n }\n\n if (disallowInvalid) {\n arrows.forEach(node => this.finishArrowValidation(node));\n return [arrows, []];\n }\n\n return partition(arrows, node =>\n node.params.every(param => this.isAssignable(param, true)),\n );\n }\n\n finishArrowValidation(node: N.ArrowFunctionExpression) {\n this.toAssignableList(\n // node.params is Expression[] instead of $ReadOnlyArray because it\n // has not been converted yet.\n ((node.params: any): N.Expression[]),\n node.extra?.trailingComma,\n /* isLHS */ false,\n );\n // Enter scope, as checkParams defines bindings\n this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW);\n // Use super's method to force the parameters to be checked\n super.checkParams(node, false, true);\n this.scope.exit();\n }\n\n forwardNoArrowParamsConversionAt(node: N.Node, parse: () => T): T {\n let result: T;\n if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n result = parse();\n this.state.noArrowParamsConversionAt.pop();\n } else {\n result = parse();\n }\n\n return result;\n }\n\n parseParenItem(\n node: N.Expression,\n startPos: number,\n startLoc: Position,\n ): N.Expression {\n node = super.parseParenItem(node, startPos, startLoc);\n if (this.eat(tt.question)) {\n node.optional = true;\n // Include questionmark in location of node\n // Don't use this.finishNode() as otherwise we might process comments twice and\n // include already consumed parens\n this.resetEndLocation(node);\n }\n\n if (this.match(tt.colon)) {\n const typeCastNode = this.startNodeAt(startPos, startLoc);\n typeCastNode.expression = node;\n typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n return this.finishNode(typeCastNode, \"TypeCastExpression\");\n }\n\n return node;\n }\n\n assertModuleNodeAllowed(node: N.Node) {\n if (\n (node.type === \"ImportDeclaration\" &&\n (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n (node.type === \"ExportNamedDeclaration\" &&\n node.exportKind === \"type\") ||\n (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n ) {\n // Allow Flowtype imports and exports in all conditions because\n // Flow itself does not care about 'sourceType'.\n return;\n }\n\n super.assertModuleNodeAllowed(node);\n }\n\n parseExport(node: N.Node): N.AnyExport {\n const decl = super.parseExport(node);\n if (\n decl.type === \"ExportNamedDeclaration\" ||\n decl.type === \"ExportAllDeclaration\"\n ) {\n decl.exportKind = decl.exportKind || \"value\";\n }\n return decl;\n }\n\n parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n if (this.isContextual(\"type\")) {\n node.exportKind = \"type\";\n\n const declarationNode = this.startNode();\n this.next();\n\n if (this.match(tt.braceL)) {\n // export type { foo, bar };\n node.specifiers = this.parseExportSpecifiers();\n this.parseExportFrom(node);\n return null;\n } else {\n // export type Foo = Bar;\n return this.flowParseTypeAlias(declarationNode);\n }\n } else if (this.isContextual(\"opaque\")) {\n node.exportKind = \"type\";\n\n const declarationNode = this.startNode();\n this.next();\n // export opaque type Foo = Bar;\n return this.flowParseOpaqueType(declarationNode, false);\n } else if (this.isContextual(\"interface\")) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n return this.flowParseInterface(declarationNode);\n } else if (this.shouldParseEnums() && this.isContextual(\"enum\")) {\n node.exportKind = \"value\";\n const declarationNode = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(declarationNode);\n } else {\n return super.parseExportDeclaration(node);\n }\n }\n\n eatExportStar(node: N.Node): boolean {\n if (super.eatExportStar(...arguments)) return true;\n\n if (this.isContextual(\"type\") && this.lookahead().type === tt.star) {\n node.exportKind = \"type\";\n this.next();\n this.next();\n return true;\n }\n\n return false;\n }\n\n maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n const pos = this.state.start;\n const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n if (hasNamespace && node.exportKind === \"type\") {\n this.unexpected(pos);\n }\n return hasNamespace;\n }\n\n parseClassId(node: N.Class, isStatement: boolean, optionalId: ?boolean) {\n super.parseClassId(node, isStatement, optionalId);\n if (this.isRelational(\"<\")) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n }\n\n parseClassMember(\n classBody: N.ClassBody,\n member: any,\n state: N.ParseClassMemberState,\n ): void {\n const pos = this.state.start;\n if (this.isContextual(\"declare\")) {\n if (this.parseClassMemberFromModifier(classBody, member)) {\n // 'declare' is a class element name\n return;\n }\n\n member.declare = true;\n }\n\n super.parseClassMember(classBody, member, state);\n\n if (member.declare) {\n if (\n member.type !== \"ClassProperty\" &&\n member.type !== \"ClassPrivateProperty\" &&\n member.type !== \"PropertyDefinition\" // Used by estree plugin\n ) {\n this.raise(pos, FlowErrors.DeclareClassElement);\n } else if (member.value) {\n this.raise(\n member.value.start,\n FlowErrors.DeclareClassFieldInitializer,\n );\n }\n }\n }\n\n // ensure that inside flow types, we bypass the jsx parser plugin\n getTokenFromCode(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n return this.finishOp(tt.braceBarL, 2);\n } else if (\n this.state.inType &&\n (code === charCodes.greaterThan || code === charCodes.lessThan)\n ) {\n return this.finishOp(tt.relational, 1);\n } else if (this.state.inType && code === charCodes.questionMark) {\n // allow double nullable types in Flow: ??string\n return this.finishOp(tt.question, 1);\n } else if (isIteratorStart(code, next)) {\n this.state.isIterator = true;\n return super.readWord();\n } else {\n return super.getTokenFromCode(code);\n }\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\n switch (node.type) {\n case \"Identifier\":\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n return true;\n\n case \"ObjectExpression\": {\n const last = node.properties.length - 1;\n return node.properties.every((prop, i) => {\n return (\n prop.type !== \"ObjectMethod\" &&\n (i === last || prop.type === \"SpreadElement\") &&\n this.isAssignable(prop)\n );\n });\n }\n\n case \"ObjectProperty\":\n return this.isAssignable(node.value);\n\n case \"SpreadElement\":\n return this.isAssignable(node.argument);\n\n case \"ArrayExpression\":\n return node.elements.every(element => this.isAssignable(element));\n\n case \"AssignmentExpression\":\n return node.operator === \"=\";\n\n case \"ParenthesizedExpression\":\n case \"TypeCastExpression\":\n return this.isAssignable(node.expression);\n\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n return !isBinding;\n\n default:\n return false;\n }\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): N.Node {\n if (node.type === \"TypeCastExpression\") {\n return super.toAssignable(this.typeCastToParameter(node), isLHS);\n } else {\n return super.toAssignable(node, isLHS);\n }\n }\n\n // turn type casts that we found in function parameter head into type annotated params\n toAssignableList(\n exprList: N.Expression[],\n trailingCommaPos?: ?number,\n isLHS: boolean,\n ): $ReadOnlyArray {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (expr?.type === \"TypeCastExpression\") {\n exprList[i] = this.typeCastToParameter(expr);\n }\n }\n return super.toAssignableList(exprList, trailingCommaPos, isLHS);\n }\n\n // this is a list of nodes, from something like a call expression, we need to filter the\n // type casts that we've found that are illegal in this context\n toReferencedList(\n exprList: $ReadOnlyArray,\n isParenthesizedExpr?: boolean,\n ): $ReadOnlyArray {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (\n expr &&\n expr.type === \"TypeCastExpression\" &&\n !expr.extra?.parenthesized &&\n (exprList.length > 1 || !isParenthesizedExpr)\n ) {\n this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern);\n }\n }\n\n return exprList;\n }\n\n parseArrayLike(\n close: TokenType,\n canBePattern: boolean,\n isTuple: boolean,\n refExpressionErrors: ?ExpressionErrors,\n ): N.ArrayExpression | N.TupleExpression {\n const node = super.parseArrayLike(\n close,\n canBePattern,\n isTuple,\n refExpressionErrors,\n );\n\n // This could be an array pattern:\n // ([a: string, b: string]) => {}\n // In this case, we don't have to call toReferencedList. We will\n // call it, if needed, when we are sure that it is a parenthesized\n // expression by calling toReferencedListDeep.\n if (canBePattern && !this.state.maybeInArrowParameters) {\n this.toReferencedList(node.elements);\n }\n\n return node;\n }\n\n checkLVal(\n expr: N.Expression,\n ...args:\n | [string, BindingTypes | void]\n | [\n string,\n BindingTypes | void,\n ?Set,\n boolean | void,\n boolean | void,\n ]\n ): void {\n if (expr.type !== \"TypeCastExpression\") {\n return super.checkLVal(expr, ...args);\n }\n }\n\n // parse class property type annotations\n parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n if (this.match(tt.colon)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassProperty(node);\n }\n\n parseClassPrivateProperty(\n node: N.ClassPrivateProperty,\n ): N.ClassPrivateProperty {\n if (this.match(tt.colon)) {\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassPrivateProperty(node);\n }\n\n // determine whether or not we're currently in the position where a class method would appear\n isClassMethod(): boolean {\n return this.isRelational(\"<\") || super.isClassMethod();\n }\n\n // determine whether or not we're currently in the position where a class property would appear\n isClassProperty(): boolean {\n return this.match(tt.colon) || super.isClassProperty();\n }\n\n isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n }\n\n // determine whether a parameter is a this param\n isThisParam(param) {\n return param.type === \"Identifier\" && param.name === \"this\";\n }\n\n // parse type parameters for class methods\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n if ((method: $FlowFixMe).variance) {\n this.unexpected((method: $FlowFixMe).variance.start);\n }\n delete (method: $FlowFixMe).variance;\n if (this.isRelational(\"<\")) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n super.pushClassMethod(\n classBody,\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n );\n\n if (method.params && isConstructor) {\n const params = method.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(method.start, FlowErrors.ThisParamBannedInConstructor);\n }\n // estree support\n } else if (\n // $FlowFixMe flow does not know about the face that estree can replace ClassMethod with MethodDefinition\n method.type === \"MethodDefinition\" &&\n isConstructor &&\n method.value.params\n ) {\n const params = method.value.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(method.start, FlowErrors.ThisParamBannedInConstructor);\n }\n }\n }\n\n pushClassPrivateMethod(\n classBody: N.ClassBody,\n method: N.ClassPrivateMethod,\n isGenerator: boolean,\n isAsync: boolean,\n ): void {\n if ((method: $FlowFixMe).variance) {\n this.unexpected((method: $FlowFixMe).variance.start);\n }\n delete (method: $FlowFixMe).variance;\n if (this.isRelational(\"<\")) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n\n // parse a the super class type parameters and implements\n parseClassSuper(node: N.Class): void {\n super.parseClassSuper(node);\n if (node.superClass && this.isRelational(\"<\")) {\n node.superTypeParameters = this.flowParseTypeParameterInstantiation();\n }\n if (this.isContextual(\"implements\")) {\n this.next();\n const implemented: N.FlowClassImplements[] = (node.implements = []);\n do {\n const node = this.startNode();\n node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n if (this.isRelational(\"<\")) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n implemented.push(this.finishNode(node, \"ClassImplements\"));\n } while (this.eat(tt.comma));\n }\n }\n\n checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n super.checkGetterSetterParams(method);\n const params = this.getObjectOrClassMethodParams(method);\n if (params.length > 0) {\n const param = params[0];\n if (this.isThisParam(param) && method.kind === \"get\") {\n this.raise(param.start, FlowErrors.GetterMayNotHaveThisParam);\n } else if (this.isThisParam(param)) {\n this.raise(param.start, FlowErrors.SetterMayNotHaveThisParam);\n }\n }\n }\n\n parsePropertyName(\n node: N.ObjectOrClassMember | N.ClassMember | N.TsNamedTypeElementBase,\n isPrivateNameAllowed: boolean,\n ): N.Identifier {\n const variance = this.flowParseVariance();\n const key = super.parsePropertyName(node, isPrivateNameAllowed);\n // $FlowIgnore (\"variance\" not defined on TsNamedTypeElementBase)\n node.variance = variance;\n return key;\n }\n\n // parse type parameters for object method shorthand\n parseObjPropValue(\n prop: N.ObjectMember,\n startPos: ?number,\n startLoc: ?Position,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n refExpressionErrors: ?ExpressionErrors,\n ): void {\n if ((prop: $FlowFixMe).variance) {\n this.unexpected((prop: $FlowFixMe).variance.start);\n }\n delete (prop: $FlowFixMe).variance;\n\n let typeParameters;\n\n // method shorthand\n if (this.isRelational(\"<\") && !isAccessor) {\n typeParameters = this.flowParseTypeParameterDeclaration();\n if (!this.match(tt.parenL)) this.unexpected();\n }\n\n super.parseObjPropValue(\n prop,\n startPos,\n startLoc,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n refExpressionErrors,\n );\n\n // add typeParameters if we found them\n if (typeParameters) {\n (prop.value || prop).typeParameters = typeParameters;\n }\n }\n\n parseAssignableListItemTypes(param: N.Pattern): N.Pattern {\n if (this.eat(tt.question)) {\n if (param.type !== \"Identifier\") {\n this.raise(param.start, FlowErrors.OptionalBindingPattern);\n }\n if (this.isThisParam(param)) {\n this.raise(param.start, FlowErrors.ThisParamMayNotBeOptional);\n }\n\n ((param: any): N.Identifier).optional = true;\n }\n if (this.match(tt.colon)) {\n param.typeAnnotation = this.flowParseTypeAnnotation();\n } else if (this.isThisParam(param)) {\n this.raise(param.start, FlowErrors.ThisParamAnnotationRequired);\n }\n\n if (this.match(tt.eq) && this.isThisParam(param)) {\n this.raise(param.start, FlowErrors.ThisParamNoDefault);\n }\n\n this.resetEndLocation(param);\n return param;\n }\n\n parseMaybeDefault(\n startPos?: ?number,\n startLoc?: ?Position,\n left?: ?N.Pattern,\n ): N.Pattern {\n const node = super.parseMaybeDefault(startPos, startLoc, left);\n\n if (\n node.type === \"AssignmentPattern\" &&\n node.typeAnnotation &&\n node.right.start < node.typeAnnotation.start\n ) {\n this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer);\n }\n\n return node;\n }\n\n shouldParseDefaultImport(node: N.ImportDeclaration): boolean {\n if (!hasTypeImportKind(node)) {\n return super.shouldParseDefaultImport(node);\n }\n\n return isMaybeDefaultImport(this.state);\n }\n\n parseImportSpecifierLocal(\n node: N.ImportDeclaration,\n specifier: N.Node,\n type: string,\n contextDescription: string,\n ): void {\n specifier.local = hasTypeImportKind(node)\n ? this.flowParseRestrictedIdentifier(\n /* liberal */ true,\n /* declaration */ true,\n )\n : this.parseIdentifier();\n\n this.checkLVal(specifier.local, contextDescription, BIND_LEXICAL);\n node.specifiers.push(this.finishNode(specifier, type));\n }\n\n // parse typeof and type imports\n maybeParseDefaultImportSpecifier(node: N.ImportDeclaration): boolean {\n node.importKind = \"value\";\n\n let kind = null;\n if (this.match(tt._typeof)) {\n kind = \"typeof\";\n } else if (this.isContextual(\"type\")) {\n kind = \"type\";\n }\n if (kind) {\n const lh = this.lookahead();\n\n // import type * is not allowed\n if (kind === \"type\" && lh.type === tt.star) {\n this.unexpected(lh.start);\n }\n\n if (\n isMaybeDefaultImport(lh) ||\n lh.type === tt.braceL ||\n lh.type === tt.star\n ) {\n this.next();\n node.importKind = kind;\n }\n }\n\n return super.maybeParseDefaultImportSpecifier(node);\n }\n\n // parse import-type/typeof shorthand\n parseImportSpecifier(node: N.ImportDeclaration): void {\n const specifier = this.startNode();\n const firstIdentLoc = this.state.start;\n const firstIdent = this.parseModuleExportName();\n\n let specifierTypeKind = null;\n if (firstIdent.type === \"Identifier\") {\n if (firstIdent.name === \"type\") {\n specifierTypeKind = \"type\";\n } else if (firstIdent.name === \"typeof\") {\n specifierTypeKind = \"typeof\";\n }\n }\n\n let isBinding = false;\n if (this.isContextual(\"as\") && !this.isLookaheadContextual(\"as\")) {\n const as_ident = this.parseIdentifier(true);\n if (\n specifierTypeKind !== null &&\n !this.match(tt.name) &&\n !this.state.type.keyword\n ) {\n // `import {type as ,` or `import {type as }`\n specifier.imported = as_ident;\n specifier.importKind = specifierTypeKind;\n specifier.local = as_ident.__clone();\n } else {\n // `import {type as foo`\n specifier.imported = firstIdent;\n specifier.importKind = null;\n specifier.local = this.parseIdentifier();\n }\n } else if (\n specifierTypeKind !== null &&\n (this.match(tt.name) || this.state.type.keyword)\n ) {\n // `import {type foo`\n specifier.imported = this.parseIdentifier(true);\n specifier.importKind = specifierTypeKind;\n if (this.eatContextual(\"as\")) {\n specifier.local = this.parseIdentifier();\n } else {\n isBinding = true;\n specifier.local = specifier.imported.__clone();\n }\n } else {\n if (firstIdent.type === \"StringLiteral\") {\n throw this.raise(\n specifier.start,\n Errors.ImportBindingIsString,\n firstIdent.value,\n );\n }\n isBinding = true;\n specifier.imported = firstIdent;\n specifier.importKind = null;\n specifier.local = specifier.imported.__clone();\n }\n\n const nodeIsTypeImport = hasTypeImportKind(node);\n const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n if (nodeIsTypeImport && specifierIsTypeImport) {\n this.raise(\n firstIdentLoc,\n FlowErrors.ImportTypeShorthandOnlyInPureImport,\n );\n }\n\n if (nodeIsTypeImport || specifierIsTypeImport) {\n this.checkReservedType(\n specifier.local.name,\n specifier.local.start,\n /* declaration */ true,\n );\n }\n\n if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) {\n this.checkReservedWord(\n specifier.local.name,\n specifier.start,\n true,\n true,\n );\n }\n\n this.checkLVal(specifier.local, \"import specifier\", BIND_LEXICAL);\n node.specifiers.push(this.finishNode(specifier, \"ImportSpecifier\"));\n }\n\n parseBindingAtom(): N.Pattern {\n switch (this.state.type) {\n case tt._this:\n // \"this\" may be the name of a parameter, so allow it.\n return this.parseIdentifier(/* liberal */ true);\n default:\n return super.parseBindingAtom();\n }\n }\n\n // parse function type parameters - function foo() {}\n parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n // $FlowFixMe\n const kind = node.kind;\n if (kind !== \"get\" && kind !== \"set\" && this.isRelational(\"<\")) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.parseFunctionParams(node, allowModifiers);\n }\n\n // parse flow type annotations on variable declarator heads - let foo: string = bar\n parseVarId(\n decl: N.VariableDeclarator,\n kind: \"var\" | \"let\" | \"const\",\n ): void {\n super.parseVarId(decl, kind);\n if (this.match(tt.colon)) {\n decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(decl.id); // set end position to end of type\n }\n }\n\n // parse the return type of an async arrow function - let foo = (async (): number => {});\n parseAsyncArrowFromCallExpression(\n node: N.ArrowFunctionExpression,\n call: N.CallExpression,\n ): N.ArrowFunctionExpression {\n if (this.match(tt.colon)) {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n node.returnType = this.flowParseTypeAnnotation();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n }\n\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n\n // todo description\n shouldParseAsyncArrow(): boolean {\n return this.match(tt.colon) || super.shouldParseAsyncArrow();\n }\n\n // We need to support type parameter declarations for arrow functions. This\n // is tricky. There are three situations we need to handle\n //\n // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n // fails, we'll try an arrow function. If that fails, we'll throw the JSX\n // error.\n // 2. This is an arrow function. We'll parse the type parameter declaration,\n // parse the rest, make sure the rest is an arrow function, and go from\n // there\n // 3. This is neither. Just call the super method\n parseMaybeAssign(\n refExpressionErrors?: ?ExpressionErrors,\n afterLeftParse?: Function,\n refNeedsArrowPos?: ?Pos,\n ): N.Expression {\n let state = null;\n\n let jsx;\n\n if (\n this.hasPlugin(\"jsx\") &&\n (this.match(tt.jsxTagStart) || this.isRelational(\"<\"))\n ) {\n state = this.state.clone();\n\n jsx = this.tryParse(\n () =>\n super.parseMaybeAssign(\n refExpressionErrors,\n afterLeftParse,\n refNeedsArrowPos,\n ),\n state,\n );\n /*:: invariant(!jsx.aborted) */\n\n if (!jsx.error) return jsx.node;\n\n // Remove `tc.j_expr` and `tc.j_oTag` from context added\n // by parsing `jsxTagStart` to stop the JSX plugin from\n // messing with the tokens\n const { context } = this.state;\n if (context[context.length - 1] === tc.j_oTag) {\n context.length -= 2;\n } else if (context[context.length - 1] === tc.j_expr) {\n context.length -= 1;\n }\n }\n\n if (jsx?.error || this.isRelational(\"<\")) {\n state = state || this.state.clone();\n\n let typeParameters;\n\n const arrow = this.tryParse(abort => {\n typeParameters = this.flowParseTypeParameterDeclaration();\n\n const arrowExpression = this.forwardNoArrowParamsConversionAt(\n typeParameters,\n () => {\n const result = super.parseMaybeAssign(\n refExpressionErrors,\n afterLeftParse,\n refNeedsArrowPos,\n );\n\n this.resetStartLocationFromNode(result, typeParameters);\n\n return result;\n },\n );\n\n // (() => {}: any);\n if (\n arrowExpression.type !== \"ArrowFunctionExpression\" &&\n arrowExpression.extra?.parenthesized\n ) {\n abort();\n }\n\n // The above can return a TypeCastExpression when the arrow\n // expression is not wrapped in parens. See also `this.parseParenItem`.\n const expr = this.maybeUnwrapTypeCastExpression(arrowExpression);\n expr.typeParameters = typeParameters;\n this.resetStartLocationFromNode(expr, typeParameters);\n\n return arrowExpression;\n }, state);\n\n let arrowExpression: ?(\n | N.ArrowFunctionExpression\n | N.TypeCastExpression\n ) = null;\n\n if (\n arrow.node &&\n this.maybeUnwrapTypeCastExpression(arrow.node).type ===\n \"ArrowFunctionExpression\"\n ) {\n if (!arrow.error && !arrow.aborted) {\n // async () => {}\n if (arrow.node.async) {\n /*:: invariant(typeParameters) */\n this.raise(\n typeParameters.start,\n FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction,\n );\n }\n\n return arrow.node;\n }\n\n arrowExpression = arrow.node;\n }\n\n // If we are here, both JSX and Flow parsing attempts failed.\n // Give the precedence to the JSX error, except if JSX had an\n // unrecoverable error while Flow didn't.\n // If the error is recoverable, we can only re-report it if there is\n // a node we can return.\n\n if (jsx?.node) {\n /*:: invariant(jsx.failState) */\n this.state = jsx.failState;\n return jsx.node;\n }\n\n if (arrowExpression) {\n /*:: invariant(arrow.failState) */\n this.state = arrow.failState;\n return arrowExpression;\n }\n\n if (jsx?.thrown) throw jsx.error;\n if (arrow.thrown) throw arrow.error;\n\n /*:: invariant(typeParameters) */\n throw this.raise(\n typeParameters.start,\n FlowErrors.UnexpectedTokenAfterTypeParameter,\n );\n }\n\n return super.parseMaybeAssign(\n refExpressionErrors,\n afterLeftParse,\n refNeedsArrowPos,\n );\n }\n\n // handle return types for arrow functions\n parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n if (this.match(tt.colon)) {\n const result = this.tryParse(() => {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n\n const typeNode = this.startNode();\n\n [\n // $FlowFixMe (destructuring not supported yet)\n typeNode.typeAnnotation,\n // $FlowFixMe (destructuring not supported yet)\n node.predicate,\n ] = this.flowParseTypeAndPredicateInitialiser();\n\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n if (this.canInsertSemicolon()) this.unexpected();\n if (!this.match(tt.arrow)) this.unexpected();\n\n return typeNode;\n });\n\n if (result.thrown) return null;\n /*:: invariant(result.node) */\n\n if (result.error) this.state = result.failState;\n\n // assign after it is clear it is an arrow\n node.returnType = result.node.typeAnnotation\n ? this.finishNode(result.node, \"TypeAnnotation\")\n : null;\n }\n\n return super.parseArrow(node);\n }\n\n shouldParseArrow(): boolean {\n return this.match(tt.colon) || super.shouldParseArrow();\n }\n\n setArrowFunctionParameters(\n node: N.ArrowFunctionExpression,\n params: N.Expression[],\n ): void {\n if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n node.params = params;\n } else {\n super.setArrowFunctionParameters(node, params);\n }\n }\n\n checkParams(\n node: N.Function,\n allowDuplicates: boolean,\n isArrowFunction: ?boolean,\n ): void {\n if (\n isArrowFunction &&\n this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1\n ) {\n return;\n }\n\n // ensure the `this` param is first, if it exists\n for (let i = 0; i < node.params.length; i++) {\n if (this.isThisParam(node.params[i]) && i > 0) {\n this.raise(node.params[i].start, FlowErrors.ThisParamMustBeFirst);\n }\n }\n\n return super.checkParams(...arguments);\n }\n\n parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n return super.parseParenAndDistinguishExpression(\n canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1,\n );\n }\n\n parseSubscripts(\n base: N.Expression,\n startPos: number,\n startLoc: Position,\n noCalls?: ?boolean,\n ): N.Expression {\n if (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.state.noArrowAt.indexOf(startPos) !== -1\n ) {\n this.next();\n\n const node = this.startNodeAt(startPos, startLoc);\n node.callee = base;\n node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n base = this.finishNode(node, \"CallExpression\");\n } else if (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.isRelational(\"<\")\n ) {\n const state = this.state.clone();\n const arrow = this.tryParse(\n abort =>\n this.parseAsyncArrowWithTypeParameters(startPos, startLoc) ||\n abort(),\n state,\n );\n\n if (!arrow.error && !arrow.aborted) return arrow.node;\n\n const result = this.tryParse(\n () => super.parseSubscripts(base, startPos, startLoc, noCalls),\n state,\n );\n\n if (result.node && !result.error) return result.node;\n\n if (arrow.node) {\n this.state = arrow.failState;\n return arrow.node;\n }\n\n if (result.node) {\n this.state = result.failState;\n return result.node;\n }\n\n throw arrow.error || result.error;\n }\n\n return super.parseSubscripts(base, startPos, startLoc, noCalls);\n }\n\n parseSubscript(\n base: N.Expression,\n startPos: number,\n startLoc: Position,\n noCalls: ?boolean,\n subscriptState: N.ParseSubscriptState,\n ): N.Expression {\n if (this.match(tt.questionDot) && this.isLookaheadToken_lt()) {\n subscriptState.optionalChainMember = true;\n if (noCalls) {\n subscriptState.stop = true;\n return base;\n }\n this.next();\n const node: N.OptionalCallExpression = this.startNodeAt(\n startPos,\n startLoc,\n );\n node.callee = base;\n node.typeArguments = this.flowParseTypeParameterInstantiation();\n this.expect(tt.parenL);\n // $FlowFixMe\n node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n node.optional = true;\n return this.finishCallExpression(node, /* optional */ true);\n } else if (\n !noCalls &&\n this.shouldParseTypes() &&\n this.isRelational(\"<\")\n ) {\n const node = this.startNodeAt(startPos, startLoc);\n node.callee = base;\n\n const result = this.tryParse(() => {\n node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew();\n this.expect(tt.parenL);\n node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n if (subscriptState.optionalChainMember) node.optional = false;\n return this.finishCallExpression(\n node,\n subscriptState.optionalChainMember,\n );\n });\n\n if (result.node) {\n if (result.error) this.state = result.failState;\n return result.node;\n }\n }\n\n return super.parseSubscript(\n base,\n startPos,\n startLoc,\n noCalls,\n subscriptState,\n );\n }\n\n parseNewArguments(node: N.NewExpression): void {\n let targs = null;\n if (this.shouldParseTypes() && this.isRelational(\"<\")) {\n targs = this.tryParse(() =>\n this.flowParseTypeParameterInstantiationCallOrNew(),\n ).node;\n }\n node.typeArguments = targs;\n\n super.parseNewArguments(node);\n }\n\n parseAsyncArrowWithTypeParameters(\n startPos: number,\n startLoc: Position,\n ): ?N.ArrowFunctionExpression {\n const node = this.startNodeAt(startPos, startLoc);\n this.parseFunctionParams(node);\n if (!this.parseArrow(node)) return;\n return this.parseArrowExpression(\n node,\n /* params */ undefined,\n /* isAsync */ true,\n );\n }\n\n readToken_mult_modulo(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (\n code === charCodes.asterisk &&\n next === charCodes.slash &&\n this.state.hasFlowComment\n ) {\n this.state.hasFlowComment = false;\n this.state.pos += 2;\n this.nextToken();\n return;\n }\n\n super.readToken_mult_modulo(code);\n }\n\n readToken_pipe_amp(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (\n code === charCodes.verticalBar &&\n next === charCodes.rightCurlyBrace\n ) {\n // '|}'\n this.finishOp(tt.braceBarR, 2);\n return;\n }\n\n super.readToken_pipe_amp(code);\n }\n\n parseTopLevel(file: N.File, program: N.Program): N.File {\n const fileNode = super.parseTopLevel(file, program);\n if (this.state.hasFlowComment) {\n this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment);\n }\n return fileNode;\n }\n\n skipBlockComment(): void {\n if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n if (this.state.hasFlowComment) {\n this.unexpected(null, FlowErrors.NestedFlowComment);\n }\n this.hasFlowCommentCompletion();\n this.state.pos += this.skipFlowComment();\n this.state.hasFlowComment = true;\n return;\n }\n\n if (this.state.hasFlowComment) {\n const end = this.input.indexOf(\"*-/\", (this.state.pos += 2));\n if (end === -1) {\n throw this.raise(this.state.pos - 2, Errors.UnterminatedComment);\n }\n this.state.pos = end + 3;\n return;\n }\n\n super.skipBlockComment();\n }\n\n skipFlowComment(): number | boolean {\n const { pos } = this.state;\n let shiftToFirstNonWhiteSpace = 2;\n while (\n [charCodes.space, charCodes.tab].includes(\n this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n )\n ) {\n shiftToFirstNonWhiteSpace++;\n }\n\n const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n return shiftToFirstNonWhiteSpace + 2; // check for /*::\n }\n if (\n this.input.slice(\n shiftToFirstNonWhiteSpace + pos,\n shiftToFirstNonWhiteSpace + pos + 12,\n ) === \"flow-include\"\n ) {\n return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n }\n if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n }\n return false;\n }\n\n hasFlowCommentCompletion(): void {\n const end = this.input.indexOf(\"*/\", this.state.pos);\n if (end === -1) {\n throw this.raise(this.state.pos, Errors.UnterminatedComment);\n }\n }\n\n // Flow enum parsing\n\n flowEnumErrorBooleanMemberNotInitialized(\n pos: number,\n { enumName, memberName }: { enumName: string, memberName: string },\n ): void {\n this.raise(\n pos,\n FlowErrors.EnumBooleanMemberNotInitialized,\n memberName,\n enumName,\n );\n }\n\n flowEnumErrorInvalidMemberName(\n pos: number,\n { enumName, memberName }: { enumName: string, memberName: string },\n ): void {\n const suggestion = memberName[0].toUpperCase() + memberName.slice(1);\n this.raise(\n pos,\n FlowErrors.EnumInvalidMemberName,\n memberName,\n suggestion,\n enumName,\n );\n }\n\n flowEnumErrorDuplicateMemberName(\n pos: number,\n { enumName, memberName }: { enumName: string, memberName: string },\n ): void {\n this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName);\n }\n\n flowEnumErrorInconsistentMemberValues(\n pos: number,\n { enumName }: { enumName: string },\n ): void {\n this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName);\n }\n\n flowEnumErrorInvalidExplicitType(\n pos: number,\n {\n enumName,\n suppliedType,\n }: { enumName: string, suppliedType: null | string },\n ) {\n return this.raise(\n pos,\n suppliedType === null\n ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied\n : FlowErrors.EnumInvalidExplicitType,\n enumName,\n suppliedType,\n );\n }\n\n flowEnumErrorInvalidMemberInitializer(\n pos: number,\n { enumName, explicitType, memberName }: EnumContext,\n ) {\n let message = null;\n switch (explicitType) {\n case \"boolean\":\n case \"number\":\n case \"string\":\n message = FlowErrors.EnumInvalidMemberInitializerPrimaryType;\n break;\n case \"symbol\":\n message = FlowErrors.EnumInvalidMemberInitializerSymbolType;\n break;\n default:\n // null\n message = FlowErrors.EnumInvalidMemberInitializerUnknownType;\n }\n return this.raise(pos, message, enumName, memberName, explicitType);\n }\n\n flowEnumErrorNumberMemberNotInitialized(\n pos: number,\n { enumName, memberName }: { enumName: string, memberName: string },\n ): void {\n this.raise(\n pos,\n FlowErrors.EnumNumberMemberNotInitialized,\n enumName,\n memberName,\n );\n }\n\n flowEnumErrorStringMemberInconsistentlyInitailized(\n pos: number,\n { enumName }: { enumName: string },\n ): void {\n this.raise(\n pos,\n FlowErrors.EnumStringMemberInconsistentlyInitailized,\n enumName,\n );\n }\n\n flowEnumMemberInit(): EnumMemberInit {\n const startPos = this.state.start;\n const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n switch (this.state.type) {\n case tt.num: {\n const literal = this.parseLiteral(this.state.value, \"NumericLiteral\");\n if (endOfInit()) {\n return { type: \"number\", pos: literal.start, value: literal };\n }\n return { type: \"invalid\", pos: startPos };\n }\n case tt.string: {\n const literal = this.parseLiteral(this.state.value, \"StringLiteral\");\n if (endOfInit()) {\n return { type: \"string\", pos: literal.start, value: literal };\n }\n return { type: \"invalid\", pos: startPos };\n }\n case tt._true:\n case tt._false: {\n const literal = this.parseBooleanLiteral();\n if (endOfInit()) {\n return {\n type: \"boolean\",\n pos: literal.start,\n value: literal,\n };\n }\n return { type: \"invalid\", pos: startPos };\n }\n default:\n return { type: \"invalid\", pos: startPos };\n }\n }\n\n flowEnumMemberRaw(): { id: N.Node, init: EnumMemberInit } {\n const pos = this.state.start;\n const id = this.parseIdentifier(true);\n const init = this.eat(tt.eq)\n ? this.flowEnumMemberInit()\n : { type: \"none\", pos };\n return { id, init };\n }\n\n flowEnumCheckExplicitTypeMismatch(\n pos: number,\n context: EnumContext,\n expectedType: EnumExplicitType,\n ): void {\n const { explicitType } = context;\n if (explicitType === null) {\n return;\n }\n if (explicitType !== expectedType) {\n this.flowEnumErrorInvalidMemberInitializer(pos, context);\n }\n }\n\n flowEnumMembers({\n enumName,\n explicitType,\n }: {\n enumName: string,\n explicitType: EnumExplicitType,\n }): {|\n members: {|\n booleanMembers: Array,\n numberMembers: Array,\n stringMembers: Array,\n defaultedMembers: Array,\n |},\n hasUnknownMembers: boolean,\n |} {\n const seenNames = new Set();\n const members = {\n booleanMembers: [],\n numberMembers: [],\n stringMembers: [],\n defaultedMembers: [],\n };\n let hasUnknownMembers = false;\n while (!this.match(tt.braceR)) {\n if (this.eat(tt.ellipsis)) {\n hasUnknownMembers = true;\n break;\n }\n const memberNode = this.startNode();\n const { id, init } = this.flowEnumMemberRaw();\n const memberName = id.name;\n if (memberName === \"\") {\n continue;\n }\n if (/^[a-z]/.test(memberName)) {\n this.flowEnumErrorInvalidMemberName(id.start, {\n enumName,\n memberName,\n });\n }\n if (seenNames.has(memberName)) {\n this.flowEnumErrorDuplicateMemberName(id.start, {\n enumName,\n memberName,\n });\n }\n seenNames.add(memberName);\n const context = { enumName, explicitType, memberName };\n memberNode.id = id;\n switch (init.type) {\n case \"boolean\": {\n this.flowEnumCheckExplicitTypeMismatch(\n init.pos,\n context,\n \"boolean\",\n );\n memberNode.init = init.value;\n members.booleanMembers.push(\n this.finishNode(memberNode, \"EnumBooleanMember\"),\n );\n break;\n }\n case \"number\": {\n this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"number\");\n memberNode.init = init.value;\n members.numberMembers.push(\n this.finishNode(memberNode, \"EnumNumberMember\"),\n );\n break;\n }\n case \"string\": {\n this.flowEnumCheckExplicitTypeMismatch(init.pos, context, \"string\");\n memberNode.init = init.value;\n members.stringMembers.push(\n this.finishNode(memberNode, \"EnumStringMember\"),\n );\n break;\n }\n case \"invalid\": {\n throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context);\n }\n case \"none\": {\n switch (explicitType) {\n case \"boolean\":\n this.flowEnumErrorBooleanMemberNotInitialized(\n init.pos,\n context,\n );\n break;\n case \"number\":\n this.flowEnumErrorNumberMemberNotInitialized(init.pos, context);\n break;\n default:\n members.defaultedMembers.push(\n this.finishNode(memberNode, \"EnumDefaultedMember\"),\n );\n }\n }\n }\n\n if (!this.match(tt.braceR)) {\n this.expect(tt.comma);\n }\n }\n return { members, hasUnknownMembers };\n }\n\n flowEnumStringMembers(\n initializedMembers: Array,\n defaultedMembers: Array,\n { enumName }: { enumName: string },\n ): Array {\n if (initializedMembers.length === 0) {\n return defaultedMembers;\n } else if (defaultedMembers.length === 0) {\n return initializedMembers;\n } else if (defaultedMembers.length > initializedMembers.length) {\n for (const member of initializedMembers) {\n this.flowEnumErrorStringMemberInconsistentlyInitailized(\n member.start,\n { enumName },\n );\n }\n return defaultedMembers;\n } else {\n for (const member of defaultedMembers) {\n this.flowEnumErrorStringMemberInconsistentlyInitailized(\n member.start,\n { enumName },\n );\n }\n return initializedMembers;\n }\n }\n\n flowEnumParseExplicitType({\n enumName,\n }: {\n enumName: string,\n }): EnumExplicitType {\n if (this.eatContextual(\"of\")) {\n if (!this.match(tt.name)) {\n throw this.flowEnumErrorInvalidExplicitType(this.state.start, {\n enumName,\n suppliedType: null,\n });\n }\n\n const { value } = this.state;\n this.next();\n\n if (\n value !== \"boolean\" &&\n value !== \"number\" &&\n value !== \"string\" &&\n value !== \"symbol\"\n ) {\n this.flowEnumErrorInvalidExplicitType(this.state.start, {\n enumName,\n suppliedType: value,\n });\n }\n\n return value;\n }\n return null;\n }\n\n flowEnumBody(node: N.Node, { enumName, nameLoc }): N.Node {\n const explicitType = this.flowEnumParseExplicitType({ enumName });\n this.expect(tt.braceL);\n const { members, hasUnknownMembers } = this.flowEnumMembers({\n enumName,\n explicitType,\n });\n node.hasUnknownMembers = hasUnknownMembers;\n\n switch (explicitType) {\n case \"boolean\":\n node.explicitType = true;\n node.members = members.booleanMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumBooleanBody\");\n case \"number\":\n node.explicitType = true;\n node.members = members.numberMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumNumberBody\");\n case \"string\":\n node.explicitType = true;\n node.members = this.flowEnumStringMembers(\n members.stringMembers,\n members.defaultedMembers,\n { enumName },\n );\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n case \"symbol\":\n node.members = members.defaultedMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumSymbolBody\");\n default: {\n // `explicitType` is `null`\n const empty = () => {\n node.members = [];\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n };\n node.explicitType = false;\n\n const boolsLen = members.booleanMembers.length;\n const numsLen = members.numberMembers.length;\n const strsLen = members.stringMembers.length;\n const defaultedLen = members.defaultedMembers.length;\n\n if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n return empty();\n } else if (!boolsLen && !numsLen) {\n node.members = this.flowEnumStringMembers(\n members.stringMembers,\n members.defaultedMembers,\n { enumName },\n );\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorBooleanMemberNotInitialized(member.start, {\n enumName,\n memberName: member.id.name,\n });\n }\n node.members = members.booleanMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumBooleanBody\");\n } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) {\n for (const member of members.defaultedMembers) {\n this.flowEnumErrorNumberMemberNotInitialized(member.start, {\n enumName,\n memberName: member.id.name,\n });\n }\n node.members = members.numberMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumNumberBody\");\n } else {\n this.flowEnumErrorInconsistentMemberValues(nameLoc, { enumName });\n return empty();\n }\n }\n }\n }\n\n flowParseEnumDeclaration(node: N.Node): N.Node {\n const id = this.parseIdentifier();\n node.id = id;\n node.body = this.flowEnumBody(this.startNode(), {\n enumName: id.name,\n nameLoc: id.start,\n });\n return this.finishNode(node, \"EnumDeclaration\");\n }\n\n updateContext(prevType: TokenType): void {\n if (\n this.match(tt.name) &&\n this.state.value === \"of\" &&\n prevType === tt.name &&\n this.input.slice(this.state.lastTokStart, this.state.lastTokEnd) ===\n \"interface\"\n ) {\n this.state.exprAllowed = false;\n } else {\n super.updateContext(prevType);\n }\n }\n\n // check if the next token is a tt.relation(\"<\")\n isLookaheadToken_lt(): boolean {\n const next = this.nextTokenStart();\n if (this.input.charCodeAt(next) === charCodes.lessThan) {\n const afterNext = this.input.charCodeAt(next + 1);\n return (\n afterNext !== charCodes.lessThan && afterNext !== charCodes.equalsTo\n );\n }\n return false;\n }\n\n maybeUnwrapTypeCastExpression(node: N.Node) {\n return node.type === \"TypeCastExpression\" ? node.expression : node;\n }\n };\n","// @flow\n\nconst entities: { [name: string]: string } = {\n quot: \"\\u0022\",\n amp: \"&\",\n apos: \"\\u0027\",\n lt: \"<\",\n gt: \">\",\n nbsp: \"\\u00A0\",\n iexcl: \"\\u00A1\",\n cent: \"\\u00A2\",\n pound: \"\\u00A3\",\n curren: \"\\u00A4\",\n yen: \"\\u00A5\",\n brvbar: \"\\u00A6\",\n sect: \"\\u00A7\",\n uml: \"\\u00A8\",\n copy: \"\\u00A9\",\n ordf: \"\\u00AA\",\n laquo: \"\\u00AB\",\n not: \"\\u00AC\",\n shy: \"\\u00AD\",\n reg: \"\\u00AE\",\n macr: \"\\u00AF\",\n deg: \"\\u00B0\",\n plusmn: \"\\u00B1\",\n sup2: \"\\u00B2\",\n sup3: \"\\u00B3\",\n acute: \"\\u00B4\",\n micro: \"\\u00B5\",\n para: \"\\u00B6\",\n middot: \"\\u00B7\",\n cedil: \"\\u00B8\",\n sup1: \"\\u00B9\",\n ordm: \"\\u00BA\",\n raquo: \"\\u00BB\",\n frac14: \"\\u00BC\",\n frac12: \"\\u00BD\",\n frac34: \"\\u00BE\",\n iquest: \"\\u00BF\",\n Agrave: \"\\u00C0\",\n Aacute: \"\\u00C1\",\n Acirc: \"\\u00C2\",\n Atilde: \"\\u00C3\",\n Auml: \"\\u00C4\",\n Aring: \"\\u00C5\",\n AElig: \"\\u00C6\",\n Ccedil: \"\\u00C7\",\n Egrave: \"\\u00C8\",\n Eacute: \"\\u00C9\",\n Ecirc: \"\\u00CA\",\n Euml: \"\\u00CB\",\n Igrave: \"\\u00CC\",\n Iacute: \"\\u00CD\",\n Icirc: \"\\u00CE\",\n Iuml: \"\\u00CF\",\n ETH: \"\\u00D0\",\n Ntilde: \"\\u00D1\",\n Ograve: \"\\u00D2\",\n Oacute: \"\\u00D3\",\n Ocirc: \"\\u00D4\",\n Otilde: \"\\u00D5\",\n Ouml: \"\\u00D6\",\n times: \"\\u00D7\",\n Oslash: \"\\u00D8\",\n Ugrave: \"\\u00D9\",\n Uacute: \"\\u00DA\",\n Ucirc: \"\\u00DB\",\n Uuml: \"\\u00DC\",\n Yacute: \"\\u00DD\",\n THORN: \"\\u00DE\",\n szlig: \"\\u00DF\",\n agrave: \"\\u00E0\",\n aacute: \"\\u00E1\",\n acirc: \"\\u00E2\",\n atilde: \"\\u00E3\",\n auml: \"\\u00E4\",\n aring: \"\\u00E5\",\n aelig: \"\\u00E6\",\n ccedil: \"\\u00E7\",\n egrave: \"\\u00E8\",\n eacute: \"\\u00E9\",\n ecirc: \"\\u00EA\",\n euml: \"\\u00EB\",\n igrave: \"\\u00EC\",\n iacute: \"\\u00ED\",\n icirc: \"\\u00EE\",\n iuml: \"\\u00EF\",\n eth: \"\\u00F0\",\n ntilde: \"\\u00F1\",\n ograve: \"\\u00F2\",\n oacute: \"\\u00F3\",\n ocirc: \"\\u00F4\",\n otilde: \"\\u00F5\",\n ouml: \"\\u00F6\",\n divide: \"\\u00F7\",\n oslash: \"\\u00F8\",\n ugrave: \"\\u00F9\",\n uacute: \"\\u00FA\",\n ucirc: \"\\u00FB\",\n uuml: \"\\u00FC\",\n yacute: \"\\u00FD\",\n thorn: \"\\u00FE\",\n yuml: \"\\u00FF\",\n OElig: \"\\u0152\",\n oelig: \"\\u0153\",\n Scaron: \"\\u0160\",\n scaron: \"\\u0161\",\n Yuml: \"\\u0178\",\n fnof: \"\\u0192\",\n circ: \"\\u02C6\",\n tilde: \"\\u02DC\",\n Alpha: \"\\u0391\",\n Beta: \"\\u0392\",\n Gamma: \"\\u0393\",\n Delta: \"\\u0394\",\n Epsilon: \"\\u0395\",\n Zeta: \"\\u0396\",\n Eta: \"\\u0397\",\n Theta: \"\\u0398\",\n Iota: \"\\u0399\",\n Kappa: \"\\u039A\",\n Lambda: \"\\u039B\",\n Mu: \"\\u039C\",\n Nu: \"\\u039D\",\n Xi: \"\\u039E\",\n Omicron: \"\\u039F\",\n Pi: \"\\u03A0\",\n Rho: \"\\u03A1\",\n Sigma: \"\\u03A3\",\n Tau: \"\\u03A4\",\n Upsilon: \"\\u03A5\",\n Phi: \"\\u03A6\",\n Chi: \"\\u03A7\",\n Psi: \"\\u03A8\",\n Omega: \"\\u03A9\",\n alpha: \"\\u03B1\",\n beta: \"\\u03B2\",\n gamma: \"\\u03B3\",\n delta: \"\\u03B4\",\n epsilon: \"\\u03B5\",\n zeta: \"\\u03B6\",\n eta: \"\\u03B7\",\n theta: \"\\u03B8\",\n iota: \"\\u03B9\",\n kappa: \"\\u03BA\",\n lambda: \"\\u03BB\",\n mu: \"\\u03BC\",\n nu: \"\\u03BD\",\n xi: \"\\u03BE\",\n omicron: \"\\u03BF\",\n pi: \"\\u03C0\",\n rho: \"\\u03C1\",\n sigmaf: \"\\u03C2\",\n sigma: \"\\u03C3\",\n tau: \"\\u03C4\",\n upsilon: \"\\u03C5\",\n phi: \"\\u03C6\",\n chi: \"\\u03C7\",\n psi: \"\\u03C8\",\n omega: \"\\u03C9\",\n thetasym: \"\\u03D1\",\n upsih: \"\\u03D2\",\n piv: \"\\u03D6\",\n ensp: \"\\u2002\",\n emsp: \"\\u2003\",\n thinsp: \"\\u2009\",\n zwnj: \"\\u200C\",\n zwj: \"\\u200D\",\n lrm: \"\\u200E\",\n rlm: \"\\u200F\",\n ndash: \"\\u2013\",\n mdash: \"\\u2014\",\n lsquo: \"\\u2018\",\n rsquo: \"\\u2019\",\n sbquo: \"\\u201A\",\n ldquo: \"\\u201C\",\n rdquo: \"\\u201D\",\n bdquo: \"\\u201E\",\n dagger: \"\\u2020\",\n Dagger: \"\\u2021\",\n bull: \"\\u2022\",\n hellip: \"\\u2026\",\n permil: \"\\u2030\",\n prime: \"\\u2032\",\n Prime: \"\\u2033\",\n lsaquo: \"\\u2039\",\n rsaquo: \"\\u203A\",\n oline: \"\\u203E\",\n frasl: \"\\u2044\",\n euro: \"\\u20AC\",\n image: \"\\u2111\",\n weierp: \"\\u2118\",\n real: \"\\u211C\",\n trade: \"\\u2122\",\n alefsym: \"\\u2135\",\n larr: \"\\u2190\",\n uarr: \"\\u2191\",\n rarr: \"\\u2192\",\n darr: \"\\u2193\",\n harr: \"\\u2194\",\n crarr: \"\\u21B5\",\n lArr: \"\\u21D0\",\n uArr: \"\\u21D1\",\n rArr: \"\\u21D2\",\n dArr: \"\\u21D3\",\n hArr: \"\\u21D4\",\n forall: \"\\u2200\",\n part: \"\\u2202\",\n exist: \"\\u2203\",\n empty: \"\\u2205\",\n nabla: \"\\u2207\",\n isin: \"\\u2208\",\n notin: \"\\u2209\",\n ni: \"\\u220B\",\n prod: \"\\u220F\",\n sum: \"\\u2211\",\n minus: \"\\u2212\",\n lowast: \"\\u2217\",\n radic: \"\\u221A\",\n prop: \"\\u221D\",\n infin: \"\\u221E\",\n ang: \"\\u2220\",\n and: \"\\u2227\",\n or: \"\\u2228\",\n cap: \"\\u2229\",\n cup: \"\\u222A\",\n int: \"\\u222B\",\n there4: \"\\u2234\",\n sim: \"\\u223C\",\n cong: \"\\u2245\",\n asymp: \"\\u2248\",\n ne: \"\\u2260\",\n equiv: \"\\u2261\",\n le: \"\\u2264\",\n ge: \"\\u2265\",\n sub: \"\\u2282\",\n sup: \"\\u2283\",\n nsub: \"\\u2284\",\n sube: \"\\u2286\",\n supe: \"\\u2287\",\n oplus: \"\\u2295\",\n otimes: \"\\u2297\",\n perp: \"\\u22A5\",\n sdot: \"\\u22C5\",\n lceil: \"\\u2308\",\n rceil: \"\\u2309\",\n lfloor: \"\\u230A\",\n rfloor: \"\\u230B\",\n lang: \"\\u2329\",\n rang: \"\\u232A\",\n loz: \"\\u25CA\",\n spades: \"\\u2660\",\n clubs: \"\\u2663\",\n hearts: \"\\u2665\",\n diams: \"\\u2666\",\n};\nexport default entities;\n","// @flow\n\n// Error messages are colocated with the plugin.\n/* eslint-disable @babel/development-internal/dry-error-messages */\n\nimport * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml\";\nimport type Parser from \"../../parser\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { TokenType, types as tt } from \"../../tokenizer/types\";\nimport { TokContext, types as tc } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier\";\nimport type { Position } from \"../../util/location\";\nimport { isNewLine } from \"../../util/whitespace\";\nimport { Errors } from \"../../parser/error\";\n\nconst HEX_NUMBER = /^[\\da-fA-F]+$/;\nconst DECIMAL_NUMBER = /^\\d+$/;\n\n/* eslint sort-keys: \"error\" */\nconst JsxErrors = Object.freeze({\n AttributeIsEmpty:\n \"JSX attributes must only be assigned a non-empty expression\",\n MissingClosingTagElement: \"Expected corresponding JSX closing tag for <%0>\",\n MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>\",\n UnexpectedSequenceExpression:\n \"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?\",\n UnsupportedJsxValue:\n \"JSX value should be either an expression or a quoted JSX text\",\n UnterminatedJsxContent: \"Unterminated JSX contents\",\n UnwrappedAdjacentJSXElements:\n \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?\",\n});\n/* eslint-disable sort-keys */\n\n// Be aware that this file is always executed and not only when the plugin is enabled.\n// Therefore this contexts and tokens do always exist.\ntc.j_oTag = new TokContext(\"...\", true, true);\n\ntt.jsxName = new TokenType(\"jsxName\");\ntt.jsxText = new TokenType(\"jsxText\", { beforeExpr: true });\ntt.jsxTagStart = new TokenType(\"jsxTagStart\", { startsExpr: true });\ntt.jsxTagEnd = new TokenType(\"jsxTagEnd\");\n\ntt.jsxTagStart.updateContext = function () {\n this.state.context.push(tc.j_expr); // treat as beginning of JSX expression\n this.state.context.push(tc.j_oTag); // start opening tag context\n this.state.exprAllowed = false;\n};\n\ntt.jsxTagEnd.updateContext = function (prevType) {\n const out = this.state.context.pop();\n if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n this.state.context.pop();\n this.state.exprAllowed = this.curContext() === tc.j_expr;\n } else {\n this.state.exprAllowed = true;\n }\n};\n\nfunction isFragment(object: ?N.JSXElement): boolean {\n return object\n ? object.type === \"JSXOpeningFragment\" ||\n object.type === \"JSXClosingFragment\"\n : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n if (object.type === \"JSXIdentifier\") {\n return object.name;\n }\n\n if (object.type === \"JSXNamespacedName\") {\n return object.namespace.name + \":\" + object.name.name;\n }\n\n if (object.type === \"JSXMemberExpression\") {\n return (\n getQualifiedJSXName(object.object) +\n \".\" +\n getQualifiedJSXName(object.property)\n );\n }\n\n // istanbul ignore next\n throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport default (superClass: Class): Class =>\n class extends superClass {\n // Reads inline JSX contents token.\n\n jsxReadToken(): void {\n let out = \"\";\n let chunkStart = this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent);\n }\n\n const ch = this.input.charCodeAt(this.state.pos);\n\n switch (ch) {\n case charCodes.lessThan:\n case charCodes.leftCurlyBrace:\n if (this.state.pos === this.state.start) {\n if (ch === charCodes.lessThan && this.state.exprAllowed) {\n ++this.state.pos;\n return this.finishToken(tt.jsxTagStart);\n }\n return super.getTokenFromCode(ch);\n }\n out += this.input.slice(chunkStart, this.state.pos);\n return this.finishToken(tt.jsxText, out);\n\n case charCodes.ampersand:\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n break;\n\n case charCodes.greaterThan:\n case charCodes.rightCurlyBrace:\n if (process.env.BABEL_8_BREAKING) {\n const htmlEntity =\n ch === charCodes.rightCurlyBrace ? \"}\" : \">\";\n const char = this.input[this.state.pos];\n this.raise(\n this.state.pos,\n `Unexpected token \\`${char}\\`. Did you mean \\`${htmlEntity}\\` or \\`{'${char}'}\\`?`,\n );\n }\n /* falls through */\n\n default:\n if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(true);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n }\n }\n\n jsxReadNewLine(normalizeCRLF: boolean): string {\n const ch = this.input.charCodeAt(this.state.pos);\n let out;\n ++this.state.pos;\n if (\n ch === charCodes.carriageReturn &&\n this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n ) {\n ++this.state.pos;\n out = normalizeCRLF ? \"\\n\" : \"\\r\\n\";\n } else {\n out = String.fromCharCode(ch);\n }\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n\n return out;\n }\n\n jsxReadString(quote: number): void {\n let out = \"\";\n let chunkStart = ++this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(this.state.start, Errors.UnterminatedString);\n }\n\n const ch = this.input.charCodeAt(this.state.pos);\n if (ch === quote) break;\n if (ch === charCodes.ampersand) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n } else if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(false);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n out += this.input.slice(chunkStart, this.state.pos++);\n return this.finishToken(tt.string, out);\n }\n\n jsxReadEntity(): string {\n let str = \"\";\n let count = 0;\n let entity;\n let ch = this.input[this.state.pos];\n\n const startPos = ++this.state.pos;\n while (this.state.pos < this.length && count++ < 10) {\n ch = this.input[this.state.pos++];\n if (ch === \";\") {\n if (str[0] === \"#\") {\n if (str[1] === \"x\") {\n str = str.substr(2);\n if (HEX_NUMBER.test(str)) {\n entity = String.fromCodePoint(parseInt(str, 16));\n }\n } else {\n str = str.substr(1);\n if (DECIMAL_NUMBER.test(str)) {\n entity = String.fromCodePoint(parseInt(str, 10));\n }\n }\n } else {\n entity = XHTMLEntities[str];\n }\n break;\n }\n str += ch;\n }\n if (!entity) {\n this.state.pos = startPos;\n return \"&\";\n }\n return entity;\n }\n\n // Read a JSX identifier (valid tag or attribute name).\n //\n // Optimized version since JSX identifiers can\"t contain\n // escape characters and so can be read as single slice.\n // Also assumes that first character was already checked\n // by isIdentifierStart in readToken.\n\n jsxReadWord(): void {\n let ch;\n const start = this.state.pos;\n do {\n ch = this.input.charCodeAt(++this.state.pos);\n } while (isIdentifierChar(ch) || ch === charCodes.dash);\n return this.finishToken(\n tt.jsxName,\n this.input.slice(start, this.state.pos),\n );\n }\n\n // Parse next token as JSX identifier\n\n jsxParseIdentifier(): N.JSXIdentifier {\n const node = this.startNode();\n if (this.match(tt.jsxName)) {\n node.name = this.state.value;\n } else if (this.state.type.keyword) {\n node.name = this.state.type.keyword;\n } else {\n this.unexpected();\n }\n this.next();\n return this.finishNode(node, \"JSXIdentifier\");\n }\n\n // Parse namespaced identifier.\n\n jsxParseNamespacedName(): N.JSXNamespacedName {\n const startPos = this.state.start;\n const startLoc = this.state.startLoc;\n const name = this.jsxParseIdentifier();\n if (!this.eat(tt.colon)) return name;\n\n const node = this.startNodeAt(startPos, startLoc);\n node.namespace = name;\n node.name = this.jsxParseIdentifier();\n return this.finishNode(node, \"JSXNamespacedName\");\n }\n\n // Parses element name in any form - namespaced, member\n // or single identifier.\n\n jsxParseElementName():\n | N.JSXIdentifier\n | N.JSXNamespacedName\n | N.JSXMemberExpression {\n const startPos = this.state.start;\n const startLoc = this.state.startLoc;\n let node = this.jsxParseNamespacedName();\n if (node.type === \"JSXNamespacedName\") {\n return node;\n }\n while (this.eat(tt.dot)) {\n const newNode = this.startNodeAt(startPos, startLoc);\n newNode.object = node;\n newNode.property = this.jsxParseIdentifier();\n node = this.finishNode(newNode, \"JSXMemberExpression\");\n }\n return node;\n }\n\n // Parses any type of JSX attribute value.\n\n jsxParseAttributeValue(): N.Expression {\n let node;\n switch (this.state.type) {\n case tt.braceL:\n node = this.startNode();\n this.next();\n node = this.jsxParseExpressionContainer(node);\n if (node.expression.type === \"JSXEmptyExpression\") {\n this.raise(node.start, JsxErrors.AttributeIsEmpty);\n }\n return node;\n\n case tt.jsxTagStart:\n case tt.string:\n return this.parseExprAtom();\n\n default:\n throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue);\n }\n }\n\n // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n // and so it should start at the end of last read token (left brace) and finish\n // at the beginning of the next one (right brace).\n\n jsxParseEmptyExpression(): N.JSXEmptyExpression {\n const node = this.startNodeAt(\n this.state.lastTokEnd,\n this.state.lastTokEndLoc,\n );\n return this.finishNodeAt(\n node,\n \"JSXEmptyExpression\",\n this.state.start,\n this.state.startLoc,\n );\n }\n\n // Parse JSX spread child\n\n jsxParseSpreadChild(node: N.JSXSpreadChild): N.JSXSpreadChild {\n this.next(); // ellipsis\n node.expression = this.parseExpression();\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"JSXSpreadChild\");\n }\n\n // Parses JSX expression enclosed into curly brackets.\n\n jsxParseExpressionContainer(\n node: N.JSXExpressionContainer,\n ): N.JSXExpressionContainer {\n if (this.match(tt.braceR)) {\n node.expression = this.jsxParseEmptyExpression();\n } else {\n const expression = this.parseExpression();\n\n if (process.env.BABEL_8_BREAKING) {\n if (\n expression.type === \"SequenceExpression\" &&\n !expression.extra?.parenthesized\n ) {\n this.raise(\n expression.expressions[1].start,\n JsxErrors.UnexpectedSequenceExpression,\n );\n }\n }\n\n node.expression = expression;\n }\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"JSXExpressionContainer\");\n }\n\n // Parses following JSX attribute name-value pair.\n\n jsxParseAttribute(): N.JSXAttribute {\n const node = this.startNode();\n if (this.eat(tt.braceL)) {\n this.expect(tt.ellipsis);\n node.argument = this.parseMaybeAssignAllowIn();\n this.expect(tt.braceR);\n return this.finishNode(node, \"JSXSpreadAttribute\");\n }\n node.name = this.jsxParseNamespacedName();\n node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n return this.finishNode(node, \"JSXAttribute\");\n }\n\n // Parses JSX opening tag starting after \"<\".\n\n jsxParseOpeningElementAt(\n startPos: number,\n startLoc: Position,\n ): N.JSXOpeningElement {\n const node = this.startNodeAt(startPos, startLoc);\n if (this.match(tt.jsxTagEnd)) {\n this.expect(tt.jsxTagEnd);\n return this.finishNode(node, \"JSXOpeningFragment\");\n }\n node.name = this.jsxParseElementName();\n return this.jsxParseOpeningElementAfterName(node);\n }\n\n jsxParseOpeningElementAfterName(\n node: N.JSXOpeningElement,\n ): N.JSXOpeningElement {\n const attributes: N.JSXAttribute[] = [];\n while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n attributes.push(this.jsxParseAttribute());\n }\n node.attributes = attributes;\n node.selfClosing = this.eat(tt.slash);\n this.expect(tt.jsxTagEnd);\n return this.finishNode(node, \"JSXOpeningElement\");\n }\n\n // Parses JSX closing tag starting after \" JSX open tag -> ... anymore\n this.state.context.push(tc.j_cTag); // reconsider as closing tag context\n this.state.exprAllowed = false;\n } else {\n return super.updateContext(prevType);\n }\n }\n };\n","// @flow\n\nimport ScopeHandler, { Scope } from \"../../util/scope\";\nimport {\n BIND_KIND_TYPE,\n BIND_FLAGS_TS_ENUM,\n BIND_FLAGS_TS_CONST_ENUM,\n BIND_FLAGS_TS_EXPORT_ONLY,\n BIND_KIND_VALUE,\n BIND_FLAGS_CLASS,\n type ScopeFlags,\n type BindingTypes,\n} from \"../../util/scopeflags\";\nimport * as N from \"../../types\";\n\nclass TypeScriptScope extends Scope {\n types: string[] = [];\n\n // enums (which are also in .types)\n enums: string[] = [];\n\n // const enums (which are also in .enums and .types)\n constEnums: string[] = [];\n\n // classes (which are also in .lexical) and interface (which are also in .types)\n classes: string[] = [];\n\n // namespaces and ambient functions (or classes) are too difficult to track,\n // especially without type analysis.\n // We need to track them anyway, to avoid \"X is not defined\" errors\n // when exporting them.\n exportOnlyBindings: string[] = [];\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler {\n createScope(flags: ScopeFlags): TypeScriptScope {\n return new TypeScriptScope(flags);\n }\n\n declareName(name: string, bindingType: BindingTypes, pos: number) {\n const scope = this.currentScope();\n if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) {\n this.maybeExportDefined(scope, name);\n scope.exportOnlyBindings.push(name);\n return;\n }\n\n super.declareName(...arguments);\n\n if (bindingType & BIND_KIND_TYPE) {\n if (!(bindingType & BIND_KIND_VALUE)) {\n // \"Value\" bindings have already been registered by the superclass.\n this.checkRedeclarationInScope(scope, name, bindingType, pos);\n this.maybeExportDefined(scope, name);\n }\n scope.types.push(name);\n }\n if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.push(name);\n if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.push(name);\n if (bindingType & BIND_FLAGS_CLASS) scope.classes.push(name);\n }\n\n isRedeclaredInScope(\n scope: TypeScriptScope,\n name: string,\n bindingType: BindingTypes,\n ): boolean {\n if (scope.enums.indexOf(name) > -1) {\n if (bindingType & BIND_FLAGS_TS_ENUM) {\n // Enums can be merged with other enums if they are both\n // const or both non-const.\n const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM);\n const wasConst = scope.constEnums.indexOf(name) > -1;\n return isConst !== wasConst;\n }\n return true;\n }\n if (bindingType & BIND_FLAGS_CLASS && scope.classes.indexOf(name) > -1) {\n if (scope.lexical.indexOf(name) > -1) {\n // Classes can be merged with interfaces\n return !!(bindingType & BIND_KIND_VALUE);\n } else {\n // Interface can be merged with other classes or interfaces\n return false;\n }\n }\n if (bindingType & BIND_KIND_TYPE && scope.types.indexOf(name) > -1) {\n return true;\n }\n\n return super.isRedeclaredInScope(...arguments);\n }\n\n checkLocalExport(id: N.Identifier) {\n if (\n this.scopeStack[0].types.indexOf(id.name) === -1 &&\n this.scopeStack[0].exportOnlyBindings.indexOf(id.name) === -1\n ) {\n super.checkLocalExport(id);\n }\n }\n}\n","// @flow\nexport const PARAM = 0b0000, // Initial Parameter flags\n PARAM_YIELD = 0b0001, // track [Yield] production parameter\n PARAM_AWAIT = 0b0010, // track [Await] production parameter\n PARAM_RETURN = 0b0100, // track [Return] production parameter\n PARAM_IN = 0b1000; // track [In] production parameter\n\n// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n// async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n// ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport type ParamKind =\n | typeof PARAM\n | typeof PARAM_AWAIT\n | typeof PARAM_IN\n | typeof PARAM_RETURN\n | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n stacks: Array = [];\n enter(flags: ParamKind) {\n this.stacks.push(flags);\n }\n\n exit() {\n this.stacks.pop();\n }\n\n currentFlags(): ParamKind {\n return this.stacks[this.stacks.length - 1];\n }\n\n get hasAwait(): boolean {\n return (this.currentFlags() & PARAM_AWAIT) > 0;\n }\n\n get hasYield(): boolean {\n return (this.currentFlags() & PARAM_YIELD) > 0;\n }\n\n get hasReturn(): boolean {\n return (this.currentFlags() & PARAM_RETURN) > 0;\n }\n\n get hasIn(): boolean {\n return (this.currentFlags() & PARAM_IN) > 0;\n }\n}\n\nexport function functionFlags(\n isAsync: boolean,\n isGenerator: boolean,\n): ParamKind {\n return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0);\n}\n","// @flow\n\n/*:: declare var invariant; */\n\n// Error messages are colocated with the plugin.\n/* eslint-disable @babel/development-internal/dry-error-messages */\n\nimport type { TokenType } from \"../../tokenizer/types\";\nimport type State from \"../../tokenizer/state\";\nimport { types as tt } from \"../../tokenizer/types\";\nimport { types as ct } from \"../../tokenizer/context\";\nimport * as N from \"../../types\";\nimport type { Pos, Position } from \"../../util/location\";\nimport type Parser from \"../../parser\";\nimport {\n type BindingTypes,\n SCOPE_TS_MODULE,\n SCOPE_OTHER,\n BIND_TS_ENUM,\n BIND_TS_CONST_ENUM,\n BIND_TS_TYPE,\n BIND_TS_INTERFACE,\n BIND_TS_AMBIENT,\n BIND_TS_NAMESPACE,\n BIND_CLASS,\n BIND_LEXICAL,\n} from \"../../util/scopeflags\";\nimport TypeScriptScopeHandler from \"./scope\";\nimport * as charCodes from \"charcodes\";\nimport type { ExpressionErrors } from \"../../parser/util\";\nimport { PARAM } from \"../../util/production-parameter\";\nimport { Errors } from \"../../parser/error\";\n\ntype TsModifier =\n | \"readonly\"\n | \"abstract\"\n | \"declare\"\n | \"static\"\n | N.Accessibility;\n\nfunction nonNull(x: ?T): T {\n if (x == null) {\n // $FlowIgnore\n throw new Error(`Unexpected ${x} value.`);\n }\n return x;\n}\n\nfunction assert(x: boolean): void {\n if (!x) {\n throw new Error(\"Assert fail\");\n }\n}\n\ntype ParsingContext =\n | \"EnumMembers\"\n | \"HeritageClauseElement\"\n | \"TupleElementTypes\"\n | \"TypeMembers\"\n | \"TypeParametersOrArguments\";\n\n/* eslint sort-keys: \"error\" */\nconst TSErrors = Object.freeze({\n AbstractMethodHasImplementation:\n \"Method '%0' cannot have an implementation because it is marked abstract.\",\n ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier\",\n ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier\",\n ConstructorHasTypeParameters:\n \"Type parameters cannot appear on a constructor declaration.\",\n DeclareClassFieldHasInitializer:\n \"Initializers are not allowed in ambient contexts.\",\n DeclareFunctionHasImplementation:\n \"An implementation cannot be declared in ambient contexts.\",\n DuplicateAccessibilityModifier: \"Accessibility modifier already seen.\",\n DuplicateModifier: \"Duplicate modifier: '%0'\",\n EmptyHeritageClauseType: \"'%0' list cannot be empty.\",\n EmptyTypeArguments: \"Type argument list cannot be empty.\",\n EmptyTypeParameters: \"Type parameter list cannot be empty.\",\n ExpectedAmbientAfterExportDeclare:\n \"'export declare' must be followed by an ambient declaration.\",\n ImportAliasHasImportType: \"An import alias can not use 'import type'\",\n IndexSignatureHasAbstract:\n \"Index signatures cannot have the 'abstract' modifier\",\n IndexSignatureHasAccessibility:\n \"Index signatures cannot have an accessibility modifier ('%0')\",\n IndexSignatureHasDeclare:\n \"Index signatures cannot have the 'declare' modifier\",\n IndexSignatureHasStatic: \"Index signatures cannot have the 'static' modifier\",\n InvalidModifierOnTypeMember: \"'%0' modifier cannot appear on a type member.\",\n InvalidTupleMemberLabel:\n \"Tuple members must be labeled with a simple identifier.\",\n MixedLabeledAndUnlabeledElements:\n \"Tuple members must all have names or all not have names.\",\n NonAbstractClassHasAbstractMethod:\n \"Abstract methods can only appear within an abstract class.\",\n NonClassMethodPropertyHasAbstractModifer:\n \"'abstract' modifier can only appear on a class, method, or property declaration.\",\n OptionalTypeBeforeRequired:\n \"A required element cannot follow an optional element.\",\n PatternIsOptional:\n \"A binding pattern parameter cannot be optional in an implementation signature.\",\n PrivateElementHasAbstract:\n \"Private elements cannot have the 'abstract' modifier.\",\n PrivateElementHasAccessibility:\n \"Private elements cannot have an accessibility modifier ('%0')\",\n ReadonlyForMethodSignature:\n \"'readonly' modifier can only appear on a property declaration or index signature.\",\n TypeAnnotationAfterAssign:\n \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`\",\n UnexpectedParameterModifier:\n \"A parameter property is only allowed in a constructor implementation.\",\n UnexpectedReadonly:\n \"'readonly' type modifier is only permitted on array and tuple literal types.\",\n UnexpectedTypeAnnotation: \"Did not expect a type annotation here.\",\n UnexpectedTypeCastInParameter: \"Unexpected type cast in parameter position.\",\n UnsupportedImportTypeArgument:\n \"Argument in a type import must be a string literal\",\n UnsupportedParameterPropertyKind:\n \"A parameter property may not be declared using a binding pattern.\",\n UnsupportedSignatureParameterKind:\n \"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0\",\n});\n/* eslint-disable sort-keys */\n\n// Doesn't handle \"void\" or \"null\" because those are keywords, not identifiers.\n// It also doesn't handle \"intrinsic\", since usually it's not a keyword.\nfunction keywordTypeFromName(\n value: string,\n): N.TsKeywordTypeType | typeof undefined {\n switch (value) {\n case \"any\":\n return \"TSAnyKeyword\";\n case \"boolean\":\n return \"TSBooleanKeyword\";\n case \"bigint\":\n return \"TSBigIntKeyword\";\n case \"never\":\n return \"TSNeverKeyword\";\n case \"number\":\n return \"TSNumberKeyword\";\n case \"object\":\n return \"TSObjectKeyword\";\n case \"string\":\n return \"TSStringKeyword\";\n case \"symbol\":\n return \"TSSymbolKeyword\";\n case \"undefined\":\n return \"TSUndefinedKeyword\";\n case \"unknown\":\n return \"TSUnknownKeyword\";\n default:\n return undefined;\n }\n}\n\nfunction tsIsAccessModifier(modifier: string): boolean %checks {\n return (\n modifier === \"private\" || modifier === \"public\" || modifier === \"protected\"\n );\n}\n\nexport default (superClass: Class): Class =>\n class extends superClass {\n getScopeHandler(): Class {\n return TypeScriptScopeHandler;\n }\n\n tsIsIdentifier(): boolean {\n // TODO: actually a bit more complex in TypeScript, but shouldn't matter.\n // See https://github.com/Microsoft/TypeScript/issues/15008\n return this.match(tt.name);\n }\n\n tsNextTokenCanFollowModifier() {\n // Note: TypeScript's implementation is much more complicated because\n // more things are considered modifiers there.\n // This implementation only handles modifiers not handled by @babel/parser itself. And \"static\".\n // TODO: Would be nice to avoid lookahead. Want a hasLineBreakUpNext() method...\n this.next();\n return (\n (this.match(tt.bracketL) ||\n this.match(tt.braceL) ||\n this.match(tt.star) ||\n this.match(tt.ellipsis) ||\n this.match(tt.hash) ||\n this.isLiteralPropertyName()) &&\n !this.hasPrecedingLineBreak()\n );\n }\n\n /** Parses a modifier matching one the given modifier names. */\n tsParseModifier(allowedModifiers: T[]): ?T {\n if (!this.match(tt.name)) {\n return undefined;\n }\n\n const modifier = this.state.value;\n if (\n allowedModifiers.indexOf(modifier) !== -1 &&\n this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))\n ) {\n return modifier;\n }\n return undefined;\n }\n\n /** Parses a list of modifiers, in any order.\n * If you need a specific order, you must call this function multiple times:\n * this.tsParseModifiers(node, [\"public\"]);\n * this.tsParseModifiers(node, [\"abstract\", \"readonly\"]);\n */\n tsParseModifiers(\n modified: {\n [key: TsModifier]: ?true,\n accessibility?: N.Accessibility,\n },\n allowedModifiers: TsModifier[],\n disallowedModifiers?: TsModifier[],\n errorTemplate?: string,\n ): void {\n for (;;) {\n const startPos = this.state.start;\n const modifier: ?TsModifier = this.tsParseModifier(\n allowedModifiers.concat(disallowedModifiers ?? []),\n );\n\n if (!modifier) break;\n\n if (tsIsAccessModifier(modifier)) {\n if (modified.accessibility) {\n this.raise(startPos, TSErrors.DuplicateAccessibilityModifier);\n } else {\n modified.accessibility = modifier;\n }\n } else {\n if (Object.hasOwnProperty.call(modified, modifier)) {\n this.raise(startPos, TSErrors.DuplicateModifier, modifier);\n }\n modified[modifier] = true;\n }\n\n if (disallowedModifiers?.includes(modifier)) {\n this.raise(\n startPos,\n // $FlowIgnore\n errorTemplate,\n modifier,\n );\n }\n }\n }\n\n tsIsListTerminator(kind: ParsingContext): boolean {\n switch (kind) {\n case \"EnumMembers\":\n case \"TypeMembers\":\n return this.match(tt.braceR);\n case \"HeritageClauseElement\":\n return this.match(tt.braceL);\n case \"TupleElementTypes\":\n return this.match(tt.bracketR);\n case \"TypeParametersOrArguments\":\n return this.isRelational(\">\");\n }\n\n throw new Error(\"Unreachable\");\n }\n\n tsParseList(kind: ParsingContext, parseElement: () => T): T[] {\n const result: T[] = [];\n while (!this.tsIsListTerminator(kind)) {\n // Skipping \"parseListElement\" from the TS source since that's just for error handling.\n result.push(parseElement());\n }\n return result;\n }\n\n tsParseDelimitedList(\n kind: ParsingContext,\n parseElement: () => T,\n ): T[] {\n return nonNull(\n this.tsParseDelimitedListWorker(\n kind,\n parseElement,\n /* expectSuccess */ true,\n ),\n );\n }\n\n /**\n * If !expectSuccess, returns undefined instead of failing to parse.\n * If expectSuccess, parseElement should always return a defined value.\n */\n tsParseDelimitedListWorker(\n kind: ParsingContext,\n parseElement: () => ?T,\n expectSuccess: boolean,\n ): ?(T[]) {\n const result = [];\n\n for (;;) {\n if (this.tsIsListTerminator(kind)) {\n break;\n }\n\n const element = parseElement();\n if (element == null) {\n return undefined;\n }\n result.push(element);\n\n if (this.eat(tt.comma)) {\n continue;\n }\n\n if (this.tsIsListTerminator(kind)) {\n break;\n }\n\n if (expectSuccess) {\n // This will fail with an error about a missing comma\n this.expect(tt.comma);\n }\n return undefined;\n }\n\n return result;\n }\n\n tsParseBracketedList(\n kind: ParsingContext,\n parseElement: () => T,\n bracket: boolean,\n skipFirstToken: boolean,\n ): T[] {\n if (!skipFirstToken) {\n if (bracket) {\n this.expect(tt.bracketL);\n } else {\n this.expectRelational(\"<\");\n }\n }\n\n const result = this.tsParseDelimitedList(kind, parseElement);\n\n if (bracket) {\n this.expect(tt.bracketR);\n } else {\n this.expectRelational(\">\");\n }\n\n return result;\n }\n\n tsParseImportType(): N.TsImportType {\n const node: N.TsImportType = this.startNode();\n this.expect(tt._import);\n this.expect(tt.parenL);\n if (!this.match(tt.string)) {\n this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument);\n }\n\n // For compatibility to estree we cannot call parseLiteral directly here\n node.argument = this.parseExprAtom();\n this.expect(tt.parenR);\n\n if (this.eat(tt.dot)) {\n node.qualifier = this.tsParseEntityName(/* allowReservedWords */ true);\n }\n if (this.isRelational(\"<\")) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSImportType\");\n }\n\n tsParseEntityName(allowReservedWords: boolean): N.TsEntityName {\n let entity: N.TsEntityName = this.parseIdentifier();\n while (this.eat(tt.dot)) {\n const node: N.TsQualifiedName = this.startNodeAtNode(entity);\n node.left = entity;\n node.right = this.parseIdentifier(allowReservedWords);\n entity = this.finishNode(node, \"TSQualifiedName\");\n }\n return entity;\n }\n\n tsParseTypeReference(): N.TsTypeReference {\n const node: N.TsTypeReference = this.startNode();\n node.typeName = this.tsParseEntityName(/* allowReservedWords */ false);\n if (!this.hasPrecedingLineBreak() && this.isRelational(\"<\")) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSTypeReference\");\n }\n\n tsParseThisTypePredicate(lhs: N.TsThisType): N.TsTypePredicate {\n this.next();\n const node: N.TsTypePredicate = this.startNodeAtNode(lhs);\n node.parameterName = lhs;\n node.typeAnnotation = this.tsParseTypeAnnotation(/* eatColon */ false);\n node.asserts = false;\n return this.finishNode(node, \"TSTypePredicate\");\n }\n\n tsParseThisTypeNode(): N.TsThisType {\n const node: N.TsThisType = this.startNode();\n this.next();\n return this.finishNode(node, \"TSThisType\");\n }\n\n tsParseTypeQuery(): N.TsTypeQuery {\n const node: N.TsTypeQuery = this.startNode();\n this.expect(tt._typeof);\n if (this.match(tt._import)) {\n node.exprName = this.tsParseImportType();\n } else {\n node.exprName = this.tsParseEntityName(/* allowReservedWords */ true);\n }\n return this.finishNode(node, \"TSTypeQuery\");\n }\n\n tsParseTypeParameter(): N.TsTypeParameter {\n const node: N.TsTypeParameter = this.startNode();\n node.name = this.parseIdentifierName(node.start);\n node.constraint = this.tsEatThenParseType(tt._extends);\n node.default = this.tsEatThenParseType(tt.eq);\n return this.finishNode(node, \"TSTypeParameter\");\n }\n\n tsTryParseTypeParameters(): ?N.TsTypeParameterDeclaration {\n if (this.isRelational(\"<\")) {\n return this.tsParseTypeParameters();\n }\n }\n\n tsParseTypeParameters() {\n const node: N.TsTypeParameterDeclaration = this.startNode();\n\n if (this.isRelational(\"<\") || this.match(tt.jsxTagStart)) {\n this.next();\n } else {\n this.unexpected();\n }\n\n node.params = this.tsParseBracketedList(\n \"TypeParametersOrArguments\",\n this.tsParseTypeParameter.bind(this),\n /* bracket */ false,\n /* skipFirstToken */ true,\n );\n if (node.params.length === 0) {\n this.raise(node.start, TSErrors.EmptyTypeParameters);\n }\n return this.finishNode(node, \"TSTypeParameterDeclaration\");\n }\n\n tsTryNextParseConstantContext(): ?N.TsTypeReference {\n if (this.lookahead().type === tt._const) {\n this.next();\n return this.tsParseTypeReference();\n }\n return null;\n }\n\n // Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,\n // but here it's always false, because this is only used for types.\n tsFillSignature(\n returnToken: TokenType,\n signature: N.TsSignatureDeclaration,\n ): void {\n // Arrow fns *must* have return token (`=>`). Normal functions can omit it.\n const returnTokenRequired = returnToken === tt.arrow;\n signature.typeParameters = this.tsTryParseTypeParameters();\n this.expect(tt.parenL);\n signature.parameters = this.tsParseBindingListForSignature();\n if (returnTokenRequired) {\n signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n returnToken,\n );\n } else if (this.match(returnToken)) {\n signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(\n returnToken,\n );\n }\n }\n\n tsParseBindingListForSignature(): $ReadOnlyArray<\n N.Identifier | N.RestElement | N.ObjectPattern | N.ArrayPattern,\n > {\n return this.parseBindingList(tt.parenR, charCodes.rightParenthesis).map(\n pattern => {\n if (\n pattern.type !== \"Identifier\" &&\n pattern.type !== \"RestElement\" &&\n pattern.type !== \"ObjectPattern\" &&\n pattern.type !== \"ArrayPattern\"\n ) {\n this.raise(\n pattern.start,\n TSErrors.UnsupportedSignatureParameterKind,\n pattern.type,\n );\n }\n return (pattern: any);\n },\n );\n }\n\n tsParseTypeMemberSemicolon(): void {\n if (!this.eat(tt.comma)) {\n this.semicolon();\n }\n }\n\n tsParseSignatureMember(\n kind: \"TSCallSignatureDeclaration\" | \"TSConstructSignatureDeclaration\",\n node: N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration,\n ): N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration {\n this.tsFillSignature(tt.colon, node);\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(node, kind);\n }\n\n tsIsUnambiguouslyIndexSignature() {\n this.next(); // Skip '{'\n return this.eat(tt.name) && this.match(tt.colon);\n }\n\n tsTryParseIndexSignature(node: N.Node): ?N.TsIndexSignature {\n if (\n !(\n this.match(tt.bracketL) &&\n this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))\n )\n ) {\n return undefined;\n }\n\n this.expect(tt.bracketL);\n const id = this.parseIdentifier();\n id.typeAnnotation = this.tsParseTypeAnnotation();\n this.resetEndLocation(id); // set end position to end of type\n\n this.expect(tt.bracketR);\n node.parameters = [id];\n\n const type = this.tsTryParseTypeAnnotation();\n if (type) node.typeAnnotation = type;\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(node, \"TSIndexSignature\");\n }\n\n tsParsePropertyOrMethodSignature(\n node: N.TsPropertySignature | N.TsMethodSignature,\n readonly: boolean,\n ): N.TsPropertySignature | N.TsMethodSignature {\n if (this.eat(tt.question)) node.optional = true;\n const nodeAny: any = node;\n\n if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n if (readonly) {\n this.raise(node.start, TSErrors.ReadonlyForMethodSignature);\n }\n const method: N.TsMethodSignature = nodeAny;\n this.tsFillSignature(tt.colon, method);\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(method, \"TSMethodSignature\");\n } else {\n const property: N.TsPropertySignature = nodeAny;\n if (readonly) property.readonly = true;\n const type = this.tsTryParseTypeAnnotation();\n if (type) property.typeAnnotation = type;\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(property, \"TSPropertySignature\");\n }\n }\n\n tsParseTypeMember(): N.TsTypeElement {\n const node: any = this.startNode();\n\n if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n }\n\n if (this.match(tt._new)) {\n const id: N.Identifier = this.startNode();\n this.next();\n if (this.match(tt.parenL) || this.isRelational(\"<\")) {\n return this.tsParseSignatureMember(\n \"TSConstructSignatureDeclaration\",\n node,\n );\n } else {\n node.key = this.createIdentifier(id, \"new\");\n return this.tsParsePropertyOrMethodSignature(node, false);\n }\n }\n\n this.tsParseModifiers(\n node,\n [\"readonly\"],\n [\"declare\", \"abstract\", \"private\", \"protected\", \"public\", \"static\"],\n TSErrors.InvalidModifierOnTypeMember,\n );\n\n const idx = this.tsTryParseIndexSignature(node);\n if (idx) {\n return idx;\n }\n\n this.parsePropertyName(node, /* isPrivateNameAllowed */ false);\n return this.tsParsePropertyOrMethodSignature(node, !!node.readonly);\n }\n\n tsParseTypeLiteral(): N.TsTypeLiteral {\n const node: N.TsTypeLiteral = this.startNode();\n node.members = this.tsParseObjectTypeMembers();\n return this.finishNode(node, \"TSTypeLiteral\");\n }\n\n tsParseObjectTypeMembers(): $ReadOnlyArray {\n this.expect(tt.braceL);\n const members = this.tsParseList(\n \"TypeMembers\",\n this.tsParseTypeMember.bind(this),\n );\n this.expect(tt.braceR);\n return members;\n }\n\n tsIsStartOfMappedType(): boolean {\n this.next();\n if (this.eat(tt.plusMin)) {\n return this.isContextual(\"readonly\");\n }\n if (this.isContextual(\"readonly\")) {\n this.next();\n }\n if (!this.match(tt.bracketL)) {\n return false;\n }\n this.next();\n if (!this.tsIsIdentifier()) {\n return false;\n }\n this.next();\n return this.match(tt._in);\n }\n\n tsParseMappedTypeParameter(): N.TsTypeParameter {\n const node: N.TsTypeParameter = this.startNode();\n node.name = this.parseIdentifierName(node.start);\n node.constraint = this.tsExpectThenParseType(tt._in);\n return this.finishNode(node, \"TSTypeParameter\");\n }\n\n tsParseMappedType(): N.TsMappedType {\n const node: N.TsMappedType = this.startNode();\n\n this.expect(tt.braceL);\n\n if (this.match(tt.plusMin)) {\n node.readonly = this.state.value;\n this.next();\n this.expectContextual(\"readonly\");\n } else if (this.eatContextual(\"readonly\")) {\n node.readonly = true;\n }\n\n this.expect(tt.bracketL);\n node.typeParameter = this.tsParseMappedTypeParameter();\n node.nameType = this.eatContextual(\"as\") ? this.tsParseType() : null;\n\n this.expect(tt.bracketR);\n\n if (this.match(tt.plusMin)) {\n node.optional = this.state.value;\n this.next();\n this.expect(tt.question);\n } else if (this.eat(tt.question)) {\n node.optional = true;\n }\n\n node.typeAnnotation = this.tsTryParseType();\n this.semicolon();\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"TSMappedType\");\n }\n\n tsParseTupleType(): N.TsTupleType {\n const node: N.TsTupleType = this.startNode();\n node.elementTypes = this.tsParseBracketedList(\n \"TupleElementTypes\",\n this.tsParseTupleElementType.bind(this),\n /* bracket */ true,\n /* skipFirstToken */ false,\n );\n\n // Validate the elementTypes to ensure that no mandatory elements\n // follow optional elements\n let seenOptionalElement = false;\n let labeledElements = null;\n node.elementTypes.forEach(elementNode => {\n let { type } = elementNode;\n\n if (\n seenOptionalElement &&\n type !== \"TSRestType\" &&\n type !== \"TSOptionalType\" &&\n !(type === \"TSNamedTupleMember\" && elementNode.optional)\n ) {\n this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired);\n }\n\n // Flow doesn't support ||=\n seenOptionalElement =\n seenOptionalElement ||\n (type === \"TSNamedTupleMember\" && elementNode.optional) ||\n type === \"TSOptionalType\";\n\n // When checking labels, check the argument of the spread operator\n if (type === \"TSRestType\") {\n elementNode = elementNode.typeAnnotation;\n type = elementNode.type;\n }\n\n const isLabeled = type === \"TSNamedTupleMember\";\n // Flow doesn't support ??=\n labeledElements = labeledElements ?? isLabeled;\n if (labeledElements !== isLabeled) {\n this.raise(\n elementNode.start,\n TSErrors.MixedLabeledAndUnlabeledElements,\n );\n }\n });\n\n return this.finishNode(node, \"TSTupleType\");\n }\n\n tsParseTupleElementType(): N.TsType | N.TsNamedTupleMember {\n // parses `...TsType[]`\n\n const { start: startPos, startLoc } = this.state;\n\n const rest = this.eat(tt.ellipsis);\n let type = this.tsParseType();\n const optional = this.eat(tt.question);\n const labeled = this.eat(tt.colon);\n\n if (labeled) {\n const labeledNode: N.TsNamedTupleMember = this.startNodeAtNode(type);\n labeledNode.optional = optional;\n\n if (\n type.type === \"TSTypeReference\" &&\n !type.typeParameters &&\n type.typeName.type === \"Identifier\"\n ) {\n labeledNode.label = (type.typeName: N.Identifier);\n } else {\n this.raise(type.start, TSErrors.InvalidTupleMemberLabel);\n // This produces an invalid AST, but at least we don't drop\n // nodes representing the invalid source.\n // $FlowIgnore\n labeledNode.label = type;\n }\n\n labeledNode.elementType = this.tsParseType();\n type = this.finishNode(labeledNode, \"TSNamedTupleMember\");\n } else if (optional) {\n const optionalTypeNode: N.TsOptionalType = this.startNodeAtNode(type);\n optionalTypeNode.typeAnnotation = type;\n type = this.finishNode(optionalTypeNode, \"TSOptionalType\");\n }\n\n if (rest) {\n const restNode: N.TsRestType = this.startNodeAt(startPos, startLoc);\n restNode.typeAnnotation = type;\n type = this.finishNode(restNode, \"TSRestType\");\n }\n\n return type;\n }\n\n tsParseParenthesizedType(): N.TsParenthesizedType {\n const node = this.startNode();\n this.expect(tt.parenL);\n node.typeAnnotation = this.tsParseType();\n this.expect(tt.parenR);\n return this.finishNode(node, \"TSParenthesizedType\");\n }\n\n tsParseFunctionOrConstructorType(\n type: \"TSFunctionType\" | \"TSConstructorType\",\n abstract?: boolean,\n ): N.TsFunctionOrConstructorType {\n const node: N.TsFunctionOrConstructorType = this.startNode();\n if (type === \"TSConstructorType\") {\n // $FlowIgnore\n node.abstract = !!abstract;\n if (abstract) this.next();\n this.next(); // eat `new`\n }\n this.tsFillSignature(tt.arrow, node);\n return this.finishNode(node, type);\n }\n\n tsParseLiteralTypeNode(): N.TsLiteralType {\n const node: N.TsLiteralType = this.startNode();\n node.literal = (() => {\n switch (this.state.type) {\n case tt.num:\n case tt.bigint:\n case tt.string:\n case tt._true:\n case tt._false:\n // For compatibility to estree we cannot call parseLiteral directly here\n return this.parseExprAtom();\n default:\n throw this.unexpected();\n }\n })();\n return this.finishNode(node, \"TSLiteralType\");\n }\n\n tsParseTemplateLiteralType(): N.TsType {\n const node: N.TsLiteralType = this.startNode();\n node.literal = this.parseTemplate(false);\n return this.finishNode(node, \"TSLiteralType\");\n }\n\n parseTemplateSubstitution(): N.TsType {\n if (this.state.inType) return this.tsParseType();\n return super.parseTemplateSubstitution();\n }\n\n tsParseThisTypeOrThisTypePredicate(): N.TsThisType | N.TsTypePredicate {\n const thisKeyword = this.tsParseThisTypeNode();\n if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n return this.tsParseThisTypePredicate(thisKeyword);\n } else {\n return thisKeyword;\n }\n }\n\n tsParseNonArrayType(): N.TsType {\n switch (this.state.type) {\n case tt.name:\n case tt._void:\n case tt._null: {\n const type = this.match(tt._void)\n ? \"TSVoidKeyword\"\n : this.match(tt._null)\n ? \"TSNullKeyword\"\n : keywordTypeFromName(this.state.value);\n if (\n type !== undefined &&\n this.lookaheadCharCode() !== charCodes.dot\n ) {\n const node: N.TsKeywordType = this.startNode();\n this.next();\n return this.finishNode(node, type);\n }\n return this.tsParseTypeReference();\n }\n case tt.string:\n case tt.num:\n case tt.bigint:\n case tt._true:\n case tt._false:\n return this.tsParseLiteralTypeNode();\n case tt.plusMin:\n if (this.state.value === \"-\") {\n const node: N.TsLiteralType = this.startNode();\n const nextToken = this.lookahead();\n if (nextToken.type !== tt.num && nextToken.type !== tt.bigint) {\n throw this.unexpected();\n }\n node.literal = this.parseMaybeUnary();\n return this.finishNode(node, \"TSLiteralType\");\n }\n break;\n case tt._this:\n return this.tsParseThisTypeOrThisTypePredicate();\n case tt._typeof:\n return this.tsParseTypeQuery();\n case tt._import:\n return this.tsParseImportType();\n case tt.braceL:\n return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))\n ? this.tsParseMappedType()\n : this.tsParseTypeLiteral();\n case tt.bracketL:\n return this.tsParseTupleType();\n case tt.parenL:\n if (process.env.BABEL_8_BREAKING) {\n if (!this.options.createParenthesizedExpressions) {\n const startPos = this.state.start;\n this.next();\n const type = this.tsParseType();\n this.expect(tt.parenR);\n this.addExtra(type, \"parenthesized\", true);\n this.addExtra(type, \"parenStart\", startPos);\n return type;\n }\n }\n\n return this.tsParseParenthesizedType();\n case tt.backQuote:\n return this.tsParseTemplateLiteralType();\n }\n\n throw this.unexpected();\n }\n\n tsParseArrayTypeOrHigher(): N.TsType {\n let type = this.tsParseNonArrayType();\n while (!this.hasPrecedingLineBreak() && this.eat(tt.bracketL)) {\n if (this.match(tt.bracketR)) {\n const node: N.TsArrayType = this.startNodeAtNode(type);\n node.elementType = type;\n this.expect(tt.bracketR);\n type = this.finishNode(node, \"TSArrayType\");\n } else {\n const node: N.TsIndexedAccessType = this.startNodeAtNode(type);\n node.objectType = type;\n node.indexType = this.tsParseType();\n this.expect(tt.bracketR);\n type = this.finishNode(node, \"TSIndexedAccessType\");\n }\n }\n return type;\n }\n\n tsParseTypeOperator(\n operator: \"keyof\" | \"unique\" | \"readonly\",\n ): N.TsTypeOperator {\n const node: N.TsTypeOperator = this.startNode();\n this.expectContextual(operator);\n node.operator = operator;\n node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n\n if (operator === \"readonly\") {\n this.tsCheckTypeAnnotationForReadOnly(node);\n }\n\n return this.finishNode(node, \"TSTypeOperator\");\n }\n\n tsCheckTypeAnnotationForReadOnly(node: N.Node) {\n switch (node.typeAnnotation.type) {\n case \"TSTupleType\":\n case \"TSArrayType\":\n return;\n default:\n this.raise(node.start, TSErrors.UnexpectedReadonly);\n }\n }\n\n tsParseInferType(): N.TsInferType {\n const node = this.startNode();\n this.expectContextual(\"infer\");\n const typeParameter = this.startNode();\n typeParameter.name = this.parseIdentifierName(typeParameter.start);\n node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n return this.finishNode(node, \"TSInferType\");\n }\n\n tsParseTypeOperatorOrHigher(): N.TsType {\n const operator = [\"keyof\", \"unique\", \"readonly\"].find(kw =>\n this.isContextual(kw),\n );\n return operator\n ? this.tsParseTypeOperator(operator)\n : this.isContextual(\"infer\")\n ? this.tsParseInferType()\n : this.tsParseArrayTypeOrHigher();\n }\n\n tsParseUnionOrIntersectionType(\n kind: \"TSUnionType\" | \"TSIntersectionType\",\n parseConstituentType: () => N.TsType,\n operator: TokenType,\n ): N.TsType {\n const node: N.TsUnionType | N.TsIntersectionType = this.startNode();\n const hasLeadingOperator = this.eat(operator);\n const types = [];\n do {\n types.push(parseConstituentType());\n } while (this.eat(operator));\n if (types.length === 1 && !hasLeadingOperator) {\n return types[0];\n }\n node.types = types;\n return this.finishNode(node, kind);\n }\n\n tsParseIntersectionTypeOrHigher(): N.TsType {\n return this.tsParseUnionOrIntersectionType(\n \"TSIntersectionType\",\n this.tsParseTypeOperatorOrHigher.bind(this),\n tt.bitwiseAND,\n );\n }\n\n tsParseUnionTypeOrHigher() {\n return this.tsParseUnionOrIntersectionType(\n \"TSUnionType\",\n this.tsParseIntersectionTypeOrHigher.bind(this),\n tt.bitwiseOR,\n );\n }\n\n tsIsStartOfFunctionType() {\n if (this.isRelational(\"<\")) {\n return true;\n }\n return (\n this.match(tt.parenL) &&\n this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))\n );\n }\n\n tsSkipParameterStart(): boolean {\n if (this.match(tt.name) || this.match(tt._this)) {\n this.next();\n return true;\n }\n\n if (this.match(tt.braceL)) {\n let braceStackCounter = 1;\n this.next();\n\n while (braceStackCounter > 0) {\n if (this.match(tt.braceL)) {\n ++braceStackCounter;\n } else if (this.match(tt.braceR)) {\n --braceStackCounter;\n }\n this.next();\n }\n return true;\n }\n\n if (this.match(tt.bracketL)) {\n let braceStackCounter = 1;\n this.next();\n\n while (braceStackCounter > 0) {\n if (this.match(tt.bracketL)) {\n ++braceStackCounter;\n } else if (this.match(tt.bracketR)) {\n --braceStackCounter;\n }\n this.next();\n }\n return true;\n }\n\n return false;\n }\n\n tsIsUnambiguouslyStartOfFunctionType(): boolean {\n this.next();\n if (this.match(tt.parenR) || this.match(tt.ellipsis)) {\n // ( )\n // ( ...\n return true;\n }\n if (this.tsSkipParameterStart()) {\n if (\n this.match(tt.colon) ||\n this.match(tt.comma) ||\n this.match(tt.question) ||\n this.match(tt.eq)\n ) {\n // ( xxx :\n // ( xxx ,\n // ( xxx ?\n // ( xxx =\n return true;\n }\n if (this.match(tt.parenR)) {\n this.next();\n if (this.match(tt.arrow)) {\n // ( xxx ) =>\n return true;\n }\n }\n }\n return false;\n }\n\n tsParseTypeOrTypePredicateAnnotation(\n returnToken: TokenType,\n ): N.TsTypeAnnotation {\n return this.tsInType(() => {\n const t: N.TsTypeAnnotation = this.startNode();\n this.expect(returnToken);\n\n const node = this.startNode();\n\n const asserts = !!this.tsTryParse(\n this.tsParseTypePredicateAsserts.bind(this),\n );\n\n if (asserts && this.match(tt._this)) {\n // When asserts is false, thisKeyword is handled by tsParseNonArrayType\n // : asserts this is type\n let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n // if it turns out to be a `TSThisType`, wrap it with `TSTypePredicate`\n // : asserts this\n if (thisTypePredicate.type === \"TSThisType\") {\n node.parameterName = (thisTypePredicate: N.TsThisType);\n node.asserts = true;\n thisTypePredicate = this.finishNode(node, \"TSTypePredicate\");\n } else {\n this.resetStartLocationFromNode(thisTypePredicate, node);\n (thisTypePredicate: N.TsTypePredicate).asserts = true;\n }\n t.typeAnnotation = thisTypePredicate;\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n\n const typePredicateVariable =\n this.tsIsIdentifier() &&\n this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n\n if (!typePredicateVariable) {\n if (!asserts) {\n // : type\n return this.tsParseTypeAnnotation(/* eatColon */ false, t);\n }\n\n // : asserts foo\n node.parameterName = this.parseIdentifier();\n node.asserts = asserts;\n t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n\n // : asserts foo is type\n const type = this.tsParseTypeAnnotation(/* eatColon */ false);\n node.parameterName = typePredicateVariable;\n node.typeAnnotation = type;\n node.asserts = asserts;\n t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n return this.finishNode(t, \"TSTypeAnnotation\");\n });\n }\n\n tsTryParseTypeOrTypePredicateAnnotation(): ?N.TsTypeAnnotation {\n return this.match(tt.colon)\n ? this.tsParseTypeOrTypePredicateAnnotation(tt.colon)\n : undefined;\n }\n\n tsTryParseTypeAnnotation(): ?N.TsTypeAnnotation {\n return this.match(tt.colon) ? this.tsParseTypeAnnotation() : undefined;\n }\n\n tsTryParseType(): ?N.TsType {\n return this.tsEatThenParseType(tt.colon);\n }\n\n tsParseTypePredicatePrefix(): ?N.Identifier {\n const id = this.parseIdentifier();\n if (this.isContextual(\"is\") && !this.hasPrecedingLineBreak()) {\n this.next();\n return id;\n }\n }\n\n tsParseTypePredicateAsserts(): boolean {\n if (\n !this.match(tt.name) ||\n this.state.value !== \"asserts\" ||\n this.hasPrecedingLineBreak()\n ) {\n return false;\n }\n const containsEsc = this.state.containsEsc;\n this.next();\n if (!this.match(tt.name) && !this.match(tt._this)) {\n return false;\n }\n\n if (containsEsc) {\n this.raise(\n this.state.lastTokStart,\n Errors.InvalidEscapedReservedWord,\n \"asserts\",\n );\n }\n\n return true;\n }\n\n tsParseTypeAnnotation(\n eatColon = true,\n t: N.TsTypeAnnotation = this.startNode(),\n ): N.TsTypeAnnotation {\n this.tsInType(() => {\n if (eatColon) this.expect(tt.colon);\n t.typeAnnotation = this.tsParseType();\n });\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n\n /** Be sure to be in a type context before calling this, using `tsInType`. */\n tsParseType(): N.TsType {\n // Need to set `state.inType` so that we don't parse JSX in a type context.\n assert(this.state.inType);\n const type = this.tsParseNonConditionalType();\n if (this.hasPrecedingLineBreak() || !this.eat(tt._extends)) {\n return type;\n }\n const node: N.TsConditionalType = this.startNodeAtNode(type);\n node.checkType = type;\n node.extendsType = this.tsParseNonConditionalType();\n this.expect(tt.question);\n node.trueType = this.tsParseType();\n this.expect(tt.colon);\n node.falseType = this.tsParseType();\n return this.finishNode(node, \"TSConditionalType\");\n }\n\n isAbstractConstructorSignature(): boolean {\n return this.isContextual(\"abstract\") && this.lookahead().type === tt._new;\n }\n\n tsParseNonConditionalType(): N.TsType {\n if (this.tsIsStartOfFunctionType()) {\n return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n }\n if (this.match(tt._new)) {\n // As in `new () => Date`\n return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n } else if (this.isAbstractConstructorSignature()) {\n // As in `abstract new () => Date`\n return this.tsParseFunctionOrConstructorType(\n \"TSConstructorType\",\n /* abstract */ true,\n );\n }\n return this.tsParseUnionTypeOrHigher();\n }\n\n tsParseTypeAssertion(): N.TsTypeAssertion {\n const node: N.TsTypeAssertion = this.startNode();\n const _const = this.tsTryNextParseConstantContext();\n node.typeAnnotation = _const || this.tsNextThenParseType();\n this.expectRelational(\">\");\n node.expression = this.parseMaybeUnary();\n return this.finishNode(node, \"TSTypeAssertion\");\n }\n\n tsParseHeritageClause(\n descriptor: string,\n ): $ReadOnlyArray {\n const originalStart = this.state.start;\n\n const delimitedList = this.tsParseDelimitedList(\n \"HeritageClauseElement\",\n this.tsParseExpressionWithTypeArguments.bind(this),\n );\n\n if (!delimitedList.length) {\n this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor);\n }\n\n return delimitedList;\n }\n\n tsParseExpressionWithTypeArguments(): N.TsExpressionWithTypeArguments {\n const node: N.TsExpressionWithTypeArguments = this.startNode();\n // Note: TS uses parseLeftHandSideExpressionOrHigher,\n // then has grammar errors later if it's not an EntityName.\n node.expression = this.tsParseEntityName(/* allowReservedWords */ false);\n if (this.isRelational(\"<\")) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n\n return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n }\n\n tsParseInterfaceDeclaration(\n node: N.TsInterfaceDeclaration,\n ): N.TsInterfaceDeclaration {\n node.id = this.parseIdentifier();\n this.checkLVal(\n node.id,\n \"typescript interface declaration\",\n BIND_TS_INTERFACE,\n );\n node.typeParameters = this.tsTryParseTypeParameters();\n if (this.eat(tt._extends)) {\n node.extends = this.tsParseHeritageClause(\"extends\");\n }\n const body: N.TSInterfaceBody = this.startNode();\n body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n node.body = this.finishNode(body, \"TSInterfaceBody\");\n return this.finishNode(node, \"TSInterfaceDeclaration\");\n }\n\n tsParseTypeAliasDeclaration(\n node: N.TsTypeAliasDeclaration,\n ): N.TsTypeAliasDeclaration {\n node.id = this.parseIdentifier();\n this.checkLVal(node.id, \"typescript type alias\", BIND_TS_TYPE);\n\n node.typeParameters = this.tsTryParseTypeParameters();\n node.typeAnnotation = this.tsInType(() => {\n this.expect(tt.eq);\n\n if (\n this.isContextual(\"intrinsic\") &&\n this.lookahead().type !== tt.dot\n ) {\n const node: N.TsKeywordType = this.startNode();\n this.next();\n return this.finishNode(node, \"TSIntrinsicKeyword\");\n }\n\n return this.tsParseType();\n });\n\n this.semicolon();\n return this.finishNode(node, \"TSTypeAliasDeclaration\");\n }\n\n tsInNoContext(cb: () => T): T {\n const oldContext = this.state.context;\n this.state.context = [oldContext[0]];\n try {\n return cb();\n } finally {\n this.state.context = oldContext;\n }\n }\n\n /**\n * Runs `cb` in a type context.\n * This should be called one token *before* the first type token,\n * so that the call to `next()` is run in type context.\n */\n tsInType(cb: () => T): T {\n const oldInType = this.state.inType;\n this.state.inType = true;\n try {\n return cb();\n } finally {\n this.state.inType = oldInType;\n }\n }\n\n tsEatThenParseType(token: TokenType): N.TsType | typeof undefined {\n return !this.match(token) ? undefined : this.tsNextThenParseType();\n }\n\n tsExpectThenParseType(token: TokenType): N.TsType {\n return this.tsDoThenParseType(() => this.expect(token));\n }\n\n tsNextThenParseType(): N.TsType {\n return this.tsDoThenParseType(() => this.next());\n }\n\n tsDoThenParseType(cb: () => void): N.TsType {\n return this.tsInType(() => {\n cb();\n return this.tsParseType();\n });\n }\n\n tsParseEnumMember(): N.TsEnumMember {\n const node: N.TsEnumMember = this.startNode();\n // Computed property names are grammar errors in an enum, so accept just string literal or identifier.\n node.id = this.match(tt.string)\n ? this.parseExprAtom()\n : this.parseIdentifier(/* liberal */ true);\n if (this.eat(tt.eq)) {\n node.initializer = this.parseMaybeAssignAllowIn();\n }\n return this.finishNode(node, \"TSEnumMember\");\n }\n\n tsParseEnumDeclaration(\n node: N.TsEnumDeclaration,\n isConst: boolean,\n ): N.TsEnumDeclaration {\n if (isConst) node.const = true;\n node.id = this.parseIdentifier();\n this.checkLVal(\n node.id,\n \"typescript enum declaration\",\n isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM,\n );\n\n this.expect(tt.braceL);\n node.members = this.tsParseDelimitedList(\n \"EnumMembers\",\n this.tsParseEnumMember.bind(this),\n );\n this.expect(tt.braceR);\n return this.finishNode(node, \"TSEnumDeclaration\");\n }\n\n tsParseModuleBlock(): N.TsModuleBlock {\n const node: N.TsModuleBlock = this.startNode();\n this.scope.enter(SCOPE_OTHER);\n\n this.expect(tt.braceL);\n // Inside of a module block is considered \"top-level\", meaning it can have imports and exports.\n this.parseBlockOrModuleBlockBody(\n (node.body = []),\n /* directives */ undefined,\n /* topLevel */ true,\n /* end */ tt.braceR,\n );\n this.scope.exit();\n return this.finishNode(node, \"TSModuleBlock\");\n }\n\n tsParseModuleOrNamespaceDeclaration(\n node: N.TsModuleDeclaration,\n nested?: boolean = false,\n ): N.TsModuleDeclaration {\n node.id = this.parseIdentifier();\n\n if (!nested) {\n this.checkLVal(\n node.id,\n \"module or namespace declaration\",\n BIND_TS_NAMESPACE,\n );\n }\n\n if (this.eat(tt.dot)) {\n const inner = this.startNode();\n this.tsParseModuleOrNamespaceDeclaration(inner, true);\n node.body = inner;\n } else {\n this.scope.enter(SCOPE_TS_MODULE);\n this.prodParam.enter(PARAM);\n node.body = this.tsParseModuleBlock();\n this.prodParam.exit();\n this.scope.exit();\n }\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n\n tsParseAmbientExternalModuleDeclaration(\n node: N.TsModuleDeclaration,\n ): N.TsModuleDeclaration {\n if (this.isContextual(\"global\")) {\n node.global = true;\n node.id = this.parseIdentifier();\n } else if (this.match(tt.string)) {\n node.id = this.parseExprAtom();\n } else {\n this.unexpected();\n }\n if (this.match(tt.braceL)) {\n this.scope.enter(SCOPE_TS_MODULE);\n this.prodParam.enter(PARAM);\n node.body = this.tsParseModuleBlock();\n this.prodParam.exit();\n this.scope.exit();\n } else {\n this.semicolon();\n }\n\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n\n tsParseImportEqualsDeclaration(\n node: N.TsImportEqualsDeclaration,\n isExport?: boolean,\n ): N.TsImportEqualsDeclaration {\n node.isExport = isExport || false;\n node.id = this.parseIdentifier();\n this.checkLVal(node.id, \"import equals declaration\", BIND_LEXICAL);\n this.expect(tt.eq);\n const moduleReference = this.tsParseModuleReference();\n if (\n node.importKind === \"type\" &&\n moduleReference.type !== \"TSExternalModuleReference\"\n ) {\n this.raise(moduleReference.start, TSErrors.ImportAliasHasImportType);\n }\n node.moduleReference = moduleReference;\n this.semicolon();\n return this.finishNode(node, \"TSImportEqualsDeclaration\");\n }\n\n tsIsExternalModuleReference(): boolean {\n return (\n this.isContextual(\"require\") &&\n this.lookaheadCharCode() === charCodes.leftParenthesis\n );\n }\n\n tsParseModuleReference(): N.TsModuleReference {\n return this.tsIsExternalModuleReference()\n ? this.tsParseExternalModuleReference()\n : this.tsParseEntityName(/* allowReservedWords */ false);\n }\n\n tsParseExternalModuleReference(): N.TsExternalModuleReference {\n const node: N.TsExternalModuleReference = this.startNode();\n this.expectContextual(\"require\");\n this.expect(tt.parenL);\n if (!this.match(tt.string)) {\n throw this.unexpected();\n }\n // For compatibility to estree we cannot call parseLiteral directly here\n node.expression = this.parseExprAtom();\n this.expect(tt.parenR);\n return this.finishNode(node, \"TSExternalModuleReference\");\n }\n\n // Utilities\n\n tsLookAhead(f: () => T): T {\n const state = this.state.clone();\n const res = f();\n this.state = state;\n return res;\n }\n\n tsTryParseAndCatch(f: () => T): ?T {\n const result = this.tryParse(abort => f() || abort());\n\n if (result.aborted || !result.node) return undefined;\n if (result.error) this.state = result.failState;\n return result.node;\n }\n\n tsTryParse(f: () => ?T): ?T {\n const state = this.state.clone();\n const result = f();\n if (result !== undefined && result !== false) {\n return result;\n } else {\n this.state = state;\n return undefined;\n }\n }\n\n tsTryParseDeclare(nany: any): ?N.Declaration {\n if (this.isLineTerminator()) {\n return;\n }\n let starttype = this.state.type;\n let kind;\n\n if (this.isContextual(\"let\")) {\n starttype = tt._var;\n kind = \"let\";\n }\n\n return this.tsInDeclareContext(() => {\n switch (starttype) {\n case tt._function:\n nany.declare = true;\n return this.parseFunctionStatement(\n nany,\n /* async */ false,\n /* declarationPosition */ true,\n );\n case tt._class:\n // While this is also set by tsParseExpressionStatement, we need to set it\n // before parsing the class declaration to now how to register it in the scope.\n nany.declare = true;\n return this.parseClass(\n nany,\n /* isStatement */ true,\n /* optionalId */ false,\n );\n case tt._const:\n if (this.match(tt._const) && this.isLookaheadContextual(\"enum\")) {\n // `const enum = 0;` not allowed because \"enum\" is a strict mode reserved word.\n this.expect(tt._const);\n this.expectContextual(\"enum\");\n return this.tsParseEnumDeclaration(nany, /* isConst */ true);\n }\n // falls through\n case tt._var:\n kind = kind || this.state.value;\n return this.parseVarStatement(nany, kind);\n case tt.name: {\n const value = this.state.value;\n if (value === \"global\") {\n return this.tsParseAmbientExternalModuleDeclaration(nany);\n } else {\n return this.tsParseDeclaration(nany, value, /* next */ true);\n }\n }\n }\n });\n }\n\n // Note: this won't be called unless the keyword is allowed in `shouldParseExportDeclaration`.\n tsTryParseExportDeclaration(): ?N.Declaration {\n return this.tsParseDeclaration(\n this.startNode(),\n this.state.value,\n /* next */ true,\n );\n }\n\n tsParseExpressionStatement(node: any, expr: N.Identifier): ?N.Declaration {\n switch (expr.name) {\n case \"declare\": {\n const declaration = this.tsTryParseDeclare(node);\n if (declaration) {\n declaration.declare = true;\n return declaration;\n }\n break;\n }\n case \"global\":\n // `global { }` (with no `declare`) may appear inside an ambient module declaration.\n // Would like to use tsParseAmbientExternalModuleDeclaration here, but already ran past \"global\".\n if (this.match(tt.braceL)) {\n this.scope.enter(SCOPE_TS_MODULE);\n this.prodParam.enter(PARAM);\n const mod: N.TsModuleDeclaration = node;\n mod.global = true;\n mod.id = expr;\n mod.body = this.tsParseModuleBlock();\n this.scope.exit();\n this.prodParam.exit();\n return this.finishNode(mod, \"TSModuleDeclaration\");\n }\n break;\n\n default:\n return this.tsParseDeclaration(node, expr.name, /* next */ false);\n }\n }\n\n // Common to tsTryParseDeclare, tsTryParseExportDeclaration, and tsParseExpressionStatement.\n tsParseDeclaration(\n node: any,\n value: string,\n next: boolean,\n ): ?N.Declaration {\n // no declaration apart from enum can be followed by a line break.\n switch (value) {\n case \"abstract\":\n if (\n this.tsCheckLineTerminator(next) &&\n (this.match(tt._class) || this.match(tt.name))\n ) {\n return this.tsParseAbstractDeclaration(node);\n }\n break;\n\n case \"enum\":\n if (next || this.match(tt.name)) {\n if (next) this.next();\n return this.tsParseEnumDeclaration(node, /* isConst */ false);\n }\n break;\n\n case \"interface\":\n if (this.tsCheckLineTerminator(next) && this.match(tt.name)) {\n return this.tsParseInterfaceDeclaration(node);\n }\n break;\n\n case \"module\":\n if (this.tsCheckLineTerminator(next)) {\n if (this.match(tt.string)) {\n return this.tsParseAmbientExternalModuleDeclaration(node);\n } else if (this.match(tt.name)) {\n return this.tsParseModuleOrNamespaceDeclaration(node);\n }\n }\n break;\n\n case \"namespace\":\n if (this.tsCheckLineTerminator(next) && this.match(tt.name)) {\n return this.tsParseModuleOrNamespaceDeclaration(node);\n }\n break;\n\n case \"type\":\n if (this.tsCheckLineTerminator(next) && this.match(tt.name)) {\n return this.tsParseTypeAliasDeclaration(node);\n }\n break;\n }\n }\n\n tsCheckLineTerminator(next: boolean) {\n if (next) {\n if (this.hasFollowingLineBreak()) return false;\n this.next();\n return true;\n }\n return !this.isLineTerminator();\n }\n\n tsTryParseGenericAsyncArrowFunction(\n startPos: number,\n startLoc: Position,\n ): ?N.ArrowFunctionExpression {\n if (!this.isRelational(\"<\")) {\n return undefined;\n }\n\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n this.state.maybeInArrowParameters = true;\n\n const res: ?N.ArrowFunctionExpression = this.tsTryParseAndCatch(() => {\n const node: N.ArrowFunctionExpression = this.startNodeAt(\n startPos,\n startLoc,\n );\n node.typeParameters = this.tsParseTypeParameters();\n // Don't use overloaded parseFunctionParams which would look for \"<\" again.\n super.parseFunctionParams(node);\n node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n this.expect(tt.arrow);\n return node;\n });\n\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n if (!res) {\n return undefined;\n }\n\n return this.parseArrowExpression(\n res,\n /* params are already set */ null,\n /* async */ true,\n );\n }\n\n tsParseTypeArguments(): N.TsTypeParameterInstantiation {\n const node = this.startNode();\n node.params = this.tsInType(() =>\n // Temporarily remove a JSX parsing context, which makes us scan different tokens.\n this.tsInNoContext(() => {\n this.expectRelational(\"<\");\n return this.tsParseDelimitedList(\n \"TypeParametersOrArguments\",\n this.tsParseType.bind(this),\n );\n }),\n );\n if (node.params.length === 0) {\n this.raise(node.start, TSErrors.EmptyTypeArguments);\n }\n // This reads the next token after the `>` too, so do this in the enclosing context.\n // But be sure not to parse a regex in the jsx expression ` />`, so set exprAllowed = false\n this.state.exprAllowed = false;\n this.expectRelational(\">\");\n return this.finishNode(node, \"TSTypeParameterInstantiation\");\n }\n\n tsIsDeclarationStart(): boolean {\n if (this.match(tt.name)) {\n switch (this.state.value) {\n case \"abstract\":\n case \"declare\":\n case \"enum\":\n case \"interface\":\n case \"module\":\n case \"namespace\":\n case \"type\":\n return true;\n }\n }\n\n return false;\n }\n\n // ======================================================\n // OVERRIDES\n // ======================================================\n\n isExportDefaultSpecifier(): boolean {\n if (this.tsIsDeclarationStart()) return false;\n return super.isExportDefaultSpecifier();\n }\n\n parseAssignableListItem(\n allowModifiers: ?boolean,\n decorators: N.Decorator[],\n ): N.Pattern | N.TSParameterProperty {\n // Store original location/position to include modifiers in range\n const startPos = this.state.start;\n const startLoc = this.state.startLoc;\n\n let accessibility: ?N.Accessibility;\n let readonly = false;\n if (allowModifiers !== undefined) {\n accessibility = this.parseAccessModifier();\n readonly = !!this.tsParseModifier([\"readonly\"]);\n if (allowModifiers === false && (accessibility || readonly)) {\n this.raise(startPos, TSErrors.UnexpectedParameterModifier);\n }\n }\n\n const left = this.parseMaybeDefault();\n this.parseAssignableListItemTypes(left);\n const elt = this.parseMaybeDefault(left.start, left.loc.start, left);\n if (accessibility || readonly) {\n const pp: N.TSParameterProperty = this.startNodeAt(startPos, startLoc);\n if (decorators.length) {\n pp.decorators = decorators;\n }\n if (accessibility) pp.accessibility = accessibility;\n if (readonly) pp.readonly = readonly;\n if (elt.type !== \"Identifier\" && elt.type !== \"AssignmentPattern\") {\n this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind);\n }\n pp.parameter = ((elt: any): N.Identifier | N.AssignmentPattern);\n return this.finishNode(pp, \"TSParameterProperty\");\n }\n\n if (decorators.length) {\n left.decorators = decorators;\n }\n\n return elt;\n }\n\n parseFunctionBodyAndFinish(\n node: N.BodilessFunctionOrMethodBase,\n type: string,\n isMethod?: boolean = false,\n ): void {\n if (this.match(tt.colon)) {\n node.returnType = this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n }\n\n const bodilessType =\n type === \"FunctionDeclaration\"\n ? \"TSDeclareFunction\"\n : type === \"ClassMethod\"\n ? \"TSDeclareMethod\"\n : undefined;\n if (bodilessType && !this.match(tt.braceL) && this.isLineTerminator()) {\n this.finishNode(node, bodilessType);\n return;\n }\n if (bodilessType === \"TSDeclareFunction\" && this.state.isDeclareContext) {\n this.raise(node.start, TSErrors.DeclareFunctionHasImplementation);\n if (\n // $FlowIgnore\n node.declare\n ) {\n super.parseFunctionBodyAndFinish(node, bodilessType, isMethod);\n return;\n }\n }\n\n super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n\n registerFunctionStatementId(node: N.Function): void {\n if (!node.body && node.id) {\n // Function ids are validated after parsing their body.\n // For bodyless function, we need to do it here.\n this.checkLVal(node.id, \"function name\", BIND_TS_AMBIENT);\n } else {\n super.registerFunctionStatementId(...arguments);\n }\n }\n\n tsCheckForInvalidTypeCasts(items: $ReadOnlyArray) {\n items.forEach(node => {\n if (node?.type === \"TSTypeCastExpression\") {\n this.raise(\n node.typeAnnotation.start,\n TSErrors.UnexpectedTypeAnnotation,\n );\n }\n });\n }\n\n toReferencedList(\n exprList: $ReadOnlyArray,\n isInParens?: boolean, // eslint-disable-line no-unused-vars\n ): $ReadOnlyArray {\n // Handles invalid scenarios like: `f(a:b)`, `(a:b);`, and `(a:b,c:d)`.\n //\n // Note that `f(a:b)` goes through a different path and is handled\n // in `parseSubscript` directly.\n this.tsCheckForInvalidTypeCasts(exprList);\n return exprList;\n }\n\n parseArrayLike(...args): N.ArrayExpression | N.TupleExpression {\n const node = super.parseArrayLike(...args);\n\n if (node.type === \"ArrayExpression\") {\n this.tsCheckForInvalidTypeCasts(node.elements);\n }\n\n return node;\n }\n\n parseSubscript(\n base: N.Expression,\n startPos: number,\n startLoc: Position,\n noCalls: ?boolean,\n state: N.ParseSubscriptState,\n ): N.Expression {\n if (!this.hasPrecedingLineBreak() && this.match(tt.bang)) {\n this.state.exprAllowed = false;\n this.next();\n\n const nonNullExpression: N.TsNonNullExpression = this.startNodeAt(\n startPos,\n startLoc,\n );\n nonNullExpression.expression = base;\n return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n }\n\n if (this.isRelational(\"<\")) {\n // tsTryParseAndCatch is expensive, so avoid if not necessary.\n // There are number of things we are going to \"maybe\" parse, like type arguments on\n // tagged template expressions. If any of them fail, walk it back and continue.\n const result = this.tsTryParseAndCatch(() => {\n if (!noCalls && this.atPossibleAsyncArrow(base)) {\n // Almost certainly this is a generic async function `async () => ...\n // But it might be a call with a type argument `async();`\n const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(\n startPos,\n startLoc,\n );\n if (asyncArrowFn) {\n return asyncArrowFn;\n }\n }\n\n const node: N.CallExpression = this.startNodeAt(startPos, startLoc);\n node.callee = base;\n\n const typeArguments = this.tsParseTypeArguments();\n\n if (typeArguments) {\n if (!noCalls && this.eat(tt.parenL)) {\n // possibleAsync always false here, because we would have handled it above.\n // $FlowIgnore (won't be any undefined arguments)\n node.arguments = this.parseCallExpressionArguments(\n tt.parenR,\n /* possibleAsync */ false,\n );\n\n // Handles invalid case: `f(a:b)`\n this.tsCheckForInvalidTypeCasts(node.arguments);\n\n node.typeParameters = typeArguments;\n if (state.optionalChainMember) {\n // $FlowIgnore\n node.optional = false;\n }\n return this.finishCallExpression(node, state.optionalChainMember);\n } else if (this.match(tt.backQuote)) {\n const result = this.parseTaggedTemplateExpression(\n base,\n startPos,\n startLoc,\n state,\n );\n result.typeParameters = typeArguments;\n return result;\n }\n }\n\n this.unexpected();\n });\n\n if (result) return result;\n }\n\n return super.parseSubscript(base, startPos, startLoc, noCalls, state);\n }\n\n parseNewArguments(node: N.NewExpression): void {\n if (this.isRelational(\"<\")) {\n // tsTryParseAndCatch is expensive, so avoid if not necessary.\n // 99% certain this is `new C();`. But may be `new C < T;`, which is also legal.\n const typeParameters = this.tsTryParseAndCatch(() => {\n const args = this.tsParseTypeArguments();\n if (!this.match(tt.parenL)) this.unexpected();\n return args;\n });\n if (typeParameters) {\n node.typeParameters = typeParameters;\n }\n }\n\n super.parseNewArguments(node);\n }\n\n parseExprOp(\n left: N.Expression,\n leftStartPos: number,\n leftStartLoc: Position,\n minPrec: number,\n ) {\n if (\n nonNull(tt._in.binop) > minPrec &&\n !this.hasPrecedingLineBreak() &&\n this.isContextual(\"as\")\n ) {\n const node: N.TsAsExpression = this.startNodeAt(\n leftStartPos,\n leftStartLoc,\n );\n node.expression = left;\n const _const = this.tsTryNextParseConstantContext();\n if (_const) {\n node.typeAnnotation = _const;\n } else {\n node.typeAnnotation = this.tsNextThenParseType();\n }\n this.finishNode(node, \"TSAsExpression\");\n // rescan `<`, `>` because they were scanned when this.state.inType was true\n this.reScan_lt_gt();\n return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec);\n }\n\n return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec);\n }\n\n checkReservedWord(\n word: string, // eslint-disable-line no-unused-vars\n startLoc: number, // eslint-disable-line no-unused-vars\n checkKeywords: boolean, // eslint-disable-line no-unused-vars\n // eslint-disable-next-line no-unused-vars\n isBinding: boolean,\n ): void {\n // Don't bother checking for TypeScript code.\n // Strict mode words may be allowed as in `declare namespace N { const static: number; }`.\n // And we have a type checker anyway, so don't bother having the parser do it.\n }\n\n /*\n Don't bother doing this check in TypeScript code because:\n 1. We may have a nested export statement with the same name:\n export const x = 0;\n export namespace N {\n export const x = 1;\n }\n 2. We have a type checker to warn us about this sort of thing.\n */\n checkDuplicateExports() {}\n\n parseImport(node: N.Node): N.AnyImport {\n node.importKind = \"value\";\n if (this.match(tt.name) || this.match(tt.star) || this.match(tt.braceL)) {\n let ahead = this.lookahead();\n\n if (\n this.isContextual(\"type\") &&\n // import type, { a } from \"b\";\n ahead.type !== tt.comma &&\n // import type from \"a\";\n !(ahead.type === tt.name && ahead.value === \"from\") &&\n // import type = require(\"a\");\n ahead.type !== tt.eq\n ) {\n node.importKind = \"type\";\n this.next();\n ahead = this.lookahead();\n }\n\n if (this.match(tt.name) && ahead.type === tt.eq) {\n return this.tsParseImportEqualsDeclaration(node);\n }\n }\n\n const importNode = super.parseImport(node);\n /*:: invariant(importNode.type !== \"TSImportEqualsDeclaration\") */\n\n // `import type` can only be used on imports with named imports or with a\n // default import - but not both\n if (\n importNode.importKind === \"type\" &&\n importNode.specifiers.length > 1 &&\n importNode.specifiers[0].type === \"ImportDefaultSpecifier\"\n ) {\n this.raise(\n importNode.start,\n \"A type-only import can specify a default import or named bindings, but not both.\",\n );\n }\n\n return importNode;\n }\n\n parseExport(node: N.Node): N.AnyExport {\n if (this.match(tt._import)) {\n // `export import A = B;`\n this.next(); // eat `tt._import`\n if (\n this.isContextual(\"type\") &&\n this.lookaheadCharCode() !== charCodes.equalsTo\n ) {\n node.importKind = \"type\";\n this.next(); // eat \"type\"\n } else {\n node.importKind = \"value\";\n }\n return this.tsParseImportEqualsDeclaration(node, /* isExport */ true);\n } else if (this.eat(tt.eq)) {\n // `export = x;`\n const assign: N.TsExportAssignment = node;\n assign.expression = this.parseExpression();\n this.semicolon();\n return this.finishNode(assign, \"TSExportAssignment\");\n } else if (this.eatContextual(\"as\")) {\n // `export as namespace A;`\n const decl: N.TsNamespaceExportDeclaration = node;\n // See `parseNamespaceExportDeclaration` in TypeScript's own parser\n this.expectContextual(\"namespace\");\n decl.id = this.parseIdentifier();\n this.semicolon();\n return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n } else {\n if (this.isContextual(\"type\") && this.lookahead().type === tt.braceL) {\n this.next();\n node.exportKind = \"type\";\n } else {\n node.exportKind = \"value\";\n }\n\n return super.parseExport(node);\n }\n }\n\n isAbstractClass(): boolean {\n return (\n this.isContextual(\"abstract\") && this.lookahead().type === tt._class\n );\n }\n\n parseExportDefaultExpression(): N.Expression | N.Declaration {\n if (this.isAbstractClass()) {\n const cls = this.startNode();\n this.next(); // Skip \"abstract\"\n cls.abstract = true;\n this.parseClass(cls, true, true);\n return cls;\n }\n\n // export default interface allowed in:\n // https://github.com/Microsoft/TypeScript/pull/16040\n if (this.state.value === \"interface\") {\n const result = this.tsParseDeclaration(\n this.startNode(),\n this.state.value,\n true,\n );\n\n if (result) return result;\n }\n\n return super.parseExportDefaultExpression();\n }\n\n parseStatementContent(context: ?string, topLevel: ?boolean): N.Statement {\n if (this.state.type === tt._const) {\n const ahead = this.lookahead();\n if (ahead.type === tt.name && ahead.value === \"enum\") {\n const node: N.TsEnumDeclaration = this.startNode();\n this.expect(tt._const);\n this.expectContextual(\"enum\");\n return this.tsParseEnumDeclaration(node, /* isConst */ true);\n }\n }\n return super.parseStatementContent(context, topLevel);\n }\n\n parseAccessModifier(): ?N.Accessibility {\n return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n }\n\n parseClassMember(\n classBody: N.ClassBody,\n member: any,\n state: N.ParseClassMemberState,\n ): void {\n this.tsParseModifiers(member, [\n \"declare\",\n \"private\",\n \"public\",\n \"protected\",\n ]);\n\n const callParseClassMember = () => {\n super.parseClassMember(classBody, member, state);\n };\n if (member.declare) {\n this.tsInDeclareContext(callParseClassMember);\n } else {\n callParseClassMember();\n }\n }\n\n parseClassMemberWithIsStatic(\n classBody: N.ClassBody,\n member: N.ClassMember | N.TsIndexSignature,\n state: N.ParseClassMemberState,\n isStatic: boolean,\n ): void {\n this.tsParseModifiers(member, [\"abstract\", \"readonly\", \"declare\"]);\n\n const idx = this.tsTryParseIndexSignature(member);\n if (idx) {\n classBody.body.push(idx);\n\n if ((member: any).abstract) {\n this.raise(member.start, TSErrors.IndexSignatureHasAbstract);\n }\n if (isStatic) {\n this.raise(member.start, TSErrors.IndexSignatureHasStatic);\n }\n if ((member: any).accessibility) {\n this.raise(\n member.start,\n TSErrors.IndexSignatureHasAccessibility,\n (member: any).accessibility,\n );\n }\n if ((member: any).declare) {\n this.raise(member.start, TSErrors.IndexSignatureHasDeclare);\n }\n\n return;\n }\n\n if (!this.state.inAbstractClass && (member: any).abstract) {\n this.raise(member.start, TSErrors.NonAbstractClassHasAbstractMethod);\n }\n\n /*:: invariant(member.type !== \"TSIndexSignature\") */\n\n super.parseClassMemberWithIsStatic(classBody, member, state, isStatic);\n }\n\n parsePostMemberNameModifiers(\n methodOrProp: N.ClassMethod | N.ClassProperty | N.ClassPrivateProperty,\n ): void {\n const optional = this.eat(tt.question);\n if (optional) methodOrProp.optional = true;\n\n if ((methodOrProp: any).readonly && this.match(tt.parenL)) {\n this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly);\n }\n\n if ((methodOrProp: any).declare && this.match(tt.parenL)) {\n this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare);\n }\n }\n\n // Note: The reason we do this in `parseExpressionStatement` and not `parseStatement`\n // is that e.g. `type()` is valid JS, so we must try parsing that first.\n // If it's really a type, we will parse `type` as the statement, and can correct it here\n // by parsing the rest.\n parseExpressionStatement(\n node: N.ExpressionStatement,\n expr: N.Expression,\n ): N.Statement {\n const decl =\n expr.type === \"Identifier\"\n ? this.tsParseExpressionStatement(node, expr)\n : undefined;\n return decl || super.parseExpressionStatement(node, expr);\n }\n\n // export type\n // Should be true for anything parsed by `tsTryParseExportDeclaration`.\n shouldParseExportDeclaration(): boolean {\n if (this.tsIsDeclarationStart()) return true;\n return super.shouldParseExportDeclaration();\n }\n\n // An apparent conditional expression could actually be an optional parameter in an arrow function.\n parseConditional(\n expr: N.Expression,\n startPos: number,\n startLoc: Position,\n refNeedsArrowPos?: ?Pos,\n ): N.Expression {\n // only do the expensive clone if there is a question mark\n // and if we come from inside parens\n if (!refNeedsArrowPos || !this.match(tt.question)) {\n return super.parseConditional(\n expr,\n startPos,\n startLoc,\n refNeedsArrowPos,\n );\n }\n\n const result = this.tryParse(() =>\n super.parseConditional(expr, startPos, startLoc),\n );\n\n if (!result.node) {\n // $FlowIgnore\n refNeedsArrowPos.start = result.error.pos || this.state.start;\n return expr;\n }\n if (result.error) this.state = result.failState;\n return result.node;\n }\n\n // Note: These \"type casts\" are *not* valid TS expressions.\n // But we parse them here and change them when completing the arrow function.\n parseParenItem(\n node: N.Expression,\n startPos: number,\n startLoc: Position,\n ): N.Expression {\n node = super.parseParenItem(node, startPos, startLoc);\n if (this.eat(tt.question)) {\n node.optional = true;\n // Include questionmark in location of node\n // Don't use this.finishNode() as otherwise we might process comments twice and\n // include already consumed parens\n this.resetEndLocation(node);\n }\n\n if (this.match(tt.colon)) {\n const typeCastNode: N.TsTypeCastExpression = this.startNodeAt(\n startPos,\n startLoc,\n );\n typeCastNode.expression = node;\n typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n\n return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n }\n\n return node;\n }\n\n parseExportDeclaration(node: N.ExportNamedDeclaration): ?N.Declaration {\n // Store original location/position\n const startPos = this.state.start;\n const startLoc = this.state.startLoc;\n\n // \"export declare\" is equivalent to just \"export\".\n const isDeclare = this.eatContextual(\"declare\");\n\n if (\n isDeclare &&\n (this.isContextual(\"declare\") || !this.shouldParseExportDeclaration())\n ) {\n throw this.raise(\n this.state.start,\n TSErrors.ExpectedAmbientAfterExportDeclare,\n );\n }\n\n let declaration: ?N.Declaration;\n\n if (this.match(tt.name)) {\n declaration = this.tsTryParseExportDeclaration();\n }\n if (!declaration) {\n declaration = super.parseExportDeclaration(node);\n }\n if (\n declaration &&\n (declaration.type === \"TSInterfaceDeclaration\" ||\n declaration.type === \"TSTypeAliasDeclaration\" ||\n isDeclare)\n ) {\n node.exportKind = \"type\";\n }\n\n if (declaration && isDeclare) {\n // Reset location to include `declare` in range\n this.resetStartLocation(declaration, startPos, startLoc);\n\n declaration.declare = true;\n }\n\n return declaration;\n }\n\n parseClassId(\n node: N.Class,\n isStatement: boolean,\n optionalId: ?boolean,\n ): void {\n if ((!isStatement || optionalId) && this.isContextual(\"implements\")) {\n return;\n }\n\n super.parseClassId(\n node,\n isStatement,\n optionalId,\n (node: any).declare ? BIND_TS_AMBIENT : BIND_CLASS,\n );\n const typeParameters = this.tsTryParseTypeParameters();\n if (typeParameters) node.typeParameters = typeParameters;\n }\n\n parseClassPropertyAnnotation(\n node: N.ClassProperty | N.ClassPrivateProperty,\n ): void {\n if (!node.optional && this.eat(tt.bang)) {\n node.definite = true;\n }\n\n const type = this.tsTryParseTypeAnnotation();\n if (type) node.typeAnnotation = type;\n }\n\n parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n this.parseClassPropertyAnnotation(node);\n\n if (this.state.isDeclareContext && this.match(tt.eq)) {\n this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer);\n }\n\n return super.parseClassProperty(node);\n }\n\n parseClassPrivateProperty(\n node: N.ClassPrivateProperty,\n ): N.ClassPrivateProperty {\n // $FlowIgnore\n if (node.abstract) {\n this.raise(node.start, TSErrors.PrivateElementHasAbstract);\n }\n\n // $FlowIgnore\n if (node.accessibility) {\n this.raise(\n node.start,\n TSErrors.PrivateElementHasAccessibility,\n node.accessibility,\n );\n }\n\n this.parseClassPropertyAnnotation(node);\n return super.parseClassPrivateProperty(node);\n }\n\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n const typeParameters = this.tsTryParseTypeParameters();\n if (typeParameters && isConstructor) {\n this.raise(typeParameters.start, TSErrors.ConstructorHasTypeParameters);\n }\n if (typeParameters) method.typeParameters = typeParameters;\n super.pushClassMethod(\n classBody,\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n );\n }\n\n pushClassPrivateMethod(\n classBody: N.ClassBody,\n method: N.ClassPrivateMethod,\n isGenerator: boolean,\n isAsync: boolean,\n ): void {\n const typeParameters = this.tsTryParseTypeParameters();\n if (typeParameters) method.typeParameters = typeParameters;\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n\n parseClassSuper(node: N.Class): void {\n super.parseClassSuper(node);\n if (node.superClass && this.isRelational(\"<\")) {\n node.superTypeParameters = this.tsParseTypeArguments();\n }\n if (this.eatContextual(\"implements\")) {\n node.implements = this.tsParseHeritageClause(\"implements\");\n }\n }\n\n parseObjPropValue(prop: N.ObjectMember, ...args): void {\n const typeParameters = this.tsTryParseTypeParameters();\n if (typeParameters) prop.typeParameters = typeParameters;\n\n super.parseObjPropValue(prop, ...args);\n }\n\n parseFunctionParams(node: N.Function, allowModifiers?: boolean): void {\n const typeParameters = this.tsTryParseTypeParameters();\n if (typeParameters) node.typeParameters = typeParameters;\n super.parseFunctionParams(node, allowModifiers);\n }\n\n // `let x: number;`\n parseVarId(\n decl: N.VariableDeclarator,\n kind: \"var\" | \"let\" | \"const\",\n ): void {\n super.parseVarId(decl, kind);\n if (decl.id.type === \"Identifier\" && this.eat(tt.bang)) {\n decl.definite = true;\n }\n\n const type = this.tsTryParseTypeAnnotation();\n if (type) {\n decl.id.typeAnnotation = type;\n this.resetEndLocation(decl.id); // set end position to end of type\n }\n }\n\n // parse the return type of an async arrow function - let foo = (async (): number => {});\n parseAsyncArrowFromCallExpression(\n node: N.ArrowFunctionExpression,\n call: N.CallExpression,\n ): N.ArrowFunctionExpression {\n if (this.match(tt.colon)) {\n node.returnType = this.tsParseTypeAnnotation();\n }\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n\n parseMaybeAssign(...args): N.Expression {\n // Note: When the JSX plugin is on, type assertions (` x`) aren't valid syntax.\n\n let state: ?State;\n let jsx;\n let typeCast;\n\n if (\n this.hasPlugin(\"jsx\") &&\n (this.match(tt.jsxTagStart) || this.isRelational(\"<\"))\n ) {\n // Prefer to parse JSX if possible. But may be an arrow fn.\n state = this.state.clone();\n\n jsx = this.tryParse(() => super.parseMaybeAssign(...args), state);\n /*:: invariant(!jsx.aborted) */\n\n if (!jsx.error) return jsx.node;\n\n // Remove `tc.j_expr` and `tc.j_oTag` from context added\n // by parsing `jsxTagStart` to stop the JSX plugin from\n // messing with the tokens\n const { context } = this.state;\n if (context[context.length - 1] === ct.j_oTag) {\n context.length -= 2;\n } else if (context[context.length - 1] === ct.j_expr) {\n context.length -= 1;\n }\n }\n\n if (!jsx?.error && !this.isRelational(\"<\")) {\n return super.parseMaybeAssign(...args);\n }\n\n // Either way, we're looking at a '<': tt.jsxTagStart or relational.\n\n let typeParameters: N.TsTypeParameterDeclaration;\n state = state || this.state.clone();\n\n const arrow = this.tryParse(abort => {\n // This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.\n typeParameters = this.tsParseTypeParameters();\n const expr = super.parseMaybeAssign(...args);\n\n if (\n expr.type !== \"ArrowFunctionExpression\" ||\n expr.extra?.parenthesized\n ) {\n abort();\n }\n\n // Correct TypeScript code should have at least 1 type parameter, but don't crash on bad code.\n if (typeParameters?.params.length !== 0) {\n this.resetStartLocationFromNode(expr, typeParameters);\n }\n expr.typeParameters = typeParameters;\n return expr;\n }, state);\n\n if (!arrow.error && !arrow.aborted) return arrow.node;\n\n if (!jsx) {\n // Try parsing a type cast instead of an arrow function.\n // This will never happen outside of JSX.\n // (Because in JSX the '<' should be a jsxTagStart and not a relational.\n assert(!this.hasPlugin(\"jsx\"));\n\n // This will start with a type assertion (via parseMaybeUnary).\n // But don't directly call `this.tsParseTypeAssertion` because we want to handle any binary after it.\n typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state);\n /*:: invariant(!typeCast.aborted) */\n if (!typeCast.error) return typeCast.node;\n }\n\n if (jsx?.node) {\n /*:: invariant(jsx.failState) */\n this.state = jsx.failState;\n return jsx.node;\n }\n\n if (arrow.node) {\n /*:: invariant(arrow.failState) */\n this.state = arrow.failState;\n return arrow.node;\n }\n\n if (typeCast?.node) {\n /*:: invariant(typeCast.failState) */\n this.state = typeCast.failState;\n return typeCast.node;\n }\n\n if (jsx?.thrown) throw jsx.error;\n if (arrow.thrown) throw arrow.error;\n if (typeCast?.thrown) throw typeCast.error;\n\n throw jsx?.error || arrow.error || typeCast?.error;\n }\n\n // Handle type assertions\n parseMaybeUnary(refExpressionErrors?: ?ExpressionErrors): N.Expression {\n if (!this.hasPlugin(\"jsx\") && this.isRelational(\"<\")) {\n return this.tsParseTypeAssertion();\n } else {\n return super.parseMaybeUnary(refExpressionErrors);\n }\n }\n\n parseArrow(node: N.ArrowFunctionExpression): ?N.ArrowFunctionExpression {\n if (this.match(tt.colon)) {\n // This is different from how the TS parser does it.\n // TS uses lookahead. The Babel Parser parses it as a parenthesized expression and converts.\n\n const result = this.tryParse(abort => {\n const returnType = this.tsParseTypeOrTypePredicateAnnotation(\n tt.colon,\n );\n if (this.canInsertSemicolon() || !this.match(tt.arrow)) abort();\n return returnType;\n });\n\n if (result.aborted) return;\n\n if (!result.thrown) {\n if (result.error) this.state = result.failState;\n node.returnType = result.node;\n }\n }\n\n return super.parseArrow(node);\n }\n\n // Allow type annotations inside of a parameter list.\n parseAssignableListItemTypes(param: N.Pattern) {\n if (this.eat(tt.question)) {\n if (\n param.type !== \"Identifier\" &&\n !this.state.isDeclareContext &&\n !this.state.inType\n ) {\n this.raise(param.start, TSErrors.PatternIsOptional);\n }\n\n ((param: any): N.Identifier).optional = true;\n }\n const type = this.tsTryParseTypeAnnotation();\n if (type) param.typeAnnotation = type;\n this.resetEndLocation(param);\n\n return param;\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): N.Node {\n switch (node.type) {\n case \"TSTypeCastExpression\":\n return super.toAssignable(this.typeCastToParameter(node), isLHS);\n case \"TSParameterProperty\":\n return super.toAssignable(node, isLHS);\n case \"ParenthesizedExpression\":\n return this.toAssignableParenthesizedExpression(node, isLHS);\n case \"TSAsExpression\":\n case \"TSNonNullExpression\":\n case \"TSTypeAssertion\":\n node.expression = this.toAssignable(node.expression, isLHS);\n return node;\n default:\n return super.toAssignable(node, isLHS);\n }\n }\n\n toAssignableParenthesizedExpression(node: N.Node, isLHS: boolean) {\n switch (node.expression.type) {\n case \"TSAsExpression\":\n case \"TSNonNullExpression\":\n case \"TSTypeAssertion\":\n case \"ParenthesizedExpression\":\n node.expression = this.toAssignable(node.expression, isLHS);\n return node;\n default:\n return super.toAssignable(node, isLHS);\n }\n }\n\n checkLVal(\n expr: N.Expression,\n contextDescription: string,\n ...args:\n | [BindingTypes | void]\n | [BindingTypes | void, ?Set, boolean | void, boolean | void]\n ): void {\n switch (expr.type) {\n case \"TSTypeCastExpression\":\n // Allow \"typecasts\" to appear on the left of assignment expressions,\n // because it may be in an arrow function.\n // e.g. `const f = (foo: number = 0) => foo;`\n return;\n case \"TSParameterProperty\":\n this.checkLVal(expr.parameter, \"parameter property\", ...args);\n return;\n case \"TSAsExpression\":\n case \"TSTypeAssertion\":\n if (\n /*bindingType*/ !args[0] &&\n contextDescription !== \"parenthesized expression\" &&\n !expr.extra?.parenthesized\n ) {\n this.raise(expr.start, Errors.InvalidLhs, contextDescription);\n break;\n }\n this.checkLVal(expr.expression, \"parenthesized expression\", ...args);\n return;\n case \"TSNonNullExpression\":\n this.checkLVal(expr.expression, contextDescription, ...args);\n return;\n default:\n super.checkLVal(expr, contextDescription, ...args);\n return;\n }\n }\n\n parseBindingAtom(): N.Pattern {\n switch (this.state.type) {\n case tt._this:\n // \"this\" may be the name of a parameter, so allow it.\n return this.parseIdentifier(/* liberal */ true);\n default:\n return super.parseBindingAtom();\n }\n }\n\n parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n if (this.isRelational(\"<\")) {\n const typeArguments = this.tsParseTypeArguments();\n\n if (this.match(tt.parenL)) {\n const call = super.parseMaybeDecoratorArguments(expr);\n call.typeParameters = typeArguments;\n return call;\n }\n\n this.unexpected(this.state.start, tt.parenL);\n }\n\n return super.parseMaybeDecoratorArguments(expr);\n }\n\n checkCommaAfterRest(close) {\n if (\n this.state.isDeclareContext &&\n this.match(tt.comma) &&\n this.lookaheadCharCode() === close\n ) {\n this.next();\n } else {\n super.checkCommaAfterRest(close);\n }\n }\n\n // === === === === === === === === === === === === === === === ===\n // Note: All below methods are duplicates of something in flow.js.\n // Not sure what the best way to combine these is.\n // === === === === === === === === === === === === === === === ===\n\n isClassMethod(): boolean {\n return this.isRelational(\"<\") || super.isClassMethod();\n }\n\n isClassProperty(): boolean {\n return (\n this.match(tt.bang) || this.match(tt.colon) || super.isClassProperty()\n );\n }\n\n parseMaybeDefault(...args): N.Pattern {\n const node = super.parseMaybeDefault(...args);\n\n if (\n node.type === \"AssignmentPattern\" &&\n node.typeAnnotation &&\n node.right.start < node.typeAnnotation.start\n ) {\n this.raise(\n node.typeAnnotation.start,\n TSErrors.TypeAnnotationAfterAssign,\n );\n }\n\n return node;\n }\n\n // ensure that inside types, we bypass the jsx parser plugin\n getTokenFromCode(code: number): void {\n if (\n this.state.inType &&\n (code === charCodes.greaterThan || code === charCodes.lessThan)\n ) {\n return this.finishOp(tt.relational, 1);\n } else {\n return super.getTokenFromCode(code);\n }\n }\n\n // used after we have finished parsing types\n reScan_lt_gt() {\n if (this.match(tt.relational)) {\n const code = this.input.charCodeAt(this.state.start);\n if (code === charCodes.lessThan || code === charCodes.greaterThan) {\n this.state.pos -= 1;\n this.readToken_lt_gt(code);\n }\n }\n }\n\n toAssignableList(exprList: N.Expression[]): $ReadOnlyArray {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (!expr) continue;\n switch (expr.type) {\n case \"TSTypeCastExpression\":\n exprList[i] = this.typeCastToParameter(expr);\n break;\n case \"TSAsExpression\":\n case \"TSTypeAssertion\":\n if (!this.state.maybeInArrowParameters) {\n exprList[i] = this.typeCastToParameter(expr);\n } else {\n this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter);\n }\n break;\n }\n }\n return super.toAssignableList(...arguments);\n }\n\n typeCastToParameter(node: N.TsTypeCastExpression): N.Node {\n node.expression.typeAnnotation = node.typeAnnotation;\n\n this.resetEndLocation(\n node.expression,\n node.typeAnnotation.end,\n node.typeAnnotation.loc.end,\n );\n\n return node.expression;\n }\n\n shouldParseArrow() {\n return this.match(tt.colon) || super.shouldParseArrow();\n }\n\n shouldParseAsyncArrow(): boolean {\n return this.match(tt.colon) || super.shouldParseAsyncArrow();\n }\n\n canHaveLeadingDecorator() {\n // Avoid unnecessary lookahead in checking for abstract class unless needed!\n return super.canHaveLeadingDecorator() || this.isAbstractClass();\n }\n\n jsxParseOpeningElementAfterName(\n node: N.JSXOpeningElement,\n ): N.JSXOpeningElement {\n if (this.isRelational(\"<\")) {\n const typeArguments = this.tsTryParseAndCatch(() =>\n this.tsParseTypeArguments(),\n );\n if (typeArguments) node.typeParameters = typeArguments;\n }\n return super.jsxParseOpeningElementAfterName(node);\n }\n\n getGetterSetterExpectedParamCount(\n method: N.ObjectMethod | N.ClassMethod,\n ): number {\n const baseCount = super.getGetterSetterExpectedParamCount(method);\n const params = this.getObjectOrClassMethodParams(method);\n const firstParam = params[0];\n const hasContextParam =\n firstParam &&\n firstParam.type === \"Identifier\" &&\n firstParam.name === \"this\";\n\n return hasContextParam ? baseCount + 1 : baseCount;\n }\n\n parseCatchClauseParam(): N.Pattern {\n const param = super.parseCatchClauseParam();\n const type = this.tsTryParseTypeAnnotation();\n\n if (type) {\n param.typeAnnotation = type;\n this.resetEndLocation(param);\n }\n\n return param;\n }\n\n tsInDeclareContext(cb: () => T): T {\n const oldIsDeclareContext = this.state.isDeclareContext;\n this.state.isDeclareContext = true;\n try {\n return cb();\n } finally {\n this.state.isDeclareContext = oldIsDeclareContext;\n }\n }\n\n parseClass(node: T, ...args: any[]): T {\n const oldInAbstractClass = this.state.inAbstractClass;\n this.state.inAbstractClass = !!(node: any).abstract;\n try {\n return super.parseClass(node, ...args);\n } finally {\n this.state.inAbstractClass = oldInAbstractClass;\n }\n }\n\n tsParseAbstractDeclaration(\n node: any,\n ): N.ClassDeclaration | N.TsInterfaceDeclaration | typeof undefined {\n if (this.match(tt._class)) {\n node.abstract = true;\n return this.parseClass(\n (node: N.ClassDeclaration),\n /* isStatement */ true,\n /* optionalId */ false,\n );\n } else if (this.isContextual(\"interface\")) {\n // for invalid abstract interface\n\n // To avoid\n // abstract interface\n // Foo {}\n if (!this.hasFollowingLineBreak()) {\n node.abstract = true;\n this.raise(\n node.start,\n TSErrors.NonClassMethodPropertyHasAbstractModifer,\n );\n this.next();\n return this.tsParseInterfaceDeclaration(\n (node: N.TsInterfaceDeclaration),\n );\n }\n } else {\n this.unexpected(null, tt._class);\n }\n }\n\n parseMethod(...args: any[]) {\n const method = super.parseMethod(...args);\n if (method.abstract) {\n const hasBody = this.hasPlugin(\"estree\")\n ? !!method.value.body\n : !!method.body;\n if (hasBody) {\n const { key } = method;\n this.raise(\n method.start,\n TSErrors.AbstractMethodHasImplementation,\n key.type === \"Identifier\"\n ? key.name\n : `[${this.input.slice(key.start, key.end)}]`,\n );\n }\n }\n return method;\n }\n };\n","// @flow\n\nimport * as charCodes from \"charcodes\";\n\nimport { types as tt, TokenType } from \"../tokenizer/types\";\nimport type Parser from \"../parser\";\nimport * as N from \"../types\";\n\ntt.placeholder = new TokenType(\"%%\", { startsExpr: true });\n\nexport type PlaceholderTypes =\n | \"Identifier\"\n | \"StringLiteral\"\n | \"Expression\"\n | \"Statement\"\n | \"Declaration\"\n | \"BlockStatement\"\n | \"ClassBody\"\n | \"Pattern\";\n\n// $PropertyType doesn't support enums. Use a fake \"switch\" (GetPlaceholderNode)\n//type MaybePlaceholder = $PropertyType | N.Placeholder;\n\ntype _Switch = $Call<\n (\n $ElementType<$ElementType, 0>,\n ) => $ElementType<$ElementType, 1>,\n Value,\n>;\ntype $Switch = _Switch;\n\ntype NodeOf = $Switch<\n T,\n [\n [\"Identifier\", N.Identifier],\n [\"StringLiteral\", N.StringLiteral],\n [\"Expression\", N.Expression],\n [\"Statement\", N.Statement],\n [\"Declaration\", N.Declaration],\n [\"BlockStatement\", N.BlockStatement],\n [\"ClassBody\", N.ClassBody],\n [\"Pattern\", N.Pattern],\n ],\n>;\n\n// Placeholder breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder = NodeOf; // | Placeholder\n\nexport default (superClass: Class): Class =>\n class extends superClass {\n parsePlaceholder(\n expectedNode: T,\n ): /*?N.Placeholder*/ ?MaybePlaceholder {\n if (this.match(tt.placeholder)) {\n const node = this.startNode();\n this.next();\n this.assertNoSpace(\"Unexpected space in placeholder.\");\n\n // We can't use this.parseIdentifier because\n // we don't want nested placeholders.\n node.name = super.parseIdentifier(/* liberal */ true);\n\n this.assertNoSpace(\"Unexpected space in placeholder.\");\n this.expect(tt.placeholder);\n return this.finishPlaceholder(node, expectedNode);\n }\n }\n\n finishPlaceholder(\n node: N.Node,\n expectedNode: T,\n ): /*N.Placeholder*/ MaybePlaceholder {\n const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n node.expectedNode = expectedNode;\n\n return isFinished ? node : this.finishNode(node, \"Placeholder\");\n }\n\n /* ============================================================ *\n * tokenizer/index.js *\n * ============================================================ */\n\n getTokenFromCode(code: number) {\n if (\n code === charCodes.percentSign &&\n this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n ) {\n return this.finishOp(tt.placeholder, 2);\n }\n\n return super.getTokenFromCode(...arguments);\n }\n\n /* ============================================================ *\n * parser/expression.js *\n * ============================================================ */\n\n parseExprAtom(): MaybePlaceholder<\"Expression\"> {\n return (\n this.parsePlaceholder(\"Expression\") || super.parseExprAtom(...arguments)\n );\n }\n\n parseIdentifier(): MaybePlaceholder<\"Identifier\"> {\n // NOTE: This function only handles identifiers outside of\n // expressions and binding patterns, since they are already\n // handled by the parseExprAtom and parseBindingAtom functions.\n // This is needed, for example, to parse \"class %%NAME%% {}\".\n return (\n this.parsePlaceholder(\"Identifier\") ||\n super.parseIdentifier(...arguments)\n );\n }\n\n checkReservedWord(word: string): void {\n // Sometimes we call #checkReservedWord(node.name), expecting\n // that node is an Identifier. If it is a Placeholder, name\n // will be undefined.\n if (word !== undefined) super.checkReservedWord(...arguments);\n }\n\n /* ============================================================ *\n * parser/lval.js *\n * ============================================================ */\n\n parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n return (\n this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom(...arguments)\n );\n }\n\n checkLVal(expr: N.Expression): void {\n if (expr.type !== \"Placeholder\") super.checkLVal(...arguments);\n }\n\n toAssignable(node: N.Node): N.Node {\n if (\n node &&\n node.type === \"Placeholder\" &&\n node.expectedNode === \"Expression\"\n ) {\n node.expectedNode = \"Pattern\";\n return node;\n }\n return super.toAssignable(...arguments);\n }\n\n /* ============================================================ *\n * parser/statement.js *\n * ============================================================ */\n\n isLet(context: ?string): boolean {\n if (super.isLet(context)) {\n return true;\n }\n\n // Replicate the original checks that lead to looking ahead for an\n // identifier.\n if (!this.isContextual(\"let\")) {\n return false;\n }\n if (context) return false;\n\n // Accept \"let %%\" as the start of \"let %%placeholder%%\", as though the\n // placeholder were an identifier.\n const nextToken = this.lookahead();\n if (nextToken.type === tt.placeholder) {\n return true;\n }\n\n return false;\n }\n\n verifyBreakContinue(node: N.BreakStatement | N.ContinueStatement) {\n if (node.label && node.label.type === \"Placeholder\") return;\n super.verifyBreakContinue(...arguments);\n }\n\n parseExpressionStatement(\n node: MaybePlaceholder<\"Statement\">,\n expr: N.Expression,\n ): MaybePlaceholder<\"Statement\"> {\n if (\n expr.type !== \"Placeholder\" ||\n (expr.extra && expr.extra.parenthesized)\n ) {\n return super.parseExpressionStatement(...arguments);\n }\n\n if (this.match(tt.colon)) {\n const stmt: N.LabeledStatement = node;\n stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n this.next();\n stmt.body = this.parseStatement(\"label\");\n return this.finishNode(stmt, \"LabeledStatement\");\n }\n\n this.semicolon();\n\n node.name = expr.name;\n return this.finishPlaceholder(node, \"Statement\");\n }\n\n parseBlock(): MaybePlaceholder<\"BlockStatement\"> {\n return (\n this.parsePlaceholder(\"BlockStatement\") ||\n super.parseBlock(...arguments)\n );\n }\n\n parseFunctionId(): ?MaybePlaceholder<\"Identifier\"> {\n return (\n this.parsePlaceholder(\"Identifier\") ||\n super.parseFunctionId(...arguments)\n );\n }\n\n parseClass(\n node: T,\n isStatement: /* T === ClassDeclaration */ boolean,\n optionalId?: boolean,\n ): T {\n const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n this.next();\n this.takeDecorators(node);\n const oldStrict = this.state.strict;\n\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (placeholder) {\n if (\n this.match(tt._extends) ||\n this.match(tt.placeholder) ||\n this.match(tt.braceL)\n ) {\n node.id = placeholder;\n } else if (optionalId || !isStatement) {\n node.id = null;\n node.body = this.finishPlaceholder(placeholder, \"ClassBody\");\n return this.finishNode(node, type);\n } else {\n this.unexpected(null, \"A class name is required\");\n }\n } else {\n this.parseClassId(node, isStatement, optionalId);\n }\n\n this.parseClassSuper(node);\n node.body =\n this.parsePlaceholder(\"ClassBody\") ||\n this.parseClassBody(!!node.superClass, oldStrict);\n return this.finishNode(node, type);\n }\n\n parseExport(node: N.Node): N.Node {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseExport(...arguments);\n\n if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n // export %%DECL%%;\n node.specifiers = [];\n node.source = null;\n node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n return this.finishNode(node, \"ExportNamedDeclaration\");\n }\n\n // export %%NAME%% from \"foo\";\n this.expectPlugin(\"exportDefaultFrom\");\n const specifier = this.startNode();\n specifier.exported = placeholder;\n node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n return super.parseExport(node);\n }\n\n isExportDefaultSpecifier(): boolean {\n if (this.match(tt._default)) {\n const next = this.nextTokenStart();\n if (this.isUnparsedContextual(next, \"from\")) {\n if (\n this.input.startsWith(\n tt.placeholder.label,\n this.nextTokenStartSince(next + 4),\n )\n ) {\n return true;\n }\n }\n }\n return super.isExportDefaultSpecifier();\n }\n\n maybeParseExportDefaultSpecifier(node: N.Node): boolean {\n if (node.specifiers && node.specifiers.length > 0) {\n // \"export %%NAME%%\" has already been parsed by #parseExport.\n return true;\n }\n return super.maybeParseExportDefaultSpecifier(...arguments);\n }\n\n checkExport(node: N.ExportNamedDeclaration): void {\n const { specifiers } = node;\n if (specifiers?.length) {\n node.specifiers = specifiers.filter(\n node => node.exported.type === \"Placeholder\",\n );\n }\n super.checkExport(node);\n node.specifiers = specifiers;\n }\n\n parseImport(\n node: N.Node,\n ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseImport(...arguments);\n\n node.specifiers = [];\n\n if (!this.isContextual(\"from\") && !this.match(tt.comma)) {\n // import %%STRING%%;\n node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n // import %%DEFAULT%% ...\n const specifier = this.startNodeAtNode(placeholder);\n specifier.local = placeholder;\n this.finishNode(specifier, \"ImportDefaultSpecifier\");\n node.specifiers.push(specifier);\n\n if (this.eat(tt.comma)) {\n // import %%DEFAULT%%, * as ...\n const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n // import %%DEFAULT%%, { ...\n if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n }\n\n this.expectContextual(\"from\");\n node.source = this.parseImportSource();\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n // import ... from %%STRING%%;\n\n return (\n this.parsePlaceholder(\"StringLiteral\") ||\n super.parseImportSource(...arguments)\n );\n }\n };\n","import type Parser from \"../parser\";\nimport { types as tt } from \"../tokenizer/types\";\nimport * as N from \"../types\";\n\nexport default (superClass: Class): Class =>\n class extends superClass {\n parseV8Intrinsic(): N.Expression {\n if (this.match(tt.modulo)) {\n const v8IntrinsicStart = this.state.start;\n // let the `loc` of Identifier starts from `%`\n const node = this.startNode();\n this.eat(tt.modulo);\n if (this.match(tt.name)) {\n const name = this.parseIdentifierName(this.state.start);\n const identifier = this.createIdentifier(node, name);\n identifier.type = \"V8IntrinsicIdentifier\";\n if (this.match(tt.parenL)) {\n return identifier;\n }\n }\n this.unexpected(v8IntrinsicStart);\n }\n }\n\n /* ============================================================ *\n * parser/expression.js *\n * ============================================================ */\n\n parseExprAtom(): N.Expression {\n return this.parseV8Intrinsic() || super.parseExprAtom(...arguments);\n }\n };\n","// @flow\n\nimport type Parser from \"./parser\";\n\nexport type Plugin = string | [string, Object];\n\nexport type PluginList = $ReadOnlyArray;\n\nexport type MixinPlugin = (superClass: Class) => Class;\n\nexport function hasPlugin(plugins: PluginList, name: string): boolean {\n return plugins.some(plugin => {\n if (Array.isArray(plugin)) {\n return plugin[0] === name;\n } else {\n return plugin === name;\n }\n });\n}\n\nexport function getPluginOption(\n plugins: PluginList,\n name: string,\n option: string,\n) {\n const plugin = plugins.find(plugin => {\n if (Array.isArray(plugin)) {\n return plugin[0] === name;\n } else {\n return plugin === name;\n }\n });\n\n if (plugin && Array.isArray(plugin)) {\n return plugin[1][option];\n }\n\n return null;\n}\n\nconst PIPELINE_PROPOSALS = [\"minimal\", \"smart\", \"fsharp\"];\nconst RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n\nexport function validatePlugins(plugins: PluginList) {\n if (hasPlugin(plugins, \"decorators\")) {\n if (hasPlugin(plugins, \"decorators-legacy\")) {\n throw new Error(\n \"Cannot use the decorators and decorators-legacy plugin together\",\n );\n }\n\n const decoratorsBeforeExport = getPluginOption(\n plugins,\n \"decorators\",\n \"decoratorsBeforeExport\",\n );\n if (decoratorsBeforeExport == null) {\n throw new Error(\n \"The 'decorators' plugin requires a 'decoratorsBeforeExport' option,\" +\n \" whose value must be a boolean. If you are migrating from\" +\n \" Babylon/Babel 6 or want to use the old decorators proposal, you\" +\n \" should use the 'decorators-legacy' plugin instead of 'decorators'.\",\n );\n } else if (typeof decoratorsBeforeExport !== \"boolean\") {\n throw new Error(\"'decoratorsBeforeExport' must be a boolean.\");\n }\n }\n\n if (hasPlugin(plugins, \"flow\") && hasPlugin(plugins, \"typescript\")) {\n throw new Error(\"Cannot combine flow and typescript plugins.\");\n }\n\n if (hasPlugin(plugins, \"placeholders\") && hasPlugin(plugins, \"v8intrinsic\")) {\n throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n }\n\n if (\n hasPlugin(plugins, \"pipelineOperator\") &&\n !PIPELINE_PROPOSALS.includes(\n getPluginOption(plugins, \"pipelineOperator\", \"proposal\"),\n )\n ) {\n throw new Error(\n \"'pipelineOperator' requires 'proposal' option whose value should be one of: \" +\n PIPELINE_PROPOSALS.map(p => `'${p}'`).join(\", \"),\n );\n }\n\n if (hasPlugin(plugins, \"moduleAttributes\")) {\n if (hasPlugin(plugins, \"importAssertions\")) {\n throw new Error(\n \"Cannot combine importAssertions and moduleAttributes plugins.\",\n );\n }\n const moduleAttributesVerionPluginOption = getPluginOption(\n plugins,\n \"moduleAttributes\",\n \"version\",\n );\n if (moduleAttributesVerionPluginOption !== \"may-2020\") {\n throw new Error(\n \"The 'moduleAttributes' plugin requires a 'version' option,\" +\n \" representing the last proposal update. Currently, the\" +\n \" only supported value is 'may-2020'.\",\n );\n }\n }\n\n if (\n hasPlugin(plugins, \"recordAndTuple\") &&\n !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(\n getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\"),\n )\n ) {\n throw new Error(\n \"'recordAndTuple' requires 'syntaxType' option whose value should be one of: \" +\n RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"),\n );\n }\n}\n\n// These plugins are defined using a mixin which extends the parser class.\n\nimport estree from \"./plugins/estree\";\nimport flow from \"./plugins/flow\";\nimport jsx from \"./plugins/jsx\";\nimport typescript from \"./plugins/typescript\";\nimport placeholders from \"./plugins/placeholders\";\nimport v8intrinsic from \"./plugins/v8intrinsic\";\n\n// NOTE: order is important. estree must come first; placeholders must come last.\nexport const mixinPlugins: { [name: string]: MixinPlugin } = {\n estree,\n jsx,\n flow,\n typescript,\n v8intrinsic,\n placeholders,\n};\n\nexport const mixinPluginNames: $ReadOnlyArray = Object.keys(\n mixinPlugins,\n);\n","// @flow\n\nimport type { PluginList } from \"./plugin-utils\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"module\" | \"unambiguous\";\n\nexport type Options = {\n sourceType: SourceType,\n sourceFilename?: string,\n startLine: number,\n allowAwaitOutsideFunction: boolean,\n allowReturnOutsideFunction: boolean,\n allowImportExportEverywhere: boolean,\n allowSuperOutsideMethod: boolean,\n allowUndeclaredExports: boolean,\n plugins: PluginList,\n strictMode: ?boolean,\n ranges: boolean,\n tokens: boolean,\n createParenthesizedExpressions: boolean,\n errorRecovery: boolean,\n};\n\nexport const defaultOptions: Options = {\n // Source type (\"script\" or \"module\") for different semantics\n sourceType: \"script\",\n // Source filename.\n sourceFilename: undefined,\n // Line from which to start counting source. Useful for\n // integration with other tools.\n startLine: 1,\n // When enabled, await at the top level is not considered an\n // error.\n allowAwaitOutsideFunction: false,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program.\n allowImportExportEverywhere: false,\n // TODO\n allowSuperOutsideMethod: false,\n // When enabled, export statements can reference undeclared variables.\n allowUndeclaredExports: false,\n // An array of plugins to enable\n plugins: [],\n // TODO\n strictMode: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // Adds all parsed tokens to a `tokens` property on the `File` node\n tokens: false,\n // Whether to create ParenthesizedExpression AST nodes (if false\n // the parser sets extra.parenthesized on the expression nodes instead).\n createParenthesizedExpressions: false,\n // When enabled, errors are attached to the AST instead of being directly thrown.\n // Some errors will still throw, because @babel/parser can't always recover.\n errorRecovery: false,\n};\n\n// Interpret and default an options object\n\nexport function getOptions(opts: ?Options): Options {\n const options: any = {};\n for (const key of Object.keys(defaultOptions)) {\n options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key];\n }\n return options;\n}\n","// @flow\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport { Position } from \"../util/location\";\n\nimport { types as ct, type TokContext } from \"./context\";\nimport { types as tt, type TokenType } from \"./types\";\nimport type { ParsingError } from \"../parser/error\";\n\ntype TopicContextState = {\n // When a topic binding has been currently established,\n // then this is 1. Otherwise, it is 0. This is forwards compatible\n // with a future plugin for multiple lexical topics.\n maxNumOfResolvableTopics: number,\n\n // When a topic binding has been currently established, and if that binding\n // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n // `null`. This is forwards compatible with a future plugin for multiple\n // lexical topics.\n maxTopicIndex: null | 0,\n};\n\nexport default class State {\n strict: boolean;\n curLine: number;\n\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n startLoc: Position;\n endLoc: Position;\n\n init(options: Options): void {\n this.strict =\n options.strictMode === false ? false : options.sourceType === \"module\";\n\n this.curLine = options.startLine;\n this.startLoc = this.endLoc = this.curPosition();\n }\n\n errors: ParsingError[] = [];\n\n // Used to signify the start of a potential arrow function\n potentialArrowAt: number = -1;\n\n // Used to signify the start of an expression which looks like a\n // typed arrow function, but it isn't\n // e.g. a ? (b) : c => d\n // ^\n noArrowAt: number[] = [];\n\n // Used to signify the start of an expression whose params, if it looks like\n // an arrow function, shouldn't be converted to assignable nodes.\n // This is used to defer the validation of typed arrow functions inside\n // conditional expressions.\n // e.g. a ? (b) : c => d\n // ^\n noArrowParamsConversionAt: number[] = [];\n\n // Flags to track\n maybeInArrowParameters: boolean = false;\n inPipeline: boolean = false;\n inType: boolean = false;\n noAnonFunctionType: boolean = false;\n inPropertyName: boolean = false;\n hasFlowComment: boolean = false;\n isIterator: boolean = false;\n isDeclareContext: boolean = false;\n inAbstractClass: boolean = false;\n\n // For the smartPipelines plugin:\n topicContext: TopicContextState = {\n maxNumOfResolvableTopics: 0,\n maxTopicIndex: null,\n };\n\n // For the F# plugin\n soloAwait: boolean = false;\n inFSharpPipelineDirectBody: boolean = false;\n\n // Labels in scope.\n labels: Array<{\n kind: ?(\"loop\" | \"switch\"),\n name?: ?string,\n statementStart?: number,\n }> = [];\n\n // Leading decorators. Last element of the stack represents the decorators in current context.\n // Supports nesting of decorators, e.g. @foo(@bar class inner {}) class outer {}\n // where @foo belongs to the outer class and @bar to the inner\n decoratorStack: Array> = [[]];\n\n // Comment store.\n comments: Array = [];\n\n // Comment attachment store\n trailingComments: Array = [];\n leadingComments: Array = [];\n commentStack: Array<{\n start: number,\n leadingComments: ?Array,\n trailingComments: ?Array,\n type: string,\n }> = [];\n // $FlowIgnore this is initialized when the parser starts.\n commentPreviousNode: N.Node = null;\n\n // The current position of the tokenizer in the input.\n pos: number = 0;\n lineStart: number = 0;\n\n // Properties of the current token:\n // Its type\n type: TokenType = tt.eof;\n\n // For tokens that include more information than their type, the value\n value: any = null;\n\n // Its start and end offset\n start: number = 0;\n end: number = 0;\n\n // Position information for the previous token\n // $FlowIgnore this is initialized when generating the second token.\n lastTokEndLoc: Position = null;\n // $FlowIgnore this is initialized when generating the second token.\n lastTokStartLoc: Position = null;\n lastTokStart: number = 0;\n lastTokEnd: number = 0;\n\n // The context stack is used to superficially track syntactic\n // context to predict whether a regular expression is allowed in a\n // given position.\n context: Array = [ct.braceStatement];\n exprAllowed: boolean = true;\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n containsEsc: boolean = false;\n\n // This property is used to track the following errors\n // - StrictNumericEscape\n // - StrictOctalLiteral\n //\n // in a literal that occurs prior to/immediately after a \"use strict\" directive.\n\n // todo(JLHwung): set strictErrors to null and avoid recording string errors\n // after a non-directive is parsed\n strictErrors: Map = new Map();\n\n // Names of exports store. `default` is stored as a name for both\n // `export default foo;` and `export { foo as default };`.\n exportedIdentifiers: Array = [];\n\n // Tokens length in token store\n tokensLength: number = 0;\n\n curPosition(): Position {\n return new Position(this.curLine, this.pos - this.lineStart);\n }\n\n clone(skipArrays?: boolean): State {\n const state = new State();\n const keys = Object.keys(this);\n for (let i = 0, length = keys.length; i < length; i++) {\n const key = keys[i];\n // $FlowIgnore\n let val = this[key];\n\n if (!skipArrays && Array.isArray(val)) {\n val = val.slice();\n }\n\n // $FlowIgnore\n state[key] = val;\n }\n\n return state;\n }\n}\n","// @flow\n\n/*:: declare var invariant; */\n\nimport type { Options } from \"../options\";\nimport * as N from \"../types\";\nimport type { Position } from \"../util/location\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier\";\nimport { types as tt, keywords as keywordTypes, type TokenType } from \"./types\";\nimport { type TokContext, types as ct } from \"./context\";\nimport ParserErrors, { Errors } from \"../parser/error\";\nimport { SourceLocation } from \"../util/location\";\nimport {\n lineBreak,\n lineBreakG,\n isNewLine,\n isWhitespace,\n skipWhiteSpace,\n} from \"../util/whitespace\";\nimport State from \"./state\";\n\nconst VALID_REGEX_FLAGS = new Set([\"g\", \"m\", \"s\", \"i\", \"y\", \"u\"]);\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\n\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: [\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ],\n hex: [\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ],\n};\n\nconst allowedNumericSeparatorSiblings = {};\nallowedNumericSeparatorSiblings.bin = [\n // 0 - 1\n charCodes.digit0,\n charCodes.digit1,\n];\nallowedNumericSeparatorSiblings.oct = [\n // 0 - 7\n ...allowedNumericSeparatorSiblings.bin,\n\n charCodes.digit2,\n charCodes.digit3,\n charCodes.digit4,\n charCodes.digit5,\n charCodes.digit6,\n charCodes.digit7,\n];\nallowedNumericSeparatorSiblings.dec = [\n // 0 - 9\n ...allowedNumericSeparatorSiblings.oct,\n\n charCodes.digit8,\n charCodes.digit9,\n];\n\nallowedNumericSeparatorSiblings.hex = [\n // 0 - 9, A - F, a - f,\n ...allowedNumericSeparatorSiblings.dec,\n\n charCodes.uppercaseA,\n charCodes.uppercaseB,\n charCodes.uppercaseC,\n charCodes.uppercaseD,\n charCodes.uppercaseE,\n charCodes.uppercaseF,\n\n charCodes.lowercaseA,\n charCodes.lowercaseB,\n charCodes.lowercaseC,\n charCodes.lowercaseD,\n charCodes.lowercaseE,\n charCodes.lowercaseF,\n];\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n constructor(state: State) {\n this.type = state.type;\n this.value = state.value;\n this.start = state.start;\n this.end = state.end;\n this.loc = new SourceLocation(state.startLoc, state.endLoc);\n }\n\n declare type: TokenType;\n declare value: any;\n declare start: number;\n declare end: number;\n declare loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default class Tokenizer extends ParserErrors {\n // Forward-declarations\n // parser/util.js\n /*::\n +hasPrecedingLineBreak: () => boolean;\n +unexpected: (pos?: ?number, messageOrType?: string | TokenType) => empty;\n +expectPlugin: (name: string, pos?: ?number) => true;\n */\n\n isLookahead: boolean;\n\n // Token store.\n tokens: Array = [];\n\n constructor(options: Options, input: string) {\n super();\n this.state = new State();\n this.state.init(options);\n this.input = input;\n this.length = input.length;\n this.isLookahead = false;\n }\n\n pushToken(token: Token | N.Comment) {\n // Pop out invalid tokens trapped by try-catch parsing.\n // Those parsing branches are mainly created by typescript and flow plugins.\n this.tokens.length = this.state.tokensLength;\n this.tokens.push(token);\n ++this.state.tokensLength;\n }\n\n // Move to the next token\n\n next(): void {\n if (!this.isLookahead) {\n this.checkKeywordEscapes();\n if (this.options.tokens) {\n this.pushToken(new Token(this.state));\n }\n }\n\n this.state.lastTokEnd = this.state.end;\n this.state.lastTokStart = this.state.start;\n this.state.lastTokEndLoc = this.state.endLoc;\n this.state.lastTokStartLoc = this.state.startLoc;\n this.nextToken();\n }\n\n // TODO\n\n eat(type: TokenType): boolean {\n if (this.match(type)) {\n this.next();\n return true;\n } else {\n return false;\n }\n }\n\n // TODO\n\n match(type: TokenType): boolean {\n return this.state.type === type;\n }\n\n // TODO\n\n lookahead(): State {\n const old = this.state;\n this.state = old.clone(true);\n\n this.isLookahead = true;\n this.next();\n this.isLookahead = false;\n\n const curr = this.state;\n this.state = old;\n return curr;\n }\n\n nextTokenStart(): number {\n return this.nextTokenStartSince(this.state.pos);\n }\n\n nextTokenStartSince(pos: number): number {\n skipWhiteSpace.lastIndex = pos;\n const skip = skipWhiteSpace.exec(this.input);\n // $FlowIgnore: The skipWhiteSpace ensures to match any string\n return pos + skip[0].length;\n }\n\n lookaheadCharCode(): number {\n return this.input.charCodeAt(this.nextTokenStart());\n }\n\n // Toggle strict mode. Re-reads the next number or string to please\n // pedantic tests (`\"use strict\"; 010;` should fail).\n\n setStrict(strict: boolean): void {\n this.state.strict = strict;\n if (strict) {\n // Throw an error for any string decimal escape found before/immediately\n // after a \"use strict\" directive. Strict mode will be set at parse\n // time for any literals that occur after the next node of the strict\n // directive.\n this.state.strictErrors.forEach((message, pos) =>\n /* eslint-disable @babel/development-internal/dry-error-messages */\n this.raise(pos, message),\n );\n this.state.strictErrors.clear();\n }\n }\n\n curContext(): TokContext {\n return this.state.context[this.state.context.length - 1];\n }\n\n // Read a single token, updating the parser object's token-related\n // properties.\n\n nextToken(): void {\n const curContext = this.curContext();\n if (!curContext?.preserveSpace) this.skipSpace();\n this.state.start = this.state.pos;\n this.state.startLoc = this.state.curPosition();\n if (this.state.pos >= this.length) {\n this.finishToken(tt.eof);\n return;\n }\n\n const override = curContext?.override;\n if (override) {\n override(this);\n } else {\n this.getTokenFromCode(this.input.codePointAt(this.state.pos));\n }\n }\n\n pushComment(\n block: boolean,\n text: string,\n start: number,\n end: number,\n startLoc: Position,\n endLoc: Position,\n ): void {\n const comment = {\n type: block ? \"CommentBlock\" : \"CommentLine\",\n value: text,\n start: start,\n end: end,\n loc: new SourceLocation(startLoc, endLoc),\n };\n\n if (this.options.tokens) this.pushToken(comment);\n this.state.comments.push(comment);\n this.addComment(comment);\n }\n\n skipBlockComment(): void {\n const startLoc = this.state.curPosition();\n const start = this.state.pos;\n const end = this.input.indexOf(\"*/\", this.state.pos + 2);\n if (end === -1) throw this.raise(start, Errors.UnterminatedComment);\n\n this.state.pos = end + 2;\n lineBreakG.lastIndex = start;\n let match;\n while (\n (match = lineBreakG.exec(this.input)) &&\n match.index < this.state.pos\n ) {\n ++this.state.curLine;\n this.state.lineStart = match.index + match[0].length;\n }\n\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n\n this.pushComment(\n true,\n this.input.slice(start + 2, end),\n start,\n this.state.pos,\n startLoc,\n this.state.curPosition(),\n );\n }\n\n skipLineComment(startSkip: number): void {\n const start = this.state.pos;\n const startLoc = this.state.curPosition();\n let ch = this.input.charCodeAt((this.state.pos += startSkip));\n if (this.state.pos < this.length) {\n while (!isNewLine(ch) && ++this.state.pos < this.length) {\n ch = this.input.charCodeAt(this.state.pos);\n }\n }\n\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n\n this.pushComment(\n false,\n this.input.slice(start + startSkip, this.state.pos),\n start,\n this.state.pos,\n startLoc,\n this.state.curPosition(),\n );\n }\n\n // Called at the start of the parse and after every token. Skips\n // whitespace and comments, and.\n\n skipSpace(): void {\n loop: while (this.state.pos < this.length) {\n const ch = this.input.charCodeAt(this.state.pos);\n switch (ch) {\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.tab:\n ++this.state.pos;\n break;\n case charCodes.carriageReturn:\n if (\n this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n ) {\n ++this.state.pos;\n }\n // fall through\n case charCodes.lineFeed:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n ++this.state.pos;\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n break;\n\n case charCodes.slash:\n switch (this.input.charCodeAt(this.state.pos + 1)) {\n case charCodes.asterisk:\n this.skipBlockComment();\n break;\n\n case charCodes.slash:\n this.skipLineComment(2);\n break;\n\n default:\n break loop;\n }\n break;\n\n default:\n if (isWhitespace(ch)) {\n ++this.state.pos;\n } else {\n break loop;\n }\n }\n }\n }\n\n // Called at the end of every token. Sets `end`, `val`, and\n // maintains `context` and `exprAllowed`, and skips the space after\n // the token, so that the next one's `start` will point at the\n // right position.\n\n finishToken(type: TokenType, val: any): void {\n this.state.end = this.state.pos;\n this.state.endLoc = this.state.curPosition();\n const prevType = this.state.type;\n this.state.type = type;\n this.state.value = val;\n\n if (!this.isLookahead) this.updateContext(prevType);\n }\n\n // ### Token reading\n\n // This is the function that is called to fetch the next token. It\n // is somewhat obscure, because it works in character codes rather\n // than characters, and because operator parsing has been inlined\n // into it.\n //\n // All in the name of speed.\n\n // number sign is \"#\"\n readToken_numberSign(): void {\n if (this.state.pos === 0 && this.readToken_interpreter()) {\n return;\n }\n\n const nextPos = this.state.pos + 1;\n const next = this.input.charCodeAt(nextPos);\n if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n throw this.raise(this.state.pos, Errors.UnexpectedDigitAfterHash);\n }\n\n if (\n next === charCodes.leftCurlyBrace ||\n (next === charCodes.leftSquareBracket && this.hasPlugin(\"recordAndTuple\"))\n ) {\n // When we see `#{`, it is likely to be a hash record.\n // However we don't yell at `#[` since users may intend to use \"computed private fields\",\n // which is not allowed in the spec. Throwing expecting recordAndTuple is\n // misleading\n this.expectPlugin(\"recordAndTuple\");\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"hash\") {\n throw this.raise(\n this.state.pos,\n next === charCodes.leftCurlyBrace\n ? Errors.RecordExpressionHashIncorrectStartSyntaxType\n : Errors.TupleExpressionHashIncorrectStartSyntaxType,\n );\n }\n\n if (next === charCodes.leftCurlyBrace) {\n // #{\n this.finishToken(tt.braceHashL);\n } else {\n // #[\n this.finishToken(tt.bracketHashL);\n }\n this.state.pos += 2;\n } else {\n this.finishOp(tt.hash, 1);\n }\n }\n\n readToken_dot(): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n this.readNumber(true);\n return;\n }\n\n if (\n next === charCodes.dot &&\n this.input.charCodeAt(this.state.pos + 2) === charCodes.dot\n ) {\n this.state.pos += 3;\n this.finishToken(tt.ellipsis);\n } else {\n ++this.state.pos;\n this.finishToken(tt.dot);\n }\n }\n\n readToken_slash(): void {\n // '/'\n if (this.state.exprAllowed && !this.state.inType) {\n ++this.state.pos;\n this.readRegexp();\n return;\n }\n\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === charCodes.equalsTo) {\n this.finishOp(tt.assign, 2);\n } else {\n this.finishOp(tt.slash, 1);\n }\n }\n\n readToken_interpreter(): boolean {\n if (this.state.pos !== 0 || this.length < 2) return false;\n\n let ch = this.input.charCodeAt(this.state.pos + 1);\n if (ch !== charCodes.exclamationMark) return false;\n\n const start = this.state.pos;\n this.state.pos += 1;\n\n while (!isNewLine(ch) && ++this.state.pos < this.length) {\n ch = this.input.charCodeAt(this.state.pos);\n }\n\n const value = this.input.slice(start + 2, this.state.pos);\n\n this.finishToken(tt.interpreterDirective, value);\n\n return true;\n }\n\n readToken_mult_modulo(code: number): void {\n // '%*'\n let type = code === charCodes.asterisk ? tt.star : tt.modulo;\n let width = 1;\n let next = this.input.charCodeAt(this.state.pos + 1);\n const exprAllowed = this.state.exprAllowed;\n\n // Exponentiation operator **\n if (code === charCodes.asterisk && next === charCodes.asterisk) {\n width++;\n next = this.input.charCodeAt(this.state.pos + 2);\n type = tt.exponent;\n }\n\n if (next === charCodes.equalsTo && !exprAllowed) {\n width++;\n type = tt.assign;\n }\n\n this.finishOp(type, width);\n }\n\n readToken_pipe_amp(code: number): void {\n // '||' '&&' '||=' '&&='\n const next = this.input.charCodeAt(this.state.pos + 1);\n\n if (next === code) {\n if (this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo) {\n this.finishOp(tt.assign, 3);\n } else {\n this.finishOp(\n code === charCodes.verticalBar ? tt.logicalOR : tt.logicalAND,\n 2,\n );\n }\n return;\n }\n\n if (code === charCodes.verticalBar) {\n // '|>'\n if (next === charCodes.greaterThan) {\n this.finishOp(tt.pipeline, 2);\n return;\n }\n // '|}'\n if (\n this.hasPlugin(\"recordAndTuple\") &&\n next === charCodes.rightCurlyBrace\n ) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(\n this.state.pos,\n Errors.RecordExpressionBarIncorrectEndSyntaxType,\n );\n }\n\n this.finishOp(tt.braceBarR, 2);\n return;\n }\n\n // '|]'\n if (\n this.hasPlugin(\"recordAndTuple\") &&\n next === charCodes.rightSquareBracket\n ) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(\n this.state.pos,\n Errors.TupleExpressionBarIncorrectEndSyntaxType,\n );\n }\n\n this.finishOp(tt.bracketBarR, 2);\n return;\n }\n }\n\n if (next === charCodes.equalsTo) {\n this.finishOp(tt.assign, 2);\n return;\n }\n\n this.finishOp(\n code === charCodes.verticalBar ? tt.bitwiseOR : tt.bitwiseAND,\n 1,\n );\n }\n\n readToken_caret(): void {\n // '^'\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === charCodes.equalsTo) {\n this.finishOp(tt.assign, 2);\n } else {\n this.finishOp(tt.bitwiseXOR, 1);\n }\n }\n\n readToken_plus_min(code: number): void {\n // '+-'\n const next = this.input.charCodeAt(this.state.pos + 1);\n\n if (next === code) {\n if (\n next === charCodes.dash &&\n !this.inModule &&\n this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan &&\n (this.state.lastTokEnd === 0 || this.hasPrecedingLineBreak())\n ) {\n // A `-->` line comment\n this.skipLineComment(3);\n this.skipSpace();\n this.nextToken();\n return;\n }\n this.finishOp(tt.incDec, 2);\n return;\n }\n\n if (next === charCodes.equalsTo) {\n this.finishOp(tt.assign, 2);\n } else {\n this.finishOp(tt.plusMin, 1);\n }\n }\n\n readToken_lt_gt(code: number): void {\n // '<>'\n const next = this.input.charCodeAt(this.state.pos + 1);\n let size = 1;\n\n if (next === code) {\n size =\n code === charCodes.greaterThan &&\n this.input.charCodeAt(this.state.pos + 2) === charCodes.greaterThan\n ? 3\n : 2;\n if (this.input.charCodeAt(this.state.pos + size) === charCodes.equalsTo) {\n this.finishOp(tt.assign, size + 1);\n return;\n }\n this.finishOp(tt.bitShift, size);\n return;\n }\n\n if (\n next === charCodes.exclamationMark &&\n code === charCodes.lessThan &&\n !this.inModule &&\n this.input.charCodeAt(this.state.pos + 2) === charCodes.dash &&\n this.input.charCodeAt(this.state.pos + 3) === charCodes.dash\n ) {\n // ` - -```js -var accepts = require('accepts') -``` - -### accepts(req) - -Create a new `Accepts` object for the given `req`. - -#### .charset(charsets) - -Return the first accepted charset. If nothing in `charsets` is accepted, -then `false` is returned. - -#### .charsets() - -Return the charsets that the request accepts, in the order of the client's -preference (most preferred first). - -#### .encoding(encodings) - -Return the first accepted encoding. If nothing in `encodings` is accepted, -then `false` is returned. - -#### .encodings() - -Return the encodings that the request accepts, in the order of the client's -preference (most preferred first). - -#### .language(languages) - -Return the first accepted language. If nothing in `languages` is accepted, -then `false` is returned. - -#### .languages() - -Return the languages that the request accepts, in the order of the client's -preference (most preferred first). - -#### .type(types) - -Return the first accepted type (and it is returned as the same text as what -appears in the `types` array). If nothing in `types` is accepted, then `false` -is returned. - -The `types` array can contain full MIME types or file extensions. Any value -that is not a full MIME types is passed to `require('mime-types').lookup`. - -#### .types() - -Return the types that the request accepts, in the order of the client's -preference (most preferred first). - -## Examples - -### Simple type negotiation - -This simple example shows how to use `accepts` to return a different typed -respond body based on what the client wants to accept. The server lists it's -preferences in order and will get back the best match between the client and -server. - -```js -var accepts = require('accepts') -var http = require('http') - -function app (req, res) { - var accept = accepts(req) - - // the order of this list is significant; should be server preferred order - switch (accept.type(['json', 'html'])) { - case 'json': - res.setHeader('Content-Type', 'application/json') - res.write('{"hello":"world!"}') - break - case 'html': - res.setHeader('Content-Type', 'text/html') - res.write('hello, world!') - break - default: - // the fallback is text/plain, so no need to specify it above - res.setHeader('Content-Type', 'text/plain') - res.write('hello, world!') - break - } - - res.end() -} - -http.createServer(app).listen(3000) -``` - -You can test this out with the cURL program: -```sh -curl -I -H'Accept: text/html' http://localhost:3000/ -``` - -## License - -[MIT](LICENSE) - -[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master -[coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master -[node-version-image]: https://badgen.net/npm/node/accepts -[node-version-url]: https://nodejs.org/en/download -[npm-downloads-image]: https://badgen.net/npm/dm/accepts -[npm-url]: https://npmjs.org/package/accepts -[npm-version-image]: https://badgen.net/npm/v/accepts -[travis-image]: https://badgen.net/travis/jshttp/accepts/master -[travis-url]: https://travis-ci.org/jshttp/accepts diff --git a/views/node_modules/accepts/index.js b/views/node_modules/accepts/index.js deleted file mode 100644 index e9b2f63..0000000 --- a/views/node_modules/accepts/index.js +++ /dev/null @@ -1,238 +0,0 @@ -/*! - * accepts - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var Negotiator = require('negotiator') -var mime = require('mime-types') - -/** - * Module exports. - * @public - */ - -module.exports = Accepts - -/** - * Create a new Accepts object for the given req. - * - * @param {object} req - * @public - */ - -function Accepts (req) { - if (!(this instanceof Accepts)) { - return new Accepts(req) - } - - this.headers = req.headers - this.negotiator = new Negotiator(req) -} - -/** - * Check if the given `type(s)` is acceptable, returning - * the best match when true, otherwise `undefined`, in which - * case you should respond with 406 "Not Acceptable". - * - * The `type` value may be a single mime type string - * such as "application/json", the extension name - * such as "json" or an array `["json", "html", "text/plain"]`. When a list - * or array is given the _best_ match, if any is returned. - * - * Examples: - * - * // Accept: text/html - * this.types('html'); - * // => "html" - * - * // Accept: text/*, application/json - * this.types('html'); - * // => "html" - * this.types('text/html'); - * // => "text/html" - * this.types('json', 'text'); - * // => "json" - * this.types('application/json'); - * // => "application/json" - * - * // Accept: text/*, application/json - * this.types('image/png'); - * this.types('png'); - * // => undefined - * - * // Accept: text/*;q=.5, application/json - * this.types(['html', 'json']); - * this.types('html', 'json'); - * // => "json" - * - * @param {String|Array} types... - * @return {String|Array|Boolean} - * @public - */ - -Accepts.prototype.type = -Accepts.prototype.types = function (types_) { - var types = types_ - - // support flattened arguments - if (types && !Array.isArray(types)) { - types = new Array(arguments.length) - for (var i = 0; i < types.length; i++) { - types[i] = arguments[i] - } - } - - // no types, return all requested types - if (!types || types.length === 0) { - return this.negotiator.mediaTypes() - } - - // no accept header, return first given type - if (!this.headers.accept) { - return types[0] - } - - var mimes = types.map(extToMime) - var accepts = this.negotiator.mediaTypes(mimes.filter(validMime)) - var first = accepts[0] - - return first - ? types[mimes.indexOf(first)] - : false -} - -/** - * Return accepted encodings or best fit based on `encodings`. - * - * Given `Accept-Encoding: gzip, deflate` - * an array sorted by quality is returned: - * - * ['gzip', 'deflate'] - * - * @param {String|Array} encodings... - * @return {String|Array} - * @public - */ - -Accepts.prototype.encoding = -Accepts.prototype.encodings = function (encodings_) { - var encodings = encodings_ - - // support flattened arguments - if (encodings && !Array.isArray(encodings)) { - encodings = new Array(arguments.length) - for (var i = 0; i < encodings.length; i++) { - encodings[i] = arguments[i] - } - } - - // no encodings, return all requested encodings - if (!encodings || encodings.length === 0) { - return this.negotiator.encodings() - } - - return this.negotiator.encodings(encodings)[0] || false -} - -/** - * Return accepted charsets or best fit based on `charsets`. - * - * Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5` - * an array sorted by quality is returned: - * - * ['utf-8', 'utf-7', 'iso-8859-1'] - * - * @param {String|Array} charsets... - * @return {String|Array} - * @public - */ - -Accepts.prototype.charset = -Accepts.prototype.charsets = function (charsets_) { - var charsets = charsets_ - - // support flattened arguments - if (charsets && !Array.isArray(charsets)) { - charsets = new Array(arguments.length) - for (var i = 0; i < charsets.length; i++) { - charsets[i] = arguments[i] - } - } - - // no charsets, return all requested charsets - if (!charsets || charsets.length === 0) { - return this.negotiator.charsets() - } - - return this.negotiator.charsets(charsets)[0] || false -} - -/** - * Return accepted languages or best fit based on `langs`. - * - * Given `Accept-Language: en;q=0.8, es, pt` - * an array sorted by quality is returned: - * - * ['es', 'pt', 'en'] - * - * @param {String|Array} langs... - * @return {Array|String} - * @public - */ - -Accepts.prototype.lang = -Accepts.prototype.langs = -Accepts.prototype.language = -Accepts.prototype.languages = function (languages_) { - var languages = languages_ - - // support flattened arguments - if (languages && !Array.isArray(languages)) { - languages = new Array(arguments.length) - for (var i = 0; i < languages.length; i++) { - languages[i] = arguments[i] - } - } - - // no languages, return all requested languages - if (!languages || languages.length === 0) { - return this.negotiator.languages() - } - - return this.negotiator.languages(languages)[0] || false -} - -/** - * Convert extnames to mime. - * - * @param {String} type - * @return {String} - * @private - */ - -function extToMime (type) { - return type.indexOf('/') === -1 - ? mime.lookup(type) - : type -} - -/** - * Check if mime is valid. - * - * @param {String} type - * @return {String} - * @private - */ - -function validMime (type) { - return typeof type === 'string' -} diff --git a/views/node_modules/accepts/package.json b/views/node_modules/accepts/package.json deleted file mode 100644 index bc750cf..0000000 --- a/views/node_modules/accepts/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "accepts", - "description": "Higher-level content negotiation", - "version": "1.3.7", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" - ], - "license": "MIT", - "repository": "jshttp/accepts", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "devDependencies": { - "deep-equal": "1.0.1", - "eslint": "5.16.0", - "eslint-config-standard": "12.0.0", - "eslint-plugin-import": "2.17.2", - "eslint-plugin-markdown": "1.0.0", - "eslint-plugin-node": "8.0.1", - "eslint-plugin-promise": "4.1.1", - "eslint-plugin-standard": "4.0.0", - "mocha": "6.1.4", - "nyc": "14.0.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint --plugin markdown --ext js,md .", - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-cov": "nyc --reporter=html --reporter=text npm test", - "test-travis": "nyc --reporter=text npm test" - }, - "keywords": [ - "content", - "negotiation", - "accept", - "accepts" - ] -} diff --git a/views/node_modules/acorn/CHANGELOG.md b/views/node_modules/acorn/CHANGELOG.md deleted file mode 100644 index 164fd27..0000000 --- a/views/node_modules/acorn/CHANGELOG.md +++ /dev/null @@ -1,620 +0,0 @@ -## 7.4.0 (2020-08-03) - -### New features - -Add support for logical assignment operators. - -Add support for numeric separators. - -## 7.3.1 (2020-06-11) - -### Bug fixes - -Make the string in the `version` export match the actual library version. - -## 7.3.0 (2020-06-11) - -### Bug fixes - -Fix a bug that caused parsing of object patterns with a property named `set` that had a default value to fail. - -### New features - -Add support for optional chaining (`?.`). - -## 7.2.0 (2020-05-09) - -### Bug fixes - -Fix precedence issue in parsing of async arrow functions. - -### New features - -Add support for nullish coalescing. - -Add support for `import.meta`. - -Support `export * as ...` syntax. - -Upgrade to Unicode 13. - -## 6.4.1 (2020-03-09) - -### Bug fixes - -More carefully check for valid UTF16 surrogate pairs in regexp validator. - -## 7.1.1 (2020-03-01) - -### Bug fixes - -Treat `\8` and `\9` as invalid escapes in template strings. - -Allow unicode escapes in property names that are keywords. - -Don't error on an exponential operator expression as argument to `await`. - -More carefully check for valid UTF16 surrogate pairs in regexp validator. - -## 7.1.0 (2019-09-24) - -### Bug fixes - -Disallow trailing object literal commas when ecmaVersion is less than 5. - -### New features - -Add a static `acorn` property to the `Parser` class that contains the entire module interface, to allow plugins to access the instance of the library that they are acting on. - -## 7.0.0 (2019-08-13) - -### Breaking changes - -Changes the node format for dynamic imports to use the `ImportExpression` node type, as defined in [ESTree](https://github.com/estree/estree/blob/master/es2020.md#importexpression). - -Makes 10 (ES2019) the default value for the `ecmaVersion` option. - -## 6.3.0 (2019-08-12) - -### New features - -`sourceType: "module"` can now be used even when `ecmaVersion` is less than 6, to parse module-style code that otherwise conforms to an older standard. - -## 6.2.1 (2019-07-21) - -### Bug fixes - -Fix bug causing Acorn to treat some characters as identifier characters that shouldn't be treated as such. - -Fix issue where setting the `allowReserved` option to `"never"` allowed reserved words in some circumstances. - -## 6.2.0 (2019-07-04) - -### Bug fixes - -Improve valid assignment checking in `for`/`in` and `for`/`of` loops. - -Disallow binding `let` in patterns. - -### New features - -Support bigint syntax with `ecmaVersion` >= 11. - -Support dynamic `import` syntax with `ecmaVersion` >= 11. - -Upgrade to Unicode version 12. - -## 6.1.1 (2019-02-27) - -### Bug fixes - -Fix bug that caused parsing default exports of with names to fail. - -## 6.1.0 (2019-02-08) - -### Bug fixes - -Fix scope checking when redefining a `var` as a lexical binding. - -### New features - -Split up `parseSubscripts` to use an internal `parseSubscript` method to make it easier to extend with plugins. - -## 6.0.7 (2019-02-04) - -### Bug fixes - -Check that exported bindings are defined. - -Don't treat `\u180e` as a whitespace character. - -Check for duplicate parameter names in methods. - -Don't allow shorthand properties when they are generators or async methods. - -Forbid binding `await` in async arrow function's parameter list. - -## 6.0.6 (2019-01-30) - -### Bug fixes - -The content of class declarations and expressions is now always parsed in strict mode. - -Don't allow `let` or `const` to bind the variable name `let`. - -Treat class declarations as lexical. - -Don't allow a generator function declaration as the sole body of an `if` or `else`. - -Ignore `"use strict"` when after an empty statement. - -Allow string line continuations with special line terminator characters. - -Treat `for` bodies as part of the `for` scope when checking for conflicting bindings. - -Fix bug with parsing `yield` in a `for` loop initializer. - -Implement special cases around scope checking for functions. - -## 6.0.5 (2019-01-02) - -### Bug fixes - -Fix TypeScript type for `Parser.extend` and add `allowAwaitOutsideFunction` to options type. - -Don't treat `let` as a keyword when the next token is `{` on the next line. - -Fix bug that broke checking for parentheses around an object pattern in a destructuring assignment when `preserveParens` was on. - -## 6.0.4 (2018-11-05) - -### Bug fixes - -Further improvements to tokenizing regular expressions in corner cases. - -## 6.0.3 (2018-11-04) - -### Bug fixes - -Fix bug in tokenizing an expression-less return followed by a function followed by a regular expression. - -Remove stray symlink in the package tarball. - -## 6.0.2 (2018-09-26) - -### Bug fixes - -Fix bug where default expressions could fail to parse inside an object destructuring assignment expression. - -## 6.0.1 (2018-09-14) - -### Bug fixes - -Fix wrong value in `version` export. - -## 6.0.0 (2018-09-14) - -### Bug fixes - -Better handle variable-redefinition checks for catch bindings and functions directly under if statements. - -Forbid `new.target` in top-level arrow functions. - -Fix issue with parsing a regexp after `yield` in some contexts. - -### New features - -The package now comes with TypeScript definitions. - -### Breaking changes - -The default value of the `ecmaVersion` option is now 9 (2018). - -Plugins work differently, and will have to be rewritten to work with this version. - -The loose parser and walker have been moved into separate packages (`acorn-loose` and `acorn-walk`). - -## 5.7.3 (2018-09-10) - -### Bug fixes - -Fix failure to tokenize regexps after expressions like `x.of`. - -Better error message for unterminated template literals. - -## 5.7.2 (2018-08-24) - -### Bug fixes - -Properly handle `allowAwaitOutsideFunction` in for statements. - -Treat function declarations at the top level of modules like let bindings. - -Don't allow async function declarations as the only statement under a label. - -## 5.7.0 (2018-06-15) - -### New features - -Upgraded to Unicode 11. - -## 5.6.0 (2018-05-31) - -### New features - -Allow U+2028 and U+2029 in string when ECMAVersion >= 10. - -Allow binding-less catch statements when ECMAVersion >= 10. - -Add `allowAwaitOutsideFunction` option for parsing top-level `await`. - -## 5.5.3 (2018-03-08) - -### Bug fixes - -A _second_ republish of the code in 5.5.1, this time with yarn, to hopefully get valid timestamps. - -## 5.5.2 (2018-03-08) - -### Bug fixes - -A republish of the code in 5.5.1 in an attempt to solve an issue with the file timestamps in the npm package being 0. - -## 5.5.1 (2018-03-06) - -### Bug fixes - -Fix misleading error message for octal escapes in template strings. - -## 5.5.0 (2018-02-27) - -### New features - -The identifier character categorization is now based on Unicode version 10. - -Acorn will now validate the content of regular expressions, including new ES9 features. - -## 5.4.0 (2018-02-01) - -### Bug fixes - -Disallow duplicate or escaped flags on regular expressions. - -Disallow octal escapes in strings in strict mode. - -### New features - -Add support for async iteration. - -Add support for object spread and rest. - -## 5.3.0 (2017-12-28) - -### Bug fixes - -Fix parsing of floating point literals with leading zeroes in loose mode. - -Allow duplicate property names in object patterns. - -Don't allow static class methods named `prototype`. - -Disallow async functions directly under `if` or `else`. - -Parse right-hand-side of `for`/`of` as an assignment expression. - -Stricter parsing of `for`/`in`. - -Don't allow unicode escapes in contextual keywords. - -### New features - -Parsing class members was factored into smaller methods to allow plugins to hook into it. - -## 5.2.1 (2017-10-30) - -### Bug fixes - -Fix a token context corruption bug. - -## 5.2.0 (2017-10-30) - -### Bug fixes - -Fix token context tracking for `class` and `function` in property-name position. - -Make sure `%*` isn't parsed as a valid operator. - -Allow shorthand properties `get` and `set` to be followed by default values. - -Disallow `super` when not in callee or object position. - -### New features - -Support [`directive` property](https://github.com/estree/estree/compare/b3de58c9997504d6fba04b72f76e6dd1619ee4eb...1da8e603237144f44710360f8feb7a9977e905e0) on directive expression statements. - -## 5.1.2 (2017-09-04) - -### Bug fixes - -Disable parsing of legacy HTML-style comments in modules. - -Fix parsing of async methods whose names are keywords. - -## 5.1.1 (2017-07-06) - -### Bug fixes - -Fix problem with disambiguating regexp and division after a class. - -## 5.1.0 (2017-07-05) - -### Bug fixes - -Fix tokenizing of regexps in an object-desctructuring `for`/`of` loop and after `yield`. - -Parse zero-prefixed numbers with non-octal digits as decimal. - -Allow object/array patterns in rest parameters. - -Don't error when `yield` is used as a property name. - -Allow `async` as a shorthand object property. - -### New features - -Implement the [template literal revision proposal](https://github.com/tc39/proposal-template-literal-revision) for ES9. - -## 5.0.3 (2017-04-01) - -### Bug fixes - -Fix spurious duplicate variable definition errors for named functions. - -## 5.0.2 (2017-03-30) - -### Bug fixes - -A binary operator after a parenthesized arrow expression is no longer incorrectly treated as an error. - -## 5.0.0 (2017-03-28) - -### Bug fixes - -Raise an error for duplicated lexical bindings. - -Fix spurious error when an assignement expression occurred after a spread expression. - -Accept regular expressions after `of` (in `for`/`of`), `yield` (in a generator), and braced arrow functions. - -Allow labels in front or `var` declarations, even in strict mode. - -### Breaking changes - -Parse declarations following `export default` as declaration nodes, not expressions. This means that class and function declarations nodes can now have `null` as their `id`. - -## 4.0.11 (2017-02-07) - -### Bug fixes - -Allow all forms of member expressions to be parenthesized as lvalue. - -## 4.0.10 (2017-02-07) - -### Bug fixes - -Don't expect semicolons after default-exported functions or classes, even when they are expressions. - -Check for use of `'use strict'` directives in non-simple parameter functions, even when already in strict mode. - -## 4.0.9 (2017-02-06) - -### Bug fixes - -Fix incorrect error raised for parenthesized simple assignment targets, so that `(x) = 1` parses again. - -## 4.0.8 (2017-02-03) - -### Bug fixes - -Solve spurious parenthesized pattern errors by temporarily erring on the side of accepting programs that our delayed errors don't handle correctly yet. - -## 4.0.7 (2017-02-02) - -### Bug fixes - -Accept invalidly rejected code like `(x).y = 2` again. - -Don't raise an error when a function _inside_ strict code has a non-simple parameter list. - -## 4.0.6 (2017-02-02) - -### Bug fixes - -Fix exponential behavior (manifesting itself as a complete hang for even relatively small source files) introduced by the new 'use strict' check. - -## 4.0.5 (2017-02-02) - -### Bug fixes - -Disallow parenthesized pattern expressions. - -Allow keywords as export names. - -Don't allow the `async` keyword to be parenthesized. - -Properly raise an error when a keyword contains a character escape. - -Allow `"use strict"` to appear after other string literal expressions. - -Disallow labeled declarations. - -## 4.0.4 (2016-12-19) - -### Bug fixes - -Fix crash when `export` was followed by a keyword that can't be -exported. - -## 4.0.3 (2016-08-16) - -### Bug fixes - -Allow regular function declarations inside single-statement `if` branches in loose mode. Forbid them entirely in strict mode. - -Properly parse properties named `async` in ES2017 mode. - -Fix bug where reserved words were broken in ES2017 mode. - -## 4.0.2 (2016-08-11) - -### Bug fixes - -Don't ignore period or 'e' characters after octal numbers. - -Fix broken parsing for call expressions in default parameter values of arrow functions. - -## 4.0.1 (2016-08-08) - -### Bug fixes - -Fix false positives in duplicated export name errors. - -## 4.0.0 (2016-08-07) - -### Breaking changes - -The default `ecmaVersion` option value is now 7. - -A number of internal method signatures changed, so plugins might need to be updated. - -### Bug fixes - -The parser now raises errors on duplicated export names. - -`arguments` and `eval` can now be used in shorthand properties. - -Duplicate parameter names in non-simple argument lists now always produce an error. - -### New features - -The `ecmaVersion` option now also accepts year-style version numbers -(2015, etc). - -Support for `async`/`await` syntax when `ecmaVersion` is >= 8. - -Support for trailing commas in call expressions when `ecmaVersion` is >= 8. - -## 3.3.0 (2016-07-25) - -### Bug fixes - -Fix bug in tokenizing of regexp operator after a function declaration. - -Fix parser crash when parsing an array pattern with a hole. - -### New features - -Implement check against complex argument lists in functions that enable strict mode in ES7. - -## 3.2.0 (2016-06-07) - -### Bug fixes - -Improve handling of lack of unicode regexp support in host -environment. - -Properly reject shorthand properties whose name is a keyword. - -### New features - -Visitors created with `visit.make` now have their base as _prototype_, rather than copying properties into a fresh object. - -## 3.1.0 (2016-04-18) - -### Bug fixes - -Properly tokenize the division operator directly after a function expression. - -Allow trailing comma in destructuring arrays. - -## 3.0.4 (2016-02-25) - -### Fixes - -Allow update expressions as left-hand-side of the ES7 exponential operator. - -## 3.0.2 (2016-02-10) - -### Fixes - -Fix bug that accidentally made `undefined` a reserved word when parsing ES7. - -## 3.0.0 (2016-02-10) - -### Breaking changes - -The default value of the `ecmaVersion` option is now 6 (used to be 5). - -Support for comprehension syntax (which was dropped from the draft spec) has been removed. - -### Fixes - -`let` and `yield` are now “contextual keywords”, meaning you can mostly use them as identifiers in ES5 non-strict code. - -A parenthesized class or function expression after `export default` is now parsed correctly. - -### New features - -When `ecmaVersion` is set to 7, Acorn will parse the exponentiation operator (`**`). - -The identifier character ranges are now based on Unicode 8.0.0. - -Plugins can now override the `raiseRecoverable` method to override the way non-critical errors are handled. - -## 2.7.0 (2016-01-04) - -### Fixes - -Stop allowing rest parameters in setters. - -Disallow `y` rexexp flag in ES5. - -Disallow `\00` and `\000` escapes in strict mode. - -Raise an error when an import name is a reserved word. - -## 2.6.2 (2015-11-10) - -### Fixes - -Don't crash when no options object is passed. - -## 2.6.0 (2015-11-09) - -### Fixes - -Add `await` as a reserved word in module sources. - -Disallow `yield` in a parameter default value for a generator. - -Forbid using a comma after a rest pattern in an array destructuring. - -### New features - -Support parsing stdin in command-line tool. - -## 2.5.0 (2015-10-27) - -### Fixes - -Fix tokenizer support in the command-line tool. - -Stop allowing `new.target` outside of functions. - -Remove legacy `guard` and `guardedHandler` properties from try nodes. - -Stop allowing multiple `__proto__` properties on an object literal in strict mode. - -Don't allow rest parameters to be non-identifier patterns. - -Check for duplicate paramter names in arrow functions. diff --git a/views/node_modules/acorn/LICENSE b/views/node_modules/acorn/LICENSE deleted file mode 100644 index cc5272c..0000000 --- a/views/node_modules/acorn/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (C) 2012-2018 by various contributors (see AUTHORS) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/views/node_modules/acorn/README.md b/views/node_modules/acorn/README.md deleted file mode 100644 index 52d2e9b..0000000 --- a/views/node_modules/acorn/README.md +++ /dev/null @@ -1,269 +0,0 @@ -# Acorn - -A tiny, fast JavaScript parser written in JavaScript. - -## Community - -Acorn is open source software released under an -[MIT license](https://github.com/acornjs/acorn/blob/master/acorn/LICENSE). - -You are welcome to -[report bugs](https://github.com/acornjs/acorn/issues) or create pull -requests on [github](https://github.com/acornjs/acorn). For questions -and discussion, please use the -[Tern discussion forum](https://discuss.ternjs.net). - -## Installation - -The easiest way to install acorn is from [`npm`](https://www.npmjs.com/): - -```sh -npm install acorn -``` - -Alternately, you can download the source and build acorn yourself: - -```sh -git clone https://github.com/acornjs/acorn.git -cd acorn -npm install -``` - -## Interface - -**parse**`(input, options)` is the main interface to the library. The -`input` parameter is a string, `options` can be undefined or an object -setting some of the options listed below. The return value will be an -abstract syntax tree object as specified by the [ESTree -spec](https://github.com/estree/estree). - -```javascript -let acorn = require("acorn"); -console.log(acorn.parse("1 + 1")); -``` - -When encountering a syntax error, the parser will raise a -`SyntaxError` object with a meaningful message. The error object will -have a `pos` property that indicates the string offset at which the -error occurred, and a `loc` object that contains a `{line, column}` -object referring to that same position. - -Options can be provided by passing a second argument, which should be -an object containing any of these fields: - -- **ecmaVersion**: Indicates the ECMAScript version to parse. Must be - either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), 10 (2019) or 11 - (2020, partial support). This influences support for strict mode, - the set of reserved words, and support for new syntax features. - Default is 10. - - **NOTE**: Only 'stage 4' (finalized) ECMAScript features are being - implemented by Acorn. Other proposed new features can be implemented - through plugins. - -- **sourceType**: Indicate the mode the code should be parsed in. Can be - either `"script"` or `"module"`. This influences global strict mode - and parsing of `import` and `export` declarations. - - **NOTE**: If set to `"module"`, then static `import` / `export` syntax - will be valid, even if `ecmaVersion` is less than 6. - -- **onInsertedSemicolon**: If given a callback, that callback will be - called whenever a missing semicolon is inserted by the parser. The - callback will be given the character offset of the point where the - semicolon is inserted as argument, and if `locations` is on, also a - `{line, column}` object representing this position. - -- **onTrailingComma**: Like `onInsertedSemicolon`, but for trailing - commas. - -- **allowReserved**: If `false`, using a reserved word will generate - an error. Defaults to `true` for `ecmaVersion` 3, `false` for higher - versions. When given the value `"never"`, reserved words and - keywords can also not be used as property names (as in Internet - Explorer's old parser). - -- **allowReturnOutsideFunction**: By default, a return statement at - the top level raises an error. Set this to `true` to accept such - code. - -- **allowImportExportEverywhere**: By default, `import` and `export` - declarations can only appear at a program's top level. Setting this - option to `true` allows them anywhere where a statement is allowed. - -- **allowAwaitOutsideFunction**: By default, `await` expressions can - only appear inside `async` functions. Setting this option to - `true` allows to have top-level `await` expressions. They are - still not allowed in non-`async` functions, though. - -- **allowHashBang**: When this is enabled (off by default), if the - code starts with the characters `#!` (as in a shellscript), the - first line will be treated as a comment. - -- **locations**: When `true`, each node has a `loc` object attached - with `start` and `end` subobjects, each of which contains the - one-based line and zero-based column numbers in `{line, column}` - form. Default is `false`. - -- **onToken**: If a function is passed for this option, each found - token will be passed in same format as tokens returned from - `tokenizer().getToken()`. - - If array is passed, each found token is pushed to it. - - Note that you are not allowed to call the parser from the - callback—that will corrupt its internal state. - -- **onComment**: If a function is passed for this option, whenever a - comment is encountered the function will be called with the - following parameters: - - - `block`: `true` if the comment is a block comment, false if it - is a line comment. - - `text`: The content of the comment. - - `start`: Character offset of the start of the comment. - - `end`: Character offset of the end of the comment. - - When the `locations` options is on, the `{line, column}` locations - of the comment’s start and end are passed as two additional - parameters. - - If array is passed for this option, each found comment is pushed - to it as object in Esprima format: - - ```javascript - { - "type": "Line" | "Block", - "value": "comment text", - "start": Number, - "end": Number, - // If `locations` option is on: - "loc": { - "start": {line: Number, column: Number} - "end": {line: Number, column: Number} - }, - // If `ranges` option is on: - "range": [Number, Number] - } - ``` - - Note that you are not allowed to call the parser from the - callback—that will corrupt its internal state. - -- **ranges**: Nodes have their start and end characters offsets - recorded in `start` and `end` properties (directly on the node, - rather than the `loc` object, which holds line/column data. To also - add a - [semi-standardized](https://bugzilla.mozilla.org/show_bug.cgi?id=745678) - `range` property holding a `[start, end]` array with the same - numbers, set the `ranges` option to `true`. - -- **program**: It is possible to parse multiple files into a single - AST by passing the tree produced by parsing the first file as the - `program` option in subsequent parses. This will add the toplevel - forms of the parsed file to the "Program" (top) node of an existing - parse tree. - -- **sourceFile**: When the `locations` option is `true`, you can pass - this option to add a `source` attribute in every node’s `loc` - object. Note that the contents of this option are not examined or - processed in any way; you are free to use whatever format you - choose. - -- **directSourceFile**: Like `sourceFile`, but a `sourceFile` property - will be added (regardless of the `location` option) directly to the - nodes, rather than the `loc` object. - -- **preserveParens**: If this option is `true`, parenthesized expressions - are represented by (non-standard) `ParenthesizedExpression` nodes - that have a single `expression` property containing the expression - inside parentheses. - -**parseExpressionAt**`(input, offset, options)` will parse a single -expression in a string, and return its AST. It will not complain if -there is more of the string left after the expression. - -**tokenizer**`(input, options)` returns an object with a `getToken` -method that can be called repeatedly to get the next token, a `{start, -end, type, value}` object (with added `loc` property when the -`locations` option is enabled and `range` property when the `ranges` -option is enabled). When the token's type is `tokTypes.eof`, you -should stop calling the method, since it will keep returning that same -token forever. - -In ES6 environment, returned result can be used as any other -protocol-compliant iterable: - -```javascript -for (let token of acorn.tokenizer(str)) { - // iterate over the tokens -} - -// transform code to array of tokens: -var tokens = [...acorn.tokenizer(str)]; -``` - -**tokTypes** holds an object mapping names to the token type objects -that end up in the `type` properties of tokens. - -**getLineInfo**`(input, offset)` can be used to get a `{line, -column}` object for a given program string and offset. - -### The `Parser` class - -Instances of the **`Parser`** class contain all the state and logic -that drives a parse. It has static methods `parse`, -`parseExpressionAt`, and `tokenizer` that match the top-level -functions by the same name. - -When extending the parser with plugins, you need to call these methods -on the extended version of the class. To extend a parser with plugins, -you can use its static `extend` method. - -```javascript -var acorn = require("acorn"); -var jsx = require("acorn-jsx"); -var JSXParser = acorn.Parser.extend(jsx()); -JSXParser.parse("foo()"); -``` - -The `extend` method takes any number of plugin values, and returns a -new `Parser` class that includes the extra parser logic provided by -the plugins. - -## Command line interface - -The `bin/acorn` utility can be used to parse a file from the command -line. It accepts as arguments its input file and the following -options: - -- `--ecma3|--ecma5|--ecma6|--ecma7|--ecma8|--ecma9|--ecma10`: Sets the ECMAScript version - to parse. Default is version 9. - -- `--module`: Sets the parsing mode to `"module"`. Is set to `"script"` otherwise. - -- `--locations`: Attaches a "loc" object to each node with "start" and - "end" subobjects, each of which contains the one-based line and - zero-based column numbers in `{line, column}` form. - -- `--allow-hash-bang`: If the code starts with the characters #! (as - in a shellscript), the first line will be treated as a comment. - -- `--compact`: No whitespace is used in the AST output. - -- `--silent`: Do not output the AST, just return the exit status. - -- `--help`: Print the usage information and quit. - -The utility spits out the syntax tree as JSON data. - -## Existing plugins - - - [`acorn-jsx`](https://github.com/RReverser/acorn-jsx): Parse [Facebook JSX syntax extensions](https://github.com/facebook/jsx) - -Plugins for ECMAScript proposals: - - - [`acorn-stage3`](https://github.com/acornjs/acorn-stage3): Parse most stage 3 proposals, bundling: - - [`acorn-class-fields`](https://github.com/acornjs/acorn-class-fields): Parse [class fields proposal](https://github.com/tc39/proposal-class-fields) - - [`acorn-import-meta`](https://github.com/acornjs/acorn-import-meta): Parse [import.meta proposal](https://github.com/tc39/proposal-import-meta) - - [`acorn-private-methods`](https://github.com/acornjs/acorn-private-methods): parse [private methods, getters and setters proposal](https://github.com/tc39/proposal-private-methods)n diff --git a/views/node_modules/acorn/bin/acorn b/views/node_modules/acorn/bin/acorn deleted file mode 100755 index cf7df46..0000000 --- a/views/node_modules/acorn/bin/acorn +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -require('../dist/bin.js'); diff --git a/views/node_modules/acorn/dist/acorn.d.ts b/views/node_modules/acorn/dist/acorn.d.ts deleted file mode 100644 index bda5f80..0000000 --- a/views/node_modules/acorn/dist/acorn.d.ts +++ /dev/null @@ -1,209 +0,0 @@ -export as namespace acorn -export = acorn - -declare namespace acorn { - function parse(input: string, options?: Options): Node - - function parseExpressionAt(input: string, pos?: number, options?: Options): Node - - function tokenizer(input: string, options?: Options): { - getToken(): Token - [Symbol.iterator](): Iterator - } - - interface Options { - ecmaVersion?: 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 - sourceType?: 'script' | 'module' - onInsertedSemicolon?: (lastTokEnd: number, lastTokEndLoc?: Position) => void - onTrailingComma?: (lastTokEnd: number, lastTokEndLoc?: Position) => void - allowReserved?: boolean | 'never' - allowReturnOutsideFunction?: boolean - allowImportExportEverywhere?: boolean - allowAwaitOutsideFunction?: boolean - allowHashBang?: boolean - locations?: boolean - onToken?: ((token: Token) => any) | Token[] - onComment?: (( - isBlock: boolean, text: string, start: number, end: number, startLoc?: Position, - endLoc?: Position - ) => void) | Comment[] - ranges?: boolean - program?: Node - sourceFile?: string - directSourceFile?: string - preserveParens?: boolean - } - - class Parser { - constructor(options: Options, input: string, startPos?: number) - parse(this: Parser): Node - static parse(this: typeof Parser, input: string, options?: Options): Node - static parseExpressionAt(this: typeof Parser, input: string, pos: number, options?: Options): Node - static tokenizer(this: typeof Parser, input: string, options?: Options): { - getToken(): Token - [Symbol.iterator](): Iterator - } - static extend(this: typeof Parser, ...plugins: ((BaseParser: typeof Parser) => typeof Parser)[]): typeof Parser - } - - interface Position { line: number; column: number; offset: number } - - const defaultOptions: Options - - function getLineInfo(input: string, offset: number): Position - - class SourceLocation { - start: Position - end: Position - source?: string | null - constructor(p: Parser, start: Position, end: Position) - } - - class Node { - type: string - start: number - end: number - loc?: SourceLocation - sourceFile?: string - range?: [number, number] - constructor(parser: Parser, pos: number, loc?: SourceLocation) - } - - class TokenType { - label: string - keyword: string - beforeExpr: boolean - startsExpr: boolean - isLoop: boolean - isAssign: boolean - prefix: boolean - postfix: boolean - binop: number - updateContext?: (prevType: TokenType) => void - constructor(label: string, conf?: any) - } - - const tokTypes: { - num: TokenType - regexp: TokenType - string: TokenType - name: TokenType - eof: TokenType - bracketL: TokenType - bracketR: TokenType - braceL: TokenType - braceR: TokenType - parenL: TokenType - parenR: TokenType - comma: TokenType - semi: TokenType - colon: TokenType - dot: TokenType - question: TokenType - arrow: TokenType - template: TokenType - ellipsis: TokenType - backQuote: TokenType - dollarBraceL: TokenType - eq: TokenType - assign: TokenType - incDec: TokenType - prefix: TokenType - logicalOR: TokenType - logicalAND: TokenType - bitwiseOR: TokenType - bitwiseXOR: TokenType - bitwiseAND: TokenType - equality: TokenType - relational: TokenType - bitShift: TokenType - plusMin: TokenType - modulo: TokenType - star: TokenType - slash: TokenType - starstar: TokenType - _break: TokenType - _case: TokenType - _catch: TokenType - _continue: TokenType - _debugger: TokenType - _default: TokenType - _do: TokenType - _else: TokenType - _finally: TokenType - _for: TokenType - _function: TokenType - _if: TokenType - _return: TokenType - _switch: TokenType - _throw: TokenType - _try: TokenType - _var: TokenType - _const: TokenType - _while: TokenType - _with: TokenType - _new: TokenType - _this: TokenType - _super: TokenType - _class: TokenType - _extends: TokenType - _export: TokenType - _import: TokenType - _null: TokenType - _true: TokenType - _false: TokenType - _in: TokenType - _instanceof: TokenType - _typeof: TokenType - _void: TokenType - _delete: TokenType - } - - class TokContext { - constructor(token: string, isExpr: boolean, preserveSpace: boolean, override?: (p: Parser) => void) - } - - const tokContexts: { - b_stat: TokContext - b_expr: TokContext - b_tmpl: TokContext - p_stat: TokContext - p_expr: TokContext - q_tmpl: TokContext - f_expr: TokContext - } - - function isIdentifierStart(code: number, astral?: boolean): boolean - - function isIdentifierChar(code: number, astral?: boolean): boolean - - interface AbstractToken { - } - - interface Comment extends AbstractToken { - type: string - value: string - start: number - end: number - loc?: SourceLocation - range?: [number, number] - } - - class Token { - type: TokenType - value: any - start: number - end: number - loc?: SourceLocation - range?: [number, number] - constructor(p: Parser) - } - - function isNewLine(code: number): boolean - - const lineBreak: RegExp - - const lineBreakG: RegExp - - const version: string -} diff --git a/views/node_modules/acorn/dist/acorn.js b/views/node_modules/acorn/dist/acorn.js deleted file mode 100644 index 0523f0e..0000000 --- a/views/node_modules/acorn/dist/acorn.js +++ /dev/null @@ -1,5186 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = global || self, factory(global.acorn = {})); -}(this, (function (exports) { 'use strict'; - - // Reserved word lists for various dialects of the language - - var reservedWords = { - 3: "abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile", - 5: "class enum extends super const export import", - 6: "enum", - strict: "implements interface let package private protected public static yield", - strictBind: "eval arguments" - }; - - // And the keywords - - var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"; - - var keywords = { - 5: ecma5AndLessKeywords, - "5module": ecma5AndLessKeywords + " export import", - 6: ecma5AndLessKeywords + " const class extends export import super" - }; - - var keywordRelationalOperator = /^in(stanceof)?$/; - - // ## Character categories - - // Big ugly regular expressions that match characters in the - // whitespace, identifier, and identifier-start categories. These - // are only applied when a character is found to actually have a - // code point above 128. - // Generated by `bin/generate-identifier-regex.js`. - var nonASCIIidentifierStartChars = "\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\u0560-\u0588\u05d0-\u05ea\u05ef-\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-\u08c7\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\u0d04-\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\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\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-\u1878\u1880-\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\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\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\u2118-\u211d\u2124\u2126\u2128\u212a-\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\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\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-\uab69\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"; - var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; - - var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); - var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); - - nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; - - // These are a run-length and offset encoded representation of the - // >0xffff code points that are a valid part of identifiers. The - // offset starts at 0x10000, and each pair of numbers represents an - // offset to the next range, and then a size of the range. They were - // generated by bin/generate-identifier-regex.js - - // eslint-disable-next-line comma-spacing - var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938]; - - // eslint-disable-next-line comma-spacing - var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239]; - - // This has a complexity linear to the value of the code. The - // assumption is that looking up astral identifier characters is - // rare. - function isInAstralSet(code, set) { - var pos = 0x10000; - for (var i = 0; i < set.length; i += 2) { - pos += set[i]; - if (pos > code) { return false } - pos += set[i + 1]; - if (pos >= code) { return true } - } - } - - // Test whether a given character code starts an identifier. - - function isIdentifierStart(code, astral) { - if (code < 65) { return code === 36 } - if (code < 91) { return true } - if (code < 97) { return code === 95 } - if (code < 123) { return true } - if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)) } - if (astral === false) { return false } - return isInAstralSet(code, astralIdentifierStartCodes) - } - - // Test whether a given character is part of an identifier. - - function isIdentifierChar(code, astral) { - if (code < 48) { return code === 36 } - if (code < 58) { return true } - if (code < 65) { return false } - if (code < 91) { return true } - if (code < 97) { return code === 95 } - if (code < 123) { return true } - if (code <= 0xffff) { return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)) } - if (astral === false) { return false } - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes) - } - - // ## Token types - - // The assignment of fine-grained, information-carrying type objects - // allows the tokenizer to store the information it has about a - // token in a way that is very cheap for the parser to look up. - - // All token type variables start with an underscore, to make them - // easy to recognize. - - // The `beforeExpr` property is used to disambiguate between regular - // expressions and divisions. It is set on all token types that can - // be followed by an expression (thus, a slash after them would be a - // regular expression). - // - // The `startsExpr` property is used to check if the token ends a - // `yield` expression. It is set on all token types that either can - // directly start an expression (like a quotation mark) or can - // continue an expression (like the body of a string). - // - // `isLoop` marks a keyword as starting a loop, which is important - // to know when parsing a label, in order to allow or disallow - // continue jumps to that label. - - var TokenType = function TokenType(label, conf) { - if ( conf === void 0 ) conf = {}; - - this.label = label; - this.keyword = conf.keyword; - this.beforeExpr = !!conf.beforeExpr; - this.startsExpr = !!conf.startsExpr; - this.isLoop = !!conf.isLoop; - this.isAssign = !!conf.isAssign; - this.prefix = !!conf.prefix; - this.postfix = !!conf.postfix; - this.binop = conf.binop || null; - this.updateContext = null; - }; - - function binop(name, prec) { - return new TokenType(name, {beforeExpr: true, binop: prec}) - } - var beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true}; - - // Map keyword names to token types. - - var keywords$1 = {}; - - // Succinct definitions of keyword token types - function kw(name, options) { - if ( options === void 0 ) options = {}; - - options.keyword = name; - return keywords$1[name] = new TokenType(name, options) - } - - var types = { - num: new TokenType("num", startsExpr), - regexp: new TokenType("regexp", startsExpr), - string: new TokenType("string", startsExpr), - name: new TokenType("name", startsExpr), - eof: new TokenType("eof"), - - // Punctuation token types. - bracketL: new TokenType("[", {beforeExpr: true, startsExpr: true}), - bracketR: new TokenType("]"), - braceL: new TokenType("{", {beforeExpr: true, startsExpr: true}), - braceR: new TokenType("}"), - parenL: new TokenType("(", {beforeExpr: true, startsExpr: true}), - parenR: new TokenType(")"), - comma: new TokenType(",", beforeExpr), - semi: new TokenType(";", beforeExpr), - colon: new TokenType(":", beforeExpr), - dot: new TokenType("."), - question: new TokenType("?", beforeExpr), - questionDot: new TokenType("?."), - arrow: new TokenType("=>", beforeExpr), - template: new TokenType("template"), - invalidTemplate: new TokenType("invalidTemplate"), - ellipsis: new TokenType("...", beforeExpr), - backQuote: new TokenType("`", startsExpr), - dollarBraceL: new TokenType("${", {beforeExpr: true, startsExpr: true}), - - // Operators. These carry several kinds of properties to help the - // parser use them properly (the presence of these properties is - // what categorizes them as operators). - // - // `binop`, when present, specifies that this operator is a binary - // operator, and will refer to its precedence. - // - // `prefix` and `postfix` mark the operator as a prefix or postfix - // unary operator. - // - // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as - // binary operators with a very low precedence, that should result - // in AssignmentExpression nodes. - - eq: new TokenType("=", {beforeExpr: true, isAssign: true}), - assign: new TokenType("_=", {beforeExpr: true, isAssign: true}), - incDec: new TokenType("++/--", {prefix: true, postfix: true, startsExpr: true}), - prefix: new TokenType("!/~", {beforeExpr: true, prefix: true, startsExpr: true}), - logicalOR: binop("||", 1), - logicalAND: binop("&&", 2), - bitwiseOR: binop("|", 3), - bitwiseXOR: binop("^", 4), - bitwiseAND: binop("&", 5), - equality: binop("==/!=/===/!==", 6), - relational: binop("/<=/>=", 7), - bitShift: binop("<>/>>>", 8), - plusMin: new TokenType("+/-", {beforeExpr: true, binop: 9, prefix: true, startsExpr: true}), - modulo: binop("%", 10), - star: binop("*", 10), - slash: binop("/", 10), - starstar: new TokenType("**", {beforeExpr: true}), - coalesce: binop("??", 1), - - // Keyword token types. - _break: kw("break"), - _case: kw("case", beforeExpr), - _catch: kw("catch"), - _continue: kw("continue"), - _debugger: kw("debugger"), - _default: kw("default", beforeExpr), - _do: kw("do", {isLoop: true, beforeExpr: true}), - _else: kw("else", beforeExpr), - _finally: kw("finally"), - _for: kw("for", {isLoop: true}), - _function: kw("function", startsExpr), - _if: kw("if"), - _return: kw("return", beforeExpr), - _switch: kw("switch"), - _throw: kw("throw", beforeExpr), - _try: kw("try"), - _var: kw("var"), - _const: kw("const"), - _while: kw("while", {isLoop: true}), - _with: kw("with"), - _new: kw("new", {beforeExpr: true, startsExpr: true}), - _this: kw("this", startsExpr), - _super: kw("super", startsExpr), - _class: kw("class", startsExpr), - _extends: kw("extends", beforeExpr), - _export: kw("export"), - _import: kw("import", startsExpr), - _null: kw("null", startsExpr), - _true: kw("true", startsExpr), - _false: kw("false", startsExpr), - _in: kw("in", {beforeExpr: true, binop: 7}), - _instanceof: kw("instanceof", {beforeExpr: true, binop: 7}), - _typeof: kw("typeof", {beforeExpr: true, prefix: true, startsExpr: true}), - _void: kw("void", {beforeExpr: true, prefix: true, startsExpr: true}), - _delete: kw("delete", {beforeExpr: true, prefix: true, startsExpr: true}) - }; - - // Matches a whole line break (where CRLF is considered a single - // line break). Used to count lines. - - var lineBreak = /\r\n?|\n|\u2028|\u2029/; - var lineBreakG = new RegExp(lineBreak.source, "g"); - - function isNewLine(code, ecma2019String) { - return code === 10 || code === 13 || (!ecma2019String && (code === 0x2028 || code === 0x2029)) - } - - var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/; - - var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; - - var ref = Object.prototype; - var hasOwnProperty = ref.hasOwnProperty; - var toString = ref.toString; - - // Checks if an object has a property. - - function has(obj, propName) { - return hasOwnProperty.call(obj, propName) - } - - var isArray = Array.isArray || (function (obj) { return ( - toString.call(obj) === "[object Array]" - ); }); - - function wordsRegexp(words) { - return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$") - } - - // These are used when `options.locations` is on, for the - // `startLoc` and `endLoc` properties. - - var Position = function Position(line, col) { - this.line = line; - this.column = col; - }; - - Position.prototype.offset = function offset (n) { - return new Position(this.line, this.column + n) - }; - - var SourceLocation = function SourceLocation(p, start, end) { - this.start = start; - this.end = end; - if (p.sourceFile !== null) { this.source = p.sourceFile; } - }; - - // The `getLineInfo` function is mostly useful when the - // `locations` option is off (for performance reasons) and you - // want to find the line/column position for a given character - // offset. `input` should be the code string that the offset refers - // into. - - function getLineInfo(input, offset) { - for (var line = 1, cur = 0;;) { - lineBreakG.lastIndex = cur; - var match = lineBreakG.exec(input); - if (match && match.index < offset) { - ++line; - cur = match.index + match[0].length; - } else { - return new Position(line, offset - cur) - } - } - } - - // A second optional argument can be given to further configure - // the parser process. These options are recognized: - - var defaultOptions = { - // `ecmaVersion` indicates the ECMAScript version to parse. Must be - // either 3, 5, 6 (2015), 7 (2016), 8 (2017), 9 (2018), or 10 - // (2019). This influences support for strict mode, the set of - // reserved words, and support for new syntax features. The default - // is 10. - ecmaVersion: 10, - // `sourceType` indicates the mode the code should be parsed in. - // Can be either `"script"` or `"module"`. This influences global - // strict mode and parsing of `import` and `export` declarations. - sourceType: "script", - // `onInsertedSemicolon` can be a callback that will be called - // when a semicolon is automatically inserted. It will be passed - // the position of the comma as an offset, and if `locations` is - // enabled, it is given the location as a `{line, column}` object - // as second argument. - onInsertedSemicolon: null, - // `onTrailingComma` is similar to `onInsertedSemicolon`, but for - // trailing commas. - onTrailingComma: null, - // By default, reserved words are only enforced if ecmaVersion >= 5. - // Set `allowReserved` to a boolean value to explicitly turn this on - // an off. When this option has the value "never", reserved words - // and keywords can also not be used as property names. - allowReserved: null, - // When enabled, a return at the top level is not considered an - // error. - allowReturnOutsideFunction: false, - // When enabled, import/export statements are not constrained to - // appearing at the top of the program. - allowImportExportEverywhere: false, - // When enabled, await identifiers are allowed to appear at the top-level scope, - // but they are still not allowed in non-async functions. - allowAwaitOutsideFunction: false, - // When enabled, hashbang directive in the beginning of file - // is allowed and treated as a line comment. - allowHashBang: false, - // When `locations` is on, `loc` properties holding objects with - // `start` and `end` properties in `{line, column}` form (with - // line being 1-based and column 0-based) will be attached to the - // nodes. - locations: false, - // A function can be passed as `onToken` option, which will - // cause Acorn to call that function with object in the same - // format as tokens returned from `tokenizer().getToken()`. Note - // that you are not allowed to call the parser from the - // callback—that will corrupt its internal state. - onToken: null, - // A function can be passed as `onComment` option, which will - // cause Acorn to call that function with `(block, text, start, - // end)` parameters whenever a comment is skipped. `block` is a - // boolean indicating whether this is a block (`/* */`) comment, - // `text` is the content of the comment, and `start` and `end` are - // character offsets that denote the start and end of the comment. - // When the `locations` option is on, two more parameters are - // passed, the full `{line, column}` locations of the start and - // end of the comments. Note that you are not allowed to call the - // parser from the callback—that will corrupt its internal state. - onComment: null, - // Nodes have their start and end characters offsets recorded in - // `start` and `end` properties (directly on the node, rather than - // the `loc` object, which holds line/column data. To also add a - // [semi-standardized][range] `range` property holding a `[start, - // end]` array with the same numbers, set the `ranges` option to - // `true`. - // - // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678 - ranges: false, - // It is possible to parse multiple files into a single AST by - // passing the tree produced by parsing the first file as - // `program` option in subsequent parses. This will add the - // toplevel forms of the parsed file to the `Program` (top) node - // of an existing parse tree. - program: null, - // When `locations` is on, you can pass this to record the source - // file in every node's `loc` object. - sourceFile: null, - // This value, if given, is stored in every node, whether - // `locations` is on or off. - directSourceFile: null, - // When enabled, parenthesized expressions are represented by - // (non-standard) ParenthesizedExpression nodes - preserveParens: false - }; - - // Interpret and default an options object - - function getOptions(opts) { - var options = {}; - - for (var opt in defaultOptions) - { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; } - - if (options.ecmaVersion >= 2015) - { options.ecmaVersion -= 2009; } - - if (options.allowReserved == null) - { options.allowReserved = options.ecmaVersion < 5; } - - if (isArray(options.onToken)) { - var tokens = options.onToken; - options.onToken = function (token) { return tokens.push(token); }; - } - if (isArray(options.onComment)) - { options.onComment = pushComment(options, options.onComment); } - - return options - } - - function pushComment(options, array) { - return function(block, text, start, end, startLoc, endLoc) { - var comment = { - type: block ? "Block" : "Line", - value: text, - start: start, - end: end - }; - if (options.locations) - { comment.loc = new SourceLocation(this, startLoc, endLoc); } - if (options.ranges) - { comment.range = [start, end]; } - array.push(comment); - } - } - - // Each scope gets a bitset that may contain these flags - var - SCOPE_TOP = 1, - SCOPE_FUNCTION = 2, - SCOPE_VAR = SCOPE_TOP | SCOPE_FUNCTION, - SCOPE_ASYNC = 4, - SCOPE_GENERATOR = 8, - SCOPE_ARROW = 16, - SCOPE_SIMPLE_CATCH = 32, - SCOPE_SUPER = 64, - SCOPE_DIRECT_SUPER = 128; - - function functionFlags(async, generator) { - return SCOPE_FUNCTION | (async ? SCOPE_ASYNC : 0) | (generator ? SCOPE_GENERATOR : 0) - } - - // Used in checkLVal and declareName to determine the type of a binding - var - BIND_NONE = 0, // Not a binding - BIND_VAR = 1, // Var-style binding - BIND_LEXICAL = 2, // Let- or const-style binding - BIND_FUNCTION = 3, // Function declaration - BIND_SIMPLE_CATCH = 4, // Simple (identifier pattern) catch binding - BIND_OUTSIDE = 5; // Special case for function names as bound inside the function - - var Parser = function Parser(options, input, startPos) { - this.options = options = getOptions(options); - this.sourceFile = options.sourceFile; - this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]); - var reserved = ""; - if (options.allowReserved !== true) { - for (var v = options.ecmaVersion;; v--) - { if (reserved = reservedWords[v]) { break } } - if (options.sourceType === "module") { reserved += " await"; } - } - this.reservedWords = wordsRegexp(reserved); - var reservedStrict = (reserved ? reserved + " " : "") + reservedWords.strict; - this.reservedWordsStrict = wordsRegexp(reservedStrict); - this.reservedWordsStrictBind = wordsRegexp(reservedStrict + " " + reservedWords.strictBind); - this.input = String(input); - - // Used to signal to callers of `readWord1` whether the word - // contained any escape sequences. This is needed because words with - // escape sequences must not be interpreted as keywords. - this.containsEsc = false; - - // Set up token state - - // The current position of the tokenizer in the input. - if (startPos) { - this.pos = startPos; - this.lineStart = this.input.lastIndexOf("\n", startPos - 1) + 1; - this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length; - } else { - this.pos = this.lineStart = 0; - this.curLine = 1; - } - - // Properties of the current token: - // Its type - this.type = types.eof; - // For tokens that include more information than their type, the value - this.value = null; - // Its start and end offset - this.start = this.end = this.pos; - // And, if locations are used, the {line, column} object - // corresponding to those offsets - this.startLoc = this.endLoc = this.curPosition(); - - // Position information for the previous token - this.lastTokEndLoc = this.lastTokStartLoc = null; - this.lastTokStart = this.lastTokEnd = this.pos; - - // The context stack is used to superficially track syntactic - // context to predict whether a regular expression is allowed in a - // given position. - this.context = this.initialContext(); - this.exprAllowed = true; - - // Figure out if it's a module code. - this.inModule = options.sourceType === "module"; - this.strict = this.inModule || this.strictDirective(this.pos); - - // Used to signify the start of a potential arrow function - this.potentialArrowAt = -1; - - // Positions to delayed-check that yield/await does not exist in default parameters. - this.yieldPos = this.awaitPos = this.awaitIdentPos = 0; - // Labels in scope. - this.labels = []; - // Thus-far undefined exports. - this.undefinedExports = {}; - - // If enabled, skip leading hashbang line. - if (this.pos === 0 && options.allowHashBang && this.input.slice(0, 2) === "#!") - { this.skipLineComment(2); } - - // Scope tracking for duplicate variable names (see scope.js) - this.scopeStack = []; - this.enterScope(SCOPE_TOP); - - // For RegExp validation - this.regexpState = null; - }; - - var prototypeAccessors = { inFunction: { configurable: true },inGenerator: { configurable: true },inAsync: { configurable: true },allowSuper: { configurable: true },allowDirectSuper: { configurable: true },treatFunctionsAsVar: { configurable: true } }; - - Parser.prototype.parse = function parse () { - var node = this.options.program || this.startNode(); - this.nextToken(); - return this.parseTopLevel(node) - }; - - prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }; - prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 }; - prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 }; - prototypeAccessors.allowSuper.get = function () { return (this.currentThisScope().flags & SCOPE_SUPER) > 0 }; - prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }; - prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) }; - - // Switch to a getter for 7.0.0. - Parser.prototype.inNonArrowFunction = function inNonArrowFunction () { return (this.currentThisScope().flags & SCOPE_FUNCTION) > 0 }; - - Parser.extend = function extend () { - var plugins = [], len = arguments.length; - while ( len-- ) plugins[ len ] = arguments[ len ]; - - var cls = this; - for (var i = 0; i < plugins.length; i++) { cls = plugins[i](cls); } - return cls - }; - - Parser.parse = function parse (input, options) { - return new this(options, input).parse() - }; - - Parser.parseExpressionAt = function parseExpressionAt (input, pos, options) { - var parser = new this(options, input, pos); - parser.nextToken(); - return parser.parseExpression() - }; - - Parser.tokenizer = function tokenizer (input, options) { - return new this(options, input) - }; - - Object.defineProperties( Parser.prototype, prototypeAccessors ); - - var pp = Parser.prototype; - - // ## Parser utilities - - var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/; - pp.strictDirective = function(start) { - for (;;) { - // Try to find string literal. - skipWhiteSpace.lastIndex = start; - start += skipWhiteSpace.exec(this.input)[0].length; - var match = literal.exec(this.input.slice(start)); - if (!match) { return false } - if ((match[1] || match[2]) === "use strict") { - skipWhiteSpace.lastIndex = start + match[0].length; - var spaceAfter = skipWhiteSpace.exec(this.input), end = spaceAfter.index + spaceAfter[0].length; - var next = this.input.charAt(end); - return next === ";" || next === "}" || - (lineBreak.test(spaceAfter[0]) && - !(/[(`.[+\-/*%<>=,?^&]/.test(next) || next === "!" && this.input.charAt(end + 1) === "=")) - } - start += match[0].length; - - // Skip semicolon, if any. - skipWhiteSpace.lastIndex = start; - start += skipWhiteSpace.exec(this.input)[0].length; - if (this.input[start] === ";") - { start++; } - } - }; - - // Predicate that tests whether the next token is of the given - // type, and if yes, consumes it as a side effect. - - pp.eat = function(type) { - if (this.type === type) { - this.next(); - return true - } else { - return false - } - }; - - // Tests whether parsed token is a contextual keyword. - - pp.isContextual = function(name) { - return this.type === types.name && this.value === name && !this.containsEsc - }; - - // Consumes contextual keyword if possible. - - pp.eatContextual = function(name) { - if (!this.isContextual(name)) { return false } - this.next(); - return true - }; - - // Asserts that following token is given contextual keyword. - - pp.expectContextual = function(name) { - if (!this.eatContextual(name)) { this.unexpected(); } - }; - - // Test whether a semicolon can be inserted at the current position. - - pp.canInsertSemicolon = function() { - return this.type === types.eof || - this.type === types.braceR || - lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) - }; - - pp.insertSemicolon = function() { - if (this.canInsertSemicolon()) { - if (this.options.onInsertedSemicolon) - { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); } - return true - } - }; - - // Consume a semicolon, or, failing that, see if we are allowed to - // pretend that there is a semicolon at this position. - - pp.semicolon = function() { - if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); } - }; - - pp.afterTrailingComma = function(tokType, notNext) { - if (this.type === tokType) { - if (this.options.onTrailingComma) - { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); } - if (!notNext) - { this.next(); } - return true - } - }; - - // Expect a token of a given type. If found, consume it, otherwise, - // raise an unexpected token error. - - pp.expect = function(type) { - this.eat(type) || this.unexpected(); - }; - - // Raise an unexpected token error. - - pp.unexpected = function(pos) { - this.raise(pos != null ? pos : this.start, "Unexpected token"); - }; - - function DestructuringErrors() { - this.shorthandAssign = - this.trailingComma = - this.parenthesizedAssign = - this.parenthesizedBind = - this.doubleProto = - -1; - } - - pp.checkPatternErrors = function(refDestructuringErrors, isAssign) { - if (!refDestructuringErrors) { return } - if (refDestructuringErrors.trailingComma > -1) - { this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element"); } - var parens = isAssign ? refDestructuringErrors.parenthesizedAssign : refDestructuringErrors.parenthesizedBind; - if (parens > -1) { this.raiseRecoverable(parens, "Parenthesized pattern"); } - }; - - pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) { - if (!refDestructuringErrors) { return false } - var shorthandAssign = refDestructuringErrors.shorthandAssign; - var doubleProto = refDestructuringErrors.doubleProto; - if (!andThrow) { return shorthandAssign >= 0 || doubleProto >= 0 } - if (shorthandAssign >= 0) - { this.raise(shorthandAssign, "Shorthand property assignments are valid only in destructuring patterns"); } - if (doubleProto >= 0) - { this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property"); } - }; - - pp.checkYieldAwaitInDefaultParams = function() { - if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos)) - { this.raise(this.yieldPos, "Yield expression cannot be a default value"); } - if (this.awaitPos) - { this.raise(this.awaitPos, "Await expression cannot be a default value"); } - }; - - pp.isSimpleAssignTarget = function(expr) { - if (expr.type === "ParenthesizedExpression") - { return this.isSimpleAssignTarget(expr.expression) } - return expr.type === "Identifier" || expr.type === "MemberExpression" - }; - - var pp$1 = Parser.prototype; - - // ### Statement parsing - - // Parse a program. Initializes the parser, reads any number of - // statements, and wraps them in a Program node. Optionally takes a - // `program` argument. If present, the statements will be appended - // to its body instead of creating a new node. - - pp$1.parseTopLevel = function(node) { - var exports = {}; - if (!node.body) { node.body = []; } - while (this.type !== types.eof) { - var stmt = this.parseStatement(null, true, exports); - node.body.push(stmt); - } - if (this.inModule) - { for (var i = 0, list = Object.keys(this.undefinedExports); i < list.length; i += 1) - { - var name = list[i]; - - this.raiseRecoverable(this.undefinedExports[name].start, ("Export '" + name + "' is not defined")); - } } - this.adaptDirectivePrologue(node.body); - this.next(); - node.sourceType = this.options.sourceType; - return this.finishNode(node, "Program") - }; - - var loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"}; - - pp$1.isLet = function(context) { - if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { return false } - skipWhiteSpace.lastIndex = this.pos; - var skip = skipWhiteSpace.exec(this.input); - var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); - // For ambiguous cases, determine if a LexicalDeclaration (or only a - // Statement) is allowed here. If context is not empty then only a Statement - // is allowed. However, `let [` is an explicit negative lookahead for - // ExpressionStatement, so special-case it first. - if (nextCh === 91) { return true } // '[' - if (context) { return false } - - if (nextCh === 123) { return true } // '{' - if (isIdentifierStart(nextCh, true)) { - var pos = next + 1; - while (isIdentifierChar(this.input.charCodeAt(pos), true)) { ++pos; } - var ident = this.input.slice(next, pos); - if (!keywordRelationalOperator.test(ident)) { return true } - } - return false - }; - - // check 'async [no LineTerminator here] function' - // - 'async /*foo*/ function' is OK. - // - 'async /*\n*/ function' is invalid. - pp$1.isAsyncFunction = function() { - if (this.options.ecmaVersion < 8 || !this.isContextual("async")) - { return false } - - skipWhiteSpace.lastIndex = this.pos; - var skip = skipWhiteSpace.exec(this.input); - var next = this.pos + skip[0].length; - return !lineBreak.test(this.input.slice(this.pos, next)) && - this.input.slice(next, next + 8) === "function" && - (next + 8 === this.input.length || !isIdentifierChar(this.input.charAt(next + 8))) - }; - - // Parse a single statement. - // - // If expecting a statement and finding a slash operator, parse a - // regular expression literal. This is to handle cases like - // `if (foo) /blah/.exec(foo)`, where looking at the previous token - // does not help. - - pp$1.parseStatement = function(context, topLevel, exports) { - var starttype = this.type, node = this.startNode(), kind; - - if (this.isLet(context)) { - starttype = types._var; - kind = "let"; - } - - // Most types of statements are recognized by the keyword they - // start with. Many are trivial to parse, some require a bit of - // complexity. - - switch (starttype) { - case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword) - case types._debugger: return this.parseDebuggerStatement(node) - case types._do: return this.parseDoStatement(node) - case types._for: return this.parseForStatement(node) - case types._function: - // Function as sole body of either an if statement or a labeled statement - // works, but not when it is part of a labeled statement that is the sole - // body of an if statement. - if ((context && (this.strict || context !== "if" && context !== "label")) && this.options.ecmaVersion >= 6) { this.unexpected(); } - return this.parseFunctionStatement(node, false, !context) - case types._class: - if (context) { this.unexpected(); } - return this.parseClass(node, true) - case types._if: return this.parseIfStatement(node) - case types._return: return this.parseReturnStatement(node) - case types._switch: return this.parseSwitchStatement(node) - case types._throw: return this.parseThrowStatement(node) - case types._try: return this.parseTryStatement(node) - case types._const: case types._var: - kind = kind || this.value; - if (context && kind !== "var") { this.unexpected(); } - return this.parseVarStatement(node, kind) - case types._while: return this.parseWhileStatement(node) - case types._with: return this.parseWithStatement(node) - case types.braceL: return this.parseBlock(true, node) - case types.semi: return this.parseEmptyStatement(node) - case types._export: - case types._import: - if (this.options.ecmaVersion > 10 && starttype === types._import) { - skipWhiteSpace.lastIndex = this.pos; - var skip = skipWhiteSpace.exec(this.input); - var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); - if (nextCh === 40 || nextCh === 46) // '(' or '.' - { return this.parseExpressionStatement(node, this.parseExpression()) } - } - - if (!this.options.allowImportExportEverywhere) { - if (!topLevel) - { this.raise(this.start, "'import' and 'export' may only appear at the top level"); } - if (!this.inModule) - { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); } - } - return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports) - - // If the statement does not start with a statement keyword or a - // brace, it's an ExpressionStatement or LabeledStatement. We - // simply start parsing an expression, and afterwards, if the - // next token is a colon and the expression was a simple - // Identifier node, we switch to interpreting it as a label. - default: - if (this.isAsyncFunction()) { - if (context) { this.unexpected(); } - this.next(); - return this.parseFunctionStatement(node, true, !context) - } - - var maybeName = this.value, expr = this.parseExpression(); - if (starttype === types.name && expr.type === "Identifier" && this.eat(types.colon)) - { return this.parseLabeledStatement(node, maybeName, expr, context) } - else { return this.parseExpressionStatement(node, expr) } - } - }; - - pp$1.parseBreakContinueStatement = function(node, keyword) { - var isBreak = keyword === "break"; - this.next(); - if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; } - else if (this.type !== types.name) { this.unexpected(); } - else { - node.label = this.parseIdent(); - this.semicolon(); - } - - // Verify that there is an actual destination to break or - // continue to. - var i = 0; - for (; i < this.labels.length; ++i) { - var lab = this.labels[i]; - if (node.label == null || lab.name === node.label.name) { - if (lab.kind != null && (isBreak || lab.kind === "loop")) { break } - if (node.label && isBreak) { break } - } - } - if (i === this.labels.length) { this.raise(node.start, "Unsyntactic " + keyword); } - return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement") - }; - - pp$1.parseDebuggerStatement = function(node) { - this.next(); - this.semicolon(); - return this.finishNode(node, "DebuggerStatement") - }; - - pp$1.parseDoStatement = function(node) { - this.next(); - this.labels.push(loopLabel); - node.body = this.parseStatement("do"); - this.labels.pop(); - this.expect(types._while); - node.test = this.parseParenExpression(); - if (this.options.ecmaVersion >= 6) - { this.eat(types.semi); } - else - { this.semicolon(); } - return this.finishNode(node, "DoWhileStatement") - }; - - // Disambiguating between a `for` and a `for`/`in` or `for`/`of` - // loop is non-trivial. Basically, we have to parse the init `var` - // statement or expression, disallowing the `in` operator (see - // the second parameter to `parseExpression`), and then check - // whether the next token is `in` or `of`. When there is no init - // part (semicolon immediately after the opening parenthesis), it - // is a regular `for` loop. - - pp$1.parseForStatement = function(node) { - this.next(); - var awaitAt = (this.options.ecmaVersion >= 9 && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction)) && this.eatContextual("await")) ? this.lastTokStart : -1; - this.labels.push(loopLabel); - this.enterScope(0); - this.expect(types.parenL); - if (this.type === types.semi) { - if (awaitAt > -1) { this.unexpected(awaitAt); } - return this.parseFor(node, null) - } - var isLet = this.isLet(); - if (this.type === types._var || this.type === types._const || isLet) { - var init$1 = this.startNode(), kind = isLet ? "let" : this.value; - this.next(); - this.parseVar(init$1, true, kind); - this.finishNode(init$1, "VariableDeclaration"); - if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) { - if (this.options.ecmaVersion >= 9) { - if (this.type === types._in) { - if (awaitAt > -1) { this.unexpected(awaitAt); } - } else { node.await = awaitAt > -1; } - } - return this.parseForIn(node, init$1) - } - if (awaitAt > -1) { this.unexpected(awaitAt); } - return this.parseFor(node, init$1) - } - var refDestructuringErrors = new DestructuringErrors; - var init = this.parseExpression(true, refDestructuringErrors); - if (this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) { - if (this.options.ecmaVersion >= 9) { - if (this.type === types._in) { - if (awaitAt > -1) { this.unexpected(awaitAt); } - } else { node.await = awaitAt > -1; } - } - this.toAssignable(init, false, refDestructuringErrors); - this.checkLVal(init); - return this.parseForIn(node, init) - } else { - this.checkExpressionErrors(refDestructuringErrors, true); - } - if (awaitAt > -1) { this.unexpected(awaitAt); } - return this.parseFor(node, init) - }; - - pp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) { - this.next(); - return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync) - }; - - pp$1.parseIfStatement = function(node) { - this.next(); - node.test = this.parseParenExpression(); - // allow function declarations in branches, but only in non-strict mode - node.consequent = this.parseStatement("if"); - node.alternate = this.eat(types._else) ? this.parseStatement("if") : null; - return this.finishNode(node, "IfStatement") - }; - - pp$1.parseReturnStatement = function(node) { - if (!this.inFunction && !this.options.allowReturnOutsideFunction) - { this.raise(this.start, "'return' outside of function"); } - this.next(); - - // In `return` (and `break`/`continue`), the keywords with - // optional arguments, we eagerly look for a semicolon or the - // possibility to insert one. - - if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; } - else { node.argument = this.parseExpression(); this.semicolon(); } - return this.finishNode(node, "ReturnStatement") - }; - - pp$1.parseSwitchStatement = function(node) { - this.next(); - node.discriminant = this.parseParenExpression(); - node.cases = []; - this.expect(types.braceL); - this.labels.push(switchLabel); - this.enterScope(0); - - // Statements under must be grouped (by label) in SwitchCase - // nodes. `cur` is used to keep the node that we are currently - // adding statements to. - - var cur; - for (var sawDefault = false; this.type !== types.braceR;) { - if (this.type === types._case || this.type === types._default) { - var isCase = this.type === types._case; - if (cur) { this.finishNode(cur, "SwitchCase"); } - node.cases.push(cur = this.startNode()); - cur.consequent = []; - this.next(); - if (isCase) { - cur.test = this.parseExpression(); - } else { - if (sawDefault) { this.raiseRecoverable(this.lastTokStart, "Multiple default clauses"); } - sawDefault = true; - cur.test = null; - } - this.expect(types.colon); - } else { - if (!cur) { this.unexpected(); } - cur.consequent.push(this.parseStatement(null)); - } - } - this.exitScope(); - if (cur) { this.finishNode(cur, "SwitchCase"); } - this.next(); // Closing brace - this.labels.pop(); - return this.finishNode(node, "SwitchStatement") - }; - - pp$1.parseThrowStatement = function(node) { - this.next(); - if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) - { this.raise(this.lastTokEnd, "Illegal newline after throw"); } - node.argument = this.parseExpression(); - this.semicolon(); - return this.finishNode(node, "ThrowStatement") - }; - - // Reused empty array added for node fields that are always empty. - - var empty = []; - - pp$1.parseTryStatement = function(node) { - this.next(); - node.block = this.parseBlock(); - node.handler = null; - if (this.type === types._catch) { - var clause = this.startNode(); - this.next(); - if (this.eat(types.parenL)) { - clause.param = this.parseBindingAtom(); - var simple = clause.param.type === "Identifier"; - this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0); - this.checkLVal(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL); - this.expect(types.parenR); - } else { - if (this.options.ecmaVersion < 10) { this.unexpected(); } - clause.param = null; - this.enterScope(0); - } - clause.body = this.parseBlock(false); - this.exitScope(); - node.handler = this.finishNode(clause, "CatchClause"); - } - node.finalizer = this.eat(types._finally) ? this.parseBlock() : null; - if (!node.handler && !node.finalizer) - { this.raise(node.start, "Missing catch or finally clause"); } - return this.finishNode(node, "TryStatement") - }; - - pp$1.parseVarStatement = function(node, kind) { - this.next(); - this.parseVar(node, false, kind); - this.semicolon(); - return this.finishNode(node, "VariableDeclaration") - }; - - pp$1.parseWhileStatement = function(node) { - this.next(); - node.test = this.parseParenExpression(); - this.labels.push(loopLabel); - node.body = this.parseStatement("while"); - this.labels.pop(); - return this.finishNode(node, "WhileStatement") - }; - - pp$1.parseWithStatement = function(node) { - if (this.strict) { this.raise(this.start, "'with' in strict mode"); } - this.next(); - node.object = this.parseParenExpression(); - node.body = this.parseStatement("with"); - return this.finishNode(node, "WithStatement") - }; - - pp$1.parseEmptyStatement = function(node) { - this.next(); - return this.finishNode(node, "EmptyStatement") - }; - - pp$1.parseLabeledStatement = function(node, maybeName, expr, context) { - for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1) - { - var label = list[i$1]; - - if (label.name === maybeName) - { this.raise(expr.start, "Label '" + maybeName + "' is already declared"); - } } - var kind = this.type.isLoop ? "loop" : this.type === types._switch ? "switch" : null; - for (var i = this.labels.length - 1; i >= 0; i--) { - var label$1 = this.labels[i]; - if (label$1.statementStart === node.start) { - // Update information about previous labels on this node - label$1.statementStart = this.start; - label$1.kind = kind; - } else { break } - } - this.labels.push({name: maybeName, kind: kind, statementStart: this.start}); - node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label"); - this.labels.pop(); - node.label = expr; - return this.finishNode(node, "LabeledStatement") - }; - - pp$1.parseExpressionStatement = function(node, expr) { - node.expression = expr; - this.semicolon(); - return this.finishNode(node, "ExpressionStatement") - }; - - // Parse a semicolon-enclosed block of statements, handling `"use - // strict"` declarations when `allowStrict` is true (used for - // function bodies). - - pp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) { - if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true; - if ( node === void 0 ) node = this.startNode(); - - node.body = []; - this.expect(types.braceL); - if (createNewLexicalScope) { this.enterScope(0); } - while (this.type !== types.braceR) { - var stmt = this.parseStatement(null); - node.body.push(stmt); - } - if (exitStrict) { this.strict = false; } - this.next(); - if (createNewLexicalScope) { this.exitScope(); } - return this.finishNode(node, "BlockStatement") - }; - - // Parse a regular `for` loop. The disambiguation code in - // `parseStatement` will already have parsed the init statement or - // expression. - - pp$1.parseFor = function(node, init) { - node.init = init; - this.expect(types.semi); - node.test = this.type === types.semi ? null : this.parseExpression(); - this.expect(types.semi); - node.update = this.type === types.parenR ? null : this.parseExpression(); - this.expect(types.parenR); - node.body = this.parseStatement("for"); - this.exitScope(); - this.labels.pop(); - return this.finishNode(node, "ForStatement") - }; - - // Parse a `for`/`in` and `for`/`of` loop, which are almost - // same from parser's perspective. - - pp$1.parseForIn = function(node, init) { - var isForIn = this.type === types._in; - this.next(); - - if ( - init.type === "VariableDeclaration" && - init.declarations[0].init != null && - ( - !isForIn || - this.options.ecmaVersion < 8 || - this.strict || - init.kind !== "var" || - init.declarations[0].id.type !== "Identifier" - ) - ) { - this.raise( - init.start, - ((isForIn ? "for-in" : "for-of") + " loop variable declaration may not have an initializer") - ); - } else if (init.type === "AssignmentPattern") { - this.raise(init.start, "Invalid left-hand side in for-loop"); - } - node.left = init; - node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign(); - this.expect(types.parenR); - node.body = this.parseStatement("for"); - this.exitScope(); - this.labels.pop(); - return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement") - }; - - // Parse a list of variable declarations. - - pp$1.parseVar = function(node, isFor, kind) { - node.declarations = []; - node.kind = kind; - for (;;) { - var decl = this.startNode(); - this.parseVarId(decl, kind); - if (this.eat(types.eq)) { - decl.init = this.parseMaybeAssign(isFor); - } else if (kind === "const" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) { - this.unexpected(); - } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types._in || this.isContextual("of")))) { - this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value"); - } else { - decl.init = null; - } - node.declarations.push(this.finishNode(decl, "VariableDeclarator")); - if (!this.eat(types.comma)) { break } - } - return node - }; - - pp$1.parseVarId = function(decl, kind) { - decl.id = this.parseBindingAtom(); - this.checkLVal(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false); - }; - - var FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4; - - // Parse a function declaration or literal (depending on the - // `statement & FUNC_STATEMENT`). - - // Remove `allowExpressionBody` for 7.0.0, as it is only called with false - pp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync) { - this.initFunction(node); - if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) { - if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT)) - { this.unexpected(); } - node.generator = this.eat(types.star); - } - if (this.options.ecmaVersion >= 8) - { node.async = !!isAsync; } - - if (statement & FUNC_STATEMENT) { - node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent(); - if (node.id && !(statement & FUNC_HANGING_STATEMENT)) - // If it is a regular function declaration in sloppy mode, then it is - // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding - // mode depends on properties of the current scope (see - // treatFunctionsAsVar). - { this.checkLVal(node.id, (this.strict || node.generator || node.async) ? this.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION); } - } - - var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - this.enterScope(functionFlags(node.async, node.generator)); - - if (!(statement & FUNC_STATEMENT)) - { node.id = this.type === types.name ? this.parseIdent() : null; } - - this.parseFunctionParams(node); - this.parseFunctionBody(node, allowExpressionBody, false); - - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, (statement & FUNC_STATEMENT) ? "FunctionDeclaration" : "FunctionExpression") - }; - - pp$1.parseFunctionParams = function(node) { - this.expect(types.parenL); - node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8); - this.checkYieldAwaitInDefaultParams(); - }; - - // Parse a class declaration or literal (depending on the - // `isStatement` parameter). - - pp$1.parseClass = function(node, isStatement) { - this.next(); - - // ecma-262 14.6 Class Definitions - // A class definition is always strict mode code. - var oldStrict = this.strict; - this.strict = true; - - this.parseClassId(node, isStatement); - this.parseClassSuper(node); - var classBody = this.startNode(); - var hadConstructor = false; - classBody.body = []; - this.expect(types.braceL); - while (this.type !== types.braceR) { - var element = this.parseClassElement(node.superClass !== null); - if (element) { - classBody.body.push(element); - if (element.type === "MethodDefinition" && element.kind === "constructor") { - if (hadConstructor) { this.raise(element.start, "Duplicate constructor in the same class"); } - hadConstructor = true; - } - } - } - this.strict = oldStrict; - this.next(); - node.body = this.finishNode(classBody, "ClassBody"); - return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression") - }; - - pp$1.parseClassElement = function(constructorAllowsSuper) { - var this$1 = this; - - if (this.eat(types.semi)) { return null } - - var method = this.startNode(); - var tryContextual = function (k, noLineBreak) { - if ( noLineBreak === void 0 ) noLineBreak = false; - - var start = this$1.start, startLoc = this$1.startLoc; - if (!this$1.eatContextual(k)) { return false } - if (this$1.type !== types.parenL && (!noLineBreak || !this$1.canInsertSemicolon())) { return true } - if (method.key) { this$1.unexpected(); } - method.computed = false; - method.key = this$1.startNodeAt(start, startLoc); - method.key.name = k; - this$1.finishNode(method.key, "Identifier"); - return false - }; - - method.kind = "method"; - method.static = tryContextual("static"); - var isGenerator = this.eat(types.star); - var isAsync = false; - if (!isGenerator) { - if (this.options.ecmaVersion >= 8 && tryContextual("async", true)) { - isAsync = true; - isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star); - } else if (tryContextual("get")) { - method.kind = "get"; - } else if (tryContextual("set")) { - method.kind = "set"; - } - } - if (!method.key) { this.parsePropertyName(method); } - var key = method.key; - var allowsDirectSuper = false; - if (!method.computed && !method.static && (key.type === "Identifier" && key.name === "constructor" || - key.type === "Literal" && key.value === "constructor")) { - if (method.kind !== "method") { this.raise(key.start, "Constructor can't have get/set modifier"); } - if (isGenerator) { this.raise(key.start, "Constructor can't be a generator"); } - if (isAsync) { this.raise(key.start, "Constructor can't be an async method"); } - method.kind = "constructor"; - allowsDirectSuper = constructorAllowsSuper; - } else if (method.static && key.type === "Identifier" && key.name === "prototype") { - this.raise(key.start, "Classes may not have a static property named prototype"); - } - this.parseClassMethod(method, isGenerator, isAsync, allowsDirectSuper); - if (method.kind === "get" && method.value.params.length !== 0) - { this.raiseRecoverable(method.value.start, "getter should have no params"); } - if (method.kind === "set" && method.value.params.length !== 1) - { this.raiseRecoverable(method.value.start, "setter should have exactly one param"); } - if (method.kind === "set" && method.value.params[0].type === "RestElement") - { this.raiseRecoverable(method.value.params[0].start, "Setter cannot use rest params"); } - return method - }; - - pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) { - method.value = this.parseMethod(isGenerator, isAsync, allowsDirectSuper); - return this.finishNode(method, "MethodDefinition") - }; - - pp$1.parseClassId = function(node, isStatement) { - if (this.type === types.name) { - node.id = this.parseIdent(); - if (isStatement) - { this.checkLVal(node.id, BIND_LEXICAL, false); } - } else { - if (isStatement === true) - { this.unexpected(); } - node.id = null; - } - }; - - pp$1.parseClassSuper = function(node) { - node.superClass = this.eat(types._extends) ? this.parseExprSubscripts() : null; - }; - - // Parses module export declaration. - - pp$1.parseExport = function(node, exports) { - this.next(); - // export * from '...' - if (this.eat(types.star)) { - if (this.options.ecmaVersion >= 11) { - if (this.eatContextual("as")) { - node.exported = this.parseIdent(true); - this.checkExport(exports, node.exported.name, this.lastTokStart); - } else { - node.exported = null; - } - } - this.expectContextual("from"); - if (this.type !== types.string) { this.unexpected(); } - node.source = this.parseExprAtom(); - this.semicolon(); - return this.finishNode(node, "ExportAllDeclaration") - } - if (this.eat(types._default)) { // export default ... - this.checkExport(exports, "default", this.lastTokStart); - var isAsync; - if (this.type === types._function || (isAsync = this.isAsyncFunction())) { - var fNode = this.startNode(); - this.next(); - if (isAsync) { this.next(); } - node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync); - } else if (this.type === types._class) { - var cNode = this.startNode(); - node.declaration = this.parseClass(cNode, "nullableID"); - } else { - node.declaration = this.parseMaybeAssign(); - this.semicolon(); - } - return this.finishNode(node, "ExportDefaultDeclaration") - } - // export var|const|let|function|class ... - if (this.shouldParseExportStatement()) { - node.declaration = this.parseStatement(null); - if (node.declaration.type === "VariableDeclaration") - { this.checkVariableExport(exports, node.declaration.declarations); } - else - { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); } - node.specifiers = []; - node.source = null; - } else { // export { x, y as z } [from '...'] - node.declaration = null; - node.specifiers = this.parseExportSpecifiers(exports); - if (this.eatContextual("from")) { - if (this.type !== types.string) { this.unexpected(); } - node.source = this.parseExprAtom(); - } else { - for (var i = 0, list = node.specifiers; i < list.length; i += 1) { - // check for keywords used as local names - var spec = list[i]; - - this.checkUnreserved(spec.local); - // check if export is defined - this.checkLocalExport(spec.local); - } - - node.source = null; - } - this.semicolon(); - } - return this.finishNode(node, "ExportNamedDeclaration") - }; - - pp$1.checkExport = function(exports, name, pos) { - if (!exports) { return } - if (has(exports, name)) - { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); } - exports[name] = true; - }; - - pp$1.checkPatternExport = function(exports, pat) { - var type = pat.type; - if (type === "Identifier") - { this.checkExport(exports, pat.name, pat.start); } - else if (type === "ObjectPattern") - { for (var i = 0, list = pat.properties; i < list.length; i += 1) - { - var prop = list[i]; - - this.checkPatternExport(exports, prop); - } } - else if (type === "ArrayPattern") - { for (var i$1 = 0, list$1 = pat.elements; i$1 < list$1.length; i$1 += 1) { - var elt = list$1[i$1]; - - if (elt) { this.checkPatternExport(exports, elt); } - } } - else if (type === "Property") - { this.checkPatternExport(exports, pat.value); } - else if (type === "AssignmentPattern") - { this.checkPatternExport(exports, pat.left); } - else if (type === "RestElement") - { this.checkPatternExport(exports, pat.argument); } - else if (type === "ParenthesizedExpression") - { this.checkPatternExport(exports, pat.expression); } - }; - - pp$1.checkVariableExport = function(exports, decls) { - if (!exports) { return } - for (var i = 0, list = decls; i < list.length; i += 1) - { - var decl = list[i]; - - this.checkPatternExport(exports, decl.id); - } - }; - - pp$1.shouldParseExportStatement = function() { - return this.type.keyword === "var" || - this.type.keyword === "const" || - this.type.keyword === "class" || - this.type.keyword === "function" || - this.isLet() || - this.isAsyncFunction() - }; - - // Parses a comma-separated list of module exports. - - pp$1.parseExportSpecifiers = function(exports) { - var nodes = [], first = true; - // export { x, y as z } [from '...'] - this.expect(types.braceL); - while (!this.eat(types.braceR)) { - if (!first) { - this.expect(types.comma); - if (this.afterTrailingComma(types.braceR)) { break } - } else { first = false; } - - var node = this.startNode(); - node.local = this.parseIdent(true); - node.exported = this.eatContextual("as") ? this.parseIdent(true) : node.local; - this.checkExport(exports, node.exported.name, node.exported.start); - nodes.push(this.finishNode(node, "ExportSpecifier")); - } - return nodes - }; - - // Parses import declaration. - - pp$1.parseImport = function(node) { - this.next(); - // import '...' - if (this.type === types.string) { - node.specifiers = empty; - node.source = this.parseExprAtom(); - } else { - node.specifiers = this.parseImportSpecifiers(); - this.expectContextual("from"); - node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected(); - } - this.semicolon(); - return this.finishNode(node, "ImportDeclaration") - }; - - // Parses a comma-separated list of module imports. - - pp$1.parseImportSpecifiers = function() { - var nodes = [], first = true; - if (this.type === types.name) { - // import defaultObj, { x, y as z } from '...' - var node = this.startNode(); - node.local = this.parseIdent(); - this.checkLVal(node.local, BIND_LEXICAL); - nodes.push(this.finishNode(node, "ImportDefaultSpecifier")); - if (!this.eat(types.comma)) { return nodes } - } - if (this.type === types.star) { - var node$1 = this.startNode(); - this.next(); - this.expectContextual("as"); - node$1.local = this.parseIdent(); - this.checkLVal(node$1.local, BIND_LEXICAL); - nodes.push(this.finishNode(node$1, "ImportNamespaceSpecifier")); - return nodes - } - this.expect(types.braceL); - while (!this.eat(types.braceR)) { - if (!first) { - this.expect(types.comma); - if (this.afterTrailingComma(types.braceR)) { break } - } else { first = false; } - - var node$2 = this.startNode(); - node$2.imported = this.parseIdent(true); - if (this.eatContextual("as")) { - node$2.local = this.parseIdent(); - } else { - this.checkUnreserved(node$2.imported); - node$2.local = node$2.imported; - } - this.checkLVal(node$2.local, BIND_LEXICAL); - nodes.push(this.finishNode(node$2, "ImportSpecifier")); - } - return nodes - }; - - // Set `ExpressionStatement#directive` property for directive prologues. - pp$1.adaptDirectivePrologue = function(statements) { - for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) { - statements[i].directive = statements[i].expression.raw.slice(1, -1); - } - }; - pp$1.isDirectiveCandidate = function(statement) { - return ( - statement.type === "ExpressionStatement" && - statement.expression.type === "Literal" && - typeof statement.expression.value === "string" && - // Reject parenthesized strings. - (this.input[statement.start] === "\"" || this.input[statement.start] === "'") - ) - }; - - var pp$2 = Parser.prototype; - - // Convert existing expression atom to assignable pattern - // if possible. - - pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) { - if (this.options.ecmaVersion >= 6 && node) { - switch (node.type) { - case "Identifier": - if (this.inAsync && node.name === "await") - { this.raise(node.start, "Cannot use 'await' as identifier inside an async function"); } - break - - case "ObjectPattern": - case "ArrayPattern": - case "RestElement": - break - - case "ObjectExpression": - node.type = "ObjectPattern"; - if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } - for (var i = 0, list = node.properties; i < list.length; i += 1) { - var prop = list[i]; - - this.toAssignable(prop, isBinding); - // Early error: - // AssignmentRestProperty[Yield, Await] : - // `...` DestructuringAssignmentTarget[Yield, Await] - // - // It is a Syntax Error if |DestructuringAssignmentTarget| is an |ArrayLiteral| or an |ObjectLiteral|. - if ( - prop.type === "RestElement" && - (prop.argument.type === "ArrayPattern" || prop.argument.type === "ObjectPattern") - ) { - this.raise(prop.argument.start, "Unexpected token"); - } - } - break - - case "Property": - // AssignmentProperty has type === "Property" - if (node.kind !== "init") { this.raise(node.key.start, "Object pattern can't contain getter or setter"); } - this.toAssignable(node.value, isBinding); - break - - case "ArrayExpression": - node.type = "ArrayPattern"; - if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } - this.toAssignableList(node.elements, isBinding); - break - - case "SpreadElement": - node.type = "RestElement"; - this.toAssignable(node.argument, isBinding); - if (node.argument.type === "AssignmentPattern") - { this.raise(node.argument.start, "Rest elements cannot have a default value"); } - break - - case "AssignmentExpression": - if (node.operator !== "=") { this.raise(node.left.end, "Only '=' operator can be used for specifying default value."); } - node.type = "AssignmentPattern"; - delete node.operator; - this.toAssignable(node.left, isBinding); - // falls through to AssignmentPattern - - case "AssignmentPattern": - break - - case "ParenthesizedExpression": - this.toAssignable(node.expression, isBinding, refDestructuringErrors); - break - - case "ChainExpression": - this.raiseRecoverable(node.start, "Optional chaining cannot appear in left-hand side"); - break - - case "MemberExpression": - if (!isBinding) { break } - - default: - this.raise(node.start, "Assigning to rvalue"); - } - } else if (refDestructuringErrors) { this.checkPatternErrors(refDestructuringErrors, true); } - return node - }; - - // Convert list of expression atoms to binding list. - - pp$2.toAssignableList = function(exprList, isBinding) { - var end = exprList.length; - for (var i = 0; i < end; i++) { - var elt = exprList[i]; - if (elt) { this.toAssignable(elt, isBinding); } - } - if (end) { - var last = exprList[end - 1]; - if (this.options.ecmaVersion === 6 && isBinding && last && last.type === "RestElement" && last.argument.type !== "Identifier") - { this.unexpected(last.argument.start); } - } - return exprList - }; - - // Parses spread element. - - pp$2.parseSpread = function(refDestructuringErrors) { - var node = this.startNode(); - this.next(); - node.argument = this.parseMaybeAssign(false, refDestructuringErrors); - return this.finishNode(node, "SpreadElement") - }; - - pp$2.parseRestBinding = function() { - var node = this.startNode(); - this.next(); - - // RestElement inside of a function parameter must be an identifier - if (this.options.ecmaVersion === 6 && this.type !== types.name) - { this.unexpected(); } - - node.argument = this.parseBindingAtom(); - - return this.finishNode(node, "RestElement") - }; - - // Parses lvalue (assignable) atom. - - pp$2.parseBindingAtom = function() { - if (this.options.ecmaVersion >= 6) { - switch (this.type) { - case types.bracketL: - var node = this.startNode(); - this.next(); - node.elements = this.parseBindingList(types.bracketR, true, true); - return this.finishNode(node, "ArrayPattern") - - case types.braceL: - return this.parseObj(true) - } - } - return this.parseIdent() - }; - - pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) { - var elts = [], first = true; - while (!this.eat(close)) { - if (first) { first = false; } - else { this.expect(types.comma); } - if (allowEmpty && this.type === types.comma) { - elts.push(null); - } else if (allowTrailingComma && this.afterTrailingComma(close)) { - break - } else if (this.type === types.ellipsis) { - var rest = this.parseRestBinding(); - this.parseBindingListItem(rest); - elts.push(rest); - if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } - this.expect(close); - break - } else { - var elem = this.parseMaybeDefault(this.start, this.startLoc); - this.parseBindingListItem(elem); - elts.push(elem); - } - } - return elts - }; - - pp$2.parseBindingListItem = function(param) { - return param - }; - - // Parses assignment pattern around given atom if possible. - - pp$2.parseMaybeDefault = function(startPos, startLoc, left) { - left = left || this.parseBindingAtom(); - if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left } - var node = this.startNodeAt(startPos, startLoc); - node.left = left; - node.right = this.parseMaybeAssign(); - return this.finishNode(node, "AssignmentPattern") - }; - - // Verify that a node is an lval — something that can be assigned - // to. - // bindingType can be either: - // 'var' indicating that the lval creates a 'var' binding - // 'let' indicating that the lval creates a lexical ('let' or 'const') binding - // 'none' indicating that the binding should be checked for illegal identifiers, but not for duplicate references - - pp$2.checkLVal = function(expr, bindingType, checkClashes) { - if ( bindingType === void 0 ) bindingType = BIND_NONE; - - switch (expr.type) { - case "Identifier": - if (bindingType === BIND_LEXICAL && expr.name === "let") - { this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); } - if (this.strict && this.reservedWordsStrictBind.test(expr.name)) - { this.raiseRecoverable(expr.start, (bindingType ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); } - if (checkClashes) { - if (has(checkClashes, expr.name)) - { this.raiseRecoverable(expr.start, "Argument name clash"); } - checkClashes[expr.name] = true; - } - if (bindingType !== BIND_NONE && bindingType !== BIND_OUTSIDE) { this.declareName(expr.name, bindingType, expr.start); } - break - - case "ChainExpression": - this.raiseRecoverable(expr.start, "Optional chaining cannot appear in left-hand side"); - break - - case "MemberExpression": - if (bindingType) { this.raiseRecoverable(expr.start, "Binding member expression"); } - break - - case "ObjectPattern": - for (var i = 0, list = expr.properties; i < list.length; i += 1) - { - var prop = list[i]; - - this.checkLVal(prop, bindingType, checkClashes); - } - break - - case "Property": - // AssignmentProperty has type === "Property" - this.checkLVal(expr.value, bindingType, checkClashes); - break - - case "ArrayPattern": - for (var i$1 = 0, list$1 = expr.elements; i$1 < list$1.length; i$1 += 1) { - var elem = list$1[i$1]; - - if (elem) { this.checkLVal(elem, bindingType, checkClashes); } - } - break - - case "AssignmentPattern": - this.checkLVal(expr.left, bindingType, checkClashes); - break - - case "RestElement": - this.checkLVal(expr.argument, bindingType, checkClashes); - break - - case "ParenthesizedExpression": - this.checkLVal(expr.expression, bindingType, checkClashes); - break - - default: - this.raise(expr.start, (bindingType ? "Binding" : "Assigning to") + " rvalue"); - } - }; - - // A recursive descent parser operates by defining functions for all - - var pp$3 = Parser.prototype; - - // Check if property name clashes with already added. - // Object/class getters and setters are not allowed to clash — - // either with each other or with an init property — and in - // strict mode, init properties are also not allowed to be repeated. - - pp$3.checkPropClash = function(prop, propHash, refDestructuringErrors) { - if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement") - { return } - if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) - { return } - var key = prop.key; - var name; - switch (key.type) { - case "Identifier": name = key.name; break - case "Literal": name = String(key.value); break - default: return - } - var kind = prop.kind; - if (this.options.ecmaVersion >= 6) { - if (name === "__proto__" && kind === "init") { - if (propHash.proto) { - if (refDestructuringErrors) { - if (refDestructuringErrors.doubleProto < 0) - { refDestructuringErrors.doubleProto = key.start; } - // Backwards-compat kludge. Can be removed in version 6.0 - } else { this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); } - } - propHash.proto = true; - } - return - } - name = "$" + name; - var other = propHash[name]; - if (other) { - var redefinition; - if (kind === "init") { - redefinition = this.strict && other.init || other.get || other.set; - } else { - redefinition = other.init || other[kind]; - } - if (redefinition) - { this.raiseRecoverable(key.start, "Redefinition of property"); } - } else { - other = propHash[name] = { - init: false, - get: false, - set: false - }; - } - other[kind] = true; - }; - - // ### Expression parsing - - // These nest, from the most general expression type at the top to - // 'atomic', nondivisible expression types at the bottom. Most of - // the functions will simply let the function(s) below them parse, - // and, *if* the syntactic construct they handle is present, wrap - // the AST node that the inner parser gave them in another node. - - // Parse a full expression. The optional arguments are used to - // forbid the `in` operator (in for loops initalization expressions) - // and provide reference for storing '=' operator inside shorthand - // property assignment in contexts where both object expression - // and object pattern might appear (so it's possible to raise - // delayed syntax error at correct position). - - pp$3.parseExpression = function(noIn, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseMaybeAssign(noIn, refDestructuringErrors); - if (this.type === types.comma) { - var node = this.startNodeAt(startPos, startLoc); - node.expressions = [expr]; - while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(noIn, refDestructuringErrors)); } - return this.finishNode(node, "SequenceExpression") - } - return expr - }; - - // Parse an assignment expression. This includes applications of - // operators like `+=`. - - pp$3.parseMaybeAssign = function(noIn, refDestructuringErrors, afterLeftParse) { - if (this.isContextual("yield")) { - if (this.inGenerator) { return this.parseYield(noIn) } - // The tokenizer will assume an expression is allowed after - // `yield`, but this isn't that kind of yield - else { this.exprAllowed = false; } - } - - var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1; - if (refDestructuringErrors) { - oldParenAssign = refDestructuringErrors.parenthesizedAssign; - oldTrailingComma = refDestructuringErrors.trailingComma; - refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1; - } else { - refDestructuringErrors = new DestructuringErrors; - ownDestructuringErrors = true; - } - - var startPos = this.start, startLoc = this.startLoc; - if (this.type === types.parenL || this.type === types.name) - { this.potentialArrowAt = this.start; } - var left = this.parseMaybeConditional(noIn, refDestructuringErrors); - if (afterLeftParse) { left = afterLeftParse.call(this, left, startPos, startLoc); } - if (this.type.isAssign) { - var node = this.startNodeAt(startPos, startLoc); - node.operator = this.value; - node.left = this.type === types.eq ? this.toAssignable(left, false, refDestructuringErrors) : left; - if (!ownDestructuringErrors) { - refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1; - } - if (refDestructuringErrors.shorthandAssign >= node.left.start) - { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly - this.checkLVal(left); - this.next(); - node.right = this.parseMaybeAssign(noIn); - return this.finishNode(node, "AssignmentExpression") - } else { - if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); } - } - if (oldParenAssign > -1) { refDestructuringErrors.parenthesizedAssign = oldParenAssign; } - if (oldTrailingComma > -1) { refDestructuringErrors.trailingComma = oldTrailingComma; } - return left - }; - - // Parse a ternary conditional (`?:`) operator. - - pp$3.parseMaybeConditional = function(noIn, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseExprOps(noIn, refDestructuringErrors); - if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } - if (this.eat(types.question)) { - var node = this.startNodeAt(startPos, startLoc); - node.test = expr; - node.consequent = this.parseMaybeAssign(); - this.expect(types.colon); - node.alternate = this.parseMaybeAssign(noIn); - return this.finishNode(node, "ConditionalExpression") - } - return expr - }; - - // Start the precedence parser. - - pp$3.parseExprOps = function(noIn, refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseMaybeUnary(refDestructuringErrors, false); - if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } - return expr.start === startPos && expr.type === "ArrowFunctionExpression" ? expr : this.parseExprOp(expr, startPos, startLoc, -1, noIn) - }; - - // Parse binary operators with the operator precedence parsing - // algorithm. `left` is the left-hand side of the operator. - // `minPrec` provides context that allows the function to stop and - // defer further parser to one of its callers when it encounters an - // operator that has a lower precedence than the set it is parsing. - - pp$3.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, noIn) { - var prec = this.type.binop; - if (prec != null && (!noIn || this.type !== types._in)) { - if (prec > minPrec) { - var logical = this.type === types.logicalOR || this.type === types.logicalAND; - var coalesce = this.type === types.coalesce; - if (coalesce) { - // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions. - // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error. - prec = types.logicalAND.binop; - } - var op = this.value; - this.next(); - var startPos = this.start, startLoc = this.startLoc; - var right = this.parseExprOp(this.parseMaybeUnary(null, false), startPos, startLoc, prec, noIn); - var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce); - if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) { - this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"); - } - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, noIn) - } - } - return left - }; - - pp$3.buildBinary = function(startPos, startLoc, left, right, op, logical) { - var node = this.startNodeAt(startPos, startLoc); - node.left = left; - node.operator = op; - node.right = right; - return this.finishNode(node, logical ? "LogicalExpression" : "BinaryExpression") - }; - - // Parse unary operators, both prefix and postfix. - - pp$3.parseMaybeUnary = function(refDestructuringErrors, sawUnary) { - var startPos = this.start, startLoc = this.startLoc, expr; - if (this.isContextual("await") && (this.inAsync || (!this.inFunction && this.options.allowAwaitOutsideFunction))) { - expr = this.parseAwait(); - sawUnary = true; - } else if (this.type.prefix) { - var node = this.startNode(), update = this.type === types.incDec; - node.operator = this.value; - node.prefix = true; - this.next(); - node.argument = this.parseMaybeUnary(null, true); - this.checkExpressionErrors(refDestructuringErrors, true); - if (update) { this.checkLVal(node.argument); } - else if (this.strict && node.operator === "delete" && - node.argument.type === "Identifier") - { this.raiseRecoverable(node.start, "Deleting local variable in strict mode"); } - else { sawUnary = true; } - expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); - } else { - expr = this.parseExprSubscripts(refDestructuringErrors); - if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } - while (this.type.postfix && !this.canInsertSemicolon()) { - var node$1 = this.startNodeAt(startPos, startLoc); - node$1.operator = this.value; - node$1.prefix = false; - node$1.argument = expr; - this.checkLVal(expr); - this.next(); - expr = this.finishNode(node$1, "UpdateExpression"); - } - } - - if (!sawUnary && this.eat(types.starstar)) - { return this.buildBinary(startPos, startLoc, expr, this.parseMaybeUnary(null, false), "**", false) } - else - { return expr } - }; - - // Parse call, dot, and `[]`-subscript expressions. - - pp$3.parseExprSubscripts = function(refDestructuringErrors) { - var startPos = this.start, startLoc = this.startLoc; - var expr = this.parseExprAtom(refDestructuringErrors); - if (expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")") - { return expr } - var result = this.parseSubscripts(expr, startPos, startLoc); - if (refDestructuringErrors && result.type === "MemberExpression") { - if (refDestructuringErrors.parenthesizedAssign >= result.start) { refDestructuringErrors.parenthesizedAssign = -1; } - if (refDestructuringErrors.parenthesizedBind >= result.start) { refDestructuringErrors.parenthesizedBind = -1; } - } - return result - }; - - pp$3.parseSubscripts = function(base, startPos, startLoc, noCalls) { - var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" && - this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && - this.potentialArrowAt === base.start; - var optionalChained = false; - - while (true) { - var element = this.parseSubscript(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained); - - if (element.optional) { optionalChained = true; } - if (element === base || element.type === "ArrowFunctionExpression") { - if (optionalChained) { - var chainNode = this.startNodeAt(startPos, startLoc); - chainNode.expression = element; - element = this.finishNode(chainNode, "ChainExpression"); - } - return element - } - - base = element; - } - }; - - pp$3.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained) { - var optionalSupported = this.options.ecmaVersion >= 11; - var optional = optionalSupported && this.eat(types.questionDot); - if (noCalls && optional) { this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); } - - var computed = this.eat(types.bracketL); - if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) { - var node = this.startNodeAt(startPos, startLoc); - node.object = base; - node.property = computed ? this.parseExpression() : this.parseIdent(this.options.allowReserved !== "never"); - node.computed = !!computed; - if (computed) { this.expect(types.bracketR); } - if (optionalSupported) { - node.optional = optional; - } - base = this.finishNode(node, "MemberExpression"); - } else if (!noCalls && this.eat(types.parenL)) { - var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors); - if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types.arrow)) { - this.checkPatternErrors(refDestructuringErrors, false); - this.checkYieldAwaitInDefaultParams(); - if (this.awaitIdentPos > 0) - { this.raise(this.awaitIdentPos, "Cannot use 'await' as identifier inside an async function"); } - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, true) - } - this.checkExpressionErrors(refDestructuringErrors, true); - this.yieldPos = oldYieldPos || this.yieldPos; - this.awaitPos = oldAwaitPos || this.awaitPos; - this.awaitIdentPos = oldAwaitIdentPos || this.awaitIdentPos; - var node$1 = this.startNodeAt(startPos, startLoc); - node$1.callee = base; - node$1.arguments = exprList; - if (optionalSupported) { - node$1.optional = optional; - } - base = this.finishNode(node$1, "CallExpression"); - } else if (this.type === types.backQuote) { - if (optional || optionalChained) { - this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions"); - } - var node$2 = this.startNodeAt(startPos, startLoc); - node$2.tag = base; - node$2.quasi = this.parseTemplate({isTagged: true}); - base = this.finishNode(node$2, "TaggedTemplateExpression"); - } - return base - }; - - // Parse an atomic expression — either a single token that is an - // expression, an expression started by a keyword like `function` or - // `new`, or an expression wrapped in punctuation like `()`, `[]`, - // or `{}`. - - pp$3.parseExprAtom = function(refDestructuringErrors) { - // If a division operator appears in an expression position, the - // tokenizer got confused, and we force it to read a regexp instead. - if (this.type === types.slash) { this.readRegexp(); } - - var node, canBeArrow = this.potentialArrowAt === this.start; - switch (this.type) { - case types._super: - if (!this.allowSuper) - { this.raise(this.start, "'super' keyword outside a method"); } - node = this.startNode(); - this.next(); - if (this.type === types.parenL && !this.allowDirectSuper) - { this.raise(node.start, "super() call outside constructor of a subclass"); } - // The `super` keyword can appear at below: - // SuperProperty: - // super [ Expression ] - // super . IdentifierName - // SuperCall: - // super ( Arguments ) - if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL) - { this.unexpected(); } - return this.finishNode(node, "Super") - - case types._this: - node = this.startNode(); - this.next(); - return this.finishNode(node, "ThisExpression") - - case types.name: - var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc; - var id = this.parseIdent(false); - if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types._function)) - { return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true) } - if (canBeArrow && !this.canInsertSemicolon()) { - if (this.eat(types.arrow)) - { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false) } - if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types.name && !containsEsc) { - id = this.parseIdent(false); - if (this.canInsertSemicolon() || !this.eat(types.arrow)) - { this.unexpected(); } - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true) - } - } - return id - - case types.regexp: - var value = this.value; - node = this.parseLiteral(value.value); - node.regex = {pattern: value.pattern, flags: value.flags}; - return node - - case types.num: case types.string: - return this.parseLiteral(this.value) - - case types._null: case types._true: case types._false: - node = this.startNode(); - node.value = this.type === types._null ? null : this.type === types._true; - node.raw = this.type.keyword; - this.next(); - return this.finishNode(node, "Literal") - - case types.parenL: - var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow); - if (refDestructuringErrors) { - if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr)) - { refDestructuringErrors.parenthesizedAssign = start; } - if (refDestructuringErrors.parenthesizedBind < 0) - { refDestructuringErrors.parenthesizedBind = start; } - } - return expr - - case types.bracketL: - node = this.startNode(); - this.next(); - node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors); - return this.finishNode(node, "ArrayExpression") - - case types.braceL: - return this.parseObj(false, refDestructuringErrors) - - case types._function: - node = this.startNode(); - this.next(); - return this.parseFunction(node, 0) - - case types._class: - return this.parseClass(this.startNode(), false) - - case types._new: - return this.parseNew() - - case types.backQuote: - return this.parseTemplate() - - case types._import: - if (this.options.ecmaVersion >= 11) { - return this.parseExprImport() - } else { - return this.unexpected() - } - - default: - this.unexpected(); - } - }; - - pp$3.parseExprImport = function() { - var node = this.startNode(); - - // Consume `import` as an identifier for `import.meta`. - // Because `this.parseIdent(true)` doesn't check escape sequences, it needs the check of `this.containsEsc`. - if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword import"); } - var meta = this.parseIdent(true); - - switch (this.type) { - case types.parenL: - return this.parseDynamicImport(node) - case types.dot: - node.meta = meta; - return this.parseImportMeta(node) - default: - this.unexpected(); - } - }; - - pp$3.parseDynamicImport = function(node) { - this.next(); // skip `(` - - // Parse node.source. - node.source = this.parseMaybeAssign(); - - // Verify ending. - if (!this.eat(types.parenR)) { - var errorPos = this.start; - if (this.eat(types.comma) && this.eat(types.parenR)) { - this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()"); - } else { - this.unexpected(errorPos); - } - } - - return this.finishNode(node, "ImportExpression") - }; - - pp$3.parseImportMeta = function(node) { - this.next(); // skip `.` - - var containsEsc = this.containsEsc; - node.property = this.parseIdent(true); - - if (node.property.name !== "meta") - { this.raiseRecoverable(node.property.start, "The only valid meta property for import is 'import.meta'"); } - if (containsEsc) - { this.raiseRecoverable(node.start, "'import.meta' must not contain escaped characters"); } - if (this.options.sourceType !== "module") - { this.raiseRecoverable(node.start, "Cannot use 'import.meta' outside a module"); } - - return this.finishNode(node, "MetaProperty") - }; - - pp$3.parseLiteral = function(value) { - var node = this.startNode(); - node.value = value; - node.raw = this.input.slice(this.start, this.end); - if (node.raw.charCodeAt(node.raw.length - 1) === 110) { node.bigint = node.raw.slice(0, -1).replace(/_/g, ""); } - this.next(); - return this.finishNode(node, "Literal") - }; - - pp$3.parseParenExpression = function() { - this.expect(types.parenL); - var val = this.parseExpression(); - this.expect(types.parenR); - return val - }; - - pp$3.parseParenAndDistinguishExpression = function(canBeArrow) { - var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8; - if (this.options.ecmaVersion >= 6) { - this.next(); - - var innerStartPos = this.start, innerStartLoc = this.startLoc; - var exprList = [], first = true, lastIsComma = false; - var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, spreadStart; - this.yieldPos = 0; - this.awaitPos = 0; - // Do not save awaitIdentPos to allow checking awaits nested in parameters - while (this.type !== types.parenR) { - first ? first = false : this.expect(types.comma); - if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) { - lastIsComma = true; - break - } else if (this.type === types.ellipsis) { - spreadStart = this.start; - exprList.push(this.parseParenItem(this.parseRestBinding())); - if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } - break - } else { - exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem)); - } - } - var innerEndPos = this.start, innerEndLoc = this.startLoc; - this.expect(types.parenR); - - if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) { - this.checkPatternErrors(refDestructuringErrors, false); - this.checkYieldAwaitInDefaultParams(); - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - return this.parseParenArrowList(startPos, startLoc, exprList) - } - - if (!exprList.length || lastIsComma) { this.unexpected(this.lastTokStart); } - if (spreadStart) { this.unexpected(spreadStart); } - this.checkExpressionErrors(refDestructuringErrors, true); - this.yieldPos = oldYieldPos || this.yieldPos; - this.awaitPos = oldAwaitPos || this.awaitPos; - - if (exprList.length > 1) { - val = this.startNodeAt(innerStartPos, innerStartLoc); - val.expressions = exprList; - this.finishNodeAt(val, "SequenceExpression", innerEndPos, innerEndLoc); - } else { - val = exprList[0]; - } - } else { - val = this.parseParenExpression(); - } - - if (this.options.preserveParens) { - var par = this.startNodeAt(startPos, startLoc); - par.expression = val; - return this.finishNode(par, "ParenthesizedExpression") - } else { - return val - } - }; - - pp$3.parseParenItem = function(item) { - return item - }; - - pp$3.parseParenArrowList = function(startPos, startLoc, exprList) { - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList) - }; - - // New's precedence is slightly tricky. It must allow its argument to - // be a `[]` or dot subscript expression, but not a call — at least, - // not without wrapping it in parentheses. Thus, it uses the noCalls - // argument to parseSubscripts to prevent it from consuming the - // argument list. - - var empty$1 = []; - - pp$3.parseNew = function() { - if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword new"); } - var node = this.startNode(); - var meta = this.parseIdent(true); - if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) { - node.meta = meta; - var containsEsc = this.containsEsc; - node.property = this.parseIdent(true); - if (node.property.name !== "target") - { this.raiseRecoverable(node.property.start, "The only valid meta property for new is 'new.target'"); } - if (containsEsc) - { this.raiseRecoverable(node.start, "'new.target' must not contain escaped characters"); } - if (!this.inNonArrowFunction()) - { this.raiseRecoverable(node.start, "'new.target' can only be used in functions"); } - return this.finishNode(node, "MetaProperty") - } - var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import; - node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true); - if (isImport && node.callee.type === "ImportExpression") { - this.raise(startPos, "Cannot use new with import()"); - } - if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); } - else { node.arguments = empty$1; } - return this.finishNode(node, "NewExpression") - }; - - // Parse template expression. - - pp$3.parseTemplateElement = function(ref) { - var isTagged = ref.isTagged; - - var elem = this.startNode(); - if (this.type === types.invalidTemplate) { - if (!isTagged) { - this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"); - } - elem.value = { - raw: this.value, - cooked: null - }; - } else { - elem.value = { - raw: this.input.slice(this.start, this.end).replace(/\r\n?/g, "\n"), - cooked: this.value - }; - } - this.next(); - elem.tail = this.type === types.backQuote; - return this.finishNode(elem, "TemplateElement") - }; - - pp$3.parseTemplate = function(ref) { - if ( ref === void 0 ) ref = {}; - var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false; - - var node = this.startNode(); - this.next(); - node.expressions = []; - var curElt = this.parseTemplateElement({isTagged: isTagged}); - node.quasis = [curElt]; - while (!curElt.tail) { - if (this.type === types.eof) { this.raise(this.pos, "Unterminated template literal"); } - this.expect(types.dollarBraceL); - node.expressions.push(this.parseExpression()); - this.expect(types.braceR); - node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged})); - } - this.next(); - return this.finishNode(node, "TemplateLiteral") - }; - - pp$3.isAsyncProp = function(prop) { - return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" && - (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) && - !lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) - }; - - // Parse an object literal or binding pattern. - - pp$3.parseObj = function(isPattern, refDestructuringErrors) { - var node = this.startNode(), first = true, propHash = {}; - node.properties = []; - this.next(); - while (!this.eat(types.braceR)) { - if (!first) { - this.expect(types.comma); - if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types.braceR)) { break } - } else { first = false; } - - var prop = this.parseProperty(isPattern, refDestructuringErrors); - if (!isPattern) { this.checkPropClash(prop, propHash, refDestructuringErrors); } - node.properties.push(prop); - } - return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression") - }; - - pp$3.parseProperty = function(isPattern, refDestructuringErrors) { - var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc; - if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) { - if (isPattern) { - prop.argument = this.parseIdent(false); - if (this.type === types.comma) { - this.raise(this.start, "Comma is not permitted after the rest element"); - } - return this.finishNode(prop, "RestElement") - } - // To disallow parenthesized identifier via `this.toAssignable()`. - if (this.type === types.parenL && refDestructuringErrors) { - if (refDestructuringErrors.parenthesizedAssign < 0) { - refDestructuringErrors.parenthesizedAssign = this.start; - } - if (refDestructuringErrors.parenthesizedBind < 0) { - refDestructuringErrors.parenthesizedBind = this.start; - } - } - // Parse argument. - prop.argument = this.parseMaybeAssign(false, refDestructuringErrors); - // To disallow trailing comma via `this.toAssignable()`. - if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) { - refDestructuringErrors.trailingComma = this.start; - } - // Finish - return this.finishNode(prop, "SpreadElement") - } - if (this.options.ecmaVersion >= 6) { - prop.method = false; - prop.shorthand = false; - if (isPattern || refDestructuringErrors) { - startPos = this.start; - startLoc = this.startLoc; - } - if (!isPattern) - { isGenerator = this.eat(types.star); } - } - var containsEsc = this.containsEsc; - this.parsePropertyName(prop); - if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) { - isAsync = true; - isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star); - this.parsePropertyName(prop, refDestructuringErrors); - } else { - isAsync = false; - } - this.parsePropertyValue(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc); - return this.finishNode(prop, "Property") - }; - - pp$3.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) { - if ((isGenerator || isAsync) && this.type === types.colon) - { this.unexpected(); } - - if (this.eat(types.colon)) { - prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors); - prop.kind = "init"; - } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) { - if (isPattern) { this.unexpected(); } - prop.kind = "init"; - prop.method = true; - prop.value = this.parseMethod(isGenerator, isAsync); - } else if (!isPattern && !containsEsc && - this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && - (prop.key.name === "get" || prop.key.name === "set") && - (this.type !== types.comma && this.type !== types.braceR && this.type !== types.eq)) { - if (isGenerator || isAsync) { this.unexpected(); } - prop.kind = prop.key.name; - this.parsePropertyName(prop); - prop.value = this.parseMethod(false); - var paramCount = prop.kind === "get" ? 0 : 1; - if (prop.value.params.length !== paramCount) { - var start = prop.value.start; - if (prop.kind === "get") - { this.raiseRecoverable(start, "getter should have no params"); } - else - { this.raiseRecoverable(start, "setter should have exactly one param"); } - } else { - if (prop.kind === "set" && prop.value.params[0].type === "RestElement") - { this.raiseRecoverable(prop.value.params[0].start, "Setter cannot use rest params"); } - } - } else if (this.options.ecmaVersion >= 6 && !prop.computed && prop.key.type === "Identifier") { - if (isGenerator || isAsync) { this.unexpected(); } - this.checkUnreserved(prop.key); - if (prop.key.name === "await" && !this.awaitIdentPos) - { this.awaitIdentPos = startPos; } - prop.kind = "init"; - if (isPattern) { - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key); - } else if (this.type === types.eq && refDestructuringErrors) { - if (refDestructuringErrors.shorthandAssign < 0) - { refDestructuringErrors.shorthandAssign = this.start; } - prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key); - } else { - prop.value = prop.key; - } - prop.shorthand = true; - } else { this.unexpected(); } - }; - - pp$3.parsePropertyName = function(prop) { - if (this.options.ecmaVersion >= 6) { - if (this.eat(types.bracketL)) { - prop.computed = true; - prop.key = this.parseMaybeAssign(); - this.expect(types.bracketR); - return prop.key - } else { - prop.computed = false; - } - } - return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never") - }; - - // Initialize empty function node. - - pp$3.initFunction = function(node) { - node.id = null; - if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; } - if (this.options.ecmaVersion >= 8) { node.async = false; } - }; - - // Parse object or class method. - - pp$3.parseMethod = function(isGenerator, isAsync, allowDirectSuper) { - var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - - this.initFunction(node); - if (this.options.ecmaVersion >= 6) - { node.generator = isGenerator; } - if (this.options.ecmaVersion >= 8) - { node.async = !!isAsync; } - - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0)); - - this.expect(types.parenL); - node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8); - this.checkYieldAwaitInDefaultParams(); - this.parseFunctionBody(node, false, true); - - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, "FunctionExpression") - }; - - // Parse arrow function expression with given parameters. - - pp$3.parseArrowExpression = function(node, params, isAsync) { - var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; - - this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW); - this.initFunction(node); - if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; } - - this.yieldPos = 0; - this.awaitPos = 0; - this.awaitIdentPos = 0; - - node.params = this.toAssignableList(params, true); - this.parseFunctionBody(node, true, false); - - this.yieldPos = oldYieldPos; - this.awaitPos = oldAwaitPos; - this.awaitIdentPos = oldAwaitIdentPos; - return this.finishNode(node, "ArrowFunctionExpression") - }; - - // Parse function body and check parameters. - - pp$3.parseFunctionBody = function(node, isArrowFunction, isMethod) { - var isExpression = isArrowFunction && this.type !== types.braceL; - var oldStrict = this.strict, useStrict = false; - - if (isExpression) { - node.body = this.parseMaybeAssign(); - node.expression = true; - this.checkParams(node, false); - } else { - var nonSimple = this.options.ecmaVersion >= 7 && !this.isSimpleParamList(node.params); - if (!oldStrict || nonSimple) { - useStrict = this.strictDirective(this.end); - // If this is a strict mode function, verify that argument names - // are not repeated, and it does not try to bind the words `eval` - // or `arguments`. - if (useStrict && nonSimple) - { this.raiseRecoverable(node.start, "Illegal 'use strict' directive in function with non-simple parameter list"); } - } - // Start a new scope with regard to labels and the `inFunction` - // flag (restore them to their old value afterwards). - var oldLabels = this.labels; - this.labels = []; - if (useStrict) { this.strict = true; } - - // Add the params to varDeclaredNames to ensure that an error is thrown - // if a let/const declaration in the function clashes with one of the params. - this.checkParams(node, !oldStrict && !useStrict && !isArrowFunction && !isMethod && this.isSimpleParamList(node.params)); - // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval' - if (this.strict && node.id) { this.checkLVal(node.id, BIND_OUTSIDE); } - node.body = this.parseBlock(false, undefined, useStrict && !oldStrict); - node.expression = false; - this.adaptDirectivePrologue(node.body.body); - this.labels = oldLabels; - } - this.exitScope(); - }; - - pp$3.isSimpleParamList = function(params) { - for (var i = 0, list = params; i < list.length; i += 1) - { - var param = list[i]; - - if (param.type !== "Identifier") { return false - } } - return true - }; - - // Checks function params for various disallowed patterns such as using "eval" - // or "arguments" and duplicate parameters. - - pp$3.checkParams = function(node, allowDuplicates) { - var nameHash = {}; - for (var i = 0, list = node.params; i < list.length; i += 1) - { - var param = list[i]; - - this.checkLVal(param, BIND_VAR, allowDuplicates ? null : nameHash); - } - }; - - // Parses a comma-separated list of expressions, and returns them as - // an array. `close` is the token type that ends the list, and - // `allowEmpty` can be turned on to allow subsequent commas with - // nothing in between them to be parsed as `null` (which is needed - // for array literals). - - pp$3.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) { - var elts = [], first = true; - while (!this.eat(close)) { - if (!first) { - this.expect(types.comma); - if (allowTrailingComma && this.afterTrailingComma(close)) { break } - } else { first = false; } - - var elt = (void 0); - if (allowEmpty && this.type === types.comma) - { elt = null; } - else if (this.type === types.ellipsis) { - elt = this.parseSpread(refDestructuringErrors); - if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0) - { refDestructuringErrors.trailingComma = this.start; } - } else { - elt = this.parseMaybeAssign(false, refDestructuringErrors); - } - elts.push(elt); - } - return elts - }; - - pp$3.checkUnreserved = function(ref) { - var start = ref.start; - var end = ref.end; - var name = ref.name; - - if (this.inGenerator && name === "yield") - { this.raiseRecoverable(start, "Cannot use 'yield' as identifier inside a generator"); } - if (this.inAsync && name === "await") - { this.raiseRecoverable(start, "Cannot use 'await' as identifier inside an async function"); } - if (this.keywords.test(name)) - { this.raise(start, ("Unexpected keyword '" + name + "'")); } - if (this.options.ecmaVersion < 6 && - this.input.slice(start, end).indexOf("\\") !== -1) { return } - var re = this.strict ? this.reservedWordsStrict : this.reservedWords; - if (re.test(name)) { - if (!this.inAsync && name === "await") - { this.raiseRecoverable(start, "Cannot use keyword 'await' outside an async function"); } - this.raiseRecoverable(start, ("The keyword '" + name + "' is reserved")); - } - }; - - // Parse the next token as an identifier. If `liberal` is true (used - // when parsing properties), it will also convert keywords into - // identifiers. - - pp$3.parseIdent = function(liberal, isBinding) { - var node = this.startNode(); - if (this.type === types.name) { - node.name = this.value; - } else if (this.type.keyword) { - node.name = this.type.keyword; - - // To fix https://github.com/acornjs/acorn/issues/575 - // `class` and `function` keywords push new context into this.context. - // But there is no chance to pop the context if the keyword is consumed as an identifier such as a property name. - // If the previous token is a dot, this does not apply because the context-managing code already ignored the keyword - if ((node.name === "class" || node.name === "function") && - (this.lastTokEnd !== this.lastTokStart + 1 || this.input.charCodeAt(this.lastTokStart) !== 46)) { - this.context.pop(); - } - } else { - this.unexpected(); - } - this.next(!!liberal); - this.finishNode(node, "Identifier"); - if (!liberal) { - this.checkUnreserved(node); - if (node.name === "await" && !this.awaitIdentPos) - { this.awaitIdentPos = node.start; } - } - return node - }; - - // Parses yield expression inside generator. - - pp$3.parseYield = function(noIn) { - if (!this.yieldPos) { this.yieldPos = this.start; } - - var node = this.startNode(); - this.next(); - if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) { - node.delegate = false; - node.argument = null; - } else { - node.delegate = this.eat(types.star); - node.argument = this.parseMaybeAssign(noIn); - } - return this.finishNode(node, "YieldExpression") - }; - - pp$3.parseAwait = function() { - if (!this.awaitPos) { this.awaitPos = this.start; } - - var node = this.startNode(); - this.next(); - node.argument = this.parseMaybeUnary(null, false); - return this.finishNode(node, "AwaitExpression") - }; - - var pp$4 = Parser.prototype; - - // This function is used to raise exceptions on parse errors. It - // takes an offset integer (into the current `input`) to indicate - // the location of the error, attaches the position to the end - // of the error message, and then raises a `SyntaxError` with that - // message. - - pp$4.raise = function(pos, message) { - var loc = getLineInfo(this.input, pos); - message += " (" + loc.line + ":" + loc.column + ")"; - var err = new SyntaxError(message); - err.pos = pos; err.loc = loc; err.raisedAt = this.pos; - throw err - }; - - pp$4.raiseRecoverable = pp$4.raise; - - pp$4.curPosition = function() { - if (this.options.locations) { - return new Position(this.curLine, this.pos - this.lineStart) - } - }; - - var pp$5 = Parser.prototype; - - var Scope = function Scope(flags) { - this.flags = flags; - // A list of var-declared names in the current lexical scope - this.var = []; - // A list of lexically-declared names in the current lexical scope - this.lexical = []; - // A list of lexically-declared FunctionDeclaration names in the current lexical scope - this.functions = []; - }; - - // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names. - - pp$5.enterScope = function(flags) { - this.scopeStack.push(new Scope(flags)); - }; - - pp$5.exitScope = function() { - this.scopeStack.pop(); - }; - - // The spec says: - // > At the top level of a function, or script, function declarations are - // > treated like var declarations rather than like lexical declarations. - pp$5.treatFunctionsAsVarInScope = function(scope) { - return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP) - }; - - pp$5.declareName = function(name, bindingType, pos) { - var redeclared = false; - if (bindingType === BIND_LEXICAL) { - var scope = this.currentScope(); - redeclared = scope.lexical.indexOf(name) > -1 || scope.functions.indexOf(name) > -1 || scope.var.indexOf(name) > -1; - scope.lexical.push(name); - if (this.inModule && (scope.flags & SCOPE_TOP)) - { delete this.undefinedExports[name]; } - } else if (bindingType === BIND_SIMPLE_CATCH) { - var scope$1 = this.currentScope(); - scope$1.lexical.push(name); - } else if (bindingType === BIND_FUNCTION) { - var scope$2 = this.currentScope(); - if (this.treatFunctionsAsVar) - { redeclared = scope$2.lexical.indexOf(name) > -1; } - else - { redeclared = scope$2.lexical.indexOf(name) > -1 || scope$2.var.indexOf(name) > -1; } - scope$2.functions.push(name); - } else { - for (var i = this.scopeStack.length - 1; i >= 0; --i) { - var scope$3 = this.scopeStack[i]; - if (scope$3.lexical.indexOf(name) > -1 && !((scope$3.flags & SCOPE_SIMPLE_CATCH) && scope$3.lexical[0] === name) || - !this.treatFunctionsAsVarInScope(scope$3) && scope$3.functions.indexOf(name) > -1) { - redeclared = true; - break - } - scope$3.var.push(name); - if (this.inModule && (scope$3.flags & SCOPE_TOP)) - { delete this.undefinedExports[name]; } - if (scope$3.flags & SCOPE_VAR) { break } - } - } - if (redeclared) { this.raiseRecoverable(pos, ("Identifier '" + name + "' has already been declared")); } - }; - - pp$5.checkLocalExport = function(id) { - // scope.functions must be empty as Module code is always strict. - if (this.scopeStack[0].lexical.indexOf(id.name) === -1 && - this.scopeStack[0].var.indexOf(id.name) === -1) { - this.undefinedExports[id.name] = id; - } - }; - - pp$5.currentScope = function() { - return this.scopeStack[this.scopeStack.length - 1] - }; - - pp$5.currentVarScope = function() { - for (var i = this.scopeStack.length - 1;; i--) { - var scope = this.scopeStack[i]; - if (scope.flags & SCOPE_VAR) { return scope } - } - }; - - // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`. - pp$5.currentThisScope = function() { - for (var i = this.scopeStack.length - 1;; i--) { - var scope = this.scopeStack[i]; - if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope } - } - }; - - var Node = function Node(parser, pos, loc) { - this.type = ""; - this.start = pos; - this.end = 0; - if (parser.options.locations) - { this.loc = new SourceLocation(parser, loc); } - if (parser.options.directSourceFile) - { this.sourceFile = parser.options.directSourceFile; } - if (parser.options.ranges) - { this.range = [pos, 0]; } - }; - - // Start an AST node, attaching a start offset. - - var pp$6 = Parser.prototype; - - pp$6.startNode = function() { - return new Node(this, this.start, this.startLoc) - }; - - pp$6.startNodeAt = function(pos, loc) { - return new Node(this, pos, loc) - }; - - // Finish an AST node, adding `type` and `end` properties. - - function finishNodeAt(node, type, pos, loc) { - node.type = type; - node.end = pos; - if (this.options.locations) - { node.loc.end = loc; } - if (this.options.ranges) - { node.range[1] = pos; } - return node - } - - pp$6.finishNode = function(node, type) { - return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc) - }; - - // Finish node at given position - - pp$6.finishNodeAt = function(node, type, pos, loc) { - return finishNodeAt.call(this, node, type, pos, loc) - }; - - // The algorithm used to determine whether a regexp can appear at a - - var TokContext = function TokContext(token, isExpr, preserveSpace, override, generator) { - this.token = token; - this.isExpr = !!isExpr; - this.preserveSpace = !!preserveSpace; - this.override = override; - this.generator = !!generator; - }; - - var types$1 = { - b_stat: new TokContext("{", false), - b_expr: new TokContext("{", true), - b_tmpl: new TokContext("${", false), - p_stat: new TokContext("(", false), - p_expr: new TokContext("(", true), - q_tmpl: new TokContext("`", true, true, function (p) { return p.tryReadTemplateToken(); }), - f_stat: new TokContext("function", false), - f_expr: new TokContext("function", true), - f_expr_gen: new TokContext("function", true, false, null, true), - f_gen: new TokContext("function", false, false, null, true) - }; - - var pp$7 = Parser.prototype; - - pp$7.initialContext = function() { - return [types$1.b_stat] - }; - - pp$7.braceIsBlock = function(prevType) { - var parent = this.curContext(); - if (parent === types$1.f_expr || parent === types$1.f_stat) - { return true } - if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr)) - { return !parent.isExpr } - - // The check for `tt.name && exprAllowed` detects whether we are - // after a `yield` or `of` construct. See the `updateContext` for - // `tt.name`. - if (prevType === types._return || prevType === types.name && this.exprAllowed) - { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) } - if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow) - { return true } - if (prevType === types.braceL) - { return parent === types$1.b_stat } - if (prevType === types._var || prevType === types._const || prevType === types.name) - { return false } - return !this.exprAllowed - }; - - pp$7.inGeneratorContext = function() { - for (var i = this.context.length - 1; i >= 1; i--) { - var context = this.context[i]; - if (context.token === "function") - { return context.generator } - } - return false - }; - - pp$7.updateContext = function(prevType) { - var update, type = this.type; - if (type.keyword && prevType === types.dot) - { this.exprAllowed = false; } - else if (update = type.updateContext) - { update.call(this, prevType); } - else - { this.exprAllowed = type.beforeExpr; } - }; - - // Token-specific context update code - - types.parenR.updateContext = types.braceR.updateContext = function() { - if (this.context.length === 1) { - this.exprAllowed = true; - return - } - var out = this.context.pop(); - if (out === types$1.b_stat && this.curContext().token === "function") { - out = this.context.pop(); - } - this.exprAllowed = !out.isExpr; - }; - - types.braceL.updateContext = function(prevType) { - this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr); - this.exprAllowed = true; - }; - - types.dollarBraceL.updateContext = function() { - this.context.push(types$1.b_tmpl); - this.exprAllowed = true; - }; - - types.parenL.updateContext = function(prevType) { - var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while; - this.context.push(statementParens ? types$1.p_stat : types$1.p_expr); - this.exprAllowed = true; - }; - - types.incDec.updateContext = function() { - // tokExprAllowed stays unchanged - }; - - types._function.updateContext = types._class.updateContext = function(prevType) { - if (prevType.beforeExpr && prevType !== types.semi && prevType !== types._else && - !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) && - !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat)) - { this.context.push(types$1.f_expr); } - else - { this.context.push(types$1.f_stat); } - this.exprAllowed = false; - }; - - types.backQuote.updateContext = function() { - if (this.curContext() === types$1.q_tmpl) - { this.context.pop(); } - else - { this.context.push(types$1.q_tmpl); } - this.exprAllowed = false; - }; - - types.star.updateContext = function(prevType) { - if (prevType === types._function) { - var index = this.context.length - 1; - if (this.context[index] === types$1.f_expr) - { this.context[index] = types$1.f_expr_gen; } - else - { this.context[index] = types$1.f_gen; } - } - this.exprAllowed = true; - }; - - types.name.updateContext = function(prevType) { - var allowed = false; - if (this.options.ecmaVersion >= 6 && prevType !== types.dot) { - if (this.value === "of" && !this.exprAllowed || - this.value === "yield" && this.inGeneratorContext()) - { allowed = true; } - } - this.exprAllowed = allowed; - }; - - // This file contains Unicode properties extracted from the ECMAScript - // specification. The lists are extracted like so: - // $$('#table-binary-unicode-properties > figure > table > tbody > tr > td:nth-child(1) code').map(el => el.innerText) - - // #table-binary-unicode-properties - var ecma9BinaryProperties = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS"; - var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic"; - var ecma11BinaryProperties = ecma10BinaryProperties; - var unicodeBinaryProperties = { - 9: ecma9BinaryProperties, - 10: ecma10BinaryProperties, - 11: ecma11BinaryProperties - }; - - // #table-unicode-general-category-values - var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu"; - - // #table-unicode-script-values - var ecma9ScriptValues = "Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb"; - var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd"; - var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho"; - var unicodeScriptValues = { - 9: ecma9ScriptValues, - 10: ecma10ScriptValues, - 11: ecma11ScriptValues - }; - - var data = {}; - function buildUnicodeData(ecmaVersion) { - var d = data[ecmaVersion] = { - binary: wordsRegexp(unicodeBinaryProperties[ecmaVersion] + " " + unicodeGeneralCategoryValues), - nonBinary: { - General_Category: wordsRegexp(unicodeGeneralCategoryValues), - Script: wordsRegexp(unicodeScriptValues[ecmaVersion]) - } - }; - d.nonBinary.Script_Extensions = d.nonBinary.Script; - - d.nonBinary.gc = d.nonBinary.General_Category; - d.nonBinary.sc = d.nonBinary.Script; - d.nonBinary.scx = d.nonBinary.Script_Extensions; - } - buildUnicodeData(9); - buildUnicodeData(10); - buildUnicodeData(11); - - var pp$8 = Parser.prototype; - - var RegExpValidationState = function RegExpValidationState(parser) { - this.parser = parser; - this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : ""); - this.unicodeProperties = data[parser.options.ecmaVersion >= 11 ? 11 : parser.options.ecmaVersion]; - this.source = ""; - this.flags = ""; - this.start = 0; - this.switchU = false; - this.switchN = false; - this.pos = 0; - this.lastIntValue = 0; - this.lastStringValue = ""; - this.lastAssertionIsQuantifiable = false; - this.numCapturingParens = 0; - this.maxBackReference = 0; - this.groupNames = []; - this.backReferenceNames = []; - }; - - RegExpValidationState.prototype.reset = function reset (start, pattern, flags) { - var unicode = flags.indexOf("u") !== -1; - this.start = start | 0; - this.source = pattern + ""; - this.flags = flags; - this.switchU = unicode && this.parser.options.ecmaVersion >= 6; - this.switchN = unicode && this.parser.options.ecmaVersion >= 9; - }; - - RegExpValidationState.prototype.raise = function raise (message) { - this.parser.raiseRecoverable(this.start, ("Invalid regular expression: /" + (this.source) + "/: " + message)); - }; - - // If u flag is given, this returns the code point at the index (it combines a surrogate pair). - // Otherwise, this returns the code unit of the index (can be a part of a surrogate pair). - RegExpValidationState.prototype.at = function at (i, forceU) { - if ( forceU === void 0 ) forceU = false; - - var s = this.source; - var l = s.length; - if (i >= l) { - return -1 - } - var c = s.charCodeAt(i); - if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l) { - return c - } - var next = s.charCodeAt(i + 1); - return next >= 0xDC00 && next <= 0xDFFF ? (c << 10) + next - 0x35FDC00 : c - }; - - RegExpValidationState.prototype.nextIndex = function nextIndex (i, forceU) { - if ( forceU === void 0 ) forceU = false; - - var s = this.source; - var l = s.length; - if (i >= l) { - return l - } - var c = s.charCodeAt(i), next; - if (!(forceU || this.switchU) || c <= 0xD7FF || c >= 0xE000 || i + 1 >= l || - (next = s.charCodeAt(i + 1)) < 0xDC00 || next > 0xDFFF) { - return i + 1 - } - return i + 2 - }; - - RegExpValidationState.prototype.current = function current (forceU) { - if ( forceU === void 0 ) forceU = false; - - return this.at(this.pos, forceU) - }; - - RegExpValidationState.prototype.lookahead = function lookahead (forceU) { - if ( forceU === void 0 ) forceU = false; - - return this.at(this.nextIndex(this.pos, forceU), forceU) - }; - - RegExpValidationState.prototype.advance = function advance (forceU) { - if ( forceU === void 0 ) forceU = false; - - this.pos = this.nextIndex(this.pos, forceU); - }; - - RegExpValidationState.prototype.eat = function eat (ch, forceU) { - if ( forceU === void 0 ) forceU = false; - - if (this.current(forceU) === ch) { - this.advance(forceU); - return true - } - return false - }; - - function codePointToString(ch) { - if (ch <= 0xFFFF) { return String.fromCharCode(ch) } - ch -= 0x10000; - return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00) - } - - /** - * Validate the flags part of a given RegExpLiteral. - * - * @param {RegExpValidationState} state The state to validate RegExp. - * @returns {void} - */ - pp$8.validateRegExpFlags = function(state) { - var validFlags = state.validFlags; - var flags = state.flags; - - for (var i = 0; i < flags.length; i++) { - var flag = flags.charAt(i); - if (validFlags.indexOf(flag) === -1) { - this.raise(state.start, "Invalid regular expression flag"); - } - if (flags.indexOf(flag, i + 1) > -1) { - this.raise(state.start, "Duplicate regular expression flag"); - } - } - }; - - /** - * Validate the pattern part of a given RegExpLiteral. - * - * @param {RegExpValidationState} state The state to validate RegExp. - * @returns {void} - */ - pp$8.validateRegExpPattern = function(state) { - this.regexp_pattern(state); - - // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of - // parsing contains a |GroupName|, reparse with the goal symbol - // |Pattern[~U, +N]| and use this result instead. Throw a *SyntaxError* - // exception if _P_ did not conform to the grammar, if any elements of _P_ - // were not matched by the parse, or if any Early Error conditions exist. - if (!state.switchN && this.options.ecmaVersion >= 9 && state.groupNames.length > 0) { - state.switchN = true; - this.regexp_pattern(state); - } - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern - pp$8.regexp_pattern = function(state) { - state.pos = 0; - state.lastIntValue = 0; - state.lastStringValue = ""; - state.lastAssertionIsQuantifiable = false; - state.numCapturingParens = 0; - state.maxBackReference = 0; - state.groupNames.length = 0; - state.backReferenceNames.length = 0; - - this.regexp_disjunction(state); - - if (state.pos !== state.source.length) { - // Make the same messages as V8. - if (state.eat(0x29 /* ) */)) { - state.raise("Unmatched ')'"); - } - if (state.eat(0x5D /* ] */) || state.eat(0x7D /* } */)) { - state.raise("Lone quantifier brackets"); - } - } - if (state.maxBackReference > state.numCapturingParens) { - state.raise("Invalid escape"); - } - for (var i = 0, list = state.backReferenceNames; i < list.length; i += 1) { - var name = list[i]; - - if (state.groupNames.indexOf(name) === -1) { - state.raise("Invalid named capture referenced"); - } - } - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction - pp$8.regexp_disjunction = function(state) { - this.regexp_alternative(state); - while (state.eat(0x7C /* | */)) { - this.regexp_alternative(state); - } - - // Make the same message as V8. - if (this.regexp_eatQuantifier(state, true)) { - state.raise("Nothing to repeat"); - } - if (state.eat(0x7B /* { */)) { - state.raise("Lone quantifier brackets"); - } - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative - pp$8.regexp_alternative = function(state) { - while (state.pos < state.source.length && this.regexp_eatTerm(state)) - { } - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term - pp$8.regexp_eatTerm = function(state) { - if (this.regexp_eatAssertion(state)) { - // Handle `QuantifiableAssertion Quantifier` alternative. - // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion - // is a QuantifiableAssertion. - if (state.lastAssertionIsQuantifiable && this.regexp_eatQuantifier(state)) { - // Make the same message as V8. - if (state.switchU) { - state.raise("Invalid quantifier"); - } - } - return true - } - - if (state.switchU ? this.regexp_eatAtom(state) : this.regexp_eatExtendedAtom(state)) { - this.regexp_eatQuantifier(state); - return true - } - - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion - pp$8.regexp_eatAssertion = function(state) { - var start = state.pos; - state.lastAssertionIsQuantifiable = false; - - // ^, $ - if (state.eat(0x5E /* ^ */) || state.eat(0x24 /* $ */)) { - return true - } - - // \b \B - if (state.eat(0x5C /* \ */)) { - if (state.eat(0x42 /* B */) || state.eat(0x62 /* b */)) { - return true - } - state.pos = start; - } - - // Lookahead / Lookbehind - if (state.eat(0x28 /* ( */) && state.eat(0x3F /* ? */)) { - var lookbehind = false; - if (this.options.ecmaVersion >= 9) { - lookbehind = state.eat(0x3C /* < */); - } - if (state.eat(0x3D /* = */) || state.eat(0x21 /* ! */)) { - this.regexp_disjunction(state); - if (!state.eat(0x29 /* ) */)) { - state.raise("Unterminated group"); - } - state.lastAssertionIsQuantifiable = !lookbehind; - return true - } - } - - state.pos = start; - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier - pp$8.regexp_eatQuantifier = function(state, noError) { - if ( noError === void 0 ) noError = false; - - if (this.regexp_eatQuantifierPrefix(state, noError)) { - state.eat(0x3F /* ? */); - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix - pp$8.regexp_eatQuantifierPrefix = function(state, noError) { - return ( - state.eat(0x2A /* * */) || - state.eat(0x2B /* + */) || - state.eat(0x3F /* ? */) || - this.regexp_eatBracedQuantifier(state, noError) - ) - }; - pp$8.regexp_eatBracedQuantifier = function(state, noError) { - var start = state.pos; - if (state.eat(0x7B /* { */)) { - var min = 0, max = -1; - if (this.regexp_eatDecimalDigits(state)) { - min = state.lastIntValue; - if (state.eat(0x2C /* , */) && this.regexp_eatDecimalDigits(state)) { - max = state.lastIntValue; - } - if (state.eat(0x7D /* } */)) { - // SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-term - if (max !== -1 && max < min && !noError) { - state.raise("numbers out of order in {} quantifier"); - } - return true - } - } - if (state.switchU && !noError) { - state.raise("Incomplete quantifier"); - } - state.pos = start; - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom - pp$8.regexp_eatAtom = function(state) { - return ( - this.regexp_eatPatternCharacters(state) || - state.eat(0x2E /* . */) || - this.regexp_eatReverseSolidusAtomEscape(state) || - this.regexp_eatCharacterClass(state) || - this.regexp_eatUncapturingGroup(state) || - this.regexp_eatCapturingGroup(state) - ) - }; - pp$8.regexp_eatReverseSolidusAtomEscape = function(state) { - var start = state.pos; - if (state.eat(0x5C /* \ */)) { - if (this.regexp_eatAtomEscape(state)) { - return true - } - state.pos = start; - } - return false - }; - pp$8.regexp_eatUncapturingGroup = function(state) { - var start = state.pos; - if (state.eat(0x28 /* ( */)) { - if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) { - this.regexp_disjunction(state); - if (state.eat(0x29 /* ) */)) { - return true - } - state.raise("Unterminated group"); - } - state.pos = start; - } - return false - }; - pp$8.regexp_eatCapturingGroup = function(state) { - if (state.eat(0x28 /* ( */)) { - if (this.options.ecmaVersion >= 9) { - this.regexp_groupSpecifier(state); - } else if (state.current() === 0x3F /* ? */) { - state.raise("Invalid group"); - } - this.regexp_disjunction(state); - if (state.eat(0x29 /* ) */)) { - state.numCapturingParens += 1; - return true - } - state.raise("Unterminated group"); - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom - pp$8.regexp_eatExtendedAtom = function(state) { - return ( - state.eat(0x2E /* . */) || - this.regexp_eatReverseSolidusAtomEscape(state) || - this.regexp_eatCharacterClass(state) || - this.regexp_eatUncapturingGroup(state) || - this.regexp_eatCapturingGroup(state) || - this.regexp_eatInvalidBracedQuantifier(state) || - this.regexp_eatExtendedPatternCharacter(state) - ) - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier - pp$8.regexp_eatInvalidBracedQuantifier = function(state) { - if (this.regexp_eatBracedQuantifier(state, true)) { - state.raise("Nothing to repeat"); - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter - pp$8.regexp_eatSyntaxCharacter = function(state) { - var ch = state.current(); - if (isSyntaxCharacter(ch)) { - state.lastIntValue = ch; - state.advance(); - return true - } - return false - }; - function isSyntaxCharacter(ch) { - return ( - ch === 0x24 /* $ */ || - ch >= 0x28 /* ( */ && ch <= 0x2B /* + */ || - ch === 0x2E /* . */ || - ch === 0x3F /* ? */ || - ch >= 0x5B /* [ */ && ch <= 0x5E /* ^ */ || - ch >= 0x7B /* { */ && ch <= 0x7D /* } */ - ) - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter - // But eat eager. - pp$8.regexp_eatPatternCharacters = function(state) { - var start = state.pos; - var ch = 0; - while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) { - state.advance(); - } - return state.pos !== start - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter - pp$8.regexp_eatExtendedPatternCharacter = function(state) { - var ch = state.current(); - if ( - ch !== -1 && - ch !== 0x24 /* $ */ && - !(ch >= 0x28 /* ( */ && ch <= 0x2B /* + */) && - ch !== 0x2E /* . */ && - ch !== 0x3F /* ? */ && - ch !== 0x5B /* [ */ && - ch !== 0x5E /* ^ */ && - ch !== 0x7C /* | */ - ) { - state.advance(); - return true - } - return false - }; - - // GroupSpecifier :: - // [empty] - // `?` GroupName - pp$8.regexp_groupSpecifier = function(state) { - if (state.eat(0x3F /* ? */)) { - if (this.regexp_eatGroupName(state)) { - if (state.groupNames.indexOf(state.lastStringValue) !== -1) { - state.raise("Duplicate capture group name"); - } - state.groupNames.push(state.lastStringValue); - return - } - state.raise("Invalid group"); - } - }; - - // GroupName :: - // `<` RegExpIdentifierName `>` - // Note: this updates `state.lastStringValue` property with the eaten name. - pp$8.regexp_eatGroupName = function(state) { - state.lastStringValue = ""; - if (state.eat(0x3C /* < */)) { - if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) { - return true - } - state.raise("Invalid capture group name"); - } - return false - }; - - // RegExpIdentifierName :: - // RegExpIdentifierStart - // RegExpIdentifierName RegExpIdentifierPart - // Note: this updates `state.lastStringValue` property with the eaten name. - pp$8.regexp_eatRegExpIdentifierName = function(state) { - state.lastStringValue = ""; - if (this.regexp_eatRegExpIdentifierStart(state)) { - state.lastStringValue += codePointToString(state.lastIntValue); - while (this.regexp_eatRegExpIdentifierPart(state)) { - state.lastStringValue += codePointToString(state.lastIntValue); - } - return true - } - return false - }; - - // RegExpIdentifierStart :: - // UnicodeIDStart - // `$` - // `_` - // `\` RegExpUnicodeEscapeSequence[+U] - pp$8.regexp_eatRegExpIdentifierStart = function(state) { - var start = state.pos; - var forceU = this.options.ecmaVersion >= 11; - var ch = state.current(forceU); - state.advance(forceU); - - if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { - ch = state.lastIntValue; - } - if (isRegExpIdentifierStart(ch)) { - state.lastIntValue = ch; - return true - } - - state.pos = start; - return false - }; - function isRegExpIdentifierStart(ch) { - return isIdentifierStart(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ - } - - // RegExpIdentifierPart :: - // UnicodeIDContinue - // `$` - // `_` - // `\` RegExpUnicodeEscapeSequence[+U] - // - // - pp$8.regexp_eatRegExpIdentifierPart = function(state) { - var start = state.pos; - var forceU = this.options.ecmaVersion >= 11; - var ch = state.current(forceU); - state.advance(forceU); - - if (ch === 0x5C /* \ */ && this.regexp_eatRegExpUnicodeEscapeSequence(state, forceU)) { - ch = state.lastIntValue; - } - if (isRegExpIdentifierPart(ch)) { - state.lastIntValue = ch; - return true - } - - state.pos = start; - return false - }; - function isRegExpIdentifierPart(ch) { - return isIdentifierChar(ch, true) || ch === 0x24 /* $ */ || ch === 0x5F /* _ */ || ch === 0x200C /* */ || ch === 0x200D /* */ - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape - pp$8.regexp_eatAtomEscape = function(state) { - if ( - this.regexp_eatBackReference(state) || - this.regexp_eatCharacterClassEscape(state) || - this.regexp_eatCharacterEscape(state) || - (state.switchN && this.regexp_eatKGroupName(state)) - ) { - return true - } - if (state.switchU) { - // Make the same message as V8. - if (state.current() === 0x63 /* c */) { - state.raise("Invalid unicode escape"); - } - state.raise("Invalid escape"); - } - return false - }; - pp$8.regexp_eatBackReference = function(state) { - var start = state.pos; - if (this.regexp_eatDecimalEscape(state)) { - var n = state.lastIntValue; - if (state.switchU) { - // For SyntaxError in https://www.ecma-international.org/ecma-262/8.0/#sec-atomescape - if (n > state.maxBackReference) { - state.maxBackReference = n; - } - return true - } - if (n <= state.numCapturingParens) { - return true - } - state.pos = start; - } - return false - }; - pp$8.regexp_eatKGroupName = function(state) { - if (state.eat(0x6B /* k */)) { - if (this.regexp_eatGroupName(state)) { - state.backReferenceNames.push(state.lastStringValue); - return true - } - state.raise("Invalid named reference"); - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape - pp$8.regexp_eatCharacterEscape = function(state) { - return ( - this.regexp_eatControlEscape(state) || - this.regexp_eatCControlLetter(state) || - this.regexp_eatZero(state) || - this.regexp_eatHexEscapeSequence(state) || - this.regexp_eatRegExpUnicodeEscapeSequence(state, false) || - (!state.switchU && this.regexp_eatLegacyOctalEscapeSequence(state)) || - this.regexp_eatIdentityEscape(state) - ) - }; - pp$8.regexp_eatCControlLetter = function(state) { - var start = state.pos; - if (state.eat(0x63 /* c */)) { - if (this.regexp_eatControlLetter(state)) { - return true - } - state.pos = start; - } - return false - }; - pp$8.regexp_eatZero = function(state) { - if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) { - state.lastIntValue = 0; - state.advance(); - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape - pp$8.regexp_eatControlEscape = function(state) { - var ch = state.current(); - if (ch === 0x74 /* t */) { - state.lastIntValue = 0x09; /* \t */ - state.advance(); - return true - } - if (ch === 0x6E /* n */) { - state.lastIntValue = 0x0A; /* \n */ - state.advance(); - return true - } - if (ch === 0x76 /* v */) { - state.lastIntValue = 0x0B; /* \v */ - state.advance(); - return true - } - if (ch === 0x66 /* f */) { - state.lastIntValue = 0x0C; /* \f */ - state.advance(); - return true - } - if (ch === 0x72 /* r */) { - state.lastIntValue = 0x0D; /* \r */ - state.advance(); - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter - pp$8.regexp_eatControlLetter = function(state) { - var ch = state.current(); - if (isControlLetter(ch)) { - state.lastIntValue = ch % 0x20; - state.advance(); - return true - } - return false - }; - function isControlLetter(ch) { - return ( - (ch >= 0x41 /* A */ && ch <= 0x5A /* Z */) || - (ch >= 0x61 /* a */ && ch <= 0x7A /* z */) - ) - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence - pp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) { - if ( forceU === void 0 ) forceU = false; - - var start = state.pos; - var switchU = forceU || state.switchU; - - if (state.eat(0x75 /* u */)) { - if (this.regexp_eatFixedHexDigits(state, 4)) { - var lead = state.lastIntValue; - if (switchU && lead >= 0xD800 && lead <= 0xDBFF) { - var leadSurrogateEnd = state.pos; - if (state.eat(0x5C /* \ */) && state.eat(0x75 /* u */) && this.regexp_eatFixedHexDigits(state, 4)) { - var trail = state.lastIntValue; - if (trail >= 0xDC00 && trail <= 0xDFFF) { - state.lastIntValue = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; - return true - } - } - state.pos = leadSurrogateEnd; - state.lastIntValue = lead; - } - return true - } - if ( - switchU && - state.eat(0x7B /* { */) && - this.regexp_eatHexDigits(state) && - state.eat(0x7D /* } */) && - isValidUnicode(state.lastIntValue) - ) { - return true - } - if (switchU) { - state.raise("Invalid unicode escape"); - } - state.pos = start; - } - - return false - }; - function isValidUnicode(ch) { - return ch >= 0 && ch <= 0x10FFFF - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape - pp$8.regexp_eatIdentityEscape = function(state) { - if (state.switchU) { - if (this.regexp_eatSyntaxCharacter(state)) { - return true - } - if (state.eat(0x2F /* / */)) { - state.lastIntValue = 0x2F; /* / */ - return true - } - return false - } - - var ch = state.current(); - if (ch !== 0x63 /* c */ && (!state.switchN || ch !== 0x6B /* k */)) { - state.lastIntValue = ch; - state.advance(); - return true - } - - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape - pp$8.regexp_eatDecimalEscape = function(state) { - state.lastIntValue = 0; - var ch = state.current(); - if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) { - do { - state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */); - state.advance(); - } while ((ch = state.current()) >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape - pp$8.regexp_eatCharacterClassEscape = function(state) { - var ch = state.current(); - - if (isCharacterClassEscape(ch)) { - state.lastIntValue = -1; - state.advance(); - return true - } - - if ( - state.switchU && - this.options.ecmaVersion >= 9 && - (ch === 0x50 /* P */ || ch === 0x70 /* p */) - ) { - state.lastIntValue = -1; - state.advance(); - if ( - state.eat(0x7B /* { */) && - this.regexp_eatUnicodePropertyValueExpression(state) && - state.eat(0x7D /* } */) - ) { - return true - } - state.raise("Invalid property name"); - } - - return false - }; - function isCharacterClassEscape(ch) { - return ( - ch === 0x64 /* d */ || - ch === 0x44 /* D */ || - ch === 0x73 /* s */ || - ch === 0x53 /* S */ || - ch === 0x77 /* w */ || - ch === 0x57 /* W */ - ) - } - - // UnicodePropertyValueExpression :: - // UnicodePropertyName `=` UnicodePropertyValue - // LoneUnicodePropertyNameOrValue - pp$8.regexp_eatUnicodePropertyValueExpression = function(state) { - var start = state.pos; - - // UnicodePropertyName `=` UnicodePropertyValue - if (this.regexp_eatUnicodePropertyName(state) && state.eat(0x3D /* = */)) { - var name = state.lastStringValue; - if (this.regexp_eatUnicodePropertyValue(state)) { - var value = state.lastStringValue; - this.regexp_validateUnicodePropertyNameAndValue(state, name, value); - return true - } - } - state.pos = start; - - // LoneUnicodePropertyNameOrValue - if (this.regexp_eatLoneUnicodePropertyNameOrValue(state)) { - var nameOrValue = state.lastStringValue; - this.regexp_validateUnicodePropertyNameOrValue(state, nameOrValue); - return true - } - return false - }; - pp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { - if (!has(state.unicodeProperties.nonBinary, name)) - { state.raise("Invalid property name"); } - if (!state.unicodeProperties.nonBinary[name].test(value)) - { state.raise("Invalid property value"); } - }; - pp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) { - if (!state.unicodeProperties.binary.test(nameOrValue)) - { state.raise("Invalid property name"); } - }; - - // UnicodePropertyName :: - // UnicodePropertyNameCharacters - pp$8.regexp_eatUnicodePropertyName = function(state) { - var ch = 0; - state.lastStringValue = ""; - while (isUnicodePropertyNameCharacter(ch = state.current())) { - state.lastStringValue += codePointToString(ch); - state.advance(); - } - return state.lastStringValue !== "" - }; - function isUnicodePropertyNameCharacter(ch) { - return isControlLetter(ch) || ch === 0x5F /* _ */ - } - - // UnicodePropertyValue :: - // UnicodePropertyValueCharacters - pp$8.regexp_eatUnicodePropertyValue = function(state) { - var ch = 0; - state.lastStringValue = ""; - while (isUnicodePropertyValueCharacter(ch = state.current())) { - state.lastStringValue += codePointToString(ch); - state.advance(); - } - return state.lastStringValue !== "" - }; - function isUnicodePropertyValueCharacter(ch) { - return isUnicodePropertyNameCharacter(ch) || isDecimalDigit(ch) - } - - // LoneUnicodePropertyNameOrValue :: - // UnicodePropertyValueCharacters - pp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) { - return this.regexp_eatUnicodePropertyValue(state) - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass - pp$8.regexp_eatCharacterClass = function(state) { - if (state.eat(0x5B /* [ */)) { - state.eat(0x5E /* ^ */); - this.regexp_classRanges(state); - if (state.eat(0x5D /* ] */)) { - return true - } - // Unreachable since it threw "unterminated regular expression" error before. - state.raise("Unterminated character class"); - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges - // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges - // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash - pp$8.regexp_classRanges = function(state) { - while (this.regexp_eatClassAtom(state)) { - var left = state.lastIntValue; - if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) { - var right = state.lastIntValue; - if (state.switchU && (left === -1 || right === -1)) { - state.raise("Invalid character class"); - } - if (left !== -1 && right !== -1 && left > right) { - state.raise("Range out of order in character class"); - } - } - } - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom - // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash - pp$8.regexp_eatClassAtom = function(state) { - var start = state.pos; - - if (state.eat(0x5C /* \ */)) { - if (this.regexp_eatClassEscape(state)) { - return true - } - if (state.switchU) { - // Make the same message as V8. - var ch$1 = state.current(); - if (ch$1 === 0x63 /* c */ || isOctalDigit(ch$1)) { - state.raise("Invalid class escape"); - } - state.raise("Invalid escape"); - } - state.pos = start; - } - - var ch = state.current(); - if (ch !== 0x5D /* ] */) { - state.lastIntValue = ch; - state.advance(); - return true - } - - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape - pp$8.regexp_eatClassEscape = function(state) { - var start = state.pos; - - if (state.eat(0x62 /* b */)) { - state.lastIntValue = 0x08; /* */ - return true - } - - if (state.switchU && state.eat(0x2D /* - */)) { - state.lastIntValue = 0x2D; /* - */ - return true - } - - if (!state.switchU && state.eat(0x63 /* c */)) { - if (this.regexp_eatClassControlLetter(state)) { - return true - } - state.pos = start; - } - - return ( - this.regexp_eatCharacterClassEscape(state) || - this.regexp_eatCharacterEscape(state) - ) - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter - pp$8.regexp_eatClassControlLetter = function(state) { - var ch = state.current(); - if (isDecimalDigit(ch) || ch === 0x5F /* _ */) { - state.lastIntValue = ch % 0x20; - state.advance(); - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence - pp$8.regexp_eatHexEscapeSequence = function(state) { - var start = state.pos; - if (state.eat(0x78 /* x */)) { - if (this.regexp_eatFixedHexDigits(state, 2)) { - return true - } - if (state.switchU) { - state.raise("Invalid escape"); - } - state.pos = start; - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits - pp$8.regexp_eatDecimalDigits = function(state) { - var start = state.pos; - var ch = 0; - state.lastIntValue = 0; - while (isDecimalDigit(ch = state.current())) { - state.lastIntValue = 10 * state.lastIntValue + (ch - 0x30 /* 0 */); - state.advance(); - } - return state.pos !== start - }; - function isDecimalDigit(ch) { - return ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */ - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits - pp$8.regexp_eatHexDigits = function(state) { - var start = state.pos; - var ch = 0; - state.lastIntValue = 0; - while (isHexDigit(ch = state.current())) { - state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); - state.advance(); - } - return state.pos !== start - }; - function isHexDigit(ch) { - return ( - (ch >= 0x30 /* 0 */ && ch <= 0x39 /* 9 */) || - (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) || - (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) - ) - } - function hexToInt(ch) { - if (ch >= 0x41 /* A */ && ch <= 0x46 /* F */) { - return 10 + (ch - 0x41 /* A */) - } - if (ch >= 0x61 /* a */ && ch <= 0x66 /* f */) { - return 10 + (ch - 0x61 /* a */) - } - return ch - 0x30 /* 0 */ - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence - // Allows only 0-377(octal) i.e. 0-255(decimal). - pp$8.regexp_eatLegacyOctalEscapeSequence = function(state) { - if (this.regexp_eatOctalDigit(state)) { - var n1 = state.lastIntValue; - if (this.regexp_eatOctalDigit(state)) { - var n2 = state.lastIntValue; - if (n1 <= 3 && this.regexp_eatOctalDigit(state)) { - state.lastIntValue = n1 * 64 + n2 * 8 + state.lastIntValue; - } else { - state.lastIntValue = n1 * 8 + n2; - } - } else { - state.lastIntValue = n1; - } - return true - } - return false - }; - - // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit - pp$8.regexp_eatOctalDigit = function(state) { - var ch = state.current(); - if (isOctalDigit(ch)) { - state.lastIntValue = ch - 0x30; /* 0 */ - state.advance(); - return true - } - state.lastIntValue = 0; - return false - }; - function isOctalDigit(ch) { - return ch >= 0x30 /* 0 */ && ch <= 0x37 /* 7 */ - } - - // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits - // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit - // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence - pp$8.regexp_eatFixedHexDigits = function(state, length) { - var start = state.pos; - state.lastIntValue = 0; - for (var i = 0; i < length; ++i) { - var ch = state.current(); - if (!isHexDigit(ch)) { - state.pos = start; - return false - } - state.lastIntValue = 16 * state.lastIntValue + hexToInt(ch); - state.advance(); - } - return true - }; - - // Object type used to represent tokens. Note that normally, tokens - // simply exist as properties on the parser object. This is only - // used for the onToken callback and the external tokenizer. - - var Token = function Token(p) { - this.type = p.type; - this.value = p.value; - this.start = p.start; - this.end = p.end; - if (p.options.locations) - { this.loc = new SourceLocation(p, p.startLoc, p.endLoc); } - if (p.options.ranges) - { this.range = [p.start, p.end]; } - }; - - // ## Tokenizer - - var pp$9 = Parser.prototype; - - // Move to the next token - - pp$9.next = function(ignoreEscapeSequenceInKeyword) { - if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc) - { this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword); } - if (this.options.onToken) - { this.options.onToken(new Token(this)); } - - this.lastTokEnd = this.end; - this.lastTokStart = this.start; - this.lastTokEndLoc = this.endLoc; - this.lastTokStartLoc = this.startLoc; - this.nextToken(); - }; - - pp$9.getToken = function() { - this.next(); - return new Token(this) - }; - - // If we're in an ES6 environment, make parsers iterable - if (typeof Symbol !== "undefined") - { pp$9[Symbol.iterator] = function() { - var this$1 = this; - - return { - next: function () { - var token = this$1.getToken(); - return { - done: token.type === types.eof, - value: token - } - } - } - }; } - - // Toggle strict mode. Re-reads the next number or string to please - // pedantic tests (`"use strict"; 010;` should fail). - - pp$9.curContext = function() { - return this.context[this.context.length - 1] - }; - - // Read a single token, updating the parser object's token-related - // properties. - - pp$9.nextToken = function() { - var curContext = this.curContext(); - if (!curContext || !curContext.preserveSpace) { this.skipSpace(); } - - this.start = this.pos; - if (this.options.locations) { this.startLoc = this.curPosition(); } - if (this.pos >= this.input.length) { return this.finishToken(types.eof) } - - if (curContext.override) { return curContext.override(this) } - else { this.readToken(this.fullCharCodeAtPos()); } - }; - - pp$9.readToken = function(code) { - // Identifier or keyword. '\uXXXX' sequences are allowed in - // identifiers, so '\' also dispatches to that. - if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */) - { return this.readWord() } - - return this.getTokenFromCode(code) - }; - - pp$9.fullCharCodeAtPos = function() { - var code = this.input.charCodeAt(this.pos); - if (code <= 0xd7ff || code >= 0xe000) { return code } - var next = this.input.charCodeAt(this.pos + 1); - return (code << 10) + next - 0x35fdc00 - }; - - pp$9.skipBlockComment = function() { - var startLoc = this.options.onComment && this.curPosition(); - var start = this.pos, end = this.input.indexOf("*/", this.pos += 2); - if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); } - this.pos = end + 2; - if (this.options.locations) { - lineBreakG.lastIndex = start; - var match; - while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) { - ++this.curLine; - this.lineStart = match.index + match[0].length; - } - } - if (this.options.onComment) - { this.options.onComment(true, this.input.slice(start + 2, end), start, this.pos, - startLoc, this.curPosition()); } - }; - - pp$9.skipLineComment = function(startSkip) { - var start = this.pos; - var startLoc = this.options.onComment && this.curPosition(); - var ch = this.input.charCodeAt(this.pos += startSkip); - while (this.pos < this.input.length && !isNewLine(ch)) { - ch = this.input.charCodeAt(++this.pos); - } - if (this.options.onComment) - { this.options.onComment(false, this.input.slice(start + startSkip, this.pos), start, this.pos, - startLoc, this.curPosition()); } - }; - - // Called at the start of the parse and after every token. Skips - // whitespace and comments, and. - - pp$9.skipSpace = function() { - loop: while (this.pos < this.input.length) { - var ch = this.input.charCodeAt(this.pos); - switch (ch) { - case 32: case 160: // ' ' - ++this.pos; - break - case 13: - if (this.input.charCodeAt(this.pos + 1) === 10) { - ++this.pos; - } - case 10: case 8232: case 8233: - ++this.pos; - if (this.options.locations) { - ++this.curLine; - this.lineStart = this.pos; - } - break - case 47: // '/' - switch (this.input.charCodeAt(this.pos + 1)) { - case 42: // '*' - this.skipBlockComment(); - break - case 47: - this.skipLineComment(2); - break - default: - break loop - } - break - default: - if (ch > 8 && ch < 14 || ch >= 5760 && nonASCIIwhitespace.test(String.fromCharCode(ch))) { - ++this.pos; - } else { - break loop - } - } - } - }; - - // Called at the end of every token. Sets `end`, `val`, and - // maintains `context` and `exprAllowed`, and skips the space after - // the token, so that the next one's `start` will point at the - // right position. - - pp$9.finishToken = function(type, val) { - this.end = this.pos; - if (this.options.locations) { this.endLoc = this.curPosition(); } - var prevType = this.type; - this.type = type; - this.value = val; - - this.updateContext(prevType); - }; - - // ### Token reading - - // This is the function that is called to fetch the next token. It - // is somewhat obscure, because it works in character codes rather - // than characters, and because operator parsing has been inlined - // into it. - // - // All in the name of speed. - // - pp$9.readToken_dot = function() { - var next = this.input.charCodeAt(this.pos + 1); - if (next >= 48 && next <= 57) { return this.readNumber(true) } - var next2 = this.input.charCodeAt(this.pos + 2); - if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.' - this.pos += 3; - return this.finishToken(types.ellipsis) - } else { - ++this.pos; - return this.finishToken(types.dot) - } - }; - - pp$9.readToken_slash = function() { // '/' - var next = this.input.charCodeAt(this.pos + 1); - if (this.exprAllowed) { ++this.pos; return this.readRegexp() } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.slash, 1) - }; - - pp$9.readToken_mult_modulo_exp = function(code) { // '%*' - var next = this.input.charCodeAt(this.pos + 1); - var size = 1; - var tokentype = code === 42 ? types.star : types.modulo; - - // exponentiation operator ** and **= - if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) { - ++size; - tokentype = types.starstar; - next = this.input.charCodeAt(this.pos + 2); - } - - if (next === 61) { return this.finishOp(types.assign, size + 1) } - return this.finishOp(tokentype, size) - }; - - pp$9.readToken_pipe_amp = function(code) { // '|&' - var next = this.input.charCodeAt(this.pos + 1); - if (next === code) { - if (this.options.ecmaVersion >= 12) { - var next2 = this.input.charCodeAt(this.pos + 2); - if (next2 === 61) { return this.finishOp(types.assign, 3) } - } - return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2) - } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1) - }; - - pp$9.readToken_caret = function() { // '^' - var next = this.input.charCodeAt(this.pos + 1); - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.bitwiseXOR, 1) - }; - - pp$9.readToken_plus_min = function(code) { // '+-' - var next = this.input.charCodeAt(this.pos + 1); - if (next === code) { - if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 && - (this.lastTokEnd === 0 || lineBreak.test(this.input.slice(this.lastTokEnd, this.pos)))) { - // A `-->` line comment - this.skipLineComment(3); - this.skipSpace(); - return this.nextToken() - } - return this.finishOp(types.incDec, 2) - } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.plusMin, 1) - }; - - pp$9.readToken_lt_gt = function(code) { // '<>' - var next = this.input.charCodeAt(this.pos + 1); - var size = 1; - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; - if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) } - return this.finishOp(types.bitShift, size) - } - if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && - this.input.charCodeAt(this.pos + 3) === 45) { - // `` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // `` line comment - this.skipLineComment(3); - this.skipSpace(); - return this.nextToken() - } - return this.finishOp(types.incDec, 2) - } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.plusMin, 1) -}; - -pp$9.readToken_lt_gt = function(code) { // '<>' - var next = this.input.charCodeAt(this.pos + 1); - var size = 1; - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; - if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) } - return this.finishOp(types.bitShift, size) - } - if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && - this.input.charCodeAt(this.pos + 3) === 45) { - // `` line comment\n this.skipLineComment(3)\n this.skipSpace()\n return this.nextToken()\n }\n return this.finishOp(tt.incDec, 2)\n }\n if (next === 61) return this.finishOp(tt.assign, 2)\n return this.finishOp(tt.plusMin, 1)\n}\n\npp.readToken_lt_gt = function(code) { // '<>'\n let next = this.input.charCodeAt(this.pos + 1)\n let size = 1\n if (next === code) {\n size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2\n if (this.input.charCodeAt(this.pos + size) === 61) return this.finishOp(tt.assign, size + 1)\n return this.finishOp(tt.bitShift, size)\n }\n if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 &&\n this.input.charCodeAt(this.pos + 3) === 45) {\n // ` - -```js -var bodyParser = require('body-parser') -``` - -The `bodyParser` object exposes various factories to create middlewares. All -middlewares will populate the `req.body` property with the parsed body when -the `Content-Type` request header matches the `type` option, or an empty -object (`{}`) if there was no body to parse, the `Content-Type` was not matched, -or an error occurred. - -The various errors returned by this module are described in the -[errors section](#errors). - -### bodyParser.json([options]) - -Returns middleware that only parses `json` and only looks at requests where -the `Content-Type` header matches the `type` option. This parser accepts any -Unicode encoding of the body and supports automatic inflation of `gzip` and -`deflate` encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). - -#### Options - -The `json` function takes an optional `options` object that may contain any of -the following keys: - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### reviver - -The `reviver` option is passed directly to `JSON.parse` as the second -argument. You can find more information on this argument -[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter). - -##### strict - -When set to `true`, will only accept arrays and objects; when `false` will -accept anything `JSON.parse` accepts. Defaults to `true`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. If not a -function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can -be an extension name (like `json`), a mime type (like `application/json`), or -a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` -option is called as `fn(req)` and the request is parsed if it returns a truthy -value. Defaults to `application/json`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.raw([options]) - -Returns middleware that parses all bodies as a `Buffer` and only looks at -requests where the `Content-Type` header matches the `type` option. This -parser supports automatic inflation of `gzip` and `deflate` encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This will be a `Buffer` object -of the body. - -#### Options - -The `raw` function takes an optional `options` object that may contain any of -the following keys: - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. -If not a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this -can be an extension name (like `bin`), a mime type (like -`application/octet-stream`), or a mime type with a wildcard (like `*/*` or -`application/*`). If a function, the `type` option is called as `fn(req)` -and the request is parsed if it returns a truthy value. Defaults to -`application/octet-stream`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.text([options]) - -Returns middleware that parses all bodies as a string and only looks at -requests where the `Content-Type` header matches the `type` option. This -parser supports automatic inflation of `gzip` and `deflate` encodings. - -A new `body` string containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This will be a string of the -body. - -#### Options - -The `text` function takes an optional `options` object that may contain any of -the following keys: - -##### defaultCharset - -Specify the default character set for the text content if the charset is not -specified in the `Content-Type` header of the request. Defaults to `utf-8`. - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. If not -a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can -be an extension name (like `txt`), a mime type (like `text/plain`), or a mime -type with a wildcard (like `*/*` or `text/*`). If a function, the `type` -option is called as `fn(req)` and the request is parsed if it returns a -truthy value. Defaults to `text/plain`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -### bodyParser.urlencoded([options]) - -Returns middleware that only parses `urlencoded` bodies and only looks at -requests where the `Content-Type` header matches the `type` option. This -parser accepts only UTF-8 encoding of the body and supports automatic -inflation of `gzip` and `deflate` encodings. - -A new `body` object containing the parsed data is populated on the `request` -object after the middleware (i.e. `req.body`). This object will contain -key-value pairs, where the value can be a string or array (when `extended` is -`false`), or any type (when `extended` is `true`). - -#### Options - -The `urlencoded` function takes an optional `options` object that may contain -any of the following keys: - -##### extended - -The `extended` option allows to choose between parsing the URL-encoded data -with the `querystring` library (when `false`) or the `qs` library (when -`true`). The "extended" syntax allows for rich objects and arrays to be -encoded into the URL-encoded format, allowing for a JSON-like experience -with URL-encoded. For more information, please -[see the qs library](https://www.npmjs.org/package/qs#readme). - -Defaults to `true`, but using the default has been deprecated. Please -research into the difference between `qs` and `querystring` and choose the -appropriate setting. - -##### inflate - -When set to `true`, then deflated (compressed) bodies will be inflated; when -`false`, deflated bodies are rejected. Defaults to `true`. - -##### limit - -Controls the maximum request body size. If this is a number, then the value -specifies the number of bytes; if it is a string, the value is passed to the -[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults -to `'100kb'`. - -##### parameterLimit - -The `parameterLimit` option controls the maximum number of parameters that -are allowed in the URL-encoded data. If a request contains more parameters -than this value, a 413 will be returned to the client. Defaults to `1000`. - -##### type - -The `type` option is used to determine what media type the middleware will -parse. This option can be a string, array of strings, or a function. If not -a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can -be an extension name (like `urlencoded`), a mime type (like -`application/x-www-form-urlencoded`), or a mime type with a wildcard (like -`*/x-www-form-urlencoded`). If a function, the `type` option is called as -`fn(req)` and the request is parsed if it returns a truthy value. Defaults -to `application/x-www-form-urlencoded`. - -##### verify - -The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`, -where `buf` is a `Buffer` of the raw request body and `encoding` is the -encoding of the request. The parsing can be aborted by throwing an error. - -## Errors - -The middlewares provided by this module create errors depending on the error -condition during parsing. The errors will typically have a `status`/`statusCode` -property that contains the suggested HTTP response code, an `expose` property -to determine if the `message` property should be displayed to the client, a -`type` property to determine the type of error without matching against the -`message`, and a `body` property containing the read body, if available. - -The following are the common errors emitted, though any error can come through -for various reasons. - -### content encoding unsupported - -This error will occur when the request had a `Content-Encoding` header that -contained an encoding but the "inflation" option was set to `false`. The -`status` property is set to `415`, the `type` property is set to -`'encoding.unsupported'`, and the `charset` property will be set to the -encoding that is unsupported. - -### request aborted - -This error will occur when the request is aborted by the client before reading -the body has finished. The `received` property will be set to the number of -bytes received before the request was aborted and the `expected` property is -set to the number of expected bytes. The `status` property is set to `400` -and `type` property is set to `'request.aborted'`. - -### request entity too large - -This error will occur when the request body's size is larger than the "limit" -option. The `limit` property will be set to the byte limit and the `length` -property will be set to the request body's length. The `status` property is -set to `413` and the `type` property is set to `'entity.too.large'`. - -### request size did not match content length - -This error will occur when the request's length did not match the length from -the `Content-Length` header. This typically occurs when the request is malformed, -typically when the `Content-Length` header was calculated based on characters -instead of bytes. The `status` property is set to `400` and the `type` property -is set to `'request.size.invalid'`. - -### stream encoding should not be set - -This error will occur when something called the `req.setEncoding` method prior -to this middleware. This module operates directly on bytes only and you cannot -call `req.setEncoding` when using this module. The `status` property is set to -`500` and the `type` property is set to `'stream.encoding.set'`. - -### too many parameters - -This error will occur when the content of the request exceeds the configured -`parameterLimit` for the `urlencoded` parser. The `status` property is set to -`413` and the `type` property is set to `'parameters.too.many'`. - -### unsupported charset "BOGUS" - -This error will occur when the request had a charset parameter in the -`Content-Type` header, but the `iconv-lite` module does not support it OR the -parser does not support it. The charset is contained in the message as well -as in the `charset` property. The `status` property is set to `415`, the -`type` property is set to `'charset.unsupported'`, and the `charset` property -is set to the charset that is unsupported. - -### unsupported content encoding "bogus" - -This error will occur when the request had a `Content-Encoding` header that -contained an unsupported encoding. The encoding is contained in the message -as well as in the `encoding` property. The `status` property is set to `415`, -the `type` property is set to `'encoding.unsupported'`, and the `encoding` -property is set to the encoding that is unsupported. - -## Examples - -### Express/Connect top-level generic - -This example demonstrates adding a generic JSON and URL-encoded parser as a -top-level middleware, which will parse the bodies of all incoming requests. -This is the simplest setup. - -```js -var express = require('express') -var bodyParser = require('body-parser') - -var app = express() - -// parse application/x-www-form-urlencoded -app.use(bodyParser.urlencoded({ extended: false })) - -// parse application/json -app.use(bodyParser.json()) - -app.use(function (req, res) { - res.setHeader('Content-Type', 'text/plain') - res.write('you posted:\n') - res.end(JSON.stringify(req.body, null, 2)) -}) -``` - -### Express route-specific - -This example demonstrates adding body parsers specifically to the routes that -need them. In general, this is the most recommended way to use body-parser with -Express. - -```js -var express = require('express') -var bodyParser = require('body-parser') - -var app = express() - -// create application/json parser -var jsonParser = bodyParser.json() - -// create application/x-www-form-urlencoded parser -var urlencodedParser = bodyParser.urlencoded({ extended: false }) - -// POST /login gets urlencoded bodies -app.post('/login', urlencodedParser, function (req, res) { - res.send('welcome, ' + req.body.username) -}) - -// POST /api/users gets JSON bodies -app.post('/api/users', jsonParser, function (req, res) { - // create user in req.body -}) -``` - -### Change accepted type for parsers - -All the parsers accept a `type` option which allows you to change the -`Content-Type` that the middleware will parse. - -```js -var express = require('express') -var bodyParser = require('body-parser') - -var app = express() - -// parse various different custom JSON types as JSON -app.use(bodyParser.json({ type: 'application/*+json' })) - -// parse some custom thing into a Buffer -app.use(bodyParser.raw({ type: 'application/vnd.custom-type' })) - -// parse an HTML body into a string -app.use(bodyParser.text({ type: 'text/html' })) -``` - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/body-parser.svg -[npm-url]: https://npmjs.org/package/body-parser -[travis-image]: https://img.shields.io/travis/expressjs/body-parser/master.svg -[travis-url]: https://travis-ci.org/expressjs/body-parser -[coveralls-image]: https://img.shields.io/coveralls/expressjs/body-parser/master.svg -[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master -[downloads-image]: https://img.shields.io/npm/dm/body-parser.svg -[downloads-url]: https://npmjs.org/package/body-parser diff --git a/views/node_modules/body-parser/index.js b/views/node_modules/body-parser/index.js deleted file mode 100644 index 93c3a1f..0000000 --- a/views/node_modules/body-parser/index.js +++ /dev/null @@ -1,157 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var deprecate = require('depd')('body-parser') - -/** - * Cache of loaded parsers. - * @private - */ - -var parsers = Object.create(null) - -/** - * @typedef Parsers - * @type {function} - * @property {function} json - * @property {function} raw - * @property {function} text - * @property {function} urlencoded - */ - -/** - * Module exports. - * @type {Parsers} - */ - -exports = module.exports = deprecate.function(bodyParser, - 'bodyParser: use individual json/urlencoded middlewares') - -/** - * JSON parser. - * @public - */ - -Object.defineProperty(exports, 'json', { - configurable: true, - enumerable: true, - get: createParserGetter('json') -}) - -/** - * Raw parser. - * @public - */ - -Object.defineProperty(exports, 'raw', { - configurable: true, - enumerable: true, - get: createParserGetter('raw') -}) - -/** - * Text parser. - * @public - */ - -Object.defineProperty(exports, 'text', { - configurable: true, - enumerable: true, - get: createParserGetter('text') -}) - -/** - * URL-encoded parser. - * @public - */ - -Object.defineProperty(exports, 'urlencoded', { - configurable: true, - enumerable: true, - get: createParserGetter('urlencoded') -}) - -/** - * Create a middleware to parse json and urlencoded bodies. - * - * @param {object} [options] - * @return {function} - * @deprecated - * @public - */ - -function bodyParser (options) { - var opts = {} - - // exclude type option - if (options) { - for (var prop in options) { - if (prop !== 'type') { - opts[prop] = options[prop] - } - } - } - - var _urlencoded = exports.urlencoded(opts) - var _json = exports.json(opts) - - return function bodyParser (req, res, next) { - _json(req, res, function (err) { - if (err) return next(err) - _urlencoded(req, res, next) - }) - } -} - -/** - * Create a getter for loading a parser. - * @private - */ - -function createParserGetter (name) { - return function get () { - return loadParser(name) - } -} - -/** - * Load a parser module. - * @private - */ - -function loadParser (parserName) { - var parser = parsers[parserName] - - if (parser !== undefined) { - return parser - } - - // this uses a switch for static require analysis - switch (parserName) { - case 'json': - parser = require('./lib/types/json') - break - case 'raw': - parser = require('./lib/types/raw') - break - case 'text': - parser = require('./lib/types/text') - break - case 'urlencoded': - parser = require('./lib/types/urlencoded') - break - } - - // store to prevent invoking require() - return (parsers[parserName] = parser) -} diff --git a/views/node_modules/body-parser/lib/read.js b/views/node_modules/body-parser/lib/read.js deleted file mode 100644 index c102609..0000000 --- a/views/node_modules/body-parser/lib/read.js +++ /dev/null @@ -1,181 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var createError = require('http-errors') -var getBody = require('raw-body') -var iconv = require('iconv-lite') -var onFinished = require('on-finished') -var zlib = require('zlib') - -/** - * Module exports. - */ - -module.exports = read - -/** - * Read a request into a buffer and parse. - * - * @param {object} req - * @param {object} res - * @param {function} next - * @param {function} parse - * @param {function} debug - * @param {object} options - * @private - */ - -function read (req, res, next, parse, debug, options) { - var length - var opts = options - var stream - - // flag as parsed - req._body = true - - // read options - var encoding = opts.encoding !== null - ? opts.encoding - : null - var verify = opts.verify - - try { - // get the content stream - stream = contentstream(req, debug, opts.inflate) - length = stream.length - stream.length = undefined - } catch (err) { - return next(err) - } - - // set raw-body options - opts.length = length - opts.encoding = verify - ? null - : encoding - - // assert charset is supported - if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) { - return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { - charset: encoding.toLowerCase(), - type: 'charset.unsupported' - })) - } - - // read body - debug('read body') - getBody(stream, opts, function (error, body) { - if (error) { - var _error - - if (error.type === 'encoding.unsupported') { - // echo back charset - _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', { - charset: encoding.toLowerCase(), - type: 'charset.unsupported' - }) - } else { - // set status code on error - _error = createError(400, error) - } - - // read off entire request - stream.resume() - onFinished(req, function onfinished () { - next(createError(400, _error)) - }) - return - } - - // verify - if (verify) { - try { - debug('verify body') - verify(req, res, body, encoding) - } catch (err) { - next(createError(403, err, { - body: body, - type: err.type || 'entity.verify.failed' - })) - return - } - } - - // parse - var str = body - try { - debug('parse body') - str = typeof body !== 'string' && encoding !== null - ? iconv.decode(body, encoding) - : body - req.body = parse(str) - } catch (err) { - next(createError(400, err, { - body: str, - type: err.type || 'entity.parse.failed' - })) - return - } - - next() - }) -} - -/** - * Get the content stream of the request. - * - * @param {object} req - * @param {function} debug - * @param {boolean} [inflate=true] - * @return {object} - * @api private - */ - -function contentstream (req, debug, inflate) { - var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase() - var length = req.headers['content-length'] - var stream - - debug('content-encoding "%s"', encoding) - - if (inflate === false && encoding !== 'identity') { - throw createError(415, 'content encoding unsupported', { - encoding: encoding, - type: 'encoding.unsupported' - }) - } - - switch (encoding) { - case 'deflate': - stream = zlib.createInflate() - debug('inflate body') - req.pipe(stream) - break - case 'gzip': - stream = zlib.createGunzip() - debug('gunzip body') - req.pipe(stream) - break - case 'identity': - stream = req - stream.length = length - break - default: - throw createError(415, 'unsupported content encoding "' + encoding + '"', { - encoding: encoding, - type: 'encoding.unsupported' - }) - } - - return stream -} diff --git a/views/node_modules/body-parser/lib/types/json.js b/views/node_modules/body-parser/lib/types/json.js deleted file mode 100644 index 2971dc1..0000000 --- a/views/node_modules/body-parser/lib/types/json.js +++ /dev/null @@ -1,230 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var bytes = require('bytes') -var contentType = require('content-type') -var createError = require('http-errors') -var debug = require('debug')('body-parser:json') -var read = require('../read') -var typeis = require('type-is') - -/** - * Module exports. - */ - -module.exports = json - -/** - * RegExp to match the first non-space in a string. - * - * Allowed whitespace is defined in RFC 7159: - * - * ws = *( - * %x20 / ; Space - * %x09 / ; Horizontal tab - * %x0A / ; Line feed or New line - * %x0D ) ; Carriage return - */ - -var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*(.)/ // eslint-disable-line no-control-regex - -/** - * Create a middleware to parse JSON bodies. - * - * @param {object} [options] - * @return {function} - * @public - */ - -function json (options) { - var opts = options || {} - - var limit = typeof opts.limit !== 'number' - ? bytes.parse(opts.limit || '100kb') - : opts.limit - var inflate = opts.inflate !== false - var reviver = opts.reviver - var strict = opts.strict !== false - var type = opts.type || 'application/json' - var verify = opts.verify || false - - if (verify !== false && typeof verify !== 'function') { - throw new TypeError('option verify must be function') - } - - // create the appropriate type checking function - var shouldParse = typeof type !== 'function' - ? typeChecker(type) - : type - - function parse (body) { - if (body.length === 0) { - // special-case empty json body, as it's a common client-side mistake - // TODO: maybe make this configurable or part of "strict" option - return {} - } - - if (strict) { - var first = firstchar(body) - - if (first !== '{' && first !== '[') { - debug('strict violation') - throw createStrictSyntaxError(body, first) - } - } - - try { - debug('parse json') - return JSON.parse(body, reviver) - } catch (e) { - throw normalizeJsonSyntaxError(e, { - message: e.message, - stack: e.stack - }) - } - } - - return function jsonParser (req, res, next) { - if (req._body) { - debug('body already parsed') - next() - return - } - - req.body = req.body || {} - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // assert charset per RFC 7159 sec 8.1 - var charset = getCharset(req) || 'utf-8' - if (charset.substr(0, 4) !== 'utf-') { - debug('invalid charset') - next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { - charset: charset, - type: 'charset.unsupported' - })) - return - } - - // read - read(req, res, next, parse, debug, { - encoding: charset, - inflate: inflate, - limit: limit, - verify: verify - }) - } -} - -/** - * Create strict violation syntax error matching native error. - * - * @param {string} str - * @param {string} char - * @return {Error} - * @private - */ - -function createStrictSyntaxError (str, char) { - var index = str.indexOf(char) - var partial = str.substring(0, index) + '#' - - try { - JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation') - } catch (e) { - return normalizeJsonSyntaxError(e, { - message: e.message.replace('#', char), - stack: e.stack - }) - } -} - -/** - * Get the first non-whitespace character in a string. - * - * @param {string} str - * @return {function} - * @private - */ - -function firstchar (str) { - return FIRST_CHAR_REGEXP.exec(str)[1] -} - -/** - * Get the charset of a request. - * - * @param {object} req - * @api private - */ - -function getCharset (req) { - try { - return (contentType.parse(req).parameters.charset || '').toLowerCase() - } catch (e) { - return undefined - } -} - -/** - * Normalize a SyntaxError for JSON.parse. - * - * @param {SyntaxError} error - * @param {object} obj - * @return {SyntaxError} - */ - -function normalizeJsonSyntaxError (error, obj) { - var keys = Object.getOwnPropertyNames(error) - - for (var i = 0; i < keys.length; i++) { - var key = keys[i] - if (key !== 'stack' && key !== 'message') { - delete error[key] - } - } - - // replace stack before message for Node.js 0.10 and below - error.stack = obj.stack.replace(error.message, obj.message) - error.message = obj.message - - return error -} - -/** - * Get the simple type checker. - * - * @param {string} type - * @return {function} - */ - -function typeChecker (type) { - return function checkType (req) { - return Boolean(typeis(req, type)) - } -} diff --git a/views/node_modules/body-parser/lib/types/raw.js b/views/node_modules/body-parser/lib/types/raw.js deleted file mode 100644 index f5d1b67..0000000 --- a/views/node_modules/body-parser/lib/types/raw.js +++ /dev/null @@ -1,101 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - */ - -var bytes = require('bytes') -var debug = require('debug')('body-parser:raw') -var read = require('../read') -var typeis = require('type-is') - -/** - * Module exports. - */ - -module.exports = raw - -/** - * Create a middleware to parse raw bodies. - * - * @param {object} [options] - * @return {function} - * @api public - */ - -function raw (options) { - var opts = options || {} - - var inflate = opts.inflate !== false - var limit = typeof opts.limit !== 'number' - ? bytes.parse(opts.limit || '100kb') - : opts.limit - var type = opts.type || 'application/octet-stream' - var verify = opts.verify || false - - if (verify !== false && typeof verify !== 'function') { - throw new TypeError('option verify must be function') - } - - // create the appropriate type checking function - var shouldParse = typeof type !== 'function' - ? typeChecker(type) - : type - - function parse (buf) { - return buf - } - - return function rawParser (req, res, next) { - if (req._body) { - debug('body already parsed') - next() - return - } - - req.body = req.body || {} - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // read - read(req, res, next, parse, debug, { - encoding: null, - inflate: inflate, - limit: limit, - verify: verify - }) - } -} - -/** - * Get the simple type checker. - * - * @param {string} type - * @return {function} - */ - -function typeChecker (type) { - return function checkType (req) { - return Boolean(typeis(req, type)) - } -} diff --git a/views/node_modules/body-parser/lib/types/text.js b/views/node_modules/body-parser/lib/types/text.js deleted file mode 100644 index 083a009..0000000 --- a/views/node_modules/body-parser/lib/types/text.js +++ /dev/null @@ -1,121 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - */ - -var bytes = require('bytes') -var contentType = require('content-type') -var debug = require('debug')('body-parser:text') -var read = require('../read') -var typeis = require('type-is') - -/** - * Module exports. - */ - -module.exports = text - -/** - * Create a middleware to parse text bodies. - * - * @param {object} [options] - * @return {function} - * @api public - */ - -function text (options) { - var opts = options || {} - - var defaultCharset = opts.defaultCharset || 'utf-8' - var inflate = opts.inflate !== false - var limit = typeof opts.limit !== 'number' - ? bytes.parse(opts.limit || '100kb') - : opts.limit - var type = opts.type || 'text/plain' - var verify = opts.verify || false - - if (verify !== false && typeof verify !== 'function') { - throw new TypeError('option verify must be function') - } - - // create the appropriate type checking function - var shouldParse = typeof type !== 'function' - ? typeChecker(type) - : type - - function parse (buf) { - return buf - } - - return function textParser (req, res, next) { - if (req._body) { - debug('body already parsed') - next() - return - } - - req.body = req.body || {} - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // get charset - var charset = getCharset(req) || defaultCharset - - // read - read(req, res, next, parse, debug, { - encoding: charset, - inflate: inflate, - limit: limit, - verify: verify - }) - } -} - -/** - * Get the charset of a request. - * - * @param {object} req - * @api private - */ - -function getCharset (req) { - try { - return (contentType.parse(req).parameters.charset || '').toLowerCase() - } catch (e) { - return undefined - } -} - -/** - * Get the simple type checker. - * - * @param {string} type - * @return {function} - */ - -function typeChecker (type) { - return function checkType (req) { - return Boolean(typeis(req, type)) - } -} diff --git a/views/node_modules/body-parser/lib/types/urlencoded.js b/views/node_modules/body-parser/lib/types/urlencoded.js deleted file mode 100644 index b2ca8f1..0000000 --- a/views/node_modules/body-parser/lib/types/urlencoded.js +++ /dev/null @@ -1,284 +0,0 @@ -/*! - * body-parser - * Copyright(c) 2014 Jonathan Ong - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var bytes = require('bytes') -var contentType = require('content-type') -var createError = require('http-errors') -var debug = require('debug')('body-parser:urlencoded') -var deprecate = require('depd')('body-parser') -var read = require('../read') -var typeis = require('type-is') - -/** - * Module exports. - */ - -module.exports = urlencoded - -/** - * Cache of parser modules. - */ - -var parsers = Object.create(null) - -/** - * Create a middleware to parse urlencoded bodies. - * - * @param {object} [options] - * @return {function} - * @public - */ - -function urlencoded (options) { - var opts = options || {} - - // notice because option default will flip in next major - if (opts.extended === undefined) { - deprecate('undefined extended: provide extended option') - } - - var extended = opts.extended !== false - var inflate = opts.inflate !== false - var limit = typeof opts.limit !== 'number' - ? bytes.parse(opts.limit || '100kb') - : opts.limit - var type = opts.type || 'application/x-www-form-urlencoded' - var verify = opts.verify || false - - if (verify !== false && typeof verify !== 'function') { - throw new TypeError('option verify must be function') - } - - // create the appropriate query parser - var queryparse = extended - ? extendedparser(opts) - : simpleparser(opts) - - // create the appropriate type checking function - var shouldParse = typeof type !== 'function' - ? typeChecker(type) - : type - - function parse (body) { - return body.length - ? queryparse(body) - : {} - } - - return function urlencodedParser (req, res, next) { - if (req._body) { - debug('body already parsed') - next() - return - } - - req.body = req.body || {} - - // skip requests without bodies - if (!typeis.hasBody(req)) { - debug('skip empty body') - next() - return - } - - debug('content-type %j', req.headers['content-type']) - - // determine if request should be parsed - if (!shouldParse(req)) { - debug('skip parsing') - next() - return - } - - // assert charset - var charset = getCharset(req) || 'utf-8' - if (charset !== 'utf-8') { - debug('invalid charset') - next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', { - charset: charset, - type: 'charset.unsupported' - })) - return - } - - // read - read(req, res, next, parse, debug, { - debug: debug, - encoding: charset, - inflate: inflate, - limit: limit, - verify: verify - }) - } -} - -/** - * Get the extended query parser. - * - * @param {object} options - */ - -function extendedparser (options) { - var parameterLimit = options.parameterLimit !== undefined - ? options.parameterLimit - : 1000 - var parse = parser('qs') - - if (isNaN(parameterLimit) || parameterLimit < 1) { - throw new TypeError('option parameterLimit must be a positive number') - } - - if (isFinite(parameterLimit)) { - parameterLimit = parameterLimit | 0 - } - - return function queryparse (body) { - var paramCount = parameterCount(body, parameterLimit) - - if (paramCount === undefined) { - debug('too many parameters') - throw createError(413, 'too many parameters', { - type: 'parameters.too.many' - }) - } - - var arrayLimit = Math.max(100, paramCount) - - debug('parse extended urlencoding') - return parse(body, { - allowPrototypes: true, - arrayLimit: arrayLimit, - depth: Infinity, - parameterLimit: parameterLimit - }) - } -} - -/** - * Get the charset of a request. - * - * @param {object} req - * @api private - */ - -function getCharset (req) { - try { - return (contentType.parse(req).parameters.charset || '').toLowerCase() - } catch (e) { - return undefined - } -} - -/** - * Count the number of parameters, stopping once limit reached - * - * @param {string} body - * @param {number} limit - * @api private - */ - -function parameterCount (body, limit) { - var count = 0 - var index = 0 - - while ((index = body.indexOf('&', index)) !== -1) { - count++ - index++ - - if (count === limit) { - return undefined - } - } - - return count -} - -/** - * Get parser for module name dynamically. - * - * @param {string} name - * @return {function} - * @api private - */ - -function parser (name) { - var mod = parsers[name] - - if (mod !== undefined) { - return mod.parse - } - - // this uses a switch for static require analysis - switch (name) { - case 'qs': - mod = require('qs') - break - case 'querystring': - mod = require('querystring') - break - } - - // store to prevent invoking require() - parsers[name] = mod - - return mod.parse -} - -/** - * Get the simple query parser. - * - * @param {object} options - */ - -function simpleparser (options) { - var parameterLimit = options.parameterLimit !== undefined - ? options.parameterLimit - : 1000 - var parse = parser('querystring') - - if (isNaN(parameterLimit) || parameterLimit < 1) { - throw new TypeError('option parameterLimit must be a positive number') - } - - if (isFinite(parameterLimit)) { - parameterLimit = parameterLimit | 0 - } - - return function queryparse (body) { - var paramCount = parameterCount(body, parameterLimit) - - if (paramCount === undefined) { - debug('too many parameters') - throw createError(413, 'too many parameters', { - type: 'parameters.too.many' - }) - } - - debug('parse urlencoding') - return parse(body, undefined, undefined, { maxKeys: parameterLimit }) - } -} - -/** - * Get the simple type checker. - * - * @param {string} type - * @return {function} - */ - -function typeChecker (type) { - return function checkType (req) { - return Boolean(typeis(req, type)) - } -} diff --git a/views/node_modules/body-parser/package.json b/views/node_modules/body-parser/package.json deleted file mode 100644 index 269ebf2..0000000 --- a/views/node_modules/body-parser/package.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "name": "body-parser", - "description": "Node.js body parsing middleware", - "version": "1.19.0", - "contributors": [ - "Douglas Christopher Wilson ", - "Jonathan Ong (http://jongleberry.com)" - ], - "license": "MIT", - "repository": "expressjs/body-parser", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "devDependencies": { - "eslint": "5.16.0", - "eslint-config-standard": "12.0.0", - "eslint-plugin-import": "2.17.2", - "eslint-plugin-markdown": "1.0.0", - "eslint-plugin-node": "8.0.1", - "eslint-plugin-promise": "4.1.1", - "eslint-plugin-standard": "4.0.0", - "istanbul": "0.4.5", - "methods": "1.1.2", - "mocha": "6.1.4", - "safe-buffer": "5.1.2", - "supertest": "4.0.2" - }, - "files": [ - "lib/", - "LICENSE", - "HISTORY.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "lint": "eslint --plugin markdown --ext js,md .", - "test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/" - } -} diff --git a/views/node_modules/bson/HISTORY.md b/views/node_modules/bson/HISTORY.md deleted file mode 100644 index d8d5d20..0000000 --- a/views/node_modules/bson/HISTORY.md +++ /dev/null @@ -1,301 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -### [1.1.6](https://github.com/mongodb/js-bson/compare/v1.1.5...v1.1.6) (2021-03-16) - - -### Bug Fixes - -* Throw error on bigint usage and add helpers to Long ([#426](https://github.com/mongodb/js-bson/issues/426)) ([375f368](https://github.com/mongodb/js-bson/commit/375f368738807f2d41c7751e618fd09c8a1b94c9)) - -### [1.1.5](https://github.com/mongodb/js-bson/compare/v1.1.4...v1.1.5) (2020-08-10) - - -### Bug Fixes - -* **object-id:** harden the duck-typing ([b526145](https://github.com/mongodb/js-bson/commit/b5261450c3bc4abb2e2fb19b5b1a7aba27982d44)) - - -## [1.1.3](https://github.com/mongodb/js-bson/compare/v1.1.2...v1.1.3) (2019-11-09) - -Reverts 1.1.2 - - -## [1.1.2](https://github.com/mongodb/js-bson/compare/v1.1.1...v1.1.2) (2019-11-08) - - -### Bug Fixes - -* **_bsontype:** only check bsontype if it is a prototype member. ([dd8a349](https://github.com/mongodb/js-bson/commit/dd8a349)) - - - - -## [1.1.1](https://github.com/mongodb/js-bson/compare/v1.1.0...v1.1.1) (2019-03-08) - - -### Bug Fixes - -* **object-id:** support 4.x->1.x interop for MinKey and ObjectId ([53419a5](https://github.com/mongodb/js-bson/commit/53419a5)) - - -### Features - -* replace new Buffer with modern versions ([24aefba](https://github.com/mongodb/js-bson/commit/24aefba)) - - - - -# [1.1.0](https://github.com/mongodb/js-bson/compare/v1.0.9...v1.1.0) (2018-08-13) - - -### Bug Fixes - -* **serializer:** do not use checkKeys for $clusterTime ([573e141](https://github.com/mongodb/js-bson/commit/573e141)) - - - - -## [1.0.9](https://github.com/mongodb/js-bson/compare/v1.0.8...v1.0.9) (2018-06-07) - - -### Bug Fixes - -* **serializer:** remove use of `const` ([5feb12f](https://github.com/mongodb/js-bson/commit/5feb12f)) - - - - -## [1.0.7](https://github.com/mongodb/js-bson/compare/v1.0.6...v1.0.7) (2018-06-06) - - -### Bug Fixes - -* **binary:** add type checking for buffer ([26b05b5](https://github.com/mongodb/js-bson/commit/26b05b5)) -* **bson:** fix custom inspect property ([080323b](https://github.com/mongodb/js-bson/commit/080323b)) -* **readme:** clarify documentation about deserialize methods ([20f764c](https://github.com/mongodb/js-bson/commit/20f764c)) -* **serialization:** normalize function stringification ([1320c10](https://github.com/mongodb/js-bson/commit/1320c10)) - - - - -## [1.0.6](https://github.com/mongodb/js-bson/compare/v1.0.5...v1.0.6) (2018-03-12) - - -### Features - -* **serialization:** support arbitrary sizes for the internal serialization buffer ([abe97bc](https://github.com/mongodb/js-bson/commit/abe97bc)) - - - - -## 1.0.5 (2018-02-26) - - -### Bug Fixes - -* **decimal128:** add basic guard against REDOS attacks ([bd61c45](https://github.com/mongodb/js-bson/commit/bd61c45)) -* **objectid:** if pid is 1, use random value ([e188ae6](https://github.com/mongodb/js-bson/commit/e188ae6)) - - - -1.0.4 2016-01-11 ----------------- -- #204 remove Buffer.from as it's partially broken in early 4.x.x. series of node releases. - -1.0.3 2016-01-03 ----------------- -- Fixed toString for ObjectId so it will work with inspect. - -1.0.2 2016-01-02 ----------------- -- Minor optimizations for ObjectID to use Buffer.from where available. - -1.0.1 2016-12-06 ----------------- -- Reverse behavior for undefined to be serialized as NULL. MongoDB 3.4 does not allow for undefined comparisons. - -1.0.0 2016-12-06 ----------------- -- Introduced new BSON API and documentation. - -0.5.7 2016-11-18 ------------------ -- NODE-848 BSON Regex flags must be alphabetically ordered. - -0.5.6 2016-10-19 ------------------ -- NODE-833, Detects cyclic dependencies in documents and throws error if one is found. -- Fix(deserializer): corrected the check for (size + index) comparison… (Issue #195, https://github.com/JoelParke). - -0.5.5 2016-09-15 ------------------ -- Added DBPointer up conversion to DBRef - -0.5.4 2016-08-23 ------------------ -- Added promoteValues flag (default to true) allowing user to specify if deserialization should be into wrapper classes only. - -0.5.3 2016-07-11 ------------------ -- Throw error if ObjectId is not a string or a buffer. - -0.5.2 2016-07-11 ------------------ -- All values encoded big-endian style for ObjectId. - -0.5.1 2016-07-11 ------------------ -- Fixed encoding/decoding issue in ObjectId timestamp generation. -- Removed BinaryParser dependency from the serializer/deserializer. - -0.5.0 2016-07-05 ------------------ -- Added Decimal128 type and extended test suite to include entire bson corpus. - -0.4.23 2016-04-08 ------------------ -- Allow for proper detection of ObjectId or objects that look like ObjectId, improving compatibility across third party libraries. -- Remove one package from dependency due to having been pulled from NPM. - -0.4.22 2016-03-04 ------------------ -- Fix "TypeError: data.copy is not a function" in Electron (Issue #170, https://github.com/kangas). -- Fixed issue with undefined type on deserializing. - -0.4.21 2016-01-12 ------------------ -- Minor optimizations to avoid non needed object creation. - -0.4.20 2015-10-15 ------------------ -- Added bower file to repository. -- Fixed browser pid sometimes set greater than 0xFFFF on browsers (Issue #155, https://github.com/rahatarmanahmed) - -0.4.19 2015-10-15 ------------------ -- Remove all support for bson-ext. - -0.4.18 2015-10-15 ------------------ -- ObjectID equality check should return boolean instead of throwing exception for invalid oid string #139 -- add option for deserializing binary into Buffer object #116 - -0.4.17 2015-10-15 ------------------ -- Validate regexp string for null bytes and throw if there is one. - -0.4.16 2015-10-07 ------------------ -- Fixed issue with return statement in Map.js. - -0.4.15 2015-10-06 ------------------ -- Exposed Map correctly via index.js file. - -0.4.14 2015-10-06 ------------------ -- Exposed Map correctly via bson.js file. - -0.4.13 2015-10-06 ------------------ -- Added ES6 Map type serialization as well as a polyfill for ES5. - -0.4.12 2015-09-18 ------------------ -- Made ignore undefined an optional parameter. - -0.4.11 2015-08-06 ------------------ -- Minor fix for invalid key checking. - -0.4.10 2015-08-06 ------------------ -- NODE-38 Added new BSONRegExp type to allow direct serialization to MongoDB type. -- Some performance improvements by in lining code. - -0.4.9 2015-08-06 ----------------- -- Undefined fields are omitted from serialization in objects. - -0.4.8 2015-07-14 ----------------- -- Fixed size validation to ensure we can deserialize from dumped files. - -0.4.7 2015-06-26 ----------------- -- Added ability to instruct deserializer to return raw BSON buffers for named array fields. -- Minor deserialization optimization by moving inlined function out. - -0.4.6 2015-06-17 ----------------- -- Fixed serializeWithBufferAndIndex bug. - -0.4.5 2015-06-17 ----------------- -- Removed any references to the shared buffer to avoid non GC collectible bson instances. - -0.4.4 2015-06-17 ----------------- -- Fixed rethrowing of error when not RangeError. - -0.4.3 2015-06-17 ----------------- -- Start buffer at 64K and double as needed, meaning we keep a low memory profile until needed. - -0.4.2 2015-06-16 ----------------- -- More fixes for corrupt Bson - -0.4.1 2015-06-16 ----------------- -- More fixes for corrupt Bson - -0.4.0 2015-06-16 ----------------- -- New JS serializer serializing into a single buffer then copying out the new buffer. Performance is similar to current C++ parser. -- Removed bson-ext extension dependency for now. - -0.3.2 2015-03-27 ----------------- -- Removed node-gyp from install script in package.json. - -0.3.1 2015-03-27 ----------------- -- Return pure js version on native() call if failed to initialize. - -0.3.0 2015-03-26 ----------------- -- Pulled out all C++ code into bson-ext and made it an optional dependency. - -0.2.21 2015-03-21 ------------------ -- Updated Nan to 1.7.0 to support io.js and node 0.12.0 - -0.2.19 2015-02-16 ------------------ -- Updated Nan to 1.6.2 to support io.js and node 0.12.0 - -0.2.18 2015-01-20 ------------------ -- Updated Nan to 1.5.1 to support io.js - -0.2.16 2014-12-17 ------------------ -- Made pid cycle on 0xffff to avoid weird overflows on creation of ObjectID's - -0.2.12 2014-08-24 ------------------ -- Fixes for fortify review of c++ extension -- toBSON correctly allows returns of non objects - -0.2.3 2013-10-01 ----------------- -- Drying of ObjectId code for generation of id (Issue #54, https://github.com/moredip) -- Fixed issue where corrupt CString's could cause endless loop -- Support for Node 0.11.X > (Issue #49, https://github.com/kkoopa) - -0.1.4 2012-09-25 ----------------- -- Added precompiled c++ native extensions for win32 ia32 and x64 diff --git a/views/node_modules/bson/LICENSE.md b/views/node_modules/bson/LICENSE.md deleted file mode 100644 index 261eeb9..0000000 --- a/views/node_modules/bson/LICENSE.md +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/views/node_modules/bson/README.md b/views/node_modules/bson/README.md deleted file mode 100644 index 0688341..0000000 --- a/views/node_modules/bson/README.md +++ /dev/null @@ -1,170 +0,0 @@ -# BSON parser - -BSON is short for Bin­ary JSON and is the bin­ary-en­coded seri­al­iz­a­tion of JSON-like doc­u­ments. You can learn more about it in [the specification](http://bsonspec.org). - -This browser version of the BSON parser is compiled using [webpack](https://webpack.js.org/) and the current version is pre-compiled in the `browser_build` directory. - -This is the default BSON parser, however, there is a C++ Node.js addon version as well that does not support the browser. It can be found at [mongod-js/bson-ext](https://github.com/mongodb-js/bson-ext). - -## Usage - -To build a new version perform the following operations: - -``` -npm install -npm run build -``` - -A simple example of how to use BSON in the browser: - -```html - - - -``` - -A simple example of how to use BSON in `Node.js`: - -```js -// Get BSON parser class -var BSON = require('bson') -// Get the Long type -var Long = BSON.Long; -// Create a bson parser instance -var bson = new BSON(); - -// Serialize document -var doc = { long: Long.fromNumber(100) } - -// Serialize a document -var data = bson.serialize(doc) -console.log('data:', data) - -// Deserialize the resulting Buffer -var doc_2 = bson.deserialize(data) -console.log('doc_2:', doc_2) -``` - -## Installation - -`npm install bson` - -## API - -### BSON types - -For all BSON types documentation, please refer to the following sources: - * [MongoDB BSON Type Reference](https://docs.mongodb.com/manual/reference/bson-types/) - * [BSON Spec](https://bsonspec.org/) - -### BSON serialization and deserialiation - -**`new BSON()`** - Creates a new BSON serializer/deserializer you can use to serialize and deserialize BSON. - -#### BSON.serialize - -The BSON `serialize` method takes a JavaScript object and an optional options object and returns a Node.js Buffer. - - * `BSON.serialize(object, options)` - * @param {Object} object the JavaScript object to serialize. - * @param {Boolean} [options.checkKeys=false] the serializer will check if keys are valid. - * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions. - * @param {Boolean} [options.ignoreUndefined=true] - * @return {Buffer} returns a Buffer instance. - -#### BSON.serializeWithBufferAndIndex - -The BSON `serializeWithBufferAndIndex` method takes an object, a target buffer instance and an optional options object and returns the end serialization index in the final buffer. - - * `BSON.serializeWithBufferAndIndex(object, buffer, options)` - * @param {Object} object the JavaScript object to serialize. - * @param {Buffer} buffer the Buffer you pre-allocated to store the serialized BSON object. - * @param {Boolean} [options.checkKeys=false] the serializer will check if keys are valid. - * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions. - * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields. - * @param {Number} [options.index=0] the index in the buffer where we wish to start serializing into. - * @return {Number} returns the index pointing to the last written byte in the buffer. - -#### BSON.calculateObjectSize - -The BSON `calculateObjectSize` method takes a JavaScript object and an optional options object and returns the size of the BSON object. - - * `BSON.calculateObjectSize(object, options)` - * @param {Object} object the JavaScript object to serialize. - * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions. - * @param {Boolean} [options.ignoreUndefined=true] - * @return {Buffer} returns a Buffer instance. - -#### BSON.deserialize - -The BSON `deserialize` method takes a Node.js Buffer and an optional options object and returns a deserialized JavaScript object. - - * `BSON.deserialize(buffer, options)` - * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. - * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. - * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. - * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits - * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a Node.js Buffer instance. - * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. - * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. - * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. - * @return {Object} returns the deserialized Javascript Object. - -#### BSON.deserializeStream - -The BSON `deserializeStream` method takes a Node.js Buffer, `startIndex` and allow more control over deserialization of a Buffer containing concatenated BSON documents. - - * `BSON.deserializeStream(buffer, startIndex, numberOfDocuments, documents, docStartIndex, options)` - * @param {Buffer} buffer the buffer containing the serialized set of BSON documents. - * @param {Number} startIndex the start index in the data Buffer where the deserialization is to start. - * @param {Number} numberOfDocuments number of documents to deserialize. - * @param {Array} documents an array where to store the deserialized documents. - * @param {Number} docStartIndex the index in the documents array from where to start inserting documents. - * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. - * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. - * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. - * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits - * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a Node.js Buffer instance. - * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. - * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. - * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. - * @return {Number} returns the next index in the buffer after deserialization **x** numbers of documents. - -## FAQ - -#### Why does `undefined` get converted to `null`? - -The `undefined` BSON type has been [deprecated for many years](http://bsonspec.org/spec.html), so this library has dropped support for it. Use the `ignoreUndefined` option (for example, from the [driver](http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html#connect) ) to instead remove `undefined` keys. - -#### How do I add custom serialization logic? - -This library looks for `toBSON()` functions on every path, and calls the `toBSON()` function to get the value to serialize. - -```javascript -var bson = new BSON(); - -class CustomSerialize { - toBSON() { - return 42; - } -} - -const obj = { answer: new CustomSerialize() }; -// "{ answer: 42 }" -console.log(bson.deserialize(bson.serialize(obj))); -``` diff --git a/views/node_modules/bson/bower.json b/views/node_modules/bson/bower.json deleted file mode 100644 index eded1f8..0000000 --- a/views/node_modules/bson/bower.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "bson", - "description": "A bson parser for node.js and the browser", - "keywords": [ - "mongodb", - "bson", - "parser" - ], - "author": "Christian Amor Kvalheim ", - "main": "./browser_build/bson.js", - "license": "Apache-2.0", - "moduleType": [ - "globals", - "node" - ], - "ignore": [ - "**/.*", - "alternate_parsers", - "benchmarks", - "bower_components", - "node_modules", - "test", - "tools" - ], - "version": "1.1.6" -} diff --git a/views/node_modules/bson/browser_build/bson.js b/views/node_modules/bson/browser_build/bson.js deleted file mode 100644 index 9540a86..0000000 --- a/views/node_modules/bson/browser_build/bson.js +++ /dev/null @@ -1,18218 +0,0 @@ -(function webpackUniversalModuleDefinition(root, factory) { - if(typeof exports === 'object' && typeof module === 'object') - module.exports = factory(); - else if(typeof define === 'function' && define.amd) - define([], factory); - else { - var a = factory(); - for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; - } -})(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = "/"; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(1); - module.exports = __webpack_require__(332); - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(global) {"use strict"; - - __webpack_require__(2); - - __webpack_require__(328); - - __webpack_require__(329); - - if (global._babelPolyfill) { - throw new Error("only one instance of babel-polyfill is allowed"); - } - global._babelPolyfill = true; - - var DEFINE_PROPERTY = "defineProperty"; - function define(O, key, value) { - O[key] || Object[DEFINE_PROPERTY](O, key, { - writable: true, - configurable: true, - value: value - }); - } - - define(String.prototype, "padLeft", "".padStart); - define(String.prototype, "padRight", "".padEnd); - - "pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function (key) { - [][key] && define(Array, key, Function.call.bind([][key])); - }); - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(3); - __webpack_require__(53); - __webpack_require__(54); - __webpack_require__(55); - __webpack_require__(56); - __webpack_require__(58); - __webpack_require__(60); - __webpack_require__(61); - __webpack_require__(62); - __webpack_require__(63); - __webpack_require__(64); - __webpack_require__(65); - __webpack_require__(66); - __webpack_require__(67); - __webpack_require__(68); - __webpack_require__(70); - __webpack_require__(72); - __webpack_require__(74); - __webpack_require__(76); - __webpack_require__(79); - __webpack_require__(80); - __webpack_require__(81); - __webpack_require__(85); - __webpack_require__(87); - __webpack_require__(89); - __webpack_require__(92); - __webpack_require__(93); - __webpack_require__(94); - __webpack_require__(95); - __webpack_require__(97); - __webpack_require__(98); - __webpack_require__(99); - __webpack_require__(100); - __webpack_require__(101); - __webpack_require__(102); - __webpack_require__(103); - __webpack_require__(105); - __webpack_require__(106); - __webpack_require__(107); - __webpack_require__(109); - __webpack_require__(110); - __webpack_require__(111); - __webpack_require__(113); - __webpack_require__(115); - __webpack_require__(116); - __webpack_require__(117); - __webpack_require__(118); - __webpack_require__(119); - __webpack_require__(120); - __webpack_require__(121); - __webpack_require__(122); - __webpack_require__(123); - __webpack_require__(124); - __webpack_require__(125); - __webpack_require__(126); - __webpack_require__(127); - __webpack_require__(132); - __webpack_require__(133); - __webpack_require__(137); - __webpack_require__(138); - __webpack_require__(139); - __webpack_require__(140); - __webpack_require__(142); - __webpack_require__(143); - __webpack_require__(144); - __webpack_require__(145); - __webpack_require__(146); - __webpack_require__(147); - __webpack_require__(148); - __webpack_require__(149); - __webpack_require__(150); - __webpack_require__(151); - __webpack_require__(152); - __webpack_require__(153); - __webpack_require__(154); - __webpack_require__(155); - __webpack_require__(156); - __webpack_require__(158); - __webpack_require__(159); - __webpack_require__(161); - __webpack_require__(162); - __webpack_require__(168); - __webpack_require__(169); - __webpack_require__(171); - __webpack_require__(172); - __webpack_require__(173); - __webpack_require__(177); - __webpack_require__(178); - __webpack_require__(179); - __webpack_require__(180); - __webpack_require__(181); - __webpack_require__(183); - __webpack_require__(184); - __webpack_require__(185); - __webpack_require__(186); - __webpack_require__(189); - __webpack_require__(191); - __webpack_require__(192); - __webpack_require__(193); - __webpack_require__(195); - __webpack_require__(197); - __webpack_require__(199); - __webpack_require__(201); - __webpack_require__(202); - __webpack_require__(203); - __webpack_require__(207); - __webpack_require__(208); - __webpack_require__(209); - __webpack_require__(211); - __webpack_require__(221); - __webpack_require__(225); - __webpack_require__(226); - __webpack_require__(228); - __webpack_require__(229); - __webpack_require__(233); - __webpack_require__(234); - __webpack_require__(236); - __webpack_require__(237); - __webpack_require__(238); - __webpack_require__(239); - __webpack_require__(240); - __webpack_require__(241); - __webpack_require__(242); - __webpack_require__(243); - __webpack_require__(244); - __webpack_require__(245); - __webpack_require__(246); - __webpack_require__(247); - __webpack_require__(248); - __webpack_require__(249); - __webpack_require__(250); - __webpack_require__(251); - __webpack_require__(252); - __webpack_require__(253); - __webpack_require__(254); - __webpack_require__(256); - __webpack_require__(257); - __webpack_require__(258); - __webpack_require__(259); - __webpack_require__(260); - __webpack_require__(262); - __webpack_require__(263); - __webpack_require__(264); - __webpack_require__(266); - __webpack_require__(267); - __webpack_require__(268); - __webpack_require__(269); - __webpack_require__(270); - __webpack_require__(271); - __webpack_require__(272); - __webpack_require__(273); - __webpack_require__(275); - __webpack_require__(276); - __webpack_require__(278); - __webpack_require__(279); - __webpack_require__(280); - __webpack_require__(281); - __webpack_require__(284); - __webpack_require__(285); - __webpack_require__(287); - __webpack_require__(288); - __webpack_require__(289); - __webpack_require__(290); - __webpack_require__(292); - __webpack_require__(293); - __webpack_require__(294); - __webpack_require__(295); - __webpack_require__(296); - __webpack_require__(297); - __webpack_require__(298); - __webpack_require__(299); - __webpack_require__(300); - __webpack_require__(301); - __webpack_require__(303); - __webpack_require__(304); - __webpack_require__(305); - __webpack_require__(306); - __webpack_require__(307); - __webpack_require__(308); - __webpack_require__(309); - __webpack_require__(310); - __webpack_require__(311); - __webpack_require__(312); - __webpack_require__(313); - __webpack_require__(315); - __webpack_require__(316); - __webpack_require__(317); - __webpack_require__(318); - __webpack_require__(319); - __webpack_require__(320); - __webpack_require__(321); - __webpack_require__(322); - __webpack_require__(323); - __webpack_require__(324); - __webpack_require__(325); - __webpack_require__(326); - __webpack_require__(327); - module.exports = __webpack_require__(9); - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // ECMAScript 6 symbols shim - var global = __webpack_require__(4); - var has = __webpack_require__(5); - var DESCRIPTORS = __webpack_require__(6); - var $export = __webpack_require__(8); - var redefine = __webpack_require__(18); - var META = __webpack_require__(25).KEY; - var $fails = __webpack_require__(7); - var shared = __webpack_require__(21); - var setToStringTag = __webpack_require__(26); - var uid = __webpack_require__(19); - var wks = __webpack_require__(27); - var wksExt = __webpack_require__(28); - var wksDefine = __webpack_require__(29); - var enumKeys = __webpack_require__(30); - var isArray = __webpack_require__(45); - var anObject = __webpack_require__(12); - var isObject = __webpack_require__(13); - var toObject = __webpack_require__(46); - var toIObject = __webpack_require__(33); - var toPrimitive = __webpack_require__(16); - var createDesc = __webpack_require__(17); - var _create = __webpack_require__(47); - var gOPNExt = __webpack_require__(50); - var $GOPD = __webpack_require__(52); - var $GOPS = __webpack_require__(43); - var $DP = __webpack_require__(11); - var $keys = __webpack_require__(31); - var gOPD = $GOPD.f; - var dP = $DP.f; - var gOPN = gOPNExt.f; - var $Symbol = global.Symbol; - var $JSON = global.JSON; - var _stringify = $JSON && $JSON.stringify; - var PROTOTYPE = 'prototype'; - var HIDDEN = wks('_hidden'); - var TO_PRIMITIVE = wks('toPrimitive'); - var isEnum = {}.propertyIsEnumerable; - var SymbolRegistry = shared('symbol-registry'); - var AllSymbols = shared('symbols'); - var OPSymbols = shared('op-symbols'); - var ObjectProto = Object[PROTOTYPE]; - var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; - var QObject = global.QObject; - // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 - var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; - }) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); - } : dP; - - var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; - }; - - var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; - } : function (it) { - return it instanceof $Symbol; - }; - - var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); - }; - var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; - }; - var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); - }; - var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; - }; - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; - }; - var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; - }; - var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; - }; - - // 19.4.1.1 Symbol([description]) - if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(51).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(44).f = $propertyIsEnumerable; - $GOPS.f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__webpack_require__(22)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; - } - - $export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - - for (var es6Symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' - ).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - - for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - - $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } - }); - - $export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols - }); - - // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives - // https://bugs.chromium.org/p/v8/issues/detail?id=3443 - var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); }); - - $export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { - getOwnPropertySymbols: function getOwnPropertySymbols(it) { - return $GOPS.f(toObject(it)); - } - }); - - // 24.3.2 JSON.stringify(value [, replacer [, space]]) - $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; - })), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } - }); - - // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) - $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); - // 19.4.3.5 Symbol.prototype[@@toStringTag] - setToStringTag($Symbol, 'Symbol'); - // 20.2.1.9 Math[@@toStringTag] - setToStringTag(Math, 'Math', true); - // 24.3.3 JSON[@@toStringTag] - setToStringTag(global.JSON, 'JSON', true); - - -/***/ }), -/* 4 */ -/***/ (function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - // eslint-disable-next-line no-new-func - : Function('return this')(); - if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef - - -/***/ }), -/* 5 */ -/***/ (function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function (it, key) { - return hasOwnProperty.call(it, key); - }; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(7)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; - }); - - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - - module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } - }; - - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - - var global = __webpack_require__(4); - var core = __webpack_require__(9); - var hide = __webpack_require__(10); - var redefine = __webpack_require__(18); - var ctx = __webpack_require__(23); - var PROTOTYPE = 'prototype'; - - var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); - var key, own, out, exp; - if (IS_GLOBAL) source = name; - for (key in source) { - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - // export native or passed - out = (own ? target : source)[key]; - // bind timers to global for call from export context - exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // extend global - if (target) redefine(target, key, out, type & $export.U); - // export - if (exports[key] != out) hide(exports, key, exp); - if (IS_PROTO && expProto[key] != out) expProto[key] = out; - } - }; - global.core = core; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports) { - - var core = module.exports = { version: '2.6.10' }; - if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(11); - var createDesc = __webpack_require__(17); - module.exports = __webpack_require__(6) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); - } : function (object, key, value) { - object[key] = value; - return object; - }; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(12); - var IE8_DOM_DEFINE = __webpack_require__(14); - var toPrimitive = __webpack_require__(16); - var dP = Object.defineProperty; - - exports.f = __webpack_require__(6) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; - }; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(13); - module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; - }; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports) { - - module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(6) && !__webpack_require__(7)(function () { - return Object.defineProperty(__webpack_require__(15)('div'), 'a', { get: function () { return 7; } }).a != 7; - }); - - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(13); - var document = __webpack_require__(4).document; - // typeof document.createElement is 'object' in old IE - var is = isObject(document) && isObject(document.createElement); - module.exports = function (it) { - return is ? document.createElement(it) : {}; - }; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(13); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); - }; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports) { - - module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; - }; - - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - - var global = __webpack_require__(4); - var hide = __webpack_require__(10); - var has = __webpack_require__(5); - var SRC = __webpack_require__(19)('src'); - var $toString = __webpack_require__(20); - var TO_STRING = 'toString'; - var TPL = ('' + $toString).split(TO_STRING); - - __webpack_require__(9).inspectSource = function (it) { - return $toString.call(it); - }; - - (module.exports = function (O, key, val, safe) { - var isFunction = typeof val == 'function'; - if (isFunction) has(val, 'name') || hide(val, 'name', key); - if (O[key] === val) return; - if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); - if (O === global) { - O[key] = val; - } else if (!safe) { - delete O[key]; - hide(O, key, val); - } else if (O[key]) { - O[key] = val; - } else { - hide(O, key, val); - } - // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative - })(Function.prototype, TO_STRING, function toString() { - return typeof this == 'function' && this[SRC] || $toString.call(this); - }); - - -/***/ }), -/* 19 */ -/***/ (function(module, exports) { - - var id = 0; - var px = Math.random(); - module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(21)('native-function-to-string', Function.toString); - - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - - var core = __webpack_require__(9); - var global = __webpack_require__(4); - var SHARED = '__core-js_shared__'; - var store = global[SHARED] || (global[SHARED] = {}); - - (module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); - })('versions', []).push({ - version: core.version, - mode: __webpack_require__(22) ? 'pure' : 'global', - copyright: '© 2019 Denis Pushkarev (zloirock.ru)' - }); - - -/***/ }), -/* 22 */ -/***/ (function(module, exports) { - - module.exports = false; - - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(24); - module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; - }; - - -/***/ }), -/* 24 */ -/***/ (function(module, exports) { - - module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; - }; - - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { - - var META = __webpack_require__(19)('meta'); - var isObject = __webpack_require__(13); - var has = __webpack_require__(5); - var setDesc = __webpack_require__(11).f; - var id = 0; - var isExtensible = Object.isExtensible || function () { - return true; - }; - var FREEZE = !__webpack_require__(7)(function () { - return isExtensible(Object.preventExtensions({})); - }); - var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - } }); - }; - var fastKey = function (it, create) { - // return primitive with prefix - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return 'F'; - // not necessary to add metadata - if (!create) return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; - }; - var getWeak = function (it, create) { - if (!has(it, META)) { - // can't set metadata to uncaught frozen object - if (!isExtensible(it)) return true; - // not necessary to add metadata - if (!create) return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; - }; - // add metadata on freeze-family methods calling - var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; - }; - var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze - }; - - -/***/ }), -/* 26 */ -/***/ (function(module, exports, __webpack_require__) { - - var def = __webpack_require__(11).f; - var has = __webpack_require__(5); - var TAG = __webpack_require__(27)('toStringTag'); - - module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); - }; - - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - - var store = __webpack_require__(21)('wks'); - var uid = __webpack_require__(19); - var Symbol = __webpack_require__(4).Symbol; - var USE_SYMBOL = typeof Symbol == 'function'; - - var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); - }; - - $exports.store = store; - - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - - exports.f = __webpack_require__(27); - - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - - var global = __webpack_require__(4); - var core = __webpack_require__(9); - var LIBRARY = __webpack_require__(22); - var wksExt = __webpack_require__(28); - var defineProperty = __webpack_require__(11).f; - module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); - }; - - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __webpack_require__) { - - // all enumerable object keys, includes symbols - var getKeys = __webpack_require__(31); - var gOPS = __webpack_require__(43); - var pIE = __webpack_require__(44); - module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; - }; - - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(32); - var enumBugKeys = __webpack_require__(42); - - module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); - }; - - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - - var has = __webpack_require__(5); - var toIObject = __webpack_require__(33); - var arrayIndexOf = __webpack_require__(37)(false); - var IE_PROTO = __webpack_require__(41)('IE_PROTO'); - - module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(34); - var defined = __webpack_require__(36); - module.exports = function (it) { - return IObject(defined(it)); - }; - - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(35); - // eslint-disable-next-line no-prototype-builtins - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); - }; - - -/***/ }), -/* 35 */ -/***/ (function(module, exports) { - - var toString = {}.toString; - - module.exports = function (it) { - return toString.call(it).slice(8, -1); - }; - - -/***/ }), -/* 36 */ -/***/ (function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; - }; - - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(33); - var toLength = __webpack_require__(38); - var toAbsoluteIndex = __webpack_require__(40); - module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - // Array#includes uses SameValueZero equality algorithm - // eslint-disable-next-line no-self-compare - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - // eslint-disable-next-line no-self-compare - if (value != value) return true; - // Array#indexOf ignores holes, Array#includes - not - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(39); - var min = Math.min; - module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - - -/***/ }), -/* 39 */ -/***/ (function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil; - var floor = Math.floor; - module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(39); - var max = Math.max; - var min = Math.min; - module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(21)('keys'); - var uid = __webpack_require__(19); - module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); - }; - - -/***/ }), -/* 42 */ -/***/ (function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - - -/***/ }), -/* 43 */ -/***/ (function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - - -/***/ }), -/* 44 */ -/***/ (function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { - - // 7.2.2 IsArray(argument) - var cof = __webpack_require__(35); - module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; - }; - - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(36); - module.exports = function (it) { - return Object(defined(it)); - }; - - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) - var anObject = __webpack_require__(12); - var dPs = __webpack_require__(48); - var enumBugKeys = __webpack_require__(42); - var IE_PROTO = __webpack_require__(41)('IE_PROTO'); - var Empty = function () { /* empty */ }; - var PROTOTYPE = 'prototype'; - - // Create object with fake `null` prototype: use iframe Object with cleared prototype - var createDict = function () { - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(15)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(49).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); - }; - - module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); - }; - - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(11); - var anObject = __webpack_require__(12); - var getKeys = __webpack_require__(31); - - module.exports = __webpack_require__(6) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; - }; - - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - - var document = __webpack_require__(4).document; - module.exports = document && document.documentElement; - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var toIObject = __webpack_require__(33); - var gOPN = __webpack_require__(51).f; - var toString = {}.toString; - - var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } - }; - - module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); - }; - - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) - var $keys = __webpack_require__(32); - var hiddenKeys = __webpack_require__(42).concat('length', 'prototype'); - - exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); - }; - - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - - var pIE = __webpack_require__(44); - var createDesc = __webpack_require__(17); - var toIObject = __webpack_require__(33); - var toPrimitive = __webpack_require__(16); - var has = __webpack_require__(5); - var IE8_DOM_DEFINE = __webpack_require__(14); - var gOPD = Object.getOwnPropertyDescriptor; - - exports.f = __webpack_require__(6) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); - }; - - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) - $export($export.S, 'Object', { create: __webpack_require__(47) }); - - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) - $export($export.S + $export.F * !__webpack_require__(6), 'Object', { defineProperty: __webpack_require__(11).f }); - - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) - $export($export.S + $export.F * !__webpack_require__(6), 'Object', { defineProperties: __webpack_require__(48) }); - - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - var toIObject = __webpack_require__(33); - var $getOwnPropertyDescriptor = __webpack_require__(52).f; - - __webpack_require__(57)('getOwnPropertyDescriptor', function () { - return function getOwnPropertyDescriptor(it, key) { - return $getOwnPropertyDescriptor(toIObject(it), key); - }; - }); - - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __webpack_require__) { - - // most Object methods by ES6 should accept primitives - var $export = __webpack_require__(8); - var core = __webpack_require__(9); - var fails = __webpack_require__(7); - module.exports = function (KEY, exec) { - var fn = (core.Object || {})[KEY] || Object[KEY]; - var exp = {}; - exp[KEY] = exec(fn); - $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); - }; - - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.9 Object.getPrototypeOf(O) - var toObject = __webpack_require__(46); - var $getPrototypeOf = __webpack_require__(59); - - __webpack_require__(57)('getPrototypeOf', function () { - return function getPrototypeOf(it) { - return $getPrototypeOf(toObject(it)); - }; - }); - - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) - var has = __webpack_require__(5); - var toObject = __webpack_require__(46); - var IE_PROTO = __webpack_require__(41)('IE_PROTO'); - var ObjectProto = Object.prototype; - - module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; - }; - - -/***/ }), -/* 60 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.14 Object.keys(O) - var toObject = __webpack_require__(46); - var $keys = __webpack_require__(31); - - __webpack_require__(57)('keys', function () { - return function keys(it) { - return $keys(toObject(it)); - }; - }); - - -/***/ }), -/* 61 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.7 Object.getOwnPropertyNames(O) - __webpack_require__(57)('getOwnPropertyNames', function () { - return __webpack_require__(50).f; - }); - - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.5 Object.freeze(O) - var isObject = __webpack_require__(13); - var meta = __webpack_require__(25).onFreeze; - - __webpack_require__(57)('freeze', function ($freeze) { - return function freeze(it) { - return $freeze && isObject(it) ? $freeze(meta(it)) : it; - }; - }); - - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.17 Object.seal(O) - var isObject = __webpack_require__(13); - var meta = __webpack_require__(25).onFreeze; - - __webpack_require__(57)('seal', function ($seal) { - return function seal(it) { - return $seal && isObject(it) ? $seal(meta(it)) : it; - }; - }); - - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.15 Object.preventExtensions(O) - var isObject = __webpack_require__(13); - var meta = __webpack_require__(25).onFreeze; - - __webpack_require__(57)('preventExtensions', function ($preventExtensions) { - return function preventExtensions(it) { - return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it; - }; - }); - - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.12 Object.isFrozen(O) - var isObject = __webpack_require__(13); - - __webpack_require__(57)('isFrozen', function ($isFrozen) { - return function isFrozen(it) { - return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; - }; - }); - - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.13 Object.isSealed(O) - var isObject = __webpack_require__(13); - - __webpack_require__(57)('isSealed', function ($isSealed) { - return function isSealed(it) { - return isObject(it) ? $isSealed ? $isSealed(it) : false : true; - }; - }); - - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.2.11 Object.isExtensible(O) - var isObject = __webpack_require__(13); - - __webpack_require__(57)('isExtensible', function ($isExtensible) { - return function isExtensible(it) { - return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false; - }; - }); - - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(8); - - $export($export.S + $export.F, 'Object', { assign: __webpack_require__(69) }); - - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var DESCRIPTORS = __webpack_require__(6); - var getKeys = __webpack_require__(31); - var gOPS = __webpack_require__(43); - var pIE = __webpack_require__(44); - var toObject = __webpack_require__(46); - var IObject = __webpack_require__(34); - var $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(7)(function () { - var A = {}; - var B = {}; - // eslint-disable-next-line no-undef - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source) { // eslint-disable-line no-unused-vars - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) { - key = keys[j++]; - if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; - } - } return T; - } : $assign; - - -/***/ }), -/* 70 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.3.10 Object.is(value1, value2) - var $export = __webpack_require__(8); - $export($export.S, 'Object', { is: __webpack_require__(71) }); - - -/***/ }), -/* 71 */ -/***/ (function(module, exports) { - - // 7.2.9 SameValue(x, y) - module.exports = Object.is || function is(x, y) { - // eslint-disable-next-line no-self-compare - return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; - }; - - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.1.3.19 Object.setPrototypeOf(O, proto) - var $export = __webpack_require__(8); - $export($export.S, 'Object', { setPrototypeOf: __webpack_require__(73).set }); - - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - - // Works with __proto__ only. Old v8 can't work with null proto objects. - /* eslint-disable no-proto */ - var isObject = __webpack_require__(13); - var anObject = __webpack_require__(12); - var check = function (O, proto) { - anObject(O); - if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); - }; - module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line - function (test, buggy, set) { - try { - set = __webpack_require__(23)(Function.call, __webpack_require__(52).f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch (e) { buggy = true; } - return function setPrototypeOf(O, proto) { - check(O, proto); - if (buggy) O.__proto__ = proto; - else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check - }; - - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.3.6 Object.prototype.toString() - var classof = __webpack_require__(75); - var test = {}; - test[__webpack_require__(27)('toStringTag')] = 'z'; - if (test + '' != '[object z]') { - __webpack_require__(18)(Object.prototype, 'toString', function toString() { - return '[object ' + classof(this) + ']'; - }, true); - } - - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - - // getting tag from 19.1.3.6 Object.prototype.toString() - var cof = __webpack_require__(35); - var TAG = __webpack_require__(27)('toStringTag'); - // ES3 wrong here - var ARG = cof(function () { return arguments; }()) == 'Arguments'; - - // fallback for IE11 Script Access Denied error - var tryGet = function (it, key) { - try { - return it[key]; - } catch (e) { /* empty */ } - }; - - module.exports = function (it) { - var O, T, B; - return it === undefined ? 'Undefined' : it === null ? 'Null' - // @@toStringTag case - : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T - // builtinTag case - : ARG ? cof(O) - // ES3 arguments fallback - : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; - }; - - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { - - // 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) - var $export = __webpack_require__(8); - - $export($export.P, 'Function', { bind: __webpack_require__(77) }); - - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var aFunction = __webpack_require__(24); - var isObject = __webpack_require__(13); - var invoke = __webpack_require__(78); - var arraySlice = [].slice; - var factories = {}; - - var construct = function (F, len, args) { - if (!(len in factories)) { - for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']'; - // eslint-disable-next-line no-new-func - factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); - } return factories[len](F, args); - }; - - module.exports = Function.bind || function bind(that /* , ...args */) { - var fn = aFunction(this); - var partArgs = arraySlice.call(arguments, 1); - var bound = function (/* args... */) { - var args = partArgs.concat(arraySlice.call(arguments)); - return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); - }; - if (isObject(fn.prototype)) bound.prototype = fn.prototype; - return bound; - }; - - -/***/ }), -/* 78 */ -/***/ (function(module, exports) { - - // fast apply, http://jsperf.lnkit.com/fast-apply/5 - module.exports = function (fn, args, that) { - var un = that === undefined; - switch (args.length) { - case 0: return un ? fn() - : fn.call(that); - case 1: return un ? fn(args[0]) - : fn.call(that, args[0]); - case 2: return un ? fn(args[0], args[1]) - : fn.call(that, args[0], args[1]); - case 3: return un ? fn(args[0], args[1], args[2]) - : fn.call(that, args[0], args[1], args[2]); - case 4: return un ? fn(args[0], args[1], args[2], args[3]) - : fn.call(that, args[0], args[1], args[2], args[3]); - } return fn.apply(that, args); - }; - - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(11).f; - var FProto = Function.prototype; - var nameRE = /^\s*function ([^ (]*)/; - var NAME = 'name'; - - // 19.2.4.2 name - NAME in FProto || __webpack_require__(6) && dP(FProto, NAME, { - configurable: true, - get: function () { - try { - return ('' + this).match(nameRE)[1]; - } catch (e) { - return ''; - } - } - }); - - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var isObject = __webpack_require__(13); - var getPrototypeOf = __webpack_require__(59); - var HAS_INSTANCE = __webpack_require__(27)('hasInstance'); - var FunctionProto = Function.prototype; - // 19.2.3.6 Function.prototype[@@hasInstance](V) - if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(11).f(FunctionProto, HAS_INSTANCE, { value: function (O) { - if (typeof this != 'function' || !isObject(O)) return false; - if (!isObject(this.prototype)) return O instanceof this; - // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: - while (O = getPrototypeOf(O)) if (this.prototype === O) return true; - return false; - } }); - - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - var $parseInt = __webpack_require__(82); - // 18.2.5 parseInt(string, radix) - $export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt }); - - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __webpack_require__) { - - var $parseInt = __webpack_require__(4).parseInt; - var $trim = __webpack_require__(83).trim; - var ws = __webpack_require__(84); - var hex = /^[-+]?0[xX]/; - - module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) { - var string = $trim(String(str), 3); - return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10)); - } : $parseInt; - - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - var defined = __webpack_require__(36); - var fails = __webpack_require__(7); - var spaces = __webpack_require__(84); - var space = '[' + spaces + ']'; - var non = '\u200b\u0085'; - var ltrim = RegExp('^' + space + space + '*'); - var rtrim = RegExp(space + space + '*$'); - - var exporter = function (KEY, exec, ALIAS) { - var exp = {}; - var FORCE = fails(function () { - return !!spaces[KEY]() || non[KEY]() != non; - }); - var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; - if (ALIAS) exp[ALIAS] = fn; - $export($export.P + $export.F * FORCE, 'String', exp); - }; - - // 1 -> String#trimLeft - // 2 -> String#trimRight - // 3 -> String#trim - var trim = exporter.trim = function (string, TYPE) { - string = String(defined(string)); - if (TYPE & 1) string = string.replace(ltrim, ''); - if (TYPE & 2) string = string.replace(rtrim, ''); - return string; - }; - - module.exports = exporter; - - -/***/ }), -/* 84 */ -/***/ (function(module, exports) { - - module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; - - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - var $parseFloat = __webpack_require__(86); - // 18.2.4 parseFloat(string) - $export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat }); - - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __webpack_require__) { - - var $parseFloat = __webpack_require__(4).parseFloat; - var $trim = __webpack_require__(83).trim; - - module.exports = 1 / $parseFloat(__webpack_require__(84) + '-0') !== -Infinity ? function parseFloat(str) { - var string = $trim(String(str), 3); - var result = $parseFloat(string); - return result === 0 && string.charAt(0) == '-' ? -0 : result; - } : $parseFloat; - - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var global = __webpack_require__(4); - var has = __webpack_require__(5); - var cof = __webpack_require__(35); - var inheritIfRequired = __webpack_require__(88); - var toPrimitive = __webpack_require__(16); - var fails = __webpack_require__(7); - var gOPN = __webpack_require__(51).f; - var gOPD = __webpack_require__(52).f; - var dP = __webpack_require__(11).f; - var $trim = __webpack_require__(83).trim; - var NUMBER = 'Number'; - var $Number = global[NUMBER]; - var Base = $Number; - var proto = $Number.prototype; - // Opera ~12 has broken Object#toString - var BROKEN_COF = cof(__webpack_require__(47)(proto)) == NUMBER; - var TRIM = 'trim' in String.prototype; - - // 7.1.3 ToNumber(argument) - var toNumber = function (argument) { - var it = toPrimitive(argument, false); - if (typeof it == 'string' && it.length > 2) { - it = TRIM ? it.trim() : $trim(it, 3); - var first = it.charCodeAt(0); - var third, radix, maxCode; - if (first === 43 || first === 45) { - third = it.charCodeAt(2); - if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix - } else if (first === 48) { - switch (it.charCodeAt(1)) { - case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i - case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i - default: return +it; - } - for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) { - code = digits.charCodeAt(i); - // parseInt parses a string to a first unavailable symbol - // but ToNumber should return NaN if a string contains unavailable symbols - if (code < 48 || code > maxCode) return NaN; - } return parseInt(digits, radix); - } - } return +it; - }; - - if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) { - $Number = function Number(value) { - var it = arguments.length < 1 ? 0 : value; - var that = this; - return that instanceof $Number - // check on 1..constructor(foo) case - && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER) - ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it); - }; - for (var keys = __webpack_require__(6) ? gOPN(Base) : ( - // ES3: - 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + - // ES6 (in case, if modules with ES6 Number statics required before): - 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + - 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' - ).split(','), j = 0, key; keys.length > j; j++) { - if (has(Base, key = keys[j]) && !has($Number, key)) { - dP($Number, key, gOPD(Base, key)); - } - } - $Number.prototype = proto; - proto.constructor = $Number; - __webpack_require__(18)(global, NUMBER, $Number); - } - - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(13); - var setPrototypeOf = __webpack_require__(73).set; - module.exports = function (that, target, C) { - var S = target.constructor; - var P; - if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { - setPrototypeOf(that, P); - } return that; - }; - - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var toInteger = __webpack_require__(39); - var aNumberValue = __webpack_require__(90); - var repeat = __webpack_require__(91); - var $toFixed = 1.0.toFixed; - var floor = Math.floor; - var data = [0, 0, 0, 0, 0, 0]; - var ERROR = 'Number.toFixed: incorrect invocation!'; - var ZERO = '0'; - - var multiply = function (n, c) { - var i = -1; - var c2 = c; - while (++i < 6) { - c2 += n * data[i]; - data[i] = c2 % 1e7; - c2 = floor(c2 / 1e7); - } - }; - var divide = function (n) { - var i = 6; - var c = 0; - while (--i >= 0) { - c += data[i]; - data[i] = floor(c / n); - c = (c % n) * 1e7; - } - }; - var numToString = function () { - var i = 6; - var s = ''; - while (--i >= 0) { - if (s !== '' || i === 0 || data[i] !== 0) { - var t = String(data[i]); - s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t; - } - } return s; - }; - var pow = function (x, n, acc) { - return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); - }; - var log = function (x) { - var n = 0; - var x2 = x; - while (x2 >= 4096) { - n += 12; - x2 /= 4096; - } - while (x2 >= 2) { - n += 1; - x2 /= 2; - } return n; - }; - - $export($export.P + $export.F * (!!$toFixed && ( - 0.00008.toFixed(3) !== '0.000' || - 0.9.toFixed(0) !== '1' || - 1.255.toFixed(2) !== '1.25' || - 1000000000000000128.0.toFixed(0) !== '1000000000000000128' - ) || !__webpack_require__(7)(function () { - // V8 ~ Android 4.3- - $toFixed.call({}); - })), 'Number', { - toFixed: function toFixed(fractionDigits) { - var x = aNumberValue(this, ERROR); - var f = toInteger(fractionDigits); - var s = ''; - var m = ZERO; - var e, z, j, k; - if (f < 0 || f > 20) throw RangeError(ERROR); - // eslint-disable-next-line no-self-compare - if (x != x) return 'NaN'; - if (x <= -1e21 || x >= 1e21) return String(x); - if (x < 0) { - s = '-'; - x = -x; - } - if (x > 1e-21) { - e = log(x * pow(2, 69, 1)) - 69; - z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1); - z *= 0x10000000000000; - e = 52 - e; - if (e > 0) { - multiply(0, z); - j = f; - while (j >= 7) { - multiply(1e7, 0); - j -= 7; - } - multiply(pow(10, j, 1), 0); - j = e - 1; - while (j >= 23) { - divide(1 << 23); - j -= 23; - } - divide(1 << j); - multiply(1, 1); - divide(2); - m = numToString(); - } else { - multiply(0, z); - multiply(1 << -e, 0); - m = numToString() + repeat.call(ZERO, f); - } - } - if (f > 0) { - k = m.length; - m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f)); - } else { - m = s + m; - } return m; - } - }); - - -/***/ }), -/* 90 */ -/***/ (function(module, exports, __webpack_require__) { - - var cof = __webpack_require__(35); - module.exports = function (it, msg) { - if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg); - return +it; - }; - - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var toInteger = __webpack_require__(39); - var defined = __webpack_require__(36); - - module.exports = function repeat(count) { - var str = String(defined(this)); - var res = ''; - var n = toInteger(count); - if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); - for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str; - return res; - }; - - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var $fails = __webpack_require__(7); - var aNumberValue = __webpack_require__(90); - var $toPrecision = 1.0.toPrecision; - - $export($export.P + $export.F * ($fails(function () { - // IE7- - return $toPrecision.call(1, undefined) !== '1'; - }) || !$fails(function () { - // V8 ~ Android 4.3- - $toPrecision.call({}); - })), 'Number', { - toPrecision: function toPrecision(precision) { - var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!'); - return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); - } - }); - - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.1.2.1 Number.EPSILON - var $export = __webpack_require__(8); - - $export($export.S, 'Number', { EPSILON: Math.pow(2, -52) }); - - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.1.2.2 Number.isFinite(number) - var $export = __webpack_require__(8); - var _isFinite = __webpack_require__(4).isFinite; - - $export($export.S, 'Number', { - isFinite: function isFinite(it) { - return typeof it == 'number' && _isFinite(it); - } - }); - - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.1.2.3 Number.isInteger(number) - var $export = __webpack_require__(8); - - $export($export.S, 'Number', { isInteger: __webpack_require__(96) }); - - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.1.2.3 Number.isInteger(number) - var isObject = __webpack_require__(13); - var floor = Math.floor; - module.exports = function isInteger(it) { - return !isObject(it) && isFinite(it) && floor(it) === it; - }; - - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.1.2.4 Number.isNaN(number) - var $export = __webpack_require__(8); - - $export($export.S, 'Number', { - isNaN: function isNaN(number) { - // eslint-disable-next-line no-self-compare - return number != number; - } - }); - - -/***/ }), -/* 98 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.1.2.5 Number.isSafeInteger(number) - var $export = __webpack_require__(8); - var isInteger = __webpack_require__(96); - var abs = Math.abs; - - $export($export.S, 'Number', { - isSafeInteger: function isSafeInteger(number) { - return isInteger(number) && abs(number) <= 0x1fffffffffffff; - } - }); - - -/***/ }), -/* 99 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.1.2.6 Number.MAX_SAFE_INTEGER - var $export = __webpack_require__(8); - - $export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff }); - - -/***/ }), -/* 100 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.1.2.10 Number.MIN_SAFE_INTEGER - var $export = __webpack_require__(8); - - $export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff }); - - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - var $parseFloat = __webpack_require__(86); - // 20.1.2.12 Number.parseFloat(string) - $export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat }); - - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - var $parseInt = __webpack_require__(82); - // 20.1.2.13 Number.parseInt(string, radix) - $export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt }); - - -/***/ }), -/* 103 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.3 Math.acosh(x) - var $export = __webpack_require__(8); - var log1p = __webpack_require__(104); - var sqrt = Math.sqrt; - var $acosh = Math.acosh; - - $export($export.S + $export.F * !($acosh - // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 - && Math.floor($acosh(Number.MAX_VALUE)) == 710 - // Tor Browser bug: Math.acosh(Infinity) -> NaN - && $acosh(Infinity) == Infinity - ), 'Math', { - acosh: function acosh(x) { - return (x = +x) < 1 ? NaN : x > 94906265.62425156 - ? Math.log(x) + Math.LN2 - : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); - } - }); - - -/***/ }), -/* 104 */ -/***/ (function(module, exports) { - - // 20.2.2.20 Math.log1p(x) - module.exports = Math.log1p || function log1p(x) { - return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x); - }; - - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.5 Math.asinh(x) - var $export = __webpack_require__(8); - var $asinh = Math.asinh; - - function asinh(x) { - return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1)); - } - - // Tor Browser bug: Math.asinh(0) -> -0 - $export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh }); - - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.7 Math.atanh(x) - var $export = __webpack_require__(8); - var $atanh = Math.atanh; - - // Tor Browser bug: Math.atanh(-0) -> 0 - $export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', { - atanh: function atanh(x) { - return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2; - } - }); - - -/***/ }), -/* 107 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.9 Math.cbrt(x) - var $export = __webpack_require__(8); - var sign = __webpack_require__(108); - - $export($export.S, 'Math', { - cbrt: function cbrt(x) { - return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3); - } - }); - - -/***/ }), -/* 108 */ -/***/ (function(module, exports) { - - // 20.2.2.28 Math.sign(x) - module.exports = Math.sign || function sign(x) { - // eslint-disable-next-line no-self-compare - return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; - }; - - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.11 Math.clz32(x) - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { - clz32: function clz32(x) { - return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32; - } - }); - - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.12 Math.cosh(x) - var $export = __webpack_require__(8); - var exp = Math.exp; - - $export($export.S, 'Math', { - cosh: function cosh(x) { - return (exp(x = +x) + exp(-x)) / 2; - } - }); - - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.14 Math.expm1(x) - var $export = __webpack_require__(8); - var $expm1 = __webpack_require__(112); - - $export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 }); - - -/***/ }), -/* 112 */ -/***/ (function(module, exports) { - - // 20.2.2.14 Math.expm1(x) - var $expm1 = Math.expm1; - module.exports = (!$expm1 - // Old FF bug - || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 - // Tor Browser bug - || $expm1(-2e-17) != -2e-17 - ) ? function expm1(x) { - return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1; - } : $expm1; - - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.16 Math.fround(x) - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { fround: __webpack_require__(114) }); - - -/***/ }), -/* 114 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.16 Math.fround(x) - var sign = __webpack_require__(108); - var pow = Math.pow; - var EPSILON = pow(2, -52); - var EPSILON32 = pow(2, -23); - var MAX32 = pow(2, 127) * (2 - EPSILON32); - var MIN32 = pow(2, -126); - - var roundTiesToEven = function (n) { - return n + 1 / EPSILON - 1 / EPSILON; - }; - - module.exports = Math.fround || function fround(x) { - var $abs = Math.abs(x); - var $sign = sign(x); - var a, result; - if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; - a = (1 + EPSILON32 / EPSILON) * $abs; - result = a - (a - $abs); - // eslint-disable-next-line no-self-compare - if (result > MAX32 || result != result) return $sign * Infinity; - return $sign * result; - }; - - -/***/ }), -/* 115 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.17 Math.hypot([value1[, value2[, … ]]]) - var $export = __webpack_require__(8); - var abs = Math.abs; - - $export($export.S, 'Math', { - hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars - var sum = 0; - var i = 0; - var aLen = arguments.length; - var larg = 0; - var arg, div; - while (i < aLen) { - arg = abs(arguments[i++]); - if (larg < arg) { - div = larg / arg; - sum = sum * div * div + 1; - larg = arg; - } else if (arg > 0) { - div = arg / larg; - sum += div * div; - } else sum += arg; - } - return larg === Infinity ? Infinity : larg * Math.sqrt(sum); - } - }); - - -/***/ }), -/* 116 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.18 Math.imul(x, y) - var $export = __webpack_require__(8); - var $imul = Math.imul; - - // some WebKit versions fails with big numbers, some has wrong arity - $export($export.S + $export.F * __webpack_require__(7)(function () { - return $imul(0xffffffff, 5) != -5 || $imul.length != 2; - }), 'Math', { - imul: function imul(x, y) { - var UINT16 = 0xffff; - var xn = +x; - var yn = +y; - var xl = UINT16 & xn; - var yl = UINT16 & yn; - return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); - } - }); - - -/***/ }), -/* 117 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.21 Math.log10(x) - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { - log10: function log10(x) { - return Math.log(x) * Math.LOG10E; - } - }); - - -/***/ }), -/* 118 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.20 Math.log1p(x) - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { log1p: __webpack_require__(104) }); - - -/***/ }), -/* 119 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.22 Math.log2(x) - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { - log2: function log2(x) { - return Math.log(x) / Math.LN2; - } - }); - - -/***/ }), -/* 120 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.28 Math.sign(x) - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { sign: __webpack_require__(108) }); - - -/***/ }), -/* 121 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.30 Math.sinh(x) - var $export = __webpack_require__(8); - var expm1 = __webpack_require__(112); - var exp = Math.exp; - - // V8 near Chromium 38 has a problem with very small numbers - $export($export.S + $export.F * __webpack_require__(7)(function () { - return !Math.sinh(-2e-17) != -2e-17; - }), 'Math', { - sinh: function sinh(x) { - return Math.abs(x = +x) < 1 - ? (expm1(x) - expm1(-x)) / 2 - : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2); - } - }); - - -/***/ }), -/* 122 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.33 Math.tanh(x) - var $export = __webpack_require__(8); - var expm1 = __webpack_require__(112); - var exp = Math.exp; - - $export($export.S, 'Math', { - tanh: function tanh(x) { - var a = expm1(x = +x); - var b = expm1(-x); - return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); - } - }); - - -/***/ }), -/* 123 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.2.2.34 Math.trunc(x) - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { - trunc: function trunc(it) { - return (it > 0 ? Math.floor : Math.ceil)(it); - } - }); - - -/***/ }), -/* 124 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - var toAbsoluteIndex = __webpack_require__(40); - var fromCharCode = String.fromCharCode; - var $fromCodePoint = String.fromCodePoint; - - // length should be 1, old FF problem - $export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { - // 21.1.2.2 String.fromCodePoint(...codePoints) - fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars - var res = []; - var aLen = arguments.length; - var i = 0; - var code; - while (aLen > i) { - code = +arguments[i++]; - if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); - res.push(code < 0x10000 - ? fromCharCode(code) - : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00) - ); - } return res.join(''); - } - }); - - -/***/ }), -/* 125 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - var toIObject = __webpack_require__(33); - var toLength = __webpack_require__(38); - - $export($export.S, 'String', { - // 21.1.2.4 String.raw(callSite, ...substitutions) - raw: function raw(callSite) { - var tpl = toIObject(callSite.raw); - var len = toLength(tpl.length); - var aLen = arguments.length; - var res = []; - var i = 0; - while (len > i) { - res.push(String(tpl[i++])); - if (i < aLen) res.push(String(arguments[i])); - } return res.join(''); - } - }); - - -/***/ }), -/* 126 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // 21.1.3.25 String.prototype.trim() - __webpack_require__(83)('trim', function ($trim) { - return function trim() { - return $trim(this, 3); - }; - }); - - -/***/ }), -/* 127 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $at = __webpack_require__(128)(true); - - // 21.1.3.27 String.prototype[@@iterator]() - __webpack_require__(129)(String, 'String', function (iterated) { - this._t = String(iterated); // target - this._i = 0; // next index - // 21.1.5.2.1 %StringIteratorPrototype%.next() - }, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; - }); - - -/***/ }), -/* 128 */ -/***/ (function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(39); - var defined = __webpack_require__(36); - // true -> String#at - // false -> String#codePointAt - module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; - }; - - -/***/ }), -/* 129 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var LIBRARY = __webpack_require__(22); - var $export = __webpack_require__(8); - var redefine = __webpack_require__(18); - var hide = __webpack_require__(10); - var Iterators = __webpack_require__(130); - var $iterCreate = __webpack_require__(131); - var setToStringTag = __webpack_require__(26); - var getPrototypeOf = __webpack_require__(59); - var ITERATOR = __webpack_require__(27)('iterator'); - var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` - var FF_ITERATOR = '@@iterator'; - var KEYS = 'keys'; - var VALUES = 'values'; - - var returnThis = function () { return this; }; - - module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - // Fix native - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - // Define iterator - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; - }; - - -/***/ }), -/* 130 */ -/***/ (function(module, exports) { - - module.exports = {}; - - -/***/ }), -/* 131 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var create = __webpack_require__(47); - var descriptor = __webpack_require__(17); - var setToStringTag = __webpack_require__(26); - var IteratorPrototype = {}; - - // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - __webpack_require__(10)(IteratorPrototype, __webpack_require__(27)('iterator'), function () { return this; }); - - module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); - }; - - -/***/ }), -/* 132 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var $at = __webpack_require__(128)(false); - $export($export.P, 'String', { - // 21.1.3.3 String.prototype.codePointAt(pos) - codePointAt: function codePointAt(pos) { - return $at(this, pos); - } - }); - - -/***/ }), -/* 133 */ -/***/ (function(module, exports, __webpack_require__) { - - // 21.1.3.6 String.prototype.endsWith(searchString [, endPosition]) - 'use strict'; - var $export = __webpack_require__(8); - var toLength = __webpack_require__(38); - var context = __webpack_require__(134); - var ENDS_WITH = 'endsWith'; - var $endsWith = ''[ENDS_WITH]; - - $export($export.P + $export.F * __webpack_require__(136)(ENDS_WITH), 'String', { - endsWith: function endsWith(searchString /* , endPosition = @length */) { - var that = context(this, searchString, ENDS_WITH); - var endPosition = arguments.length > 1 ? arguments[1] : undefined; - var len = toLength(that.length); - var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); - var search = String(searchString); - return $endsWith - ? $endsWith.call(that, search, end) - : that.slice(end - search.length, end) === search; - } - }); - - -/***/ }), -/* 134 */ -/***/ (function(module, exports, __webpack_require__) { - - // helper for String#{startsWith, endsWith, includes} - var isRegExp = __webpack_require__(135); - var defined = __webpack_require__(36); - - module.exports = function (that, searchString, NAME) { - if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); - return String(defined(that)); - }; - - -/***/ }), -/* 135 */ -/***/ (function(module, exports, __webpack_require__) { - - // 7.2.8 IsRegExp(argument) - var isObject = __webpack_require__(13); - var cof = __webpack_require__(35); - var MATCH = __webpack_require__(27)('match'); - module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); - }; - - -/***/ }), -/* 136 */ -/***/ (function(module, exports, __webpack_require__) { - - var MATCH = __webpack_require__(27)('match'); - module.exports = function (KEY) { - var re = /./; - try { - '/./'[KEY](re); - } catch (e) { - try { - re[MATCH] = false; - return !'/./'[KEY](re); - } catch (f) { /* empty */ } - } return true; - }; - - -/***/ }), -/* 137 */ -/***/ (function(module, exports, __webpack_require__) { - - // 21.1.3.7 String.prototype.includes(searchString, position = 0) - 'use strict'; - var $export = __webpack_require__(8); - var context = __webpack_require__(134); - var INCLUDES = 'includes'; - - $export($export.P + $export.F * __webpack_require__(136)(INCLUDES), 'String', { - includes: function includes(searchString /* , position = 0 */) { - return !!~context(this, searchString, INCLUDES) - .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - -/***/ }), -/* 138 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - - $export($export.P, 'String', { - // 21.1.3.13 String.prototype.repeat(count) - repeat: __webpack_require__(91) - }); - - -/***/ }), -/* 139 */ -/***/ (function(module, exports, __webpack_require__) { - - // 21.1.3.18 String.prototype.startsWith(searchString [, position ]) - 'use strict'; - var $export = __webpack_require__(8); - var toLength = __webpack_require__(38); - var context = __webpack_require__(134); - var STARTS_WITH = 'startsWith'; - var $startsWith = ''[STARTS_WITH]; - - $export($export.P + $export.F * __webpack_require__(136)(STARTS_WITH), 'String', { - startsWith: function startsWith(searchString /* , position = 0 */) { - var that = context(this, searchString, STARTS_WITH); - var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); - var search = String(searchString); - return $startsWith - ? $startsWith.call(that, search, index) - : that.slice(index, index + search.length) === search; - } - }); - - -/***/ }), -/* 140 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.2 String.prototype.anchor(name) - __webpack_require__(141)('anchor', function (createHTML) { - return function anchor(name) { - return createHTML(this, 'a', 'name', name); - }; - }); - - -/***/ }), -/* 141 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - var fails = __webpack_require__(7); - var defined = __webpack_require__(36); - var quot = /"/g; - // B.2.3.2.1 CreateHTML(string, tag, attribute, value) - var createHTML = function (string, tag, attribute, value) { - var S = String(defined(string)); - var p1 = '<' + tag; - if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; - return p1 + '>' + S + ''; - }; - module.exports = function (NAME, exec) { - var O = {}; - O[NAME] = exec(createHTML); - $export($export.P + $export.F * fails(function () { - var test = ''[NAME]('"'); - return test !== test.toLowerCase() || test.split('"').length > 3; - }), 'String', O); - }; - - -/***/ }), -/* 142 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.3 String.prototype.big() - __webpack_require__(141)('big', function (createHTML) { - return function big() { - return createHTML(this, 'big', '', ''); - }; - }); - - -/***/ }), -/* 143 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.4 String.prototype.blink() - __webpack_require__(141)('blink', function (createHTML) { - return function blink() { - return createHTML(this, 'blink', '', ''); - }; - }); - - -/***/ }), -/* 144 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.5 String.prototype.bold() - __webpack_require__(141)('bold', function (createHTML) { - return function bold() { - return createHTML(this, 'b', '', ''); - }; - }); - - -/***/ }), -/* 145 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.6 String.prototype.fixed() - __webpack_require__(141)('fixed', function (createHTML) { - return function fixed() { - return createHTML(this, 'tt', '', ''); - }; - }); - - -/***/ }), -/* 146 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.7 String.prototype.fontcolor(color) - __webpack_require__(141)('fontcolor', function (createHTML) { - return function fontcolor(color) { - return createHTML(this, 'font', 'color', color); - }; - }); - - -/***/ }), -/* 147 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.8 String.prototype.fontsize(size) - __webpack_require__(141)('fontsize', function (createHTML) { - return function fontsize(size) { - return createHTML(this, 'font', 'size', size); - }; - }); - - -/***/ }), -/* 148 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.9 String.prototype.italics() - __webpack_require__(141)('italics', function (createHTML) { - return function italics() { - return createHTML(this, 'i', '', ''); - }; - }); - - -/***/ }), -/* 149 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.10 String.prototype.link(url) - __webpack_require__(141)('link', function (createHTML) { - return function link(url) { - return createHTML(this, 'a', 'href', url); - }; - }); - - -/***/ }), -/* 150 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.11 String.prototype.small() - __webpack_require__(141)('small', function (createHTML) { - return function small() { - return createHTML(this, 'small', '', ''); - }; - }); - - -/***/ }), -/* 151 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.12 String.prototype.strike() - __webpack_require__(141)('strike', function (createHTML) { - return function strike() { - return createHTML(this, 'strike', '', ''); - }; - }); - - -/***/ }), -/* 152 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.13 String.prototype.sub() - __webpack_require__(141)('sub', function (createHTML) { - return function sub() { - return createHTML(this, 'sub', '', ''); - }; - }); - - -/***/ }), -/* 153 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // B.2.3.14 String.prototype.sup() - __webpack_require__(141)('sup', function (createHTML) { - return function sup() { - return createHTML(this, 'sup', '', ''); - }; - }); - - -/***/ }), -/* 154 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.3.3.1 / 15.9.4.4 Date.now() - var $export = __webpack_require__(8); - - $export($export.S, 'Date', { now: function () { return new Date().getTime(); } }); - - -/***/ }), -/* 155 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var toObject = __webpack_require__(46); - var toPrimitive = __webpack_require__(16); - - $export($export.P + $export.F * __webpack_require__(7)(function () { - return new Date(NaN).toJSON() !== null - || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; - }), 'Date', { - // eslint-disable-next-line no-unused-vars - toJSON: function toJSON(key) { - var O = toObject(this); - var pv = toPrimitive(O); - return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); - } - }); - - -/***/ }), -/* 156 */ -/***/ (function(module, exports, __webpack_require__) { - - // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() - var $export = __webpack_require__(8); - var toISOString = __webpack_require__(157); - - // PhantomJS / old WebKit has a broken implementations - $export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', { - toISOString: toISOString - }); - - -/***/ }), -/* 157 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() - var fails = __webpack_require__(7); - var getTime = Date.prototype.getTime; - var $toISOString = Date.prototype.toISOString; - - var lz = function (num) { - return num > 9 ? num : '0' + num; - }; - - // PhantomJS / old WebKit has a broken implementations - module.exports = (fails(function () { - return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; - }) || !fails(function () { - $toISOString.call(new Date(NaN)); - })) ? function toISOString() { - if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); - var d = this; - var y = d.getUTCFullYear(); - var m = d.getUTCMilliseconds(); - var s = y < 0 ? '-' : y > 9999 ? '+' : ''; - return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + - '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + - 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + - ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; - } : $toISOString; - - -/***/ }), -/* 158 */ -/***/ (function(module, exports, __webpack_require__) { - - var DateProto = Date.prototype; - var INVALID_DATE = 'Invalid Date'; - var TO_STRING = 'toString'; - var $toString = DateProto[TO_STRING]; - var getTime = DateProto.getTime; - if (new Date(NaN) + '' != INVALID_DATE) { - __webpack_require__(18)(DateProto, TO_STRING, function toString() { - var value = getTime.call(this); - // eslint-disable-next-line no-self-compare - return value === value ? $toString.call(this) : INVALID_DATE; - }); - } - - -/***/ }), -/* 159 */ -/***/ (function(module, exports, __webpack_require__) { - - var TO_PRIMITIVE = __webpack_require__(27)('toPrimitive'); - var proto = Date.prototype; - - if (!(TO_PRIMITIVE in proto)) __webpack_require__(10)(proto, TO_PRIMITIVE, __webpack_require__(160)); - - -/***/ }), -/* 160 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var anObject = __webpack_require__(12); - var toPrimitive = __webpack_require__(16); - var NUMBER = 'number'; - - module.exports = function (hint) { - if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint'); - return toPrimitive(anObject(this), hint != NUMBER); - }; - - -/***/ }), -/* 161 */ -/***/ (function(module, exports, __webpack_require__) { - - // 22.1.2.2 / 15.4.3.2 Array.isArray(arg) - var $export = __webpack_require__(8); - - $export($export.S, 'Array', { isArray: __webpack_require__(45) }); - - -/***/ }), -/* 162 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var ctx = __webpack_require__(23); - var $export = __webpack_require__(8); - var toObject = __webpack_require__(46); - var call = __webpack_require__(163); - var isArrayIter = __webpack_require__(164); - var toLength = __webpack_require__(38); - var createProperty = __webpack_require__(165); - var getIterFn = __webpack_require__(166); - - $export($export.S + $export.F * !__webpack_require__(167)(function (iter) { Array.from(iter); }), 'Array', { - // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) - from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var aLen = arguments.length; - var mapfn = aLen > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var index = 0; - var iterFn = getIterFn(O); - var length, result, step, iterator; - if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); - // if object isn't iterable or it's array with default iterator - use simple case - if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { - for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { - createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); - } - } else { - length = toLength(O.length); - for (result = new C(length); length > index; index++) { - createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); - } - } - result.length = index; - return result; - } - }); - - -/***/ }), -/* 163 */ -/***/ (function(module, exports, __webpack_require__) { - - // call something on iterator step with safe closing on error - var anObject = __webpack_require__(12); - module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - // 7.4.6 IteratorClose(iterator, completion) - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; - } - }; - - -/***/ }), -/* 164 */ -/***/ (function(module, exports, __webpack_require__) { - - // check on default Array iterator - var Iterators = __webpack_require__(130); - var ITERATOR = __webpack_require__(27)('iterator'); - var ArrayProto = Array.prototype; - - module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); - }; - - -/***/ }), -/* 165 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $defineProperty = __webpack_require__(11); - var createDesc = __webpack_require__(17); - - module.exports = function (object, index, value) { - if (index in object) $defineProperty.f(object, index, createDesc(0, value)); - else object[index] = value; - }; - - -/***/ }), -/* 166 */ -/***/ (function(module, exports, __webpack_require__) { - - var classof = __webpack_require__(75); - var ITERATOR = __webpack_require__(27)('iterator'); - var Iterators = __webpack_require__(130); - module.exports = __webpack_require__(9).getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; - }; - - -/***/ }), -/* 167 */ -/***/ (function(module, exports, __webpack_require__) { - - var ITERATOR = __webpack_require__(27)('iterator'); - var SAFE_CLOSING = false; - - try { - var riter = [7][ITERATOR](); - riter['return'] = function () { SAFE_CLOSING = true; }; - // eslint-disable-next-line no-throw-literal - Array.from(riter, function () { throw 2; }); - } catch (e) { /* empty */ } - - module.exports = function (exec, skipClosing) { - if (!skipClosing && !SAFE_CLOSING) return false; - var safe = false; - try { - var arr = [7]; - var iter = arr[ITERATOR](); - iter.next = function () { return { done: safe = true }; }; - arr[ITERATOR] = function () { return iter; }; - exec(arr); - } catch (e) { /* empty */ } - return safe; - }; - - -/***/ }), -/* 168 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var createProperty = __webpack_require__(165); - - // WebKit Array.of isn't generic - $export($export.S + $export.F * __webpack_require__(7)(function () { - function F() { /* empty */ } - return !(Array.of.call(F) instanceof F); - }), 'Array', { - // 22.1.2.3 Array.of( ...items) - of: function of(/* ...args */) { - var index = 0; - var aLen = arguments.length; - var result = new (typeof this == 'function' ? this : Array)(aLen); - while (aLen > index) createProperty(result, index, arguments[index++]); - result.length = aLen; - return result; - } - }); - - -/***/ }), -/* 169 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // 22.1.3.13 Array.prototype.join(separator) - var $export = __webpack_require__(8); - var toIObject = __webpack_require__(33); - var arrayJoin = [].join; - - // fallback for not array-like strings - $export($export.P + $export.F * (__webpack_require__(34) != Object || !__webpack_require__(170)(arrayJoin)), 'Array', { - join: function join(separator) { - return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator); - } - }); - - -/***/ }), -/* 170 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var fails = __webpack_require__(7); - - module.exports = function (method, arg) { - return !!method && fails(function () { - // eslint-disable-next-line no-useless-call - arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null); - }); - }; - - -/***/ }), -/* 171 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var html = __webpack_require__(49); - var cof = __webpack_require__(35); - var toAbsoluteIndex = __webpack_require__(40); - var toLength = __webpack_require__(38); - var arraySlice = [].slice; - - // fallback for not array-like ES3 strings and DOM objects - $export($export.P + $export.F * __webpack_require__(7)(function () { - if (html) arraySlice.call(html); - }), 'Array', { - slice: function slice(begin, end) { - var len = toLength(this.length); - var klass = cof(this); - end = end === undefined ? len : end; - if (klass == 'Array') return arraySlice.call(this, begin, end); - var start = toAbsoluteIndex(begin, len); - var upTo = toAbsoluteIndex(end, len); - var size = toLength(upTo - start); - var cloned = new Array(size); - var i = 0; - for (; i < size; i++) cloned[i] = klass == 'String' - ? this.charAt(start + i) - : this[start + i]; - return cloned; - } - }); - - -/***/ }), -/* 172 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var aFunction = __webpack_require__(24); - var toObject = __webpack_require__(46); - var fails = __webpack_require__(7); - var $sort = [].sort; - var test = [1, 2, 3]; - - $export($export.P + $export.F * (fails(function () { - // IE8- - test.sort(undefined); - }) || !fails(function () { - // V8 bug - test.sort(null); - // Old WebKit - }) || !__webpack_require__(170)($sort)), 'Array', { - // 22.1.3.25 Array.prototype.sort(comparefn) - sort: function sort(comparefn) { - return comparefn === undefined - ? $sort.call(toObject(this)) - : $sort.call(toObject(this), aFunction(comparefn)); - } - }); - - -/***/ }), -/* 173 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var $forEach = __webpack_require__(174)(0); - var STRICT = __webpack_require__(170)([].forEach, true); - - $export($export.P + $export.F * !STRICT, 'Array', { - // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) - forEach: function forEach(callbackfn /* , thisArg */) { - return $forEach(this, callbackfn, arguments[1]); - } - }); - - -/***/ }), -/* 174 */ -/***/ (function(module, exports, __webpack_require__) { - - // 0 -> Array#forEach - // 1 -> Array#map - // 2 -> Array#filter - // 3 -> Array#some - // 4 -> Array#every - // 5 -> Array#find - // 6 -> Array#findIndex - var ctx = __webpack_require__(23); - var IObject = __webpack_require__(34); - var toObject = __webpack_require__(46); - var toLength = __webpack_require__(38); - var asc = __webpack_require__(175); - module.exports = function (TYPE, $create) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - var create = $create || asc; - return function ($this, callbackfn, that) { - var O = toObject($this); - var self = IObject(O); - var f = ctx(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var val, res; - for (;length > index; index++) if (NO_HOLES || index in self) { - val = self[index]; - res = f(val, index, O); - if (TYPE) { - if (IS_MAP) result[index] = res; // map - else if (res) switch (TYPE) { - case 3: return true; // some - case 5: return val; // find - case 6: return index; // findIndex - case 2: result.push(val); // filter - } else if (IS_EVERY) return false; // every - } - } - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; - }; - }; - - -/***/ }), -/* 175 */ -/***/ (function(module, exports, __webpack_require__) { - - // 9.4.2.3 ArraySpeciesCreate(originalArray, length) - var speciesConstructor = __webpack_require__(176); - - module.exports = function (original, length) { - return new (speciesConstructor(original))(length); - }; - - -/***/ }), -/* 176 */ -/***/ (function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(13); - var isArray = __webpack_require__(45); - var SPECIES = __webpack_require__(27)('species'); - - module.exports = function (original) { - var C; - if (isArray(original)) { - C = original.constructor; - // cross-realm fallback - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } return C === undefined ? Array : C; - }; - - -/***/ }), -/* 177 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var $map = __webpack_require__(174)(1); - - $export($export.P + $export.F * !__webpack_require__(170)([].map, true), 'Array', { - // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) - map: function map(callbackfn /* , thisArg */) { - return $map(this, callbackfn, arguments[1]); - } - }); - - -/***/ }), -/* 178 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var $filter = __webpack_require__(174)(2); - - $export($export.P + $export.F * !__webpack_require__(170)([].filter, true), 'Array', { - // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) - filter: function filter(callbackfn /* , thisArg */) { - return $filter(this, callbackfn, arguments[1]); - } - }); - - -/***/ }), -/* 179 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var $some = __webpack_require__(174)(3); - - $export($export.P + $export.F * !__webpack_require__(170)([].some, true), 'Array', { - // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) - some: function some(callbackfn /* , thisArg */) { - return $some(this, callbackfn, arguments[1]); - } - }); - - -/***/ }), -/* 180 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var $every = __webpack_require__(174)(4); - - $export($export.P + $export.F * !__webpack_require__(170)([].every, true), 'Array', { - // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) - every: function every(callbackfn /* , thisArg */) { - return $every(this, callbackfn, arguments[1]); - } - }); - - -/***/ }), -/* 181 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var $reduce = __webpack_require__(182); - - $export($export.P + $export.F * !__webpack_require__(170)([].reduce, true), 'Array', { - // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) - reduce: function reduce(callbackfn /* , initialValue */) { - return $reduce(this, callbackfn, arguments.length, arguments[1], false); - } - }); - - -/***/ }), -/* 182 */ -/***/ (function(module, exports, __webpack_require__) { - - var aFunction = __webpack_require__(24); - var toObject = __webpack_require__(46); - var IObject = __webpack_require__(34); - var toLength = __webpack_require__(38); - - module.exports = function (that, callbackfn, aLen, memo, isRight) { - aFunction(callbackfn); - var O = toObject(that); - var self = IObject(O); - var length = toLength(O.length); - var index = isRight ? length - 1 : 0; - var i = isRight ? -1 : 1; - if (aLen < 2) for (;;) { - if (index in self) { - memo = self[index]; - index += i; - break; - } - index += i; - if (isRight ? index < 0 : length <= index) { - throw TypeError('Reduce of empty array with no initial value'); - } - } - for (;isRight ? index >= 0 : length > index; index += i) if (index in self) { - memo = callbackfn(memo, self[index], index, O); - } - return memo; - }; - - -/***/ }), -/* 183 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var $reduce = __webpack_require__(182); - - $export($export.P + $export.F * !__webpack_require__(170)([].reduceRight, true), 'Array', { - // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) - reduceRight: function reduceRight(callbackfn /* , initialValue */) { - return $reduce(this, callbackfn, arguments.length, arguments[1], true); - } - }); - - -/***/ }), -/* 184 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var $indexOf = __webpack_require__(37)(false); - var $native = [].indexOf; - var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0; - - $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(170)($native)), 'Array', { - // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) - indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { - return NEGATIVE_ZERO - // convert -0 to +0 - ? $native.apply(this, arguments) || 0 - : $indexOf(this, searchElement, arguments[1]); - } - }); - - -/***/ }), -/* 185 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var toIObject = __webpack_require__(33); - var toInteger = __webpack_require__(39); - var toLength = __webpack_require__(38); - var $native = [].lastIndexOf; - var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0; - - $export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(170)($native)), 'Array', { - // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) - lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { - // convert -0 to +0 - if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0; - var O = toIObject(this); - var length = toLength(O.length); - var index = length - 1; - if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1])); - if (index < 0) index = length + index; - for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0; - return -1; - } - }); - - -/***/ }), -/* 186 */ -/***/ (function(module, exports, __webpack_require__) { - - // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) - var $export = __webpack_require__(8); - - $export($export.P, 'Array', { copyWithin: __webpack_require__(187) }); - - __webpack_require__(188)('copyWithin'); - - -/***/ }), -/* 187 */ -/***/ (function(module, exports, __webpack_require__) { - - // 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) - 'use strict'; - var toObject = __webpack_require__(46); - var toAbsoluteIndex = __webpack_require__(40); - var toLength = __webpack_require__(38); - - module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { - var O = toObject(this); - var len = toLength(O.length); - var to = toAbsoluteIndex(target, len); - var from = toAbsoluteIndex(start, len); - var end = arguments.length > 2 ? arguments[2] : undefined; - var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); - var inc = 1; - if (from < to && to < from + count) { - inc = -1; - from += count - 1; - to += count - 1; - } - while (count-- > 0) { - if (from in O) O[to] = O[from]; - else delete O[to]; - to += inc; - from += inc; - } return O; - }; - - -/***/ }), -/* 188 */ -/***/ (function(module, exports, __webpack_require__) { - - // 22.1.3.31 Array.prototype[@@unscopables] - var UNSCOPABLES = __webpack_require__(27)('unscopables'); - var ArrayProto = Array.prototype; - if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(10)(ArrayProto, UNSCOPABLES, {}); - module.exports = function (key) { - ArrayProto[UNSCOPABLES][key] = true; - }; - - -/***/ }), -/* 189 */ -/***/ (function(module, exports, __webpack_require__) { - - // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) - var $export = __webpack_require__(8); - - $export($export.P, 'Array', { fill: __webpack_require__(190) }); - - __webpack_require__(188)('fill'); - - -/***/ }), -/* 190 */ -/***/ (function(module, exports, __webpack_require__) { - - // 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) - 'use strict'; - var toObject = __webpack_require__(46); - var toAbsoluteIndex = __webpack_require__(40); - var toLength = __webpack_require__(38); - module.exports = function fill(value /* , start = 0, end = @length */) { - var O = toObject(this); - var length = toLength(O.length); - var aLen = arguments.length; - var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length); - var end = aLen > 2 ? arguments[2] : undefined; - var endPos = end === undefined ? length : toAbsoluteIndex(end, length); - while (endPos > index) O[index++] = value; - return O; - }; - - -/***/ }), -/* 191 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined) - var $export = __webpack_require__(8); - var $find = __webpack_require__(174)(5); - var KEY = 'find'; - var forced = true; - // Shouldn't skip holes - if (KEY in []) Array(1)[KEY](function () { forced = false; }); - $export($export.P + $export.F * forced, 'Array', { - find: function find(callbackfn /* , that = undefined */) { - return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - __webpack_require__(188)(KEY); - - -/***/ }), -/* 192 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined) - var $export = __webpack_require__(8); - var $find = __webpack_require__(174)(6); - var KEY = 'findIndex'; - var forced = true; - // Shouldn't skip holes - if (KEY in []) Array(1)[KEY](function () { forced = false; }); - $export($export.P + $export.F * forced, 'Array', { - findIndex: function findIndex(callbackfn /* , that = undefined */) { - return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); - } - }); - __webpack_require__(188)(KEY); - - -/***/ }), -/* 193 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(194)('Array'); - - -/***/ }), -/* 194 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var global = __webpack_require__(4); - var dP = __webpack_require__(11); - var DESCRIPTORS = __webpack_require__(6); - var SPECIES = __webpack_require__(27)('species'); - - module.exports = function (KEY) { - var C = global[KEY]; - if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { - configurable: true, - get: function () { return this; } - }); - }; - - -/***/ }), -/* 195 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var addToUnscopables = __webpack_require__(188); - var step = __webpack_require__(196); - var Iterators = __webpack_require__(130); - var toIObject = __webpack_require__(33); - - // 22.1.3.4 Array.prototype.entries() - // 22.1.3.13 Array.prototype.keys() - // 22.1.3.29 Array.prototype.values() - // 22.1.3.30 Array.prototype[@@iterator]() - module.exports = __webpack_require__(129)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind - // 22.1.5.2.1 %ArrayIteratorPrototype%.next() - }, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); - }, 'values'); - - // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) - Iterators.Arguments = Iterators.Array; - - addToUnscopables('keys'); - addToUnscopables('values'); - addToUnscopables('entries'); - - -/***/ }), -/* 196 */ -/***/ (function(module, exports) { - - module.exports = function (done, value) { - return { value: value, done: !!done }; - }; - - -/***/ }), -/* 197 */ -/***/ (function(module, exports, __webpack_require__) { - - var global = __webpack_require__(4); - var inheritIfRequired = __webpack_require__(88); - var dP = __webpack_require__(11).f; - var gOPN = __webpack_require__(51).f; - var isRegExp = __webpack_require__(135); - var $flags = __webpack_require__(198); - var $RegExp = global.RegExp; - var Base = $RegExp; - var proto = $RegExp.prototype; - var re1 = /a/g; - var re2 = /a/g; - // "new" creates a new object, old webkit buggy here - var CORRECT_NEW = new $RegExp(re1) !== re1; - - if (__webpack_require__(6) && (!CORRECT_NEW || __webpack_require__(7)(function () { - re2[__webpack_require__(27)('match')] = false; - // RegExp constructor can alter flags and IsRegExp works correct with @@match - return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; - }))) { - $RegExp = function RegExp(p, f) { - var tiRE = this instanceof $RegExp; - var piRE = isRegExp(p); - var fiU = f === undefined; - return !tiRE && piRE && p.constructor === $RegExp && fiU ? p - : inheritIfRequired(CORRECT_NEW - ? new Base(piRE && !fiU ? p.source : p, f) - : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f) - , tiRE ? this : proto, $RegExp); - }; - var proxy = function (key) { - key in $RegExp || dP($RegExp, key, { - configurable: true, - get: function () { return Base[key]; }, - set: function (it) { Base[key] = it; } - }); - }; - for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]); - proto.constructor = $RegExp; - $RegExp.prototype = proto; - __webpack_require__(18)(global, 'RegExp', $RegExp); - } - - __webpack_require__(194)('RegExp'); - - -/***/ }), -/* 198 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // 21.2.5.3 get RegExp.prototype.flags - var anObject = __webpack_require__(12); - module.exports = function () { - var that = anObject(this); - var result = ''; - if (that.global) result += 'g'; - if (that.ignoreCase) result += 'i'; - if (that.multiline) result += 'm'; - if (that.unicode) result += 'u'; - if (that.sticky) result += 'y'; - return result; - }; - - -/***/ }), -/* 199 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var regexpExec = __webpack_require__(200); - __webpack_require__(8)({ - target: 'RegExp', - proto: true, - forced: regexpExec !== /./.exec - }, { - exec: regexpExec - }); - - -/***/ }), -/* 200 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - - var regexpFlags = __webpack_require__(198); - - var nativeExec = RegExp.prototype.exec; - // This always refers to the native implementation, because the - // String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, - // which loads this file before patching the method. - var nativeReplace = String.prototype.replace; - - var patchedExec = nativeExec; - - var LAST_INDEX = 'lastIndex'; - - var UPDATES_LAST_INDEX_WRONG = (function () { - var re1 = /a/, - re2 = /b*/g; - nativeExec.call(re1, 'a'); - nativeExec.call(re2, 'a'); - return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0; - })(); - - // nonparticipating capturing group, copied from es5-shim's String#split patch. - var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; - - var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED; - - if (PATCH) { - patchedExec = function exec(str) { - var re = this; - var lastIndex, reCopy, match, i; - - if (NPCG_INCLUDED) { - reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re)); - } - if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX]; - - match = nativeExec.call(re, str); - - if (UPDATES_LAST_INDEX_WRONG && match) { - re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex; - } - if (NPCG_INCLUDED && match && match.length > 1) { - // Fix browsers whose `exec` methods don't consistently return `undefined` - // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ - // eslint-disable-next-line no-loop-func - nativeReplace.call(match[0], reCopy, function () { - for (i = 1; i < arguments.length - 2; i++) { - if (arguments[i] === undefined) match[i] = undefined; - } - }); - } - - return match; - }; - } - - module.exports = patchedExec; - - -/***/ }), -/* 201 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - __webpack_require__(202); - var anObject = __webpack_require__(12); - var $flags = __webpack_require__(198); - var DESCRIPTORS = __webpack_require__(6); - var TO_STRING = 'toString'; - var $toString = /./[TO_STRING]; - - var define = function (fn) { - __webpack_require__(18)(RegExp.prototype, TO_STRING, fn, true); - }; - - // 21.2.5.14 RegExp.prototype.toString() - if (__webpack_require__(7)(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) { - define(function toString() { - var R = anObject(this); - return '/'.concat(R.source, '/', - 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined); - }); - // FF44- RegExp#toString has a wrong name - } else if ($toString.name != TO_STRING) { - define(function toString() { - return $toString.call(this); - }); - } - - -/***/ }), -/* 202 */ -/***/ (function(module, exports, __webpack_require__) { - - // 21.2.5.3 get RegExp.prototype.flags() - if (__webpack_require__(6) && /./g.flags != 'g') __webpack_require__(11).f(RegExp.prototype, 'flags', { - configurable: true, - get: __webpack_require__(198) - }); - - -/***/ }), -/* 203 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - - var anObject = __webpack_require__(12); - var toLength = __webpack_require__(38); - var advanceStringIndex = __webpack_require__(204); - var regExpExec = __webpack_require__(205); - - // @@match logic - __webpack_require__(206)('match', 1, function (defined, MATCH, $match, maybeCallNative) { - return [ - // `String.prototype.match` method - // https://tc39.github.io/ecma262/#sec-string.prototype.match - function match(regexp) { - var O = defined(this); - var fn = regexp == undefined ? undefined : regexp[MATCH]; - return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); - }, - // `RegExp.prototype[@@match]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match - function (regexp) { - var res = maybeCallNative($match, regexp, this); - if (res.done) return res.value; - var rx = anObject(regexp); - var S = String(this); - if (!rx.global) return regExpExec(rx, S); - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - var A = []; - var n = 0; - var result; - while ((result = regExpExec(rx, S)) !== null) { - var matchStr = String(result[0]); - A[n] = matchStr; - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - n++; - } - return n === 0 ? null : A; - } - ]; - }); - - -/***/ }), -/* 204 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var at = __webpack_require__(128)(true); - - // `AdvanceStringIndex` abstract operation - // https://tc39.github.io/ecma262/#sec-advancestringindex - module.exports = function (S, index, unicode) { - return index + (unicode ? at(S, index).length : 1); - }; - - -/***/ }), -/* 205 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - - var classof = __webpack_require__(75); - var builtinExec = RegExp.prototype.exec; - - // `RegExpExec` abstract operation - // https://tc39.github.io/ecma262/#sec-regexpexec - module.exports = function (R, S) { - var exec = R.exec; - if (typeof exec === 'function') { - var result = exec.call(R, S); - if (typeof result !== 'object') { - throw new TypeError('RegExp exec method returned something other than an Object or null'); - } - return result; - } - if (classof(R) !== 'RegExp') { - throw new TypeError('RegExp#exec called on incompatible receiver'); - } - return builtinExec.call(R, S); - }; - - -/***/ }), -/* 206 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - __webpack_require__(199); - var redefine = __webpack_require__(18); - var hide = __webpack_require__(10); - var fails = __webpack_require__(7); - var defined = __webpack_require__(36); - var wks = __webpack_require__(27); - var regexpExec = __webpack_require__(200); - - var SPECIES = wks('species'); - - var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { - // #replace needs built-in support for named groups. - // #match works fine because it just return the exec results, even if it has - // a "grops" property. - var re = /./; - re.exec = function () { - var result = []; - result.groups = { a: '7' }; - return result; - }; - return ''.replace(re, '$') !== '7'; - }); - - var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () { - // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec - var re = /(?:)/; - var originalExec = re.exec; - re.exec = function () { return originalExec.apply(this, arguments); }; - var result = 'ab'.split(re); - return result.length === 2 && result[0] === 'a' && result[1] === 'b'; - })(); - - module.exports = function (KEY, length, exec) { - var SYMBOL = wks(KEY); - - var DELEGATES_TO_SYMBOL = !fails(function () { - // String methods call symbol-named RegEp methods - var O = {}; - O[SYMBOL] = function () { return 7; }; - return ''[KEY](O) != 7; - }); - - var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () { - // Symbol-named RegExp methods call .exec - var execCalled = false; - var re = /a/; - re.exec = function () { execCalled = true; return null; }; - if (KEY === 'split') { - // RegExp[@@split] doesn't call the regex's exec method, but first creates - // a new one. We need to return the patched regex when creating the new one. - re.constructor = {}; - re.constructor[SPECIES] = function () { return re; }; - } - re[SYMBOL](''); - return !execCalled; - }) : undefined; - - if ( - !DELEGATES_TO_SYMBOL || - !DELEGATES_TO_EXEC || - (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) || - (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) - ) { - var nativeRegExpMethod = /./[SYMBOL]; - var fns = exec( - defined, - SYMBOL, - ''[KEY], - function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) { - if (regexp.exec === regexpExec) { - if (DELEGATES_TO_SYMBOL && !forceStringMethod) { - // The native String method already delegates to @@method (this - // polyfilled function), leasing to infinite recursion. - // We avoid it by directly calling the native @@method method. - return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; - } - return { done: true, value: nativeMethod.call(str, regexp, arg2) }; - } - return { done: false }; - } - ); - var strfn = fns[0]; - var rxfn = fns[1]; - - redefine(String.prototype, KEY, strfn); - hide(RegExp.prototype, SYMBOL, length == 2 - // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) - // 21.2.5.11 RegExp.prototype[@@split](string, limit) - ? function (string, arg) { return rxfn.call(string, this, arg); } - // 21.2.5.6 RegExp.prototype[@@match](string) - // 21.2.5.9 RegExp.prototype[@@search](string) - : function (string) { return rxfn.call(string, this); } - ); - } - }; - - -/***/ }), -/* 207 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - - var anObject = __webpack_require__(12); - var toObject = __webpack_require__(46); - var toLength = __webpack_require__(38); - var toInteger = __webpack_require__(39); - var advanceStringIndex = __webpack_require__(204); - var regExpExec = __webpack_require__(205); - var max = Math.max; - var min = Math.min; - var floor = Math.floor; - var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g; - var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g; - - var maybeToString = function (it) { - return it === undefined ? it : String(it); - }; - - // @@replace logic - __webpack_require__(206)('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) { - return [ - // `String.prototype.replace` method - // https://tc39.github.io/ecma262/#sec-string.prototype.replace - function replace(searchValue, replaceValue) { - var O = defined(this); - var fn = searchValue == undefined ? undefined : searchValue[REPLACE]; - return fn !== undefined - ? fn.call(searchValue, O, replaceValue) - : $replace.call(String(O), searchValue, replaceValue); - }, - // `RegExp.prototype[@@replace]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace - function (regexp, replaceValue) { - var res = maybeCallNative($replace, regexp, this, replaceValue); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - var functionalReplace = typeof replaceValue === 'function'; - if (!functionalReplace) replaceValue = String(replaceValue); - var global = rx.global; - if (global) { - var fullUnicode = rx.unicode; - rx.lastIndex = 0; - } - var results = []; - while (true) { - var result = regExpExec(rx, S); - if (result === null) break; - results.push(result); - if (!global) break; - var matchStr = String(result[0]); - if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); - } - var accumulatedResult = ''; - var nextSourcePosition = 0; - for (var i = 0; i < results.length; i++) { - result = results[i]; - var matched = String(result[0]); - var position = max(min(toInteger(result.index), S.length), 0); - var captures = []; - // NOTE: This is equivalent to - // captures = result.slice(1).map(maybeToString) - // but for some reason `nativeSlice.call(result, 1, result.length)` (called in - // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and - // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. - for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j])); - var namedCaptures = result.groups; - if (functionalReplace) { - var replacerArgs = [matched].concat(captures, position, S); - if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); - var replacement = String(replaceValue.apply(undefined, replacerArgs)); - } else { - replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); - } - if (position >= nextSourcePosition) { - accumulatedResult += S.slice(nextSourcePosition, position) + replacement; - nextSourcePosition = position + matched.length; - } - } - return accumulatedResult + S.slice(nextSourcePosition); - } - ]; - - // https://tc39.github.io/ecma262/#sec-getsubstitution - function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { - var tailPos = position + matched.length; - var m = captures.length; - var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; - if (namedCaptures !== undefined) { - namedCaptures = toObject(namedCaptures); - symbols = SUBSTITUTION_SYMBOLS; - } - return $replace.call(replacement, symbols, function (match, ch) { - var capture; - switch (ch.charAt(0)) { - case '$': return '$'; - case '&': return matched; - case '`': return str.slice(0, position); - case "'": return str.slice(tailPos); - case '<': - capture = namedCaptures[ch.slice(1, -1)]; - break; - default: // \d\d? - var n = +ch; - if (n === 0) return match; - if (n > m) { - var f = floor(n / 10); - if (f === 0) return match; - if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); - return match; - } - capture = captures[n - 1]; - } - return capture === undefined ? '' : capture; - }); - } - }); - - -/***/ }), -/* 208 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - - var anObject = __webpack_require__(12); - var sameValue = __webpack_require__(71); - var regExpExec = __webpack_require__(205); - - // @@search logic - __webpack_require__(206)('search', 1, function (defined, SEARCH, $search, maybeCallNative) { - return [ - // `String.prototype.search` method - // https://tc39.github.io/ecma262/#sec-string.prototype.search - function search(regexp) { - var O = defined(this); - var fn = regexp == undefined ? undefined : regexp[SEARCH]; - return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); - }, - // `RegExp.prototype[@@search]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search - function (regexp) { - var res = maybeCallNative($search, regexp, this); - if (res.done) return res.value; - var rx = anObject(regexp); - var S = String(this); - var previousLastIndex = rx.lastIndex; - if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; - var result = regExpExec(rx, S); - if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; - return result === null ? -1 : result.index; - } - ]; - }); - - -/***/ }), -/* 209 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - - var isRegExp = __webpack_require__(135); - var anObject = __webpack_require__(12); - var speciesConstructor = __webpack_require__(210); - var advanceStringIndex = __webpack_require__(204); - var toLength = __webpack_require__(38); - var callRegExpExec = __webpack_require__(205); - var regexpExec = __webpack_require__(200); - var fails = __webpack_require__(7); - var $min = Math.min; - var $push = [].push; - var $SPLIT = 'split'; - var LENGTH = 'length'; - var LAST_INDEX = 'lastIndex'; - var MAX_UINT32 = 0xffffffff; - - // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError - var SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); }); - - // @@split logic - __webpack_require__(206)('split', 2, function (defined, SPLIT, $split, maybeCallNative) { - var internalSplit; - if ( - 'abbc'[$SPLIT](/(b)*/)[1] == 'c' || - 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 || - 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 || - '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 || - '.'[$SPLIT](/()()/)[LENGTH] > 1 || - ''[$SPLIT](/.?/)[LENGTH] - ) { - // based on es5-shim implementation, need to rework it - internalSplit = function (separator, limit) { - var string = String(this); - if (separator === undefined && limit === 0) return []; - // If `separator` is not a regex, use native split - if (!isRegExp(separator)) return $split.call(string, separator, limit); - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + - (separator.multiline ? 'm' : '') + - (separator.unicode ? 'u' : '') + - (separator.sticky ? 'y' : ''); - var lastLastIndex = 0; - var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0; - // Make `global` and avoid `lastIndex` issues by working with a copy - var separatorCopy = new RegExp(separator.source, flags + 'g'); - var match, lastIndex, lastLength; - while (match = regexpExec.call(separatorCopy, string)) { - lastIndex = separatorCopy[LAST_INDEX]; - if (lastIndex > lastLastIndex) { - output.push(string.slice(lastLastIndex, match.index)); - if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1)); - lastLength = match[0][LENGTH]; - lastLastIndex = lastIndex; - if (output[LENGTH] >= splitLimit) break; - } - if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop - } - if (lastLastIndex === string[LENGTH]) { - if (lastLength || !separatorCopy.test('')) output.push(''); - } else output.push(string.slice(lastLastIndex)); - return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output; - }; - // Chakra, V8 - } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) { - internalSplit = function (separator, limit) { - return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit); - }; - } else { - internalSplit = $split; - } - - return [ - // `String.prototype.split` method - // https://tc39.github.io/ecma262/#sec-string.prototype.split - function split(separator, limit) { - var O = defined(this); - var splitter = separator == undefined ? undefined : separator[SPLIT]; - return splitter !== undefined - ? splitter.call(separator, O, limit) - : internalSplit.call(String(O), separator, limit); - }, - // `RegExp.prototype[@@split]` method - // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split - // - // NOTE: This cannot be properly polyfilled in engines that don't support - // the 'y' flag. - function (regexp, limit) { - var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split); - if (res.done) return res.value; - - var rx = anObject(regexp); - var S = String(this); - var C = speciesConstructor(rx, RegExp); - - var unicodeMatching = rx.unicode; - var flags = (rx.ignoreCase ? 'i' : '') + - (rx.multiline ? 'm' : '') + - (rx.unicode ? 'u' : '') + - (SUPPORTS_Y ? 'y' : 'g'); - - // ^(? + rx + ) is needed, in combination with some S slicing, to - // simulate the 'y' flag. - var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); - var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; - if (lim === 0) return []; - if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; - var p = 0; - var q = 0; - var A = []; - while (q < S.length) { - splitter.lastIndex = SUPPORTS_Y ? q : 0; - var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); - var e; - if ( - z === null || - (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p - ) { - q = advanceStringIndex(S, q, unicodeMatching); - } else { - A.push(S.slice(p, q)); - if (A.length === lim) return A; - for (var i = 1; i <= z.length - 1; i++) { - A.push(z[i]); - if (A.length === lim) return A; - } - q = p = e; - } - } - A.push(S.slice(p)); - return A; - } - ]; - }); - - -/***/ }), -/* 210 */ -/***/ (function(module, exports, __webpack_require__) { - - // 7.3.20 SpeciesConstructor(O, defaultConstructor) - var anObject = __webpack_require__(12); - var aFunction = __webpack_require__(24); - var SPECIES = __webpack_require__(27)('species'); - module.exports = function (O, D) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); - }; - - -/***/ }), -/* 211 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var LIBRARY = __webpack_require__(22); - var global = __webpack_require__(4); - var ctx = __webpack_require__(23); - var classof = __webpack_require__(75); - var $export = __webpack_require__(8); - var isObject = __webpack_require__(13); - var aFunction = __webpack_require__(24); - var anInstance = __webpack_require__(212); - var forOf = __webpack_require__(213); - var speciesConstructor = __webpack_require__(210); - var task = __webpack_require__(214).set; - var microtask = __webpack_require__(215)(); - var newPromiseCapabilityModule = __webpack_require__(216); - var perform = __webpack_require__(217); - var userAgent = __webpack_require__(218); - var promiseResolve = __webpack_require__(219); - var PROMISE = 'Promise'; - var TypeError = global.TypeError; - var process = global.process; - var versions = process && process.versions; - var v8 = versions && versions.v8 || ''; - var $Promise = global[PROMISE]; - var isNode = classof(process) == 'process'; - var empty = function () { /* empty */ }; - var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; - var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; - - var USE_NATIVE = !!function () { - try { - // correct subclassing with @@species support - var promise = $Promise.resolve(1); - var FakePromise = (promise.constructor = {})[__webpack_require__(27)('species')] = function (exec) { - exec(empty, empty); - }; - // unhandled rejections tracking support, NodeJS Promise without it fails @@species test - return (isNode || typeof PromiseRejectionEvent == 'function') - && promise.then(empty) instanceof FakePromise - // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables - // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 - // we can't detect it synchronously, so just check versions - && v8.indexOf('6.6') !== 0 - && userAgent.indexOf('Chrome/66') === -1; - } catch (e) { /* empty */ } - }(); - - // helpers - var isThenable = function (it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; - }; - var notify = function (promise, isReject) { - if (promise._n) return; - promise._n = true; - var chain = promise._c; - microtask(function () { - var value = promise._v; - var ok = promise._s == 1; - var i = 0; - var run = function (reaction) { - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - try { - if (handler) { - if (!ok) { - if (promise._h == 2) onHandleUnhandled(promise); - promise._h = 1; - } - if (handler === true) result = value; - else { - if (domain) domain.enter(); - result = handler(value); // may throw - if (domain) { - domain.exit(); - exited = true; - } - } - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (e) { - if (domain && !exited) domain.exit(); - reject(e); - } - }; - while (chain.length > i) run(chain[i++]); // variable length - can't use forEach - promise._c = []; - promise._n = false; - if (isReject && !promise._h) onUnhandled(promise); - }); - }; - var onUnhandled = function (promise) { - task.call(global, function () { - var value = promise._v; - var unhandled = isUnhandled(promise); - var result, handler, console; - if (unhandled) { - result = perform(function () { - if (isNode) { - process.emit('unhandledRejection', value, promise); - } else if (handler = global.onunhandledrejection) { - handler({ promise: promise, reason: value }); - } else if ((console = global.console) && console.error) { - console.error('Unhandled promise rejection', value); - } - }); - // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should - promise._h = isNode || isUnhandled(promise) ? 2 : 1; - } promise._a = undefined; - if (unhandled && result.e) throw result.v; - }); - }; - var isUnhandled = function (promise) { - return promise._h !== 1 && (promise._a || promise._c).length === 0; - }; - var onHandleUnhandled = function (promise) { - task.call(global, function () { - var handler; - if (isNode) { - process.emit('rejectionHandled', promise); - } else if (handler = global.onrejectionhandled) { - handler({ promise: promise, reason: promise._v }); - } - }); - }; - var $reject = function (value) { - var promise = this; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; // unwrap - promise._v = value; - promise._s = 2; - if (!promise._a) promise._a = promise._c.slice(); - notify(promise, true); - }; - var $resolve = function (value) { - var promise = this; - var then; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; // unwrap - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - if (then = isThenable(value)) { - microtask(function () { - var wrapper = { _w: promise, _d: false }; // wrap - try { - then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); - } catch (e) { - $reject.call(wrapper, e); - } - }); - } else { - promise._v = value; - promise._s = 1; - notify(promise, false); - } - } catch (e) { - $reject.call({ _w: promise, _d: false }, e); // wrap - } - }; - - // constructor polyfill - if (!USE_NATIVE) { - // 25.4.3.1 Promise(executor) - $Promise = function Promise(executor) { - anInstance(this, $Promise, PROMISE, '_h'); - aFunction(executor); - Internal.call(this); - try { - executor(ctx($resolve, this, 1), ctx($reject, this, 1)); - } catch (err) { - $reject.call(this, err); - } - }; - // eslint-disable-next-line no-unused-vars - Internal = function Promise(executor) { - this._c = []; // <- awaiting reactions - this._a = undefined; // <- checked in isUnhandled reactions - this._s = 0; // <- state - this._d = false; // <- done - this._v = undefined; // <- value - this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled - this._n = false; // <- notify - }; - Internal.prototype = __webpack_require__(220)($Promise.prototype, { - // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) - then: function then(onFulfilled, onRejected) { - var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = isNode ? process.domain : undefined; - this._c.push(reaction); - if (this._a) this._a.push(reaction); - if (this._s) notify(this, false); - return reaction.promise; - }, - // 25.4.5.1 Promise.prototype.catch(onRejected) - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } - }); - OwnPromiseCapability = function () { - var promise = new Internal(); - this.promise = promise; - this.resolve = ctx($resolve, promise, 1); - this.reject = ctx($reject, promise, 1); - }; - newPromiseCapabilityModule.f = newPromiseCapability = function (C) { - return C === $Promise || C === Wrapper - ? new OwnPromiseCapability(C) - : newGenericPromiseCapability(C); - }; - } - - $export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); - __webpack_require__(26)($Promise, PROMISE); - __webpack_require__(194)(PROMISE); - Wrapper = __webpack_require__(9)[PROMISE]; - - // statics - $export($export.S + $export.F * !USE_NATIVE, PROMISE, { - // 25.4.4.5 Promise.reject(r) - reject: function reject(r) { - var capability = newPromiseCapability(this); - var $$reject = capability.reject; - $$reject(r); - return capability.promise; - } - }); - $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { - // 25.4.4.6 Promise.resolve(x) - resolve: function resolve(x) { - return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); - } - }); - $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(167)(function (iter) { - $Promise.all(iter)['catch'](empty); - })), PROMISE, { - // 25.4.4.1 Promise.all(iterable) - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var values = []; - var index = 0; - var remaining = 1; - forOf(iterable, false, function (promise) { - var $index = index++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - C.resolve(promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[$index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.e) reject(result.v); - return capability.promise; - }, - // 25.4.4.4 Promise.race(iterable) - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - forOf(iterable, false, function (promise) { - C.resolve(promise).then(capability.resolve, reject); - }); - }); - if (result.e) reject(result.v); - return capability.promise; - } - }); - - -/***/ }), -/* 212 */ -/***/ (function(module, exports) { - - module.exports = function (it, Constructor, name, forbiddenField) { - if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { - throw TypeError(name + ': incorrect invocation!'); - } return it; - }; - - -/***/ }), -/* 213 */ -/***/ (function(module, exports, __webpack_require__) { - - var ctx = __webpack_require__(23); - var call = __webpack_require__(163); - var isArrayIter = __webpack_require__(164); - var anObject = __webpack_require__(12); - var toLength = __webpack_require__(38); - var getIterFn = __webpack_require__(166); - var BREAK = {}; - var RETURN = {}; - var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { - var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); - var f = ctx(fn, that, entries ? 2 : 1); - var index = 0; - var length, step, iterator, result; - if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); - // fast case for arrays with default iterator - if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { - result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); - if (result === BREAK || result === RETURN) return result; - } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { - result = call(iterator, f, step.value, entries); - if (result === BREAK || result === RETURN) return result; - } - }; - exports.BREAK = BREAK; - exports.RETURN = RETURN; - - -/***/ }), -/* 214 */ -/***/ (function(module, exports, __webpack_require__) { - - var ctx = __webpack_require__(23); - var invoke = __webpack_require__(78); - var html = __webpack_require__(49); - var cel = __webpack_require__(15); - var global = __webpack_require__(4); - var process = global.process; - var setTask = global.setImmediate; - var clearTask = global.clearImmediate; - var MessageChannel = global.MessageChannel; - var Dispatch = global.Dispatch; - var counter = 0; - var queue = {}; - var ONREADYSTATECHANGE = 'onreadystatechange'; - var defer, channel, port; - var run = function () { - var id = +this; - // eslint-disable-next-line no-prototype-builtins - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } - }; - var listener = function (event) { - run.call(event.data); - }; - // Node.js 0.9+ & IE10+ has setImmediate, otherwise: - if (!setTask || !clearTask) { - setTask = function setImmediate(fn) { - var args = []; - var i = 1; - while (arguments.length > i) args.push(arguments[i++]); - queue[++counter] = function () { - // eslint-disable-next-line no-new-func - invoke(typeof fn == 'function' ? fn : Function(fn), args); - }; - defer(counter); - return counter; - }; - clearTask = function clearImmediate(id) { - delete queue[id]; - }; - // Node.js 0.8- - if (__webpack_require__(35)(process) == 'process') { - defer = function (id) { - process.nextTick(ctx(run, id, 1)); - }; - // Sphere (JS game engine) Dispatch API - } else if (Dispatch && Dispatch.now) { - defer = function (id) { - Dispatch.now(ctx(run, id, 1)); - }; - // Browsers with MessageChannel, includes WebWorkers - } else if (MessageChannel) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = ctx(port.postMessage, port, 1); - // Browsers with postMessage, skip WebWorkers - // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { - defer = function (id) { - global.postMessage(id + '', '*'); - }; - global.addEventListener('message', listener, false); - // IE8- - } else if (ONREADYSTATECHANGE in cel('script')) { - defer = function (id) { - html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run.call(id); - }; - }; - // Rest old browsers - } else { - defer = function (id) { - setTimeout(ctx(run, id, 1), 0); - }; - } - } - module.exports = { - set: setTask, - clear: clearTask - }; - - -/***/ }), -/* 215 */ -/***/ (function(module, exports, __webpack_require__) { - - var global = __webpack_require__(4); - var macrotask = __webpack_require__(214).set; - var Observer = global.MutationObserver || global.WebKitMutationObserver; - var process = global.process; - var Promise = global.Promise; - var isNode = __webpack_require__(35)(process) == 'process'; - - module.exports = function () { - var head, last, notify; - - var flush = function () { - var parent, fn; - if (isNode && (parent = process.domain)) parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (e) { - if (head) notify(); - else last = undefined; - throw e; - } - } last = undefined; - if (parent) parent.enter(); - }; - - // Node.js - if (isNode) { - notify = function () { - process.nextTick(flush); - }; - // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339 - } else if (Observer && !(global.navigator && global.navigator.standalone)) { - var toggle = true; - var node = document.createTextNode(''); - new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new - notify = function () { - node.data = toggle = !toggle; - }; - // environments with maybe non-completely correct, but existent Promise - } else if (Promise && Promise.resolve) { - // Promise.resolve without an argument throws an error in LG WebOS 2 - var promise = Promise.resolve(undefined); - notify = function () { - promise.then(flush); - }; - // for other environments - macrotask based on: - // - setImmediate - // - MessageChannel - // - window.postMessag - // - onreadystatechange - // - setTimeout - } else { - notify = function () { - // strange IE + webpack dev server bug - use .call(global) - macrotask.call(global, flush); - }; - } - - return function (fn) { - var task = { fn: fn, next: undefined }; - if (last) last.next = task; - if (!head) { - head = task; - notify(); - } last = task; - }; - }; - - -/***/ }), -/* 216 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // 25.4.1.5 NewPromiseCapability(C) - var aFunction = __webpack_require__(24); - - function PromiseCapability(C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); - } - - module.exports.f = function (C) { - return new PromiseCapability(C); - }; - - -/***/ }), -/* 217 */ -/***/ (function(module, exports) { - - module.exports = function (exec) { - try { - return { e: false, v: exec() }; - } catch (e) { - return { e: true, v: e }; - } - }; - - -/***/ }), -/* 218 */ -/***/ (function(module, exports, __webpack_require__) { - - var global = __webpack_require__(4); - var navigator = global.navigator; - - module.exports = navigator && navigator.userAgent || ''; - - -/***/ }), -/* 219 */ -/***/ (function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(12); - var isObject = __webpack_require__(13); - var newPromiseCapability = __webpack_require__(216); - - module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; - }; - - -/***/ }), -/* 220 */ -/***/ (function(module, exports, __webpack_require__) { - - var redefine = __webpack_require__(18); - module.exports = function (target, src, safe) { - for (var key in src) redefine(target, key, src[key], safe); - return target; - }; - - -/***/ }), -/* 221 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var strong = __webpack_require__(222); - var validate = __webpack_require__(223); - var MAP = 'Map'; - - // 23.1 Map Objects - module.exports = __webpack_require__(224)(MAP, function (get) { - return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; - }, { - // 23.1.3.6 Map.prototype.get(key) - get: function get(key) { - var entry = strong.getEntry(validate(this, MAP), key); - return entry && entry.v; - }, - // 23.1.3.9 Map.prototype.set(key, value) - set: function set(key, value) { - return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); - } - }, strong, true); - - -/***/ }), -/* 222 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var dP = __webpack_require__(11).f; - var create = __webpack_require__(47); - var redefineAll = __webpack_require__(220); - var ctx = __webpack_require__(23); - var anInstance = __webpack_require__(212); - var forOf = __webpack_require__(213); - var $iterDefine = __webpack_require__(129); - var step = __webpack_require__(196); - var setSpecies = __webpack_require__(194); - var DESCRIPTORS = __webpack_require__(6); - var fastKey = __webpack_require__(25).fastKey; - var validate = __webpack_require__(223); - var SIZE = DESCRIPTORS ? '_s' : 'size'; - - var getEntry = function (that, key) { - // fast case - var index = fastKey(key); - var entry; - if (index !== 'F') return that._i[index]; - // frozen object case - for (entry = that._f; entry; entry = entry.n) { - if (entry.k == key) return entry; - } - }; - - module.exports = { - getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; // collection type - that._i = create(null); // index - that._f = undefined; // first entry - that._l = undefined; // last entry - that[SIZE] = 0; // size - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - // 23.1.3.1 Map.prototype.clear() - // 23.2.3.2 Set.prototype.clear() - clear: function clear() { - for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { - entry.r = true; - if (entry.p) entry.p = entry.p.n = undefined; - delete data[entry.i]; - } - that._f = that._l = undefined; - that[SIZE] = 0; - }, - // 23.1.3.3 Map.prototype.delete(key) - // 23.2.3.4 Set.prototype.delete(value) - 'delete': function (key) { - var that = validate(this, NAME); - var entry = getEntry(that, key); - if (entry) { - var next = entry.n; - var prev = entry.p; - delete that._i[entry.i]; - entry.r = true; - if (prev) prev.n = next; - if (next) next.p = prev; - if (that._f == entry) that._f = next; - if (that._l == entry) that._l = prev; - that[SIZE]--; - } return !!entry; - }, - // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) - // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) - forEach: function forEach(callbackfn /* , that = undefined */) { - validate(this, NAME); - var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); - var entry; - while (entry = entry ? entry.n : this._f) { - f(entry.v, entry.k, this); - // revert to the last existing entry - while (entry && entry.r) entry = entry.p; - } - }, - // 23.1.3.7 Map.prototype.has(key) - // 23.2.3.7 Set.prototype.has(value) - has: function has(key) { - return !!getEntry(validate(this, NAME), key); - } - }); - if (DESCRIPTORS) dP(C.prototype, 'size', { - get: function () { - return validate(this, NAME)[SIZE]; - } - }); - return C; - }, - def: function (that, key, value) { - var entry = getEntry(that, key); - var prev, index; - // change existing entry - if (entry) { - entry.v = value; - // create new entry - } else { - that._l = entry = { - i: index = fastKey(key, true), // <- index - k: key, // <- key - v: value, // <- value - p: prev = that._l, // <- previous entry - n: undefined, // <- next entry - r: false // <- removed - }; - if (!that._f) that._f = entry; - if (prev) prev.n = entry; - that[SIZE]++; - // add to index - if (index !== 'F') that._i[index] = entry; - } return that; - }, - getEntry: getEntry, - setStrong: function (C, NAME, IS_MAP) { - // add .keys, .values, .entries, [@@iterator] - // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 - $iterDefine(C, NAME, function (iterated, kind) { - this._t = validate(iterated, NAME); // target - this._k = kind; // kind - this._l = undefined; // previous - }, function () { - var that = this; - var kind = that._k; - var entry = that._l; - // revert to the last existing entry - while (entry && entry.r) entry = entry.p; - // get next entry - if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { - // or finish the iteration - that._t = undefined; - return step(1); - } - // return step by kind - if (kind == 'keys') return step(0, entry.k); - if (kind == 'values') return step(0, entry.v); - return step(0, [entry.k, entry.v]); - }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); - - // add [@@species], 23.1.2.2, 23.2.2.2 - setSpecies(NAME); - } - }; - - -/***/ }), -/* 223 */ -/***/ (function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(13); - module.exports = function (it, TYPE) { - if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); - return it; - }; - - -/***/ }), -/* 224 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var global = __webpack_require__(4); - var $export = __webpack_require__(8); - var redefine = __webpack_require__(18); - var redefineAll = __webpack_require__(220); - var meta = __webpack_require__(25); - var forOf = __webpack_require__(213); - var anInstance = __webpack_require__(212); - var isObject = __webpack_require__(13); - var fails = __webpack_require__(7); - var $iterDetect = __webpack_require__(167); - var setToStringTag = __webpack_require__(26); - var inheritIfRequired = __webpack_require__(88); - - module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { - var Base = global[NAME]; - var C = Base; - var ADDER = IS_MAP ? 'set' : 'add'; - var proto = C && C.prototype; - var O = {}; - var fixMethod = function (KEY) { - var fn = proto[KEY]; - redefine(proto, KEY, - KEY == 'delete' ? function (a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'has' ? function has(a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'get' ? function get(a) { - return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; } - : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; } - ); - }; - if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { - new C().entries().next(); - }))) { - // create collection constructor - C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); - redefineAll(C.prototype, methods); - meta.NEED = true; - } else { - var instance = new C(); - // early implementations not supports chaining - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false - var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); - // most early implementations doesn't supports iterables, most modern - not close it correctly - var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new - // for early implementations -0 and +0 not the same - var BUGGY_ZERO = !IS_WEAK && fails(function () { - // V8 ~ Chromium 42- fails only with 5+ elements - var $instance = new C(); - var index = 5; - while (index--) $instance[ADDER](index, index); - return !$instance.has(-0); - }); - if (!ACCEPT_ITERABLES) { - C = wrapper(function (target, iterable) { - anInstance(target, C, NAME); - var that = inheritIfRequired(new Base(), target, C); - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - return that; - }); - C.prototype = proto; - proto.constructor = C; - } - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); - // weak collections should not contains .clear method - if (IS_WEAK && proto.clear) delete proto.clear; - } - - setToStringTag(C, NAME); - - O[NAME] = C; - $export($export.G + $export.W + $export.F * (C != Base), O); - - if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); - - return C; - }; - - -/***/ }), -/* 225 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var strong = __webpack_require__(222); - var validate = __webpack_require__(223); - var SET = 'Set'; - - // 23.2 Set Objects - module.exports = __webpack_require__(224)(SET, function (get) { - return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; - }, { - // 23.2.3.1 Set.prototype.add(value) - add: function add(value) { - return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); - } - }, strong); - - -/***/ }), -/* 226 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var global = __webpack_require__(4); - var each = __webpack_require__(174)(0); - var redefine = __webpack_require__(18); - var meta = __webpack_require__(25); - var assign = __webpack_require__(69); - var weak = __webpack_require__(227); - var isObject = __webpack_require__(13); - var validate = __webpack_require__(223); - var NATIVE_WEAK_MAP = __webpack_require__(223); - var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; - var WEAK_MAP = 'WeakMap'; - var getWeak = meta.getWeak; - var isExtensible = Object.isExtensible; - var uncaughtFrozenStore = weak.ufstore; - var InternalMap; - - var wrapper = function (get) { - return function WeakMap() { - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; - }; - - var methods = { - // 23.3.3.3 WeakMap.prototype.get(key) - get: function get(key) { - if (isObject(key)) { - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); - return data ? data[this._i] : undefined; - } - }, - // 23.3.3.5 WeakMap.prototype.set(key, value) - set: function set(key, value) { - return weak.def(validate(this, WEAK_MAP), key, value); - } - }; - - // 23.3 WeakMap Objects - var $WeakMap = module.exports = __webpack_require__(224)(WEAK_MAP, wrapper, methods, weak, true, true); - - // IE11 WeakMap frozen keys fix - if (NATIVE_WEAK_MAP && IS_IE11) { - InternalMap = weak.getConstructor(wrapper, WEAK_MAP); - assign(InternalMap.prototype, methods); - meta.NEED = true; - each(['delete', 'has', 'get', 'set'], function (key) { - var proto = $WeakMap.prototype; - var method = proto[key]; - redefine(proto, key, function (a, b) { - // store frozen objects on internal weakmap shim - if (isObject(a) && !isExtensible(a)) { - if (!this._f) this._f = new InternalMap(); - var result = this._f[key](a, b); - return key == 'set' ? this : result; - // store all the rest on native weakmap - } return method.call(this, a, b); - }); - }); - } - - -/***/ }), -/* 227 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var redefineAll = __webpack_require__(220); - var getWeak = __webpack_require__(25).getWeak; - var anObject = __webpack_require__(12); - var isObject = __webpack_require__(13); - var anInstance = __webpack_require__(212); - var forOf = __webpack_require__(213); - var createArrayMethod = __webpack_require__(174); - var $has = __webpack_require__(5); - var validate = __webpack_require__(223); - var arrayFind = createArrayMethod(5); - var arrayFindIndex = createArrayMethod(6); - var id = 0; - - // fallback for uncaught frozen keys - var uncaughtFrozenStore = function (that) { - return that._l || (that._l = new UncaughtFrozenStore()); - }; - var UncaughtFrozenStore = function () { - this.a = []; - }; - var findUncaughtFrozen = function (store, key) { - return arrayFind(store.a, function (it) { - return it[0] === key; - }); - }; - UncaughtFrozenStore.prototype = { - get: function (key) { - var entry = findUncaughtFrozen(this, key); - if (entry) return entry[1]; - }, - has: function (key) { - return !!findUncaughtFrozen(this, key); - }, - set: function (key, value) { - var entry = findUncaughtFrozen(this, key); - if (entry) entry[1] = value; - else this.a.push([key, value]); - }, - 'delete': function (key) { - var index = arrayFindIndex(this.a, function (it) { - return it[0] === key; - }); - if (~index) this.a.splice(index, 1); - return !!~index; - } - }; - - module.exports = { - getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; // collection type - that._i = id++; // collection id - that._l = undefined; // leak store for uncaught frozen objects - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - // 23.3.3.2 WeakMap.prototype.delete(key) - // 23.4.3.3 WeakSet.prototype.delete(value) - 'delete': function (key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); - return data && $has(data, this._i) && delete data[this._i]; - }, - // 23.3.3.4 WeakMap.prototype.has(key) - // 23.4.3.4 WeakSet.prototype.has(value) - has: function has(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); - return data && $has(data, this._i); - } - }); - return C; - }, - def: function (that, key, value) { - var data = getWeak(anObject(key), true); - if (data === true) uncaughtFrozenStore(that).set(key, value); - else data[that._i] = value; - return that; - }, - ufstore: uncaughtFrozenStore - }; - - -/***/ }), -/* 228 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var weak = __webpack_require__(227); - var validate = __webpack_require__(223); - var WEAK_SET = 'WeakSet'; - - // 23.4 WeakSet Objects - __webpack_require__(224)(WEAK_SET, function (get) { - return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; - }, { - // 23.4.3.1 WeakSet.prototype.add(value) - add: function add(value) { - return weak.def(validate(this, WEAK_SET), value, true); - } - }, weak, false, true); - - -/***/ }), -/* 229 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var $typed = __webpack_require__(230); - var buffer = __webpack_require__(231); - var anObject = __webpack_require__(12); - var toAbsoluteIndex = __webpack_require__(40); - var toLength = __webpack_require__(38); - var isObject = __webpack_require__(13); - var ArrayBuffer = __webpack_require__(4).ArrayBuffer; - var speciesConstructor = __webpack_require__(210); - var $ArrayBuffer = buffer.ArrayBuffer; - var $DataView = buffer.DataView; - var $isView = $typed.ABV && ArrayBuffer.isView; - var $slice = $ArrayBuffer.prototype.slice; - var VIEW = $typed.VIEW; - var ARRAY_BUFFER = 'ArrayBuffer'; - - $export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer }); - - $export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, { - // 24.1.3.1 ArrayBuffer.isView(arg) - isView: function isView(it) { - return $isView && $isView(it) || isObject(it) && VIEW in it; - } - }); - - $export($export.P + $export.U + $export.F * __webpack_require__(7)(function () { - return !new $ArrayBuffer(2).slice(1, undefined).byteLength; - }), ARRAY_BUFFER, { - // 24.1.4.3 ArrayBuffer.prototype.slice(start, end) - slice: function slice(start, end) { - if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix - var len = anObject(this).byteLength; - var first = toAbsoluteIndex(start, len); - var fin = toAbsoluteIndex(end === undefined ? len : end, len); - var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first)); - var viewS = new $DataView(this); - var viewT = new $DataView(result); - var index = 0; - while (first < fin) { - viewT.setUint8(index++, viewS.getUint8(first++)); - } return result; - } - }); - - __webpack_require__(194)(ARRAY_BUFFER); - - -/***/ }), -/* 230 */ -/***/ (function(module, exports, __webpack_require__) { - - var global = __webpack_require__(4); - var hide = __webpack_require__(10); - var uid = __webpack_require__(19); - var TYPED = uid('typed_array'); - var VIEW = uid('view'); - var ABV = !!(global.ArrayBuffer && global.DataView); - var CONSTR = ABV; - var i = 0; - var l = 9; - var Typed; - - var TypedArrayConstructors = ( - 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array' - ).split(','); - - while (i < l) { - if (Typed = global[TypedArrayConstructors[i++]]) { - hide(Typed.prototype, TYPED, true); - hide(Typed.prototype, VIEW, true); - } else CONSTR = false; - } - - module.exports = { - ABV: ABV, - CONSTR: CONSTR, - TYPED: TYPED, - VIEW: VIEW - }; - - -/***/ }), -/* 231 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var global = __webpack_require__(4); - var DESCRIPTORS = __webpack_require__(6); - var LIBRARY = __webpack_require__(22); - var $typed = __webpack_require__(230); - var hide = __webpack_require__(10); - var redefineAll = __webpack_require__(220); - var fails = __webpack_require__(7); - var anInstance = __webpack_require__(212); - var toInteger = __webpack_require__(39); - var toLength = __webpack_require__(38); - var toIndex = __webpack_require__(232); - var gOPN = __webpack_require__(51).f; - var dP = __webpack_require__(11).f; - var arrayFill = __webpack_require__(190); - var setToStringTag = __webpack_require__(26); - var ARRAY_BUFFER = 'ArrayBuffer'; - var DATA_VIEW = 'DataView'; - var PROTOTYPE = 'prototype'; - var WRONG_LENGTH = 'Wrong length!'; - var WRONG_INDEX = 'Wrong index!'; - var $ArrayBuffer = global[ARRAY_BUFFER]; - var $DataView = global[DATA_VIEW]; - var Math = global.Math; - var RangeError = global.RangeError; - // eslint-disable-next-line no-shadow-restricted-names - var Infinity = global.Infinity; - var BaseBuffer = $ArrayBuffer; - var abs = Math.abs; - var pow = Math.pow; - var floor = Math.floor; - var log = Math.log; - var LN2 = Math.LN2; - var BUFFER = 'buffer'; - var BYTE_LENGTH = 'byteLength'; - var BYTE_OFFSET = 'byteOffset'; - var $BUFFER = DESCRIPTORS ? '_b' : BUFFER; - var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH; - var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET; - - // IEEE754 conversions based on https://github.com/feross/ieee754 - function packIEEE754(value, mLen, nBytes) { - var buffer = new Array(nBytes); - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0; - var i = 0; - var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; - var e, m, c; - value = abs(value); - // eslint-disable-next-line no-self-compare - if (value != value || value === Infinity) { - // eslint-disable-next-line no-self-compare - m = value != value ? 1 : 0; - e = eMax; - } else { - e = floor(log(value) / LN2); - if (value * (c = pow(2, -e)) < 1) { - e--; - c *= 2; - } - if (e + eBias >= 1) { - value += rt / c; - } else { - value += rt * pow(2, 1 - eBias); - } - if (value * c >= 2) { - e++; - c /= 2; - } - if (e + eBias >= eMax) { - m = 0; - e = eMax; - } else if (e + eBias >= 1) { - m = (value * c - 1) * pow(2, mLen); - e = e + eBias; - } else { - m = value * pow(2, eBias - 1) * pow(2, mLen); - e = 0; - } - } - for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8); - e = e << mLen | m; - eLen += mLen; - for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8); - buffer[--i] |= s * 128; - return buffer; - } - function unpackIEEE754(buffer, mLen, nBytes) { - var eLen = nBytes * 8 - mLen - 1; - var eMax = (1 << eLen) - 1; - var eBias = eMax >> 1; - var nBits = eLen - 7; - var i = nBytes - 1; - var s = buffer[i--]; - var e = s & 127; - var m; - s >>= 7; - for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8); - m = e & (1 << -nBits) - 1; - e >>= -nBits; - nBits += mLen; - for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8); - if (e === 0) { - e = 1 - eBias; - } else if (e === eMax) { - return m ? NaN : s ? -Infinity : Infinity; - } else { - m = m + pow(2, mLen); - e = e - eBias; - } return (s ? -1 : 1) * m * pow(2, e - mLen); - } - - function unpackI32(bytes) { - return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]; - } - function packI8(it) { - return [it & 0xff]; - } - function packI16(it) { - return [it & 0xff, it >> 8 & 0xff]; - } - function packI32(it) { - return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff]; - } - function packF64(it) { - return packIEEE754(it, 52, 8); - } - function packF32(it) { - return packIEEE754(it, 23, 4); - } - - function addGetter(C, key, internal) { - dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } }); - } - - function get(view, bytes, index, isLittleEndian) { - var numIndex = +index; - var intIndex = toIndex(numIndex); - if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); - var store = view[$BUFFER]._b; - var start = intIndex + view[$OFFSET]; - var pack = store.slice(start, start + bytes); - return isLittleEndian ? pack : pack.reverse(); - } - function set(view, bytes, index, conversion, value, isLittleEndian) { - var numIndex = +index; - var intIndex = toIndex(numIndex); - if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); - var store = view[$BUFFER]._b; - var start = intIndex + view[$OFFSET]; - var pack = conversion(+value); - for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1]; - } - - if (!$typed.ABV) { - $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer, ARRAY_BUFFER); - var byteLength = toIndex(length); - this._b = arrayFill.call(new Array(byteLength), 0); - this[$LENGTH] = byteLength; - }; - - $DataView = function DataView(buffer, byteOffset, byteLength) { - anInstance(this, $DataView, DATA_VIEW); - anInstance(buffer, $ArrayBuffer, DATA_VIEW); - var bufferLength = buffer[$LENGTH]; - var offset = toInteger(byteOffset); - if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!'); - byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); - if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH); - this[$BUFFER] = buffer; - this[$OFFSET] = offset; - this[$LENGTH] = byteLength; - }; - - if (DESCRIPTORS) { - addGetter($ArrayBuffer, BYTE_LENGTH, '_l'); - addGetter($DataView, BUFFER, '_b'); - addGetter($DataView, BYTE_LENGTH, '_l'); - addGetter($DataView, BYTE_OFFSET, '_o'); - } - - redefineAll($DataView[PROTOTYPE], { - getInt8: function getInt8(byteOffset) { - return get(this, 1, byteOffset)[0] << 24 >> 24; - }, - getUint8: function getUint8(byteOffset) { - return get(this, 1, byteOffset)[0]; - }, - getInt16: function getInt16(byteOffset /* , littleEndian */) { - var bytes = get(this, 2, byteOffset, arguments[1]); - return (bytes[1] << 8 | bytes[0]) << 16 >> 16; - }, - getUint16: function getUint16(byteOffset /* , littleEndian */) { - var bytes = get(this, 2, byteOffset, arguments[1]); - return bytes[1] << 8 | bytes[0]; - }, - getInt32: function getInt32(byteOffset /* , littleEndian */) { - return unpackI32(get(this, 4, byteOffset, arguments[1])); - }, - getUint32: function getUint32(byteOffset /* , littleEndian */) { - return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0; - }, - getFloat32: function getFloat32(byteOffset /* , littleEndian */) { - return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4); - }, - getFloat64: function getFloat64(byteOffset /* , littleEndian */) { - return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8); - }, - setInt8: function setInt8(byteOffset, value) { - set(this, 1, byteOffset, packI8, value); - }, - setUint8: function setUint8(byteOffset, value) { - set(this, 1, byteOffset, packI8, value); - }, - setInt16: function setInt16(byteOffset, value /* , littleEndian */) { - set(this, 2, byteOffset, packI16, value, arguments[2]); - }, - setUint16: function setUint16(byteOffset, value /* , littleEndian */) { - set(this, 2, byteOffset, packI16, value, arguments[2]); - }, - setInt32: function setInt32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packI32, value, arguments[2]); - }, - setUint32: function setUint32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packI32, value, arguments[2]); - }, - setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { - set(this, 4, byteOffset, packF32, value, arguments[2]); - }, - setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { - set(this, 8, byteOffset, packF64, value, arguments[2]); - } - }); - } else { - if (!fails(function () { - $ArrayBuffer(1); - }) || !fails(function () { - new $ArrayBuffer(-1); // eslint-disable-line no-new - }) || fails(function () { - new $ArrayBuffer(); // eslint-disable-line no-new - new $ArrayBuffer(1.5); // eslint-disable-line no-new - new $ArrayBuffer(NaN); // eslint-disable-line no-new - return $ArrayBuffer.name != ARRAY_BUFFER; - })) { - $ArrayBuffer = function ArrayBuffer(length) { - anInstance(this, $ArrayBuffer); - return new BaseBuffer(toIndex(length)); - }; - var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE]; - for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) { - if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]); - } - if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer; - } - // iOS Safari 7.x bug - var view = new $DataView(new $ArrayBuffer(2)); - var $setInt8 = $DataView[PROTOTYPE].setInt8; - view.setInt8(0, 2147483648); - view.setInt8(1, 2147483649); - if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], { - setInt8: function setInt8(byteOffset, value) { - $setInt8.call(this, byteOffset, value << 24 >> 24); - }, - setUint8: function setUint8(byteOffset, value) { - $setInt8.call(this, byteOffset, value << 24 >> 24); - } - }, true); - } - setToStringTag($ArrayBuffer, ARRAY_BUFFER); - setToStringTag($DataView, DATA_VIEW); - hide($DataView[PROTOTYPE], $typed.VIEW, true); - exports[ARRAY_BUFFER] = $ArrayBuffer; - exports[DATA_VIEW] = $DataView; - - -/***/ }), -/* 232 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://tc39.github.io/ecma262/#sec-toindex - var toInteger = __webpack_require__(39); - var toLength = __webpack_require__(38); - module.exports = function (it) { - if (it === undefined) return 0; - var number = toInteger(it); - var length = toLength(number); - if (number !== length) throw RangeError('Wrong length!'); - return length; - }; - - -/***/ }), -/* 233 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - $export($export.G + $export.W + $export.F * !__webpack_require__(230).ABV, { - DataView: __webpack_require__(231).DataView - }); - - -/***/ }), -/* 234 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(235)('Int8', 1, function (init) { - return function Int8Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; - }); - - -/***/ }), -/* 235 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - if (__webpack_require__(6)) { - var LIBRARY = __webpack_require__(22); - var global = __webpack_require__(4); - var fails = __webpack_require__(7); - var $export = __webpack_require__(8); - var $typed = __webpack_require__(230); - var $buffer = __webpack_require__(231); - var ctx = __webpack_require__(23); - var anInstance = __webpack_require__(212); - var propertyDesc = __webpack_require__(17); - var hide = __webpack_require__(10); - var redefineAll = __webpack_require__(220); - var toInteger = __webpack_require__(39); - var toLength = __webpack_require__(38); - var toIndex = __webpack_require__(232); - var toAbsoluteIndex = __webpack_require__(40); - var toPrimitive = __webpack_require__(16); - var has = __webpack_require__(5); - var classof = __webpack_require__(75); - var isObject = __webpack_require__(13); - var toObject = __webpack_require__(46); - var isArrayIter = __webpack_require__(164); - var create = __webpack_require__(47); - var getPrototypeOf = __webpack_require__(59); - var gOPN = __webpack_require__(51).f; - var getIterFn = __webpack_require__(166); - var uid = __webpack_require__(19); - var wks = __webpack_require__(27); - var createArrayMethod = __webpack_require__(174); - var createArrayIncludes = __webpack_require__(37); - var speciesConstructor = __webpack_require__(210); - var ArrayIterators = __webpack_require__(195); - var Iterators = __webpack_require__(130); - var $iterDetect = __webpack_require__(167); - var setSpecies = __webpack_require__(194); - var arrayFill = __webpack_require__(190); - var arrayCopyWithin = __webpack_require__(187); - var $DP = __webpack_require__(11); - var $GOPD = __webpack_require__(52); - var dP = $DP.f; - var gOPD = $GOPD.f; - var RangeError = global.RangeError; - var TypeError = global.TypeError; - var Uint8Array = global.Uint8Array; - var ARRAY_BUFFER = 'ArrayBuffer'; - var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER; - var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; - var PROTOTYPE = 'prototype'; - var ArrayProto = Array[PROTOTYPE]; - var $ArrayBuffer = $buffer.ArrayBuffer; - var $DataView = $buffer.DataView; - var arrayForEach = createArrayMethod(0); - var arrayFilter = createArrayMethod(2); - var arraySome = createArrayMethod(3); - var arrayEvery = createArrayMethod(4); - var arrayFind = createArrayMethod(5); - var arrayFindIndex = createArrayMethod(6); - var arrayIncludes = createArrayIncludes(true); - var arrayIndexOf = createArrayIncludes(false); - var arrayValues = ArrayIterators.values; - var arrayKeys = ArrayIterators.keys; - var arrayEntries = ArrayIterators.entries; - var arrayLastIndexOf = ArrayProto.lastIndexOf; - var arrayReduce = ArrayProto.reduce; - var arrayReduceRight = ArrayProto.reduceRight; - var arrayJoin = ArrayProto.join; - var arraySort = ArrayProto.sort; - var arraySlice = ArrayProto.slice; - var arrayToString = ArrayProto.toString; - var arrayToLocaleString = ArrayProto.toLocaleString; - var ITERATOR = wks('iterator'); - var TAG = wks('toStringTag'); - var TYPED_CONSTRUCTOR = uid('typed_constructor'); - var DEF_CONSTRUCTOR = uid('def_constructor'); - var ALL_CONSTRUCTORS = $typed.CONSTR; - var TYPED_ARRAY = $typed.TYPED; - var VIEW = $typed.VIEW; - var WRONG_LENGTH = 'Wrong length!'; - - var $map = createArrayMethod(1, function (O, length) { - return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length); - }); - - var LITTLE_ENDIAN = fails(function () { - // eslint-disable-next-line no-undef - return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; - }); - - var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () { - new Uint8Array(1).set({}); - }); - - var toOffset = function (it, BYTES) { - var offset = toInteger(it); - if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!'); - return offset; - }; - - var validate = function (it) { - if (isObject(it) && TYPED_ARRAY in it) return it; - throw TypeError(it + ' is not a typed array!'); - }; - - var allocate = function (C, length) { - if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) { - throw TypeError('It is not a typed array constructor!'); - } return new C(length); - }; - - var speciesFromList = function (O, list) { - return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list); - }; - - var fromList = function (C, list) { - var index = 0; - var length = list.length; - var result = allocate(C, length); - while (length > index) result[index] = list[index++]; - return result; - }; - - var addGetter = function (it, key, internal) { - dP(it, key, { get: function () { return this._d[internal]; } }); - }; - - var $from = function from(source /* , mapfn, thisArg */) { - var O = toObject(source); - var aLen = arguments.length; - var mapfn = aLen > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var iterFn = getIterFn(O); - var i, length, values, result, step, iterator; - if (iterFn != undefined && !isArrayIter(iterFn)) { - for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) { - values.push(step.value); - } O = values; - } - if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2); - for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) { - result[i] = mapping ? mapfn(O[i], i) : O[i]; - } - return result; - }; - - var $of = function of(/* ...items */) { - var index = 0; - var length = arguments.length; - var result = allocate(this, length); - while (length > index) result[index] = arguments[index++]; - return result; - }; - - // iOS Safari 6.x fails here - var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); }); - - var $toLocaleString = function toLocaleString() { - return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments); - }; - - var proto = { - copyWithin: function copyWithin(target, start /* , end */) { - return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined); - }, - every: function every(callbackfn /* , thisArg */) { - return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - }, - fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars - return arrayFill.apply(validate(this), arguments); - }, - filter: function filter(callbackfn /* , thisArg */) { - return speciesFromList(this, arrayFilter(validate(this), callbackfn, - arguments.length > 1 ? arguments[1] : undefined)); - }, - find: function find(predicate /* , thisArg */) { - return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); - }, - findIndex: function findIndex(predicate /* , thisArg */) { - return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); - }, - forEach: function forEach(callbackfn /* , thisArg */) { - arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - }, - indexOf: function indexOf(searchElement /* , fromIndex */) { - return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); - }, - includes: function includes(searchElement /* , fromIndex */) { - return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); - }, - join: function join(separator) { // eslint-disable-line no-unused-vars - return arrayJoin.apply(validate(this), arguments); - }, - lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars - return arrayLastIndexOf.apply(validate(this), arguments); - }, - map: function map(mapfn /* , thisArg */) { - return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined); - }, - reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars - return arrayReduce.apply(validate(this), arguments); - }, - reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars - return arrayReduceRight.apply(validate(this), arguments); - }, - reverse: function reverse() { - var that = this; - var length = validate(that).length; - var middle = Math.floor(length / 2); - var index = 0; - var value; - while (index < middle) { - value = that[index]; - that[index++] = that[--length]; - that[length] = value; - } return that; - }, - some: function some(callbackfn /* , thisArg */) { - return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); - }, - sort: function sort(comparefn) { - return arraySort.call(validate(this), comparefn); - }, - subarray: function subarray(begin, end) { - var O = validate(this); - var length = O.length; - var $begin = toAbsoluteIndex(begin, length); - return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))( - O.buffer, - O.byteOffset + $begin * O.BYTES_PER_ELEMENT, - toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin) - ); - } - }; - - var $slice = function slice(start, end) { - return speciesFromList(this, arraySlice.call(validate(this), start, end)); - }; - - var $set = function set(arrayLike /* , offset */) { - validate(this); - var offset = toOffset(arguments[1], 1); - var length = this.length; - var src = toObject(arrayLike); - var len = toLength(src.length); - var index = 0; - if (len + offset > length) throw RangeError(WRONG_LENGTH); - while (index < len) this[offset + index] = src[index++]; - }; - - var $iterators = { - entries: function entries() { - return arrayEntries.call(validate(this)); - }, - keys: function keys() { - return arrayKeys.call(validate(this)); - }, - values: function values() { - return arrayValues.call(validate(this)); - } - }; - - var isTAIndex = function (target, key) { - return isObject(target) - && target[TYPED_ARRAY] - && typeof key != 'symbol' - && key in target - && String(+key) == String(key); - }; - var $getDesc = function getOwnPropertyDescriptor(target, key) { - return isTAIndex(target, key = toPrimitive(key, true)) - ? propertyDesc(2, target[key]) - : gOPD(target, key); - }; - var $setDesc = function defineProperty(target, key, desc) { - if (isTAIndex(target, key = toPrimitive(key, true)) - && isObject(desc) - && has(desc, 'value') - && !has(desc, 'get') - && !has(desc, 'set') - // TODO: add validation descriptor w/o calling accessors - && !desc.configurable - && (!has(desc, 'writable') || desc.writable) - && (!has(desc, 'enumerable') || desc.enumerable) - ) { - target[key] = desc.value; - return target; - } return dP(target, key, desc); - }; - - if (!ALL_CONSTRUCTORS) { - $GOPD.f = $getDesc; - $DP.f = $setDesc; - } - - $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', { - getOwnPropertyDescriptor: $getDesc, - defineProperty: $setDesc - }); - - if (fails(function () { arrayToString.call({}); })) { - arrayToString = arrayToLocaleString = function toString() { - return arrayJoin.call(this); - }; - } - - var $TypedArrayPrototype$ = redefineAll({}, proto); - redefineAll($TypedArrayPrototype$, $iterators); - hide($TypedArrayPrototype$, ITERATOR, $iterators.values); - redefineAll($TypedArrayPrototype$, { - slice: $slice, - set: $set, - constructor: function () { /* noop */ }, - toString: arrayToString, - toLocaleString: $toLocaleString - }); - addGetter($TypedArrayPrototype$, 'buffer', 'b'); - addGetter($TypedArrayPrototype$, 'byteOffset', 'o'); - addGetter($TypedArrayPrototype$, 'byteLength', 'l'); - addGetter($TypedArrayPrototype$, 'length', 'e'); - dP($TypedArrayPrototype$, TAG, { - get: function () { return this[TYPED_ARRAY]; } - }); - - // eslint-disable-next-line max-statements - module.exports = function (KEY, BYTES, wrapper, CLAMPED) { - CLAMPED = !!CLAMPED; - var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'; - var GETTER = 'get' + KEY; - var SETTER = 'set' + KEY; - var TypedArray = global[NAME]; - var Base = TypedArray || {}; - var TAC = TypedArray && getPrototypeOf(TypedArray); - var FORCED = !TypedArray || !$typed.ABV; - var O = {}; - var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE]; - var getter = function (that, index) { - var data = that._d; - return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN); - }; - var setter = function (that, index, value) { - var data = that._d; - if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff; - data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN); - }; - var addElement = function (that, index) { - dP(that, index, { - get: function () { - return getter(this, index); - }, - set: function (value) { - return setter(this, index, value); - }, - enumerable: true - }); - }; - if (FORCED) { - TypedArray = wrapper(function (that, data, $offset, $length) { - anInstance(that, TypedArray, NAME, '_d'); - var index = 0; - var offset = 0; - var buffer, byteLength, length, klass; - if (!isObject(data)) { - length = toIndex(data); - byteLength = length * BYTES; - buffer = new $ArrayBuffer(byteLength); - } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { - buffer = data; - offset = toOffset($offset, BYTES); - var $len = data.byteLength; - if ($length === undefined) { - if ($len % BYTES) throw RangeError(WRONG_LENGTH); - byteLength = $len - offset; - if (byteLength < 0) throw RangeError(WRONG_LENGTH); - } else { - byteLength = toLength($length) * BYTES; - if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH); - } - length = byteLength / BYTES; - } else if (TYPED_ARRAY in data) { - return fromList(TypedArray, data); - } else { - return $from.call(TypedArray, data); - } - hide(that, '_d', { - b: buffer, - o: offset, - l: byteLength, - e: length, - v: new $DataView(buffer) - }); - while (index < length) addElement(that, index++); - }); - TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$); - hide(TypedArrayPrototype, 'constructor', TypedArray); - } else if (!fails(function () { - TypedArray(1); - }) || !fails(function () { - new TypedArray(-1); // eslint-disable-line no-new - }) || !$iterDetect(function (iter) { - new TypedArray(); // eslint-disable-line no-new - new TypedArray(null); // eslint-disable-line no-new - new TypedArray(1.5); // eslint-disable-line no-new - new TypedArray(iter); // eslint-disable-line no-new - }, true)) { - TypedArray = wrapper(function (that, data, $offset, $length) { - anInstance(that, TypedArray, NAME); - var klass; - // `ws` module bug, temporarily remove validation length for Uint8Array - // https://github.com/websockets/ws/pull/645 - if (!isObject(data)) return new Base(toIndex(data)); - if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { - return $length !== undefined - ? new Base(data, toOffset($offset, BYTES), $length) - : $offset !== undefined - ? new Base(data, toOffset($offset, BYTES)) - : new Base(data); - } - if (TYPED_ARRAY in data) return fromList(TypedArray, data); - return $from.call(TypedArray, data); - }); - arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) { - if (!(key in TypedArray)) hide(TypedArray, key, Base[key]); - }); - TypedArray[PROTOTYPE] = TypedArrayPrototype; - if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray; - } - var $nativeIterator = TypedArrayPrototype[ITERATOR]; - var CORRECT_ITER_NAME = !!$nativeIterator - && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined); - var $iterator = $iterators.values; - hide(TypedArray, TYPED_CONSTRUCTOR, true); - hide(TypedArrayPrototype, TYPED_ARRAY, NAME); - hide(TypedArrayPrototype, VIEW, true); - hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray); - - if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) { - dP(TypedArrayPrototype, TAG, { - get: function () { return NAME; } - }); - } - - O[NAME] = TypedArray; - - $export($export.G + $export.W + $export.F * (TypedArray != Base), O); - - $export($export.S, NAME, { - BYTES_PER_ELEMENT: BYTES - }); - - $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, { - from: $from, - of: $of - }); - - if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES); - - $export($export.P, NAME, proto); - - setSpecies(NAME); - - $export($export.P + $export.F * FORCED_SET, NAME, { set: $set }); - - $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators); - - if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString; - - $export($export.P + $export.F * fails(function () { - new TypedArray(1).slice(); - }), NAME, { slice: $slice }); - - $export($export.P + $export.F * (fails(function () { - return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString(); - }) || !fails(function () { - TypedArrayPrototype.toLocaleString.call([1, 2]); - })), NAME, { toLocaleString: $toLocaleString }); - - Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator; - if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator); - }; - } else module.exports = function () { /* empty */ }; - - -/***/ }), -/* 236 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(235)('Uint8', 1, function (init) { - return function Uint8Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; - }); - - -/***/ }), -/* 237 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(235)('Uint8', 1, function (init) { - return function Uint8ClampedArray(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; - }, true); - - -/***/ }), -/* 238 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(235)('Int16', 2, function (init) { - return function Int16Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; - }); - - -/***/ }), -/* 239 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(235)('Uint16', 2, function (init) { - return function Uint16Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; - }); - - -/***/ }), -/* 240 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(235)('Int32', 4, function (init) { - return function Int32Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; - }); - - -/***/ }), -/* 241 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(235)('Uint32', 4, function (init) { - return function Uint32Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; - }); - - -/***/ }), -/* 242 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(235)('Float32', 4, function (init) { - return function Float32Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; - }); - - -/***/ }), -/* 243 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(235)('Float64', 8, function (init) { - return function Float64Array(data, byteOffset, length) { - return init(this, data, byteOffset, length); - }; - }); - - -/***/ }), -/* 244 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.1 Reflect.apply(target, thisArgument, argumentsList) - var $export = __webpack_require__(8); - var aFunction = __webpack_require__(24); - var anObject = __webpack_require__(12); - var rApply = (__webpack_require__(4).Reflect || {}).apply; - var fApply = Function.apply; - // MS Edge argumentsList argument is optional - $export($export.S + $export.F * !__webpack_require__(7)(function () { - rApply(function () { /* empty */ }); - }), 'Reflect', { - apply: function apply(target, thisArgument, argumentsList) { - var T = aFunction(target); - var L = anObject(argumentsList); - return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L); - } - }); - - -/***/ }), -/* 245 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.2 Reflect.construct(target, argumentsList [, newTarget]) - var $export = __webpack_require__(8); - var create = __webpack_require__(47); - var aFunction = __webpack_require__(24); - var anObject = __webpack_require__(12); - var isObject = __webpack_require__(13); - var fails = __webpack_require__(7); - var bind = __webpack_require__(77); - var rConstruct = (__webpack_require__(4).Reflect || {}).construct; - - // MS Edge supports only 2 arguments and argumentsList argument is optional - // FF Nightly sets third argument as `new.target`, but does not create `this` from it - var NEW_TARGET_BUG = fails(function () { - function F() { /* empty */ } - return !(rConstruct(function () { /* empty */ }, [], F) instanceof F); - }); - var ARGS_BUG = !fails(function () { - rConstruct(function () { /* empty */ }); - }); - - $export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', { - construct: function construct(Target, args /* , newTarget */) { - aFunction(Target); - anObject(args); - var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); - if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget); - if (Target == newTarget) { - // w/o altered newTarget, optimization for 0-4 arguments - switch (args.length) { - case 0: return new Target(); - case 1: return new Target(args[0]); - case 2: return new Target(args[0], args[1]); - case 3: return new Target(args[0], args[1], args[2]); - case 4: return new Target(args[0], args[1], args[2], args[3]); - } - // w/o altered newTarget, lot of arguments case - var $args = [null]; - $args.push.apply($args, args); - return new (bind.apply(Target, $args))(); - } - // with altered newTarget, not support built-in constructors - var proto = newTarget.prototype; - var instance = create(isObject(proto) ? proto : Object.prototype); - var result = Function.apply.call(Target, instance, args); - return isObject(result) ? result : instance; - } - }); - - -/***/ }), -/* 246 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.3 Reflect.defineProperty(target, propertyKey, attributes) - var dP = __webpack_require__(11); - var $export = __webpack_require__(8); - var anObject = __webpack_require__(12); - var toPrimitive = __webpack_require__(16); - - // MS Edge has broken Reflect.defineProperty - throwing instead of returning false - $export($export.S + $export.F * __webpack_require__(7)(function () { - // eslint-disable-next-line no-undef - Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 }); - }), 'Reflect', { - defineProperty: function defineProperty(target, propertyKey, attributes) { - anObject(target); - propertyKey = toPrimitive(propertyKey, true); - anObject(attributes); - try { - dP.f(target, propertyKey, attributes); - return true; - } catch (e) { - return false; - } - } - }); - - -/***/ }), -/* 247 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.4 Reflect.deleteProperty(target, propertyKey) - var $export = __webpack_require__(8); - var gOPD = __webpack_require__(52).f; - var anObject = __webpack_require__(12); - - $export($export.S, 'Reflect', { - deleteProperty: function deleteProperty(target, propertyKey) { - var desc = gOPD(anObject(target), propertyKey); - return desc && !desc.configurable ? false : delete target[propertyKey]; - } - }); - - -/***/ }), -/* 248 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // 26.1.5 Reflect.enumerate(target) - var $export = __webpack_require__(8); - var anObject = __webpack_require__(12); - var Enumerate = function (iterated) { - this._t = anObject(iterated); // target - this._i = 0; // next index - var keys = this._k = []; // keys - var key; - for (key in iterated) keys.push(key); - }; - __webpack_require__(131)(Enumerate, 'Object', function () { - var that = this; - var keys = that._k; - var key; - do { - if (that._i >= keys.length) return { value: undefined, done: true }; - } while (!((key = keys[that._i++]) in that._t)); - return { value: key, done: false }; - }); - - $export($export.S, 'Reflect', { - enumerate: function enumerate(target) { - return new Enumerate(target); - } - }); - - -/***/ }), -/* 249 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.6 Reflect.get(target, propertyKey [, receiver]) - var gOPD = __webpack_require__(52); - var getPrototypeOf = __webpack_require__(59); - var has = __webpack_require__(5); - var $export = __webpack_require__(8); - var isObject = __webpack_require__(13); - var anObject = __webpack_require__(12); - - function get(target, propertyKey /* , receiver */) { - var receiver = arguments.length < 3 ? target : arguments[2]; - var desc, proto; - if (anObject(target) === receiver) return target[propertyKey]; - if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') - ? desc.value - : desc.get !== undefined - ? desc.get.call(receiver) - : undefined; - if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver); - } - - $export($export.S, 'Reflect', { get: get }); - - -/***/ }), -/* 250 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey) - var gOPD = __webpack_require__(52); - var $export = __webpack_require__(8); - var anObject = __webpack_require__(12); - - $export($export.S, 'Reflect', { - getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { - return gOPD.f(anObject(target), propertyKey); - } - }); - - -/***/ }), -/* 251 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.8 Reflect.getPrototypeOf(target) - var $export = __webpack_require__(8); - var getProto = __webpack_require__(59); - var anObject = __webpack_require__(12); - - $export($export.S, 'Reflect', { - getPrototypeOf: function getPrototypeOf(target) { - return getProto(anObject(target)); - } - }); - - -/***/ }), -/* 252 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.9 Reflect.has(target, propertyKey) - var $export = __webpack_require__(8); - - $export($export.S, 'Reflect', { - has: function has(target, propertyKey) { - return propertyKey in target; - } - }); - - -/***/ }), -/* 253 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.10 Reflect.isExtensible(target) - var $export = __webpack_require__(8); - var anObject = __webpack_require__(12); - var $isExtensible = Object.isExtensible; - - $export($export.S, 'Reflect', { - isExtensible: function isExtensible(target) { - anObject(target); - return $isExtensible ? $isExtensible(target) : true; - } - }); - - -/***/ }), -/* 254 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.11 Reflect.ownKeys(target) - var $export = __webpack_require__(8); - - $export($export.S, 'Reflect', { ownKeys: __webpack_require__(255) }); - - -/***/ }), -/* 255 */ -/***/ (function(module, exports, __webpack_require__) { - - // all object keys, includes non-enumerable and symbols - var gOPN = __webpack_require__(51); - var gOPS = __webpack_require__(43); - var anObject = __webpack_require__(12); - var Reflect = __webpack_require__(4).Reflect; - module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) { - var keys = gOPN.f(anObject(it)); - var getSymbols = gOPS.f; - return getSymbols ? keys.concat(getSymbols(it)) : keys; - }; - - -/***/ }), -/* 256 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.12 Reflect.preventExtensions(target) - var $export = __webpack_require__(8); - var anObject = __webpack_require__(12); - var $preventExtensions = Object.preventExtensions; - - $export($export.S, 'Reflect', { - preventExtensions: function preventExtensions(target) { - anObject(target); - try { - if ($preventExtensions) $preventExtensions(target); - return true; - } catch (e) { - return false; - } - } - }); - - -/***/ }), -/* 257 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.13 Reflect.set(target, propertyKey, V [, receiver]) - var dP = __webpack_require__(11); - var gOPD = __webpack_require__(52); - var getPrototypeOf = __webpack_require__(59); - var has = __webpack_require__(5); - var $export = __webpack_require__(8); - var createDesc = __webpack_require__(17); - var anObject = __webpack_require__(12); - var isObject = __webpack_require__(13); - - function set(target, propertyKey, V /* , receiver */) { - var receiver = arguments.length < 4 ? target : arguments[3]; - var ownDesc = gOPD.f(anObject(target), propertyKey); - var existingDescriptor, proto; - if (!ownDesc) { - if (isObject(proto = getPrototypeOf(target))) { - return set(proto, propertyKey, V, receiver); - } - ownDesc = createDesc(0); - } - if (has(ownDesc, 'value')) { - if (ownDesc.writable === false || !isObject(receiver)) return false; - if (existingDescriptor = gOPD.f(receiver, propertyKey)) { - if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; - existingDescriptor.value = V; - dP.f(receiver, propertyKey, existingDescriptor); - } else dP.f(receiver, propertyKey, createDesc(0, V)); - return true; - } - return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); - } - - $export($export.S, 'Reflect', { set: set }); - - -/***/ }), -/* 258 */ -/***/ (function(module, exports, __webpack_require__) { - - // 26.1.14 Reflect.setPrototypeOf(target, proto) - var $export = __webpack_require__(8); - var setProto = __webpack_require__(73); - - if (setProto) $export($export.S, 'Reflect', { - setPrototypeOf: function setPrototypeOf(target, proto) { - setProto.check(target, proto); - try { - setProto.set(target, proto); - return true; - } catch (e) { - return false; - } - } - }); - - -/***/ }), -/* 259 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://github.com/tc39/Array.prototype.includes - var $export = __webpack_require__(8); - var $includes = __webpack_require__(37)(true); - - $export($export.P, 'Array', { - includes: function includes(el /* , fromIndex = 0 */) { - return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); - } - }); - - __webpack_require__(188)('includes'); - - -/***/ }), -/* 260 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap - var $export = __webpack_require__(8); - var flattenIntoArray = __webpack_require__(261); - var toObject = __webpack_require__(46); - var toLength = __webpack_require__(38); - var aFunction = __webpack_require__(24); - var arraySpeciesCreate = __webpack_require__(175); - - $export($export.P, 'Array', { - flatMap: function flatMap(callbackfn /* , thisArg */) { - var O = toObject(this); - var sourceLen, A; - aFunction(callbackfn); - sourceLen = toLength(O.length); - A = arraySpeciesCreate(O, 0); - flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]); - return A; - } - }); - - __webpack_require__(188)('flatMap'); - - -/***/ }), -/* 261 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray - var isArray = __webpack_require__(45); - var isObject = __webpack_require__(13); - var toLength = __webpack_require__(38); - var ctx = __webpack_require__(23); - var IS_CONCAT_SPREADABLE = __webpack_require__(27)('isConcatSpreadable'); - - function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) { - var targetIndex = start; - var sourceIndex = 0; - var mapFn = mapper ? ctx(mapper, thisArg, 3) : false; - var element, spreadable; - - while (sourceIndex < sourceLen) { - if (sourceIndex in source) { - element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; - - spreadable = false; - if (isObject(element)) { - spreadable = element[IS_CONCAT_SPREADABLE]; - spreadable = spreadable !== undefined ? !!spreadable : isArray(element); - } - - if (spreadable && depth > 0) { - targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; - } else { - if (targetIndex >= 0x1fffffffffffff) throw TypeError(); - target[targetIndex] = element; - } - - targetIndex++; - } - sourceIndex++; - } - return targetIndex; - } - - module.exports = flattenIntoArray; - - -/***/ }), -/* 262 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten - var $export = __webpack_require__(8); - var flattenIntoArray = __webpack_require__(261); - var toObject = __webpack_require__(46); - var toLength = __webpack_require__(38); - var toInteger = __webpack_require__(39); - var arraySpeciesCreate = __webpack_require__(175); - - $export($export.P, 'Array', { - flatten: function flatten(/* depthArg = 1 */) { - var depthArg = arguments[0]; - var O = toObject(this); - var sourceLen = toLength(O.length); - var A = arraySpeciesCreate(O, 0); - flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg)); - return A; - } - }); - - __webpack_require__(188)('flatten'); - - -/***/ }), -/* 263 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://github.com/mathiasbynens/String.prototype.at - var $export = __webpack_require__(8); - var $at = __webpack_require__(128)(true); - - $export($export.P, 'String', { - at: function at(pos) { - return $at(this, pos); - } - }); - - -/***/ }), -/* 264 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://github.com/tc39/proposal-string-pad-start-end - var $export = __webpack_require__(8); - var $pad = __webpack_require__(265); - var userAgent = __webpack_require__(218); - - // https://github.com/zloirock/core-js/issues/280 - var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); - - $export($export.P + $export.F * WEBKIT_BUG, 'String', { - padStart: function padStart(maxLength /* , fillString = ' ' */) { - return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); - } - }); - - -/***/ }), -/* 265 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/tc39/proposal-string-pad-start-end - var toLength = __webpack_require__(38); - var repeat = __webpack_require__(91); - var defined = __webpack_require__(36); - - module.exports = function (that, maxLength, fillString, left) { - var S = String(defined(that)); - var stringLength = S.length; - var fillStr = fillString === undefined ? ' ' : String(fillString); - var intMaxLength = toLength(maxLength); - if (intMaxLength <= stringLength || fillStr == '') return S; - var fillLen = intMaxLength - stringLength; - var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); - if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); - return left ? stringFiller + S : S + stringFiller; - }; - - -/***/ }), -/* 266 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://github.com/tc39/proposal-string-pad-start-end - var $export = __webpack_require__(8); - var $pad = __webpack_require__(265); - var userAgent = __webpack_require__(218); - - // https://github.com/zloirock/core-js/issues/280 - var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); - - $export($export.P + $export.F * WEBKIT_BUG, 'String', { - padEnd: function padEnd(maxLength /* , fillString = ' ' */) { - return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); - } - }); - - -/***/ }), -/* 267 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://github.com/sebmarkbage/ecmascript-string-left-right-trim - __webpack_require__(83)('trimLeft', function ($trim) { - return function trimLeft() { - return $trim(this, 1); - }; - }, 'trimStart'); - - -/***/ }), -/* 268 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://github.com/sebmarkbage/ecmascript-string-left-right-trim - __webpack_require__(83)('trimRight', function ($trim) { - return function trimRight() { - return $trim(this, 2); - }; - }, 'trimEnd'); - - -/***/ }), -/* 269 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://tc39.github.io/String.prototype.matchAll/ - var $export = __webpack_require__(8); - var defined = __webpack_require__(36); - var toLength = __webpack_require__(38); - var isRegExp = __webpack_require__(135); - var getFlags = __webpack_require__(198); - var RegExpProto = RegExp.prototype; - - var $RegExpStringIterator = function (regexp, string) { - this._r = regexp; - this._s = string; - }; - - __webpack_require__(131)($RegExpStringIterator, 'RegExp String', function next() { - var match = this._r.exec(this._s); - return { value: match, done: match === null }; - }); - - $export($export.P, 'String', { - matchAll: function matchAll(regexp) { - defined(this); - if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!'); - var S = String(this); - var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp); - var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags); - rx.lastIndex = toLength(regexp.lastIndex); - return new $RegExpStringIterator(rx, S); - } - }); - - -/***/ }), -/* 270 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(29)('asyncIterator'); - - -/***/ }), -/* 271 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(29)('observable'); - - -/***/ }), -/* 272 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/tc39/proposal-object-getownpropertydescriptors - var $export = __webpack_require__(8); - var ownKeys = __webpack_require__(255); - var toIObject = __webpack_require__(33); - var gOPD = __webpack_require__(52); - var createProperty = __webpack_require__(165); - - $export($export.S, 'Object', { - getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { - var O = toIObject(object); - var getDesc = gOPD.f; - var keys = ownKeys(O); - var result = {}; - var i = 0; - var key, desc; - while (keys.length > i) { - desc = getDesc(O, key = keys[i++]); - if (desc !== undefined) createProperty(result, key, desc); - } - return result; - } - }); - - -/***/ }), -/* 273 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/tc39/proposal-object-values-entries - var $export = __webpack_require__(8); - var $values = __webpack_require__(274)(false); - - $export($export.S, 'Object', { - values: function values(it) { - return $values(it); - } - }); - - -/***/ }), -/* 274 */ -/***/ (function(module, exports, __webpack_require__) { - - var DESCRIPTORS = __webpack_require__(6); - var getKeys = __webpack_require__(31); - var toIObject = __webpack_require__(33); - var isEnum = __webpack_require__(44).f; - module.exports = function (isEntries) { - return function (it) { - var O = toIObject(it); - var keys = getKeys(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - while (length > i) { - key = keys[i++]; - if (!DESCRIPTORS || isEnum.call(O, key)) { - result.push(isEntries ? [key, O[key]] : O[key]); - } - } - return result; - }; - }; - - -/***/ }), -/* 275 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/tc39/proposal-object-values-entries - var $export = __webpack_require__(8); - var $entries = __webpack_require__(274)(true); - - $export($export.S, 'Object', { - entries: function entries(it) { - return $entries(it); - } - }); - - -/***/ }), -/* 276 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var toObject = __webpack_require__(46); - var aFunction = __webpack_require__(24); - var $defineProperty = __webpack_require__(11); - - // B.2.2.2 Object.prototype.__defineGetter__(P, getter) - __webpack_require__(6) && $export($export.P + __webpack_require__(277), 'Object', { - __defineGetter__: function __defineGetter__(P, getter) { - $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true }); - } - }); - - -/***/ }), -/* 277 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // Forced replacement prototype accessors methods - module.exports = __webpack_require__(22) || !__webpack_require__(7)(function () { - var K = Math.random(); - // In FF throws only define methods - // eslint-disable-next-line no-undef, no-useless-call - __defineSetter__.call(null, K, function () { /* empty */ }); - delete __webpack_require__(4)[K]; - }); - - -/***/ }), -/* 278 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var toObject = __webpack_require__(46); - var aFunction = __webpack_require__(24); - var $defineProperty = __webpack_require__(11); - - // B.2.2.3 Object.prototype.__defineSetter__(P, setter) - __webpack_require__(6) && $export($export.P + __webpack_require__(277), 'Object', { - __defineSetter__: function __defineSetter__(P, setter) { - $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true }); - } - }); - - -/***/ }), -/* 279 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var toObject = __webpack_require__(46); - var toPrimitive = __webpack_require__(16); - var getPrototypeOf = __webpack_require__(59); - var getOwnPropertyDescriptor = __webpack_require__(52).f; - - // B.2.2.4 Object.prototype.__lookupGetter__(P) - __webpack_require__(6) && $export($export.P + __webpack_require__(277), 'Object', { - __lookupGetter__: function __lookupGetter__(P) { - var O = toObject(this); - var K = toPrimitive(P, true); - var D; - do { - if (D = getOwnPropertyDescriptor(O, K)) return D.get; - } while (O = getPrototypeOf(O)); - } - }); - - -/***/ }), -/* 280 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - var $export = __webpack_require__(8); - var toObject = __webpack_require__(46); - var toPrimitive = __webpack_require__(16); - var getPrototypeOf = __webpack_require__(59); - var getOwnPropertyDescriptor = __webpack_require__(52).f; - - // B.2.2.5 Object.prototype.__lookupSetter__(P) - __webpack_require__(6) && $export($export.P + __webpack_require__(277), 'Object', { - __lookupSetter__: function __lookupSetter__(P) { - var O = toObject(this); - var K = toPrimitive(P, true); - var D; - do { - if (D = getOwnPropertyDescriptor(O, K)) return D.set; - } while (O = getPrototypeOf(O)); - } - }); - - -/***/ }), -/* 281 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/DavidBruant/Map-Set.prototype.toJSON - var $export = __webpack_require__(8); - - $export($export.P + $export.R, 'Map', { toJSON: __webpack_require__(282)('Map') }); - - -/***/ }), -/* 282 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/DavidBruant/Map-Set.prototype.toJSON - var classof = __webpack_require__(75); - var from = __webpack_require__(283); - module.exports = function (NAME) { - return function toJSON() { - if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic"); - return from(this); - }; - }; - - -/***/ }), -/* 283 */ -/***/ (function(module, exports, __webpack_require__) { - - var forOf = __webpack_require__(213); - - module.exports = function (iter, ITERATOR) { - var result = []; - forOf(iter, false, result.push, result, ITERATOR); - return result; - }; - - -/***/ }), -/* 284 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/DavidBruant/Map-Set.prototype.toJSON - var $export = __webpack_require__(8); - - $export($export.P + $export.R, 'Set', { toJSON: __webpack_require__(282)('Set') }); - - -/***/ }), -/* 285 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://tc39.github.io/proposal-setmap-offrom/#sec-map.of - __webpack_require__(286)('Map'); - - -/***/ }), -/* 286 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://tc39.github.io/proposal-setmap-offrom/ - var $export = __webpack_require__(8); - - module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { of: function of() { - var length = arguments.length; - var A = new Array(length); - while (length--) A[length] = arguments[length]; - return new this(A); - } }); - }; - - -/***/ }), -/* 287 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://tc39.github.io/proposal-setmap-offrom/#sec-set.of - __webpack_require__(286)('Set'); - - -/***/ }), -/* 288 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of - __webpack_require__(286)('WeakMap'); - - -/***/ }), -/* 289 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of - __webpack_require__(286)('WeakSet'); - - -/***/ }), -/* 290 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://tc39.github.io/proposal-setmap-offrom/#sec-map.from - __webpack_require__(291)('Map'); - - -/***/ }), -/* 291 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://tc39.github.io/proposal-setmap-offrom/ - var $export = __webpack_require__(8); - var aFunction = __webpack_require__(24); - var ctx = __webpack_require__(23); - var forOf = __webpack_require__(213); - - module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) { - var mapFn = arguments[1]; - var mapping, A, n, cb; - aFunction(this); - mapping = mapFn !== undefined; - if (mapping) aFunction(mapFn); - if (source == undefined) return new this(); - A = []; - if (mapping) { - n = 0; - cb = ctx(mapFn, arguments[2], 2); - forOf(source, false, function (nextItem) { - A.push(cb(nextItem, n++)); - }); - } else { - forOf(source, false, A.push, A); - } - return new this(A); - } }); - }; - - -/***/ }), -/* 292 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://tc39.github.io/proposal-setmap-offrom/#sec-set.from - __webpack_require__(291)('Set'); - - -/***/ }), -/* 293 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from - __webpack_require__(291)('WeakMap'); - - -/***/ }), -/* 294 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from - __webpack_require__(291)('WeakSet'); - - -/***/ }), -/* 295 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/tc39/proposal-global - var $export = __webpack_require__(8); - - $export($export.G, { global: __webpack_require__(4) }); - - -/***/ }), -/* 296 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/tc39/proposal-global - var $export = __webpack_require__(8); - - $export($export.S, 'System', { global: __webpack_require__(4) }); - - -/***/ }), -/* 297 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/ljharb/proposal-is-error - var $export = __webpack_require__(8); - var cof = __webpack_require__(35); - - $export($export.S, 'Error', { - isError: function isError(it) { - return cof(it) === 'Error'; - } - }); - - -/***/ }), -/* 298 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://rwaldron.github.io/proposal-math-extensions/ - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { - clamp: function clamp(x, lower, upper) { - return Math.min(upper, Math.max(lower, x)); - } - }); - - -/***/ }), -/* 299 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://rwaldron.github.io/proposal-math-extensions/ - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 }); - - -/***/ }), -/* 300 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://rwaldron.github.io/proposal-math-extensions/ - var $export = __webpack_require__(8); - var RAD_PER_DEG = 180 / Math.PI; - - $export($export.S, 'Math', { - degrees: function degrees(radians) { - return radians * RAD_PER_DEG; - } - }); - - -/***/ }), -/* 301 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://rwaldron.github.io/proposal-math-extensions/ - var $export = __webpack_require__(8); - var scale = __webpack_require__(302); - var fround = __webpack_require__(114); - - $export($export.S, 'Math', { - fscale: function fscale(x, inLow, inHigh, outLow, outHigh) { - return fround(scale(x, inLow, inHigh, outLow, outHigh)); - } - }); - - -/***/ }), -/* 302 */ -/***/ (function(module, exports) { - - // https://rwaldron.github.io/proposal-math-extensions/ - module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) { - if ( - arguments.length === 0 - // eslint-disable-next-line no-self-compare - || x != x - // eslint-disable-next-line no-self-compare - || inLow != inLow - // eslint-disable-next-line no-self-compare - || inHigh != inHigh - // eslint-disable-next-line no-self-compare - || outLow != outLow - // eslint-disable-next-line no-self-compare - || outHigh != outHigh - ) return NaN; - if (x === Infinity || x === -Infinity) return x; - return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow; - }; - - -/***/ }), -/* 303 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { - iaddh: function iaddh(x0, x1, y0, y1) { - var $x0 = x0 >>> 0; - var $x1 = x1 >>> 0; - var $y0 = y0 >>> 0; - return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0; - } - }); - - -/***/ }), -/* 304 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { - isubh: function isubh(x0, x1, y0, y1) { - var $x0 = x0 >>> 0; - var $x1 = x1 >>> 0; - var $y0 = y0 >>> 0; - return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0; - } - }); - - -/***/ }), -/* 305 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { - imulh: function imulh(u, v) { - var UINT16 = 0xffff; - var $u = +u; - var $v = +v; - var u0 = $u & UINT16; - var v0 = $v & UINT16; - var u1 = $u >> 16; - var v1 = $v >> 16; - var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); - return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16); - } - }); - - -/***/ }), -/* 306 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://rwaldron.github.io/proposal-math-extensions/ - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI }); - - -/***/ }), -/* 307 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://rwaldron.github.io/proposal-math-extensions/ - var $export = __webpack_require__(8); - var DEG_PER_RAD = Math.PI / 180; - - $export($export.S, 'Math', { - radians: function radians(degrees) { - return degrees * DEG_PER_RAD; - } - }); - - -/***/ }), -/* 308 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://rwaldron.github.io/proposal-math-extensions/ - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { scale: __webpack_require__(302) }); - - -/***/ }), -/* 309 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://gist.github.com/BrendanEich/4294d5c212a6d2254703 - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { - umulh: function umulh(u, v) { - var UINT16 = 0xffff; - var $u = +u; - var $v = +v; - var u0 = $u & UINT16; - var v0 = $v & UINT16; - var u1 = $u >>> 16; - var v1 = $v >>> 16; - var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); - return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16); - } - }); - - -/***/ }), -/* 310 */ -/***/ (function(module, exports, __webpack_require__) { - - // http://jfbastien.github.io/papers/Math.signbit.html - var $export = __webpack_require__(8); - - $export($export.S, 'Math', { signbit: function signbit(x) { - // eslint-disable-next-line no-self-compare - return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0; - } }); - - -/***/ }), -/* 311 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/tc39/proposal-promise-finally - 'use strict'; - var $export = __webpack_require__(8); - var core = __webpack_require__(9); - var global = __webpack_require__(4); - var speciesConstructor = __webpack_require__(210); - var promiseResolve = __webpack_require__(219); - - $export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { - var C = speciesConstructor(this, core.Promise || global.Promise); - var isFunction = typeof onFinally == 'function'; - return this.then( - isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { return x; }); - } : onFinally, - isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { throw e; }); - } : onFinally - ); - } }); - - -/***/ }), -/* 312 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://github.com/tc39/proposal-promise-try - var $export = __webpack_require__(8); - var newPromiseCapability = __webpack_require__(216); - var perform = __webpack_require__(217); - - $export($export.S, 'Promise', { 'try': function (callbackfn) { - var promiseCapability = newPromiseCapability.f(this); - var result = perform(callbackfn); - (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); - return promiseCapability.promise; - } }); - - -/***/ }), -/* 313 */ -/***/ (function(module, exports, __webpack_require__) { - - var metadata = __webpack_require__(314); - var anObject = __webpack_require__(12); - var toMetaKey = metadata.key; - var ordinaryDefineOwnMetadata = metadata.set; - - metadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) { - ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey)); - } }); - - -/***/ }), -/* 314 */ -/***/ (function(module, exports, __webpack_require__) { - - var Map = __webpack_require__(221); - var $export = __webpack_require__(8); - var shared = __webpack_require__(21)('metadata'); - var store = shared.store || (shared.store = new (__webpack_require__(226))()); - - var getOrCreateMetadataMap = function (target, targetKey, create) { - var targetMetadata = store.get(target); - if (!targetMetadata) { - if (!create) return undefined; - store.set(target, targetMetadata = new Map()); - } - var keyMetadata = targetMetadata.get(targetKey); - if (!keyMetadata) { - if (!create) return undefined; - targetMetadata.set(targetKey, keyMetadata = new Map()); - } return keyMetadata; - }; - var ordinaryHasOwnMetadata = function (MetadataKey, O, P) { - var metadataMap = getOrCreateMetadataMap(O, P, false); - return metadataMap === undefined ? false : metadataMap.has(MetadataKey); - }; - var ordinaryGetOwnMetadata = function (MetadataKey, O, P) { - var metadataMap = getOrCreateMetadataMap(O, P, false); - return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey); - }; - var ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) { - getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue); - }; - var ordinaryOwnMetadataKeys = function (target, targetKey) { - var metadataMap = getOrCreateMetadataMap(target, targetKey, false); - var keys = []; - if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); }); - return keys; - }; - var toMetaKey = function (it) { - return it === undefined || typeof it == 'symbol' ? it : String(it); - }; - var exp = function (O) { - $export($export.S, 'Reflect', O); - }; - - module.exports = { - store: store, - map: getOrCreateMetadataMap, - has: ordinaryHasOwnMetadata, - get: ordinaryGetOwnMetadata, - set: ordinaryDefineOwnMetadata, - keys: ordinaryOwnMetadataKeys, - key: toMetaKey, - exp: exp - }; - - -/***/ }), -/* 315 */ -/***/ (function(module, exports, __webpack_require__) { - - var metadata = __webpack_require__(314); - var anObject = __webpack_require__(12); - var toMetaKey = metadata.key; - var getOrCreateMetadataMap = metadata.map; - var store = metadata.store; - - metadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) { - var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]); - var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); - if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false; - if (metadataMap.size) return true; - var targetMetadata = store.get(target); - targetMetadata['delete'](targetKey); - return !!targetMetadata.size || store['delete'](target); - } }); - - -/***/ }), -/* 316 */ -/***/ (function(module, exports, __webpack_require__) { - - var metadata = __webpack_require__(314); - var anObject = __webpack_require__(12); - var getPrototypeOf = __webpack_require__(59); - var ordinaryHasOwnMetadata = metadata.has; - var ordinaryGetOwnMetadata = metadata.get; - var toMetaKey = metadata.key; - - var ordinaryGetMetadata = function (MetadataKey, O, P) { - var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); - if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P); - var parent = getPrototypeOf(O); - return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined; - }; - - metadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) { - return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); - } }); - - -/***/ }), -/* 317 */ -/***/ (function(module, exports, __webpack_require__) { - - var Set = __webpack_require__(225); - var from = __webpack_require__(283); - var metadata = __webpack_require__(314); - var anObject = __webpack_require__(12); - var getPrototypeOf = __webpack_require__(59); - var ordinaryOwnMetadataKeys = metadata.keys; - var toMetaKey = metadata.key; - - var ordinaryMetadataKeys = function (O, P) { - var oKeys = ordinaryOwnMetadataKeys(O, P); - var parent = getPrototypeOf(O); - if (parent === null) return oKeys; - var pKeys = ordinaryMetadataKeys(parent, P); - return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; - }; - - metadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) { - return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); - } }); - - -/***/ }), -/* 318 */ -/***/ (function(module, exports, __webpack_require__) { - - var metadata = __webpack_require__(314); - var anObject = __webpack_require__(12); - var ordinaryGetOwnMetadata = metadata.get; - var toMetaKey = metadata.key; - - metadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) { - return ordinaryGetOwnMetadata(metadataKey, anObject(target) - , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); - } }); - - -/***/ }), -/* 319 */ -/***/ (function(module, exports, __webpack_require__) { - - var metadata = __webpack_require__(314); - var anObject = __webpack_require__(12); - var ordinaryOwnMetadataKeys = metadata.keys; - var toMetaKey = metadata.key; - - metadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) { - return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); - } }); - - -/***/ }), -/* 320 */ -/***/ (function(module, exports, __webpack_require__) { - - var metadata = __webpack_require__(314); - var anObject = __webpack_require__(12); - var getPrototypeOf = __webpack_require__(59); - var ordinaryHasOwnMetadata = metadata.has; - var toMetaKey = metadata.key; - - var ordinaryHasMetadata = function (MetadataKey, O, P) { - var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); - if (hasOwn) return true; - var parent = getPrototypeOf(O); - return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; - }; - - metadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) { - return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); - } }); - - -/***/ }), -/* 321 */ -/***/ (function(module, exports, __webpack_require__) { - - var metadata = __webpack_require__(314); - var anObject = __webpack_require__(12); - var ordinaryHasOwnMetadata = metadata.has; - var toMetaKey = metadata.key; - - metadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) { - return ordinaryHasOwnMetadata(metadataKey, anObject(target) - , arguments.length < 3 ? undefined : toMetaKey(arguments[2])); - } }); - - -/***/ }), -/* 322 */ -/***/ (function(module, exports, __webpack_require__) { - - var $metadata = __webpack_require__(314); - var anObject = __webpack_require__(12); - var aFunction = __webpack_require__(24); - var toMetaKey = $metadata.key; - var ordinaryDefineOwnMetadata = $metadata.set; - - $metadata.exp({ metadata: function metadata(metadataKey, metadataValue) { - return function decorator(target, targetKey) { - ordinaryDefineOwnMetadata( - metadataKey, metadataValue, - (targetKey !== undefined ? anObject : aFunction)(target), - toMetaKey(targetKey) - ); - }; - } }); - - -/***/ }), -/* 323 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask - var $export = __webpack_require__(8); - var microtask = __webpack_require__(215)(); - var process = __webpack_require__(4).process; - var isNode = __webpack_require__(35)(process) == 'process'; - - $export($export.G, { - asap: function asap(fn) { - var domain = isNode && process.domain; - microtask(domain ? domain.bind(fn) : fn); - } - }); - - -/***/ }), -/* 324 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - // https://github.com/zenparsing/es-observable - var $export = __webpack_require__(8); - var global = __webpack_require__(4); - var core = __webpack_require__(9); - var microtask = __webpack_require__(215)(); - var OBSERVABLE = __webpack_require__(27)('observable'); - var aFunction = __webpack_require__(24); - var anObject = __webpack_require__(12); - var anInstance = __webpack_require__(212); - var redefineAll = __webpack_require__(220); - var hide = __webpack_require__(10); - var forOf = __webpack_require__(213); - var RETURN = forOf.RETURN; - - var getMethod = function (fn) { - return fn == null ? undefined : aFunction(fn); - }; - - var cleanupSubscription = function (subscription) { - var cleanup = subscription._c; - if (cleanup) { - subscription._c = undefined; - cleanup(); - } - }; - - var subscriptionClosed = function (subscription) { - return subscription._o === undefined; - }; - - var closeSubscription = function (subscription) { - if (!subscriptionClosed(subscription)) { - subscription._o = undefined; - cleanupSubscription(subscription); - } - }; - - var Subscription = function (observer, subscriber) { - anObject(observer); - this._c = undefined; - this._o = observer; - observer = new SubscriptionObserver(this); - try { - var cleanup = subscriber(observer); - var subscription = cleanup; - if (cleanup != null) { - if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); }; - else aFunction(cleanup); - this._c = cleanup; - } - } catch (e) { - observer.error(e); - return; - } if (subscriptionClosed(this)) cleanupSubscription(this); - }; - - Subscription.prototype = redefineAll({}, { - unsubscribe: function unsubscribe() { closeSubscription(this); } - }); - - var SubscriptionObserver = function (subscription) { - this._s = subscription; - }; - - SubscriptionObserver.prototype = redefineAll({}, { - next: function next(value) { - var subscription = this._s; - if (!subscriptionClosed(subscription)) { - var observer = subscription._o; - try { - var m = getMethod(observer.next); - if (m) return m.call(observer, value); - } catch (e) { - try { - closeSubscription(subscription); - } finally { - throw e; - } - } - } - }, - error: function error(value) { - var subscription = this._s; - if (subscriptionClosed(subscription)) throw value; - var observer = subscription._o; - subscription._o = undefined; - try { - var m = getMethod(observer.error); - if (!m) throw value; - value = m.call(observer, value); - } catch (e) { - try { - cleanupSubscription(subscription); - } finally { - throw e; - } - } cleanupSubscription(subscription); - return value; - }, - complete: function complete(value) { - var subscription = this._s; - if (!subscriptionClosed(subscription)) { - var observer = subscription._o; - subscription._o = undefined; - try { - var m = getMethod(observer.complete); - value = m ? m.call(observer, value) : undefined; - } catch (e) { - try { - cleanupSubscription(subscription); - } finally { - throw e; - } - } cleanupSubscription(subscription); - return value; - } - } - }); - - var $Observable = function Observable(subscriber) { - anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber); - }; - - redefineAll($Observable.prototype, { - subscribe: function subscribe(observer) { - return new Subscription(observer, this._f); - }, - forEach: function forEach(fn) { - var that = this; - return new (core.Promise || global.Promise)(function (resolve, reject) { - aFunction(fn); - var subscription = that.subscribe({ - next: function (value) { - try { - return fn(value); - } catch (e) { - reject(e); - subscription.unsubscribe(); - } - }, - error: reject, - complete: resolve - }); - }); - } - }); - - redefineAll($Observable, { - from: function from(x) { - var C = typeof this === 'function' ? this : $Observable; - var method = getMethod(anObject(x)[OBSERVABLE]); - if (method) { - var observable = anObject(method.call(x)); - return observable.constructor === C ? observable : new C(function (observer) { - return observable.subscribe(observer); - }); - } - return new C(function (observer) { - var done = false; - microtask(function () { - if (!done) { - try { - if (forOf(x, false, function (it) { - observer.next(it); - if (done) return RETURN; - }) === RETURN) return; - } catch (e) { - if (done) throw e; - observer.error(e); - return; - } observer.complete(); - } - }); - return function () { done = true; }; - }); - }, - of: function of() { - for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++]; - return new (typeof this === 'function' ? this : $Observable)(function (observer) { - var done = false; - microtask(function () { - if (!done) { - for (var j = 0; j < items.length; ++j) { - observer.next(items[j]); - if (done) return; - } observer.complete(); - } - }); - return function () { done = true; }; - }); - } - }); - - hide($Observable.prototype, OBSERVABLE, function () { return this; }); - - $export($export.G, { Observable: $Observable }); - - __webpack_require__(194)('Observable'); - - -/***/ }), -/* 325 */ -/***/ (function(module, exports, __webpack_require__) { - - // ie9- setTimeout & setInterval additional parameters fix - var global = __webpack_require__(4); - var $export = __webpack_require__(8); - var userAgent = __webpack_require__(218); - var slice = [].slice; - var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check - var wrap = function (set) { - return function (fn, time /* , ...args */) { - var boundArgs = arguments.length > 2; - var args = boundArgs ? slice.call(arguments, 2) : false; - return set(boundArgs ? function () { - // eslint-disable-next-line no-new-func - (typeof fn == 'function' ? fn : Function(fn)).apply(this, args); - } : fn, time); - }; - }; - $export($export.G + $export.B + $export.F * MSIE, { - setTimeout: wrap(global.setTimeout), - setInterval: wrap(global.setInterval) - }); - - -/***/ }), -/* 326 */ -/***/ (function(module, exports, __webpack_require__) { - - var $export = __webpack_require__(8); - var $task = __webpack_require__(214); - $export($export.G + $export.B, { - setImmediate: $task.set, - clearImmediate: $task.clear - }); - - -/***/ }), -/* 327 */ -/***/ (function(module, exports, __webpack_require__) { - - var $iterators = __webpack_require__(195); - var getKeys = __webpack_require__(31); - var redefine = __webpack_require__(18); - var global = __webpack_require__(4); - var hide = __webpack_require__(10); - var Iterators = __webpack_require__(130); - var wks = __webpack_require__(27); - var ITERATOR = wks('iterator'); - var TO_STRING_TAG = wks('toStringTag'); - var ArrayValues = Iterators.Array; - - var DOMIterables = { - CSSRuleList: true, // TODO: Not spec compliant, should be false. - CSSStyleDeclaration: false, - CSSValueList: false, - ClientRectList: false, - DOMRectList: false, - DOMStringList: false, - DOMTokenList: true, - DataTransferItemList: false, - FileList: false, - HTMLAllCollection: false, - HTMLCollection: false, - HTMLFormElement: false, - HTMLSelectElement: false, - MediaList: true, // TODO: Not spec compliant, should be false. - MimeTypeArray: false, - NamedNodeMap: false, - NodeList: true, - PaintRequestList: false, - Plugin: false, - PluginArray: false, - SVGLengthList: false, - SVGNumberList: false, - SVGPathSegList: false, - SVGPointList: false, - SVGStringList: false, - SVGTransformList: false, - SourceBufferList: false, - StyleSheetList: true, // TODO: Not spec compliant, should be false. - TextTrackCueList: false, - TextTrackList: false, - TouchList: false - }; - - for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { - var NAME = collections[i]; - var explicit = DOMIterables[NAME]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - var key; - if (proto) { - if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); - if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = ArrayValues; - if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true); - } - } - - -/***/ }), -/* 328 */ -/***/ (function(module, exports) { - - /* WEBPACK VAR INJECTION */(function(global) {/** - * Copyright (c) 2014, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * https://raw.github.com/facebook/regenerator/master/LICENSE file. An - * additional grant of patent rights can be found in the PATENTS file in - * the same directory. - */ - - !(function(global) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; // More compressible than void 0. - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - var inModule = typeof module === "object"; - var runtime = global.regeneratorRuntime; - if (runtime) { - if (inModule) { - // If regeneratorRuntime is defined globally and we're in a module, - // make the exports object identical to regeneratorRuntime. - module.exports = runtime; - } - // Don't bother evaluating the rest of this file if the runtime was - // already defined globally. - return; - } - - // Define the runtime globally (as expected by generated code) as either - // module.exports (if we're in a module) or a new, empty object. - runtime = global.regeneratorRuntime = inModule ? module.exports : {}; - - function wrap(innerFn, outerFn, self, tryLocsList) { - // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - - // The ._invoke method unifies the implementations of the .next, - // .throw, and .return methods. - generator._invoke = makeInvokeMethod(innerFn, self, context); - - return generator; - } - runtime.wrap = wrap; - - // Try/catch helper to minimize deoptimizations. Returns a completion - // record like context.tryEntries[i].completion. This interface could - // have been (and was previously) designed to take a closure to be - // invoked without arguments, but in all the cases we care about we - // already have an existing method we want to call, so there's no need - // to create a new function object. We can even get away with assuming - // the method takes exactly one argument, since that happens to be true - // in every case, so we don't have to touch the arguments object. The - // only additional allocation required is the completion record, which - // has a stable shape and so hopefully should be cheap to allocate. - function tryCatch(fn, obj, arg) { - try { - return { type: "normal", arg: fn.call(obj, arg) }; - } catch (err) { - return { type: "throw", arg: err }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - - // Returning this object from the innerFn has the same effect as - // breaking out of the dispatch switch statement. - var ContinueSentinel = {}; - - // Dummy constructor functions that we use as the .constructor and - // .constructor.prototype properties for functions that return Generator - // objects. For full spec compliance, you may wish to configure your - // minifier not to mangle the names of these two functions. - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - - // This is a polyfill for %IteratorPrototype% for environments that - // don't natively support it. - var IteratorPrototype = {}; - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - if (NativeIteratorPrototype && - NativeIteratorPrototype !== Op && - hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - // This environment has a native %IteratorPrototype%; use it instead - // of the polyfill. - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = - Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = - GeneratorFunction.displayName = "GeneratorFunction"; - - // Helper for defining the .next, .throw, and .return methods of the - // Iterator interface in terms of a single ._invoke method. - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function(method) { - prototype[method] = function(arg) { - return this._invoke(method, arg); - }; - }); - } - - runtime.isGeneratorFunction = function(genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor - ? ctor === GeneratorFunction || - // For the native GeneratorFunction constructor, the best we can - // do is to check its .name property. - (ctor.displayName || ctor.name) === "GeneratorFunction" - : false; - }; - - runtime.mark = function(genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - genFun.prototype = Object.create(Gp); - return genFun; - }; - - // Within the body of any async function, `await x` is transformed to - // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test - // `hasOwn.call(value, "__await")` to determine if the yielded value is - // meant to be awaited. - runtime.awrap = function(arg) { - return { __await: arg }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - if (value && - typeof value === "object" && - hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function(value) { - invoke("next", value, resolve, reject); - }, function(err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function(unwrapped) { - // When a yielded Promise is resolved, its final value becomes - // the .value of the Promise<{value,done}> result for the - // current iteration. If the Promise is rejected, however, the - // result for this iteration will be rejected with the same - // reason. Note that rejections of yielded Promises are not - // thrown back into the generator function, as is the case - // when an awaited Promise is rejected. This difference in - // behavior between yield and await is important, because it - // allows the consumer to decide what to do with the yielded - // rejection (swallow it and continue, manually .throw it back - // into the generator, abandon iteration, whatever). With - // await, by contrast, there is no opportunity to examine the - // rejection reason outside the generator function, so the - // only option is to throw it from the await expression, and - // let the generator function handle the exception. - result.value = unwrapped; - resolve(result); - }, reject); - } - } - - if (typeof global.process === "object" && global.process.domain) { - invoke = global.process.domain.bind(invoke); - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function(resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = - // If enqueue has been called before, then we want to wait until - // all previous Promises have been resolved before calling invoke, - // so that results are always delivered in the correct order. If - // enqueue has not been called before, then it is important to - // call invoke immediately, without waiting on a callback to fire, - // so that the async generator function has the opportunity to do - // any necessary setup in a predictable way. This predictability - // is why the Promise constructor synchronously invokes its - // executor callback, and why async functions synchronously - // execute code before the first await. Since we implement simple - // async functions in terms of async generators, it is especially - // important to get this right, even though it requires care. - previousPromise ? previousPromise.then( - callInvokeWithMethodAndArg, - // Avoid propagating failures to Promises returned by later - // invocations of the iterator. - callInvokeWithMethodAndArg - ) : callInvokeWithMethodAndArg(); - } - - // Define the unified helper method that is used to implement .next, - // .throw, and .return (see defineIteratorMethods). - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - runtime.AsyncIterator = AsyncIterator; - - // Note that simple async functions are implemented on top of - // AsyncIterator objects; they just return a Promise for the value of - // the final result produced by the iterator. - runtime.async = function(innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator( - wrap(innerFn, outerFn, self, tryLocsList) - ); - - return runtime.isGeneratorFunction(outerFn) - ? iter // If outerFn is a generator, return the full iterator. - : iter.next().then(function(result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - // Be forgiving, per 25.3.3.3.3 of the spec: - // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - // Setting context._sent for legacy support of Babel's - // function.sent implementation. - context.sent = context._sent = context.arg; - - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - - var record = tryCatch(innerFn, self, context); - if (record.type === "normal") { - // If an exception is thrown from innerFn, we leave state === - // GenStateExecuting and loop back for another invocation. - state = context.done - ? GenStateCompleted - : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - - } else if (record.type === "throw") { - state = GenStateCompleted; - // Dispatch the exception by looping back around to the - // context.dispatchException(context.arg) call above. - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - // Call delegate.iterator[context.method](context.arg) and handle the - // result, either by returning a { value, done } result from the - // delegate iterator, or by modifying context.method and context.arg, - // setting context.delegate to null, and returning the ContinueSentinel. - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - if (method === undefined) { - // A .throw or .return when the delegate iterator has no .throw - // method always terminates the yield* loop. - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator.return) { - // If the delegate iterator has a return method, give it a - // chance to clean up. - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - // If maybeInvokeDelegate(context) changed context.method from - // "return" to "throw", let that override the TypeError below. - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError( - "The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (! info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - // Assign the result of the finished delegate to the temporary - // variable specified by delegate.resultName (see delegateYield). - context[delegate.resultName] = info.value; - - // Resume execution at the desired location (see delegateYield). - context.next = delegate.nextLoc; - - // If context.method was "throw" but the delegate handled the - // exception, let the outer generator proceed normally. If - // context.method was "next", forget context.arg since it has been - // "consumed" by the delegate iterator. If context.method was - // "return", allow the original .return call to continue in the - // outer generator. - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - - } else { - // Re-yield the result returned by the delegate method. - return info; - } - - // The delegate iterator is finished, so forget it and continue with - // the outer generator. - context.delegate = null; - return ContinueSentinel; - } - - // Define Generator.prototype.{next,throw,return} in terms of the - // unified ._invoke helper method. - defineIteratorMethods(Gp); - - Gp[toStringTagSymbol] = "Generator"; - - // A Generator should always return itself as the iterator object when the - // @@iterator function is called on it. Some browsers' implementations of the - // iterator prototype chain incorrectly implement this, causing the Generator - // object to not be returned from this call. This ensures that doesn't happen. - // See https://github.com/facebook/regenerator/issues/274 for more details. - Gp[iteratorSymbol] = function() { - return this; - }; - - Gp.toString = function() { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { tryLoc: locs[0] }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - // The root entry object (effectively a try statement without a catch - // or a finally block) gives us a place to store values thrown from - // locations where there is no enclosing try statement. - this.tryEntries = [{ tryLoc: "root" }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - runtime.keys = function(object) { - var keys = []; - for (var key in object) { - keys.push(key); - } - keys.reverse(); - - // Rather than returning an object with a next method, we keep - // things simple and return the next function itself. - return function next() { - while (keys.length) { - var key = keys.pop(); - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - // To avoid creating an additional object, we just hang the .value - // and .done properties off the next function object itself. This - // also ensures that the minifier will not anonymize the function. - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - - return next; - }; - - return next.next = next; - } - } - - // Return an iterator with no values. - return { next: doneResult }; - } - runtime.values = values; - - function doneResult() { - return { value: undefined, done: true }; - } - - Context.prototype = { - constructor: Context, - - reset: function(skipTempReset) { - this.prev = 0; - this.next = 0; - // Resetting context._sent for legacy support of Babel's - // function.sent implementation. - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - - this.method = "next"; - this.arg = undefined; - - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - // Not sure about the optimal order of these conditions: - if (name.charAt(0) === "t" && - hasOwn.call(this, name) && - !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - - stop: function() { - this.done = true; - - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - - dispatchException: function(exception) { - if (this.done) { - throw exception; - } - - var context = this; - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - // If the dispatched exception was caught by a catch block, - // then let that catch block handle the exception normally. - context.method = "next"; - context.arg = undefined; - } - - return !! caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - // Exception thrown outside of any try block that could handle - // it, so set the completion value of the entire function to - // throw the exception. - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - - abrupt: function(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && - hasOwn.call(entry, "finallyLoc") && - this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && - (type === "break" || - type === "continue") && - finallyEntry.tryLoc <= arg && - arg <= finallyEntry.finallyLoc) { - // Ignore the finally entry if control is not jumping to a - // location outside the try/catch block. - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - - complete: function(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || - record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - - finish: function(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - - "catch": function(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - - // The context.catch method must only be called with a location - // argument that corresponds to a known catch block. - throw new Error("illegal catch attempt"); - }, - - delegateYield: function(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - // Deliberately forget the last sent value so that we don't - // accidentally pass it on to the delegate. - this.arg = undefined; - } - - return ContinueSentinel; - } - }; - })( - // Among the various tricks for obtaining a reference to the global - // object, this seems to be the most reliable technique that does not - // use indirect eval (which violates Content Security Policy). - typeof global === "object" ? global : - typeof window === "object" ? window : - typeof self === "object" ? self : this - ); - - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }), -/* 329 */ -/***/ (function(module, exports, __webpack_require__) { - - __webpack_require__(330); - module.exports = __webpack_require__(9).RegExp.escape; - - -/***/ }), -/* 330 */ -/***/ (function(module, exports, __webpack_require__) { - - // https://github.com/benjamingr/RexExp.escape - var $export = __webpack_require__(8); - var $re = __webpack_require__(331)(/[\\^$*+?.()|[\]{}]/g, '\\$&'); - - $export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } }); - - -/***/ }), -/* 331 */ -/***/ (function(module, exports) { - - module.exports = function (regExp, replace) { - var replacer = replace === Object(replace) ? function (part) { - return replace[part]; - } : replace; - return function (it) { - return String(it).replace(regExp, replacer); - }; - }; - - -/***/ }), -/* 332 */ -/***/ (function(module, exports, __webpack_require__) { - - var BSON = __webpack_require__(333), - Binary = __webpack_require__(356), - Code = __webpack_require__(351), - DBRef = __webpack_require__(355), - Decimal128 = __webpack_require__(352), - Double = __webpack_require__(336), - Int32 = __webpack_require__(350), - Long = __webpack_require__(335), - Map = __webpack_require__(334), - MaxKey = __webpack_require__(354), - MinKey = __webpack_require__(353), - ObjectId = __webpack_require__(338), - BSONRegExp = __webpack_require__(348), - Symbol = __webpack_require__(349), - Timestamp = __webpack_require__(337); - - // BSON MAX VALUES - BSON.BSON_INT32_MAX = 0x7fffffff; - BSON.BSON_INT32_MIN = -0x80000000; - - BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; - BSON.BSON_INT64_MIN = -Math.pow(2, 63); - - // JS MAX PRECISE VALUES - BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. - BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. - - // Add BSON types to function creation - BSON.Binary = Binary; - BSON.Code = Code; - BSON.DBRef = DBRef; - BSON.Decimal128 = Decimal128; - BSON.Double = Double; - BSON.Int32 = Int32; - BSON.Long = Long; - BSON.Map = Map; - BSON.MaxKey = MaxKey; - BSON.MinKey = MinKey; - BSON.ObjectId = ObjectId; - BSON.ObjectID = ObjectId; - BSON.BSONRegExp = BSONRegExp; - BSON.Symbol = Symbol; - BSON.Timestamp = Timestamp; - - // Return the BSON - module.exports = BSON; - -/***/ }), -/* 333 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - - var Map = __webpack_require__(334), - Long = __webpack_require__(335), - Double = __webpack_require__(336), - Timestamp = __webpack_require__(337), - ObjectID = __webpack_require__(338), - BSONRegExp = __webpack_require__(348), - Symbol = __webpack_require__(349), - Int32 = __webpack_require__(350), - Code = __webpack_require__(351), - Decimal128 = __webpack_require__(352), - MinKey = __webpack_require__(353), - MaxKey = __webpack_require__(354), - DBRef = __webpack_require__(355), - Binary = __webpack_require__(356); - - // Parts of the parser - var deserialize = __webpack_require__(357), - serializer = __webpack_require__(358), - calculateObjectSize = __webpack_require__(360), - utils = __webpack_require__(344); - - /** - * @ignore - * @api private - */ - // Default Max Size - var MAXSIZE = 1024 * 1024 * 17; - - // Current Internal Temporary Serialization Buffer - var buffer = utils.allocBuffer(MAXSIZE); - - var BSON = function () {}; - - /** - * Serialize a Javascript object. - * - * @param {Object} object the Javascript object to serialize. - * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. - * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. - * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. - * @param {Number} [options.minInternalBufferSize=1024*1024*17] minimum size of the internal temporary serialization buffer **(default:1024*1024*17)**. - * @return {Buffer} returns the Buffer object containing the serialized object. - * @api public - */ - BSON.prototype.serialize = function serialize(object, options) { - options = options || {}; - // Unpack the options - var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; - var serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; - var ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; - var minInternalBufferSize = typeof options.minInternalBufferSize === 'number' ? options.minInternalBufferSize : MAXSIZE; - - // Resize the internal serialization buffer if needed - if (buffer.length < minInternalBufferSize) { - buffer = utils.allocBuffer(minInternalBufferSize); - } - - // Attempt to serialize - var serializationIndex = serializer(buffer, object, checkKeys, 0, 0, serializeFunctions, ignoreUndefined, []); - // Create the final buffer - var finishedBuffer = utils.allocBuffer(serializationIndex); - // Copy into the finished buffer - buffer.copy(finishedBuffer, 0, 0, finishedBuffer.length); - // Return the buffer - return finishedBuffer; - }; - - /** - * Serialize a Javascript object using a predefined Buffer and index into the buffer, useful when pre-allocating the space for serialization. - * - * @param {Object} object the Javascript object to serialize. - * @param {Buffer} buffer the Buffer you pre-allocated to store the serialized BSON object. - * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. - * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. - * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. - * @param {Number} [options.index] the index in the buffer where we wish to start serializing into. - * @return {Number} returns the index pointing to the last written byte in the buffer. - * @api public - */ - BSON.prototype.serializeWithBufferAndIndex = function (object, finalBuffer, options) { - options = options || {}; - // Unpack the options - var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; - var serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; - var ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; - var startIndex = typeof options.index === 'number' ? options.index : 0; - - // Attempt to serialize - var serializationIndex = serializer(finalBuffer, object, checkKeys, startIndex || 0, 0, serializeFunctions, ignoreUndefined); - - // Return the index - return serializationIndex - 1; - }; - - /** - * Deserialize data as BSON. - * - * @param {Buffer} buffer the buffer containing the serialized set of BSON documents. - * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. - * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. - * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. - * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits - * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. - * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. - * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. - * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. - * @return {Object} returns the deserialized Javascript Object. - * @api public - */ - BSON.prototype.deserialize = function (buffer, options) { - return deserialize(buffer, options); - }; - - /** - * Calculate the bson size for a passed in Javascript object. - * - * @param {Object} object the Javascript object to calculate the BSON byte size for. - * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. - * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. - * @return {Number} returns the number of bytes the BSON object will take up. - * @api public - */ - BSON.prototype.calculateObjectSize = function (object, options) { - options = options || {}; - - var serializeFunctions = typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; - var ignoreUndefined = typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; - - return calculateObjectSize(object, serializeFunctions, ignoreUndefined); - }; - - /** - * Deserialize stream data as BSON documents. - * - * @param {Buffer} data the buffer containing the serialized set of BSON documents. - * @param {Number} startIndex the start index in the data Buffer where the deserialization is to start. - * @param {Number} numberOfDocuments number of documents to deserialize. - * @param {Array} documents an array where to store the deserialized documents. - * @param {Number} docStartIndex the index in the documents array from where to start inserting documents. - * @param {Object} [options] additional options used for the deserialization. - * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. - * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. - * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. - * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits - * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. - * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. - * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. - * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. - * @return {Number} returns the next index in the buffer after deserialization **x** numbers of documents. - * @api public - */ - BSON.prototype.deserializeStream = function (data, startIndex, numberOfDocuments, documents, docStartIndex, options) { - options = options != null ? options : {}; - var index = startIndex; - // Loop over all documents - for (var i = 0; i < numberOfDocuments; i++) { - // Find size of the document - var size = data[index] | data[index + 1] << 8 | data[index + 2] << 16 | data[index + 3] << 24; - // Update options with index - options['index'] = index; - // Parse the document at this point - documents[docStartIndex + i] = this.deserialize(data, options); - // Adjust index by the document size - index = index + size; - } - - // Return object containing end index of parsing and list of documents - return index; - }; - - /** - * @ignore - * @api private - */ - // BSON MAX VALUES - BSON.BSON_INT32_MAX = 0x7fffffff; - BSON.BSON_INT32_MIN = -0x80000000; - - BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; - BSON.BSON_INT64_MIN = -Math.pow(2, 63); - - // JS MAX PRECISE VALUES - BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. - BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. - - // Internal long versions - // var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. - // var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. - - /** - * Number BSON Type - * - * @classconstant BSON_DATA_NUMBER - **/ - BSON.BSON_DATA_NUMBER = 1; - /** - * String BSON Type - * - * @classconstant BSON_DATA_STRING - **/ - BSON.BSON_DATA_STRING = 2; - /** - * Object BSON Type - * - * @classconstant BSON_DATA_OBJECT - **/ - BSON.BSON_DATA_OBJECT = 3; - /** - * Array BSON Type - * - * @classconstant BSON_DATA_ARRAY - **/ - BSON.BSON_DATA_ARRAY = 4; - /** - * Binary BSON Type - * - * @classconstant BSON_DATA_BINARY - **/ - BSON.BSON_DATA_BINARY = 5; - /** - * ObjectID BSON Type - * - * @classconstant BSON_DATA_OID - **/ - BSON.BSON_DATA_OID = 7; - /** - * Boolean BSON Type - * - * @classconstant BSON_DATA_BOOLEAN - **/ - BSON.BSON_DATA_BOOLEAN = 8; - /** - * Date BSON Type - * - * @classconstant BSON_DATA_DATE - **/ - BSON.BSON_DATA_DATE = 9; - /** - * null BSON Type - * - * @classconstant BSON_DATA_NULL - **/ - BSON.BSON_DATA_NULL = 10; - /** - * RegExp BSON Type - * - * @classconstant BSON_DATA_REGEXP - **/ - BSON.BSON_DATA_REGEXP = 11; - /** - * Code BSON Type - * - * @classconstant BSON_DATA_CODE - **/ - BSON.BSON_DATA_CODE = 13; - /** - * Symbol BSON Type - * - * @classconstant BSON_DATA_SYMBOL - **/ - BSON.BSON_DATA_SYMBOL = 14; - /** - * Code with Scope BSON Type - * - * @classconstant BSON_DATA_CODE_W_SCOPE - **/ - BSON.BSON_DATA_CODE_W_SCOPE = 15; - /** - * 32 bit Integer BSON Type - * - * @classconstant BSON_DATA_INT - **/ - BSON.BSON_DATA_INT = 16; - /** - * Timestamp BSON Type - * - * @classconstant BSON_DATA_TIMESTAMP - **/ - BSON.BSON_DATA_TIMESTAMP = 17; - /** - * Long BSON Type - * - * @classconstant BSON_DATA_LONG - **/ - BSON.BSON_DATA_LONG = 18; - /** - * MinKey BSON Type - * - * @classconstant BSON_DATA_MIN_KEY - **/ - BSON.BSON_DATA_MIN_KEY = 0xff; - /** - * MaxKey BSON Type - * - * @classconstant BSON_DATA_MAX_KEY - **/ - BSON.BSON_DATA_MAX_KEY = 0x7f; - - /** - * Binary Default Type - * - * @classconstant BSON_BINARY_SUBTYPE_DEFAULT - **/ - BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; - /** - * Binary Function Type - * - * @classconstant BSON_BINARY_SUBTYPE_FUNCTION - **/ - BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; - /** - * Binary Byte Array Type - * - * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY - **/ - BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; - /** - * Binary UUID Type - * - * @classconstant BSON_BINARY_SUBTYPE_UUID - **/ - BSON.BSON_BINARY_SUBTYPE_UUID = 3; - /** - * Binary MD5 Type - * - * @classconstant BSON_BINARY_SUBTYPE_MD5 - **/ - BSON.BSON_BINARY_SUBTYPE_MD5 = 4; - /** - * Binary User Defined Type - * - * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED - **/ - BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; - - // Return BSON - module.exports = BSON; - module.exports.Code = Code; - module.exports.Map = Map; - module.exports.Symbol = Symbol; - module.exports.BSON = BSON; - module.exports.DBRef = DBRef; - module.exports.Binary = Binary; - module.exports.ObjectID = ObjectID; - module.exports.Long = Long; - module.exports.Timestamp = Timestamp; - module.exports.Double = Double; - module.exports.Int32 = Int32; - module.exports.MinKey = MinKey; - module.exports.MaxKey = MaxKey; - module.exports.BSONRegExp = BSONRegExp; - module.exports.Decimal128 = Decimal128; - -/***/ }), -/* 334 */ -/***/ (function(module, exports) { - - /* WEBPACK VAR INJECTION */(function(global) {'use strict'; - - // We have an ES6 Map available, return the native instance - - if (typeof global.Map !== 'undefined') { - module.exports = global.Map; - module.exports.Map = global.Map; - } else { - // We will return a polyfill - var Map = function (array) { - this._keys = []; - this._values = {}; - - for (var i = 0; i < array.length; i++) { - if (array[i] == null) continue; // skip null and undefined - var entry = array[i]; - var key = entry[0]; - var value = entry[1]; - // Add the key to the list of keys in order - this._keys.push(key); - // Add the key and value to the values dictionary with a point - // to the location in the ordered keys list - this._values[key] = { v: value, i: this._keys.length - 1 }; - } - }; - - Map.prototype.clear = function () { - this._keys = []; - this._values = {}; - }; - - Map.prototype.delete = function (key) { - var value = this._values[key]; - if (value == null) return false; - // Delete entry - delete this._values[key]; - // Remove the key from the ordered keys list - this._keys.splice(value.i, 1); - return true; - }; - - Map.prototype.entries = function () { - var self = this; - var index = 0; - - return { - next: function () { - var key = self._keys[index++]; - return { - value: key !== undefined ? [key, self._values[key].v] : undefined, - done: key !== undefined ? false : true - }; - } - }; - }; - - Map.prototype.forEach = function (callback, self) { - self = self || this; - - for (var i = 0; i < this._keys.length; i++) { - var key = this._keys[i]; - // Call the forEach callback - callback.call(self, this._values[key].v, key, self); - } - }; - - Map.prototype.get = function (key) { - return this._values[key] ? this._values[key].v : undefined; - }; - - Map.prototype.has = function (key) { - return this._values[key] != null; - }; - - Map.prototype.keys = function () { - var self = this; - var index = 0; - - return { - next: function () { - var key = self._keys[index++]; - return { - value: key !== undefined ? key : undefined, - done: key !== undefined ? false : true - }; - } - }; - }; - - Map.prototype.set = function (key, value) { - if (this._values[key]) { - this._values[key].v = value; - return this; - } - - // Add the key to the list of keys in order - this._keys.push(key); - // Add the key and value to the values dictionary with a point - // to the location in the ordered keys list - this._values[key] = { v: value, i: this._keys.length - 1 }; - return this; - }; - - Map.prototype.values = function () { - var self = this; - var index = 0; - - return { - next: function () { - var key = self._keys[index++]; - return { - value: key !== undefined ? self._values[key].v : undefined, - done: key !== undefined ? false : true - }; - } - }; - }; - - // Last ismaster - Object.defineProperty(Map.prototype, 'size', { - enumerable: true, - get: function () { - return this._keys.length; - } - }); - - module.exports = Map; - module.exports.Map = Map; - } - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }), -/* 335 */ -/***/ (function(module, exports) { - - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. - // You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. - // - // Copyright 2009 Google Inc. All Rights Reserved - - /** - * Defines a Long class for representing a 64-bit two's-complement - * integer value, which faithfully simulates the behavior of a Java "Long". This - * implementation is derived from LongLib in GWT. - * - * Constructs a 64-bit two's-complement integer, given its low and high 32-bit - * values as *signed* integers. See the from* functions below for more - * convenient ways of constructing Longs. - * - * The internal representation of a Long is the two given signed, 32-bit values. - * We use 32-bit pieces because these are the size of integers on which - * Javascript performs bit-operations. For operations like addition and - * multiplication, we split each number into 16-bit pieces, which can easily be - * multiplied within Javascript's floating-point representation without overflow - * or change in sign. - * - * In the algorithms below, we frequently reduce the negative case to the - * positive case by negating the input(s) and then post-processing the result. - * Note that we must ALWAYS check specially whether those values are MIN_VALUE - * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as - * a positive number, it overflows back into a negative). Not handling this - * case would often result in infinite recursion. - * - * @class - * @param {number} low the low (signed) 32 bits of the Long. - * @param {number} high the high (signed) 32 bits of the Long. - * @return {Long} - */ - function Long(low, high) { - if (!(this instanceof Long)) return new Long(low, high); - - this._bsontype = 'Long'; - /** - * @type {number} - * @ignore - */ - this.low_ = low | 0; // force into 32 signed bits. - - /** - * @type {number} - * @ignore - */ - this.high_ = high | 0; // force into 32 signed bits. - } - - /** - * Return the int value. - * - * @method - * @return {number} the value, assuming it is a 32-bit integer. - */ - Long.prototype.toInt = function () { - return this.low_; - }; - - /** - * Return the Number value. - * - * @method - * @return {number} the closest floating-point representation to this value. - */ - Long.prototype.toNumber = function () { - return this.high_ * Long.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); - }; - - /** - * Return the JSON value. - * - * @method - * @return {string} the JSON representation. - */ - Long.prototype.toJSON = function () { - return this.toString(); - }; - - /** - * Return the String value. - * - * @method - * @param {number} [opt_radix] the radix in which the text should be written. - * @return {string} the textual representation of this value. - */ - Long.prototype.toString = function (opt_radix) { - var radix = opt_radix || 10; - if (radix < 2 || 36 < radix) { - throw Error('radix out of range: ' + radix); - } - - if (this.isZero()) { - return '0'; - } - - if (this.isNegative()) { - if (this.equals(Long.MIN_VALUE)) { - // We need to change the Long value before it can be negated, so we remove - // the bottom-most digit in this base and then recurse to do the rest. - var radixLong = Long.fromNumber(radix); - var div = this.div(radixLong); - var rem = div.multiply(radixLong).subtract(this); - return div.toString(radix) + rem.toInt().toString(radix); - } else { - return '-' + this.negate().toString(radix); - } - } - - // Do several (6) digits each time through the loop, so as to - // minimize the calls to the very expensive emulated div. - var radixToPower = Long.fromNumber(Math.pow(radix, 6)); - - rem = this; - var result = ''; - - while (!rem.isZero()) { - var remDiv = rem.div(radixToPower); - var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); - var digits = intval.toString(radix); - - rem = remDiv; - if (rem.isZero()) { - return digits + result; - } else { - while (digits.length < 6) { - digits = '0' + digits; - } - result = '' + digits + result; - } - } - }; - - /** - * Return the high 32-bits value. - * - * @method - * @return {number} the high 32-bits as a signed value. - */ - Long.prototype.getHighBits = function () { - return this.high_; - }; - - /** - * Return the low 32-bits value. - * - * @method - * @return {number} the low 32-bits as a signed value. - */ - Long.prototype.getLowBits = function () { - return this.low_; - }; - - /** - * Return the low unsigned 32-bits value. - * - * @method - * @return {number} the low 32-bits as an unsigned value. - */ - Long.prototype.getLowBitsUnsigned = function () { - return this.low_ >= 0 ? this.low_ : Long.TWO_PWR_32_DBL_ + this.low_; - }; - - /** - * Returns the number of bits needed to represent the absolute value of this Long. - * - * @method - * @return {number} Returns the number of bits needed to represent the absolute value of this Long. - */ - Long.prototype.getNumBitsAbs = function () { - if (this.isNegative()) { - if (this.equals(Long.MIN_VALUE)) { - return 64; - } else { - return this.negate().getNumBitsAbs(); - } - } else { - var val = this.high_ !== 0 ? this.high_ : this.low_; - for (var bit = 31; bit > 0; bit--) { - if ((val & 1 << bit) !== 0) { - break; - } - } - return this.high_ !== 0 ? bit + 33 : bit + 1; - } - }; - - /** - * Return whether this value is zero. - * - * @method - * @return {boolean} whether this value is zero. - */ - Long.prototype.isZero = function () { - return this.high_ === 0 && this.low_ === 0; - }; - - /** - * Return whether this value is negative. - * - * @method - * @return {boolean} whether this value is negative. - */ - Long.prototype.isNegative = function () { - return this.high_ < 0; - }; - - /** - * Return whether this value is odd. - * - * @method - * @return {boolean} whether this value is odd. - */ - Long.prototype.isOdd = function () { - return (this.low_ & 1) === 1; - }; - - /** - * Return whether this Long equals the other - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long equals the other - */ - Long.prototype.equals = function (other) { - return this.high_ === other.high_ && this.low_ === other.low_; - }; - - /** - * Return whether this Long does not equal the other. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long does not equal the other. - */ - Long.prototype.notEquals = function (other) { - return this.high_ !== other.high_ || this.low_ !== other.low_; - }; - - /** - * Return whether this Long is less than the other. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long is less than the other. - */ - Long.prototype.lessThan = function (other) { - return this.compare(other) < 0; - }; - - /** - * Return whether this Long is less than or equal to the other. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long is less than or equal to the other. - */ - Long.prototype.lessThanOrEqual = function (other) { - return this.compare(other) <= 0; - }; - - /** - * Return whether this Long is greater than the other. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long is greater than the other. - */ - Long.prototype.greaterThan = function (other) { - return this.compare(other) > 0; - }; - - /** - * Return whether this Long is greater than or equal to the other. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long is greater than or equal to the other. - */ - Long.prototype.greaterThanOrEqual = function (other) { - return this.compare(other) >= 0; - }; - - /** - * Compares this Long with the given one. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. - */ - Long.prototype.compare = function (other) { - if (this.equals(other)) { - return 0; - } - - var thisNeg = this.isNegative(); - var otherNeg = other.isNegative(); - if (thisNeg && !otherNeg) { - return -1; - } - if (!thisNeg && otherNeg) { - return 1; - } - - // at this point, the signs are the same, so subtraction will not overflow - if (this.subtract(other).isNegative()) { - return -1; - } else { - return 1; - } - }; - - /** - * The negation of this value. - * - * @method - * @return {Long} the negation of this value. - */ - Long.prototype.negate = function () { - if (this.equals(Long.MIN_VALUE)) { - return Long.MIN_VALUE; - } else { - return this.not().add(Long.ONE); - } - }; - - /** - * Returns the sum of this and the given Long. - * - * @method - * @param {Long} other Long to add to this one. - * @return {Long} the sum of this and the given Long. - */ - Long.prototype.add = function (other) { - // Divide each number into 4 chunks of 16 bits, and then sum the chunks. - - var a48 = this.high_ >>> 16; - var a32 = this.high_ & 0xffff; - var a16 = this.low_ >>> 16; - var a00 = this.low_ & 0xffff; - - var b48 = other.high_ >>> 16; - var b32 = other.high_ & 0xffff; - var b16 = other.low_ >>> 16; - var b00 = other.low_ & 0xffff; - - var c48 = 0, - c32 = 0, - c16 = 0, - c00 = 0; - c00 += a00 + b00; - c16 += c00 >>> 16; - c00 &= 0xffff; - c16 += a16 + b16; - c32 += c16 >>> 16; - c16 &= 0xffff; - c32 += a32 + b32; - c48 += c32 >>> 16; - c32 &= 0xffff; - c48 += a48 + b48; - c48 &= 0xffff; - return Long.fromBits(c16 << 16 | c00, c48 << 16 | c32); - }; - - /** - * Returns the difference of this and the given Long. - * - * @method - * @param {Long} other Long to subtract from this. - * @return {Long} the difference of this and the given Long. - */ - Long.prototype.subtract = function (other) { - return this.add(other.negate()); - }; - - /** - * Returns the product of this and the given Long. - * - * @method - * @param {Long} other Long to multiply with this. - * @return {Long} the product of this and the other. - */ - Long.prototype.multiply = function (other) { - if (this.isZero()) { - return Long.ZERO; - } else if (other.isZero()) { - return Long.ZERO; - } - - if (this.equals(Long.MIN_VALUE)) { - return other.isOdd() ? Long.MIN_VALUE : Long.ZERO; - } else if (other.equals(Long.MIN_VALUE)) { - return this.isOdd() ? Long.MIN_VALUE : Long.ZERO; - } - - if (this.isNegative()) { - if (other.isNegative()) { - return this.negate().multiply(other.negate()); - } else { - return this.negate().multiply(other).negate(); - } - } else if (other.isNegative()) { - return this.multiply(other.negate()).negate(); - } - - // If both Longs are small, use float multiplication - if (this.lessThan(Long.TWO_PWR_24_) && other.lessThan(Long.TWO_PWR_24_)) { - return Long.fromNumber(this.toNumber() * other.toNumber()); - } - - // Divide each Long into 4 chunks of 16 bits, and then add up 4x4 products. - // We can skip products that would overflow. - - var a48 = this.high_ >>> 16; - var a32 = this.high_ & 0xffff; - var a16 = this.low_ >>> 16; - var a00 = this.low_ & 0xffff; - - var b48 = other.high_ >>> 16; - var b32 = other.high_ & 0xffff; - var b16 = other.low_ >>> 16; - var b00 = other.low_ & 0xffff; - - var c48 = 0, - c32 = 0, - c16 = 0, - c00 = 0; - c00 += a00 * b00; - c16 += c00 >>> 16; - c00 &= 0xffff; - c16 += a16 * b00; - c32 += c16 >>> 16; - c16 &= 0xffff; - c16 += a00 * b16; - c32 += c16 >>> 16; - c16 &= 0xffff; - c32 += a32 * b00; - c48 += c32 >>> 16; - c32 &= 0xffff; - c32 += a16 * b16; - c48 += c32 >>> 16; - c32 &= 0xffff; - c32 += a00 * b32; - c48 += c32 >>> 16; - c32 &= 0xffff; - c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; - c48 &= 0xffff; - return Long.fromBits(c16 << 16 | c00, c48 << 16 | c32); - }; - - /** - * Returns this Long divided by the given one. - * - * @method - * @param {Long} other Long by which to divide. - * @return {Long} this Long divided by the given one. - */ - Long.prototype.div = function (other) { - if (other.isZero()) { - throw Error('division by zero'); - } else if (this.isZero()) { - return Long.ZERO; - } - - if (this.equals(Long.MIN_VALUE)) { - if (other.equals(Long.ONE) || other.equals(Long.NEG_ONE)) { - return Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE - } else if (other.equals(Long.MIN_VALUE)) { - return Long.ONE; - } else { - // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. - var halfThis = this.shiftRight(1); - var approx = halfThis.div(other).shiftLeft(1); - if (approx.equals(Long.ZERO)) { - return other.isNegative() ? Long.ONE : Long.NEG_ONE; - } else { - var rem = this.subtract(other.multiply(approx)); - var result = approx.add(rem.div(other)); - return result; - } - } - } else if (other.equals(Long.MIN_VALUE)) { - return Long.ZERO; - } - - if (this.isNegative()) { - if (other.isNegative()) { - return this.negate().div(other.negate()); - } else { - return this.negate().div(other).negate(); - } - } else if (other.isNegative()) { - return this.div(other.negate()).negate(); - } - - // Repeat the following until the remainder is less than other: find a - // floating-point that approximates remainder / other *from below*, add this - // into the result, and subtract it from the remainder. It is critical that - // the approximate value is less than or equal to the real value so that the - // remainder never becomes negative. - var res = Long.ZERO; - rem = this; - while (rem.greaterThanOrEqual(other)) { - // Approximate the result of division. This may be a little greater or - // smaller than the actual value. - approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); - - // We will tweak the approximate result by changing it in the 48-th digit or - // the smallest non-fractional digit, whichever is larger. - var log2 = Math.ceil(Math.log(approx) / Math.LN2); - var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); - - // Decrease the approximation until it is smaller than the remainder. Note - // that if it is too large, the product overflows and is negative. - var approxRes = Long.fromNumber(approx); - var approxRem = approxRes.multiply(other); - while (approxRem.isNegative() || approxRem.greaterThan(rem)) { - approx -= delta; - approxRes = Long.fromNumber(approx); - approxRem = approxRes.multiply(other); - } - - // We know the answer can't be zero... and actually, zero would cause - // infinite recursion since we would make no progress. - if (approxRes.isZero()) { - approxRes = Long.ONE; - } - - res = res.add(approxRes); - rem = rem.subtract(approxRem); - } - return res; - }; - - /** - * Returns this Long modulo the given one. - * - * @method - * @param {Long} other Long by which to mod. - * @return {Long} this Long modulo the given one. - */ - Long.prototype.modulo = function (other) { - return this.subtract(this.div(other).multiply(other)); - }; - - /** - * The bitwise-NOT of this value. - * - * @method - * @return {Long} the bitwise-NOT of this value. - */ - Long.prototype.not = function () { - return Long.fromBits(~this.low_, ~this.high_); - }; - - /** - * Returns the bitwise-AND of this Long and the given one. - * - * @method - * @param {Long} other the Long with which to AND. - * @return {Long} the bitwise-AND of this and the other. - */ - Long.prototype.and = function (other) { - return Long.fromBits(this.low_ & other.low_, this.high_ & other.high_); - }; - - /** - * Returns the bitwise-OR of this Long and the given one. - * - * @method - * @param {Long} other the Long with which to OR. - * @return {Long} the bitwise-OR of this and the other. - */ - Long.prototype.or = function (other) { - return Long.fromBits(this.low_ | other.low_, this.high_ | other.high_); - }; - - /** - * Returns the bitwise-XOR of this Long and the given one. - * - * @method - * @param {Long} other the Long with which to XOR. - * @return {Long} the bitwise-XOR of this and the other. - */ - Long.prototype.xor = function (other) { - return Long.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); - }; - - /** - * Returns this Long with bits shifted to the left by the given amount. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Long} this shifted to the left by the given amount. - */ - Long.prototype.shiftLeft = function (numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var low = this.low_; - if (numBits < 32) { - var high = this.high_; - return Long.fromBits(low << numBits, high << numBits | low >>> 32 - numBits); - } else { - return Long.fromBits(0, low << numBits - 32); - } - } - }; - - /** - * Returns this Long with bits shifted to the right by the given amount. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Long} this shifted to the right by the given amount. - */ - Long.prototype.shiftRight = function (numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var high = this.high_; - if (numBits < 32) { - var low = this.low_; - return Long.fromBits(low >>> numBits | high << 32 - numBits, high >> numBits); - } else { - return Long.fromBits(high >> numBits - 32, high >= 0 ? 0 : -1); - } - } - }; - - /** - * Returns this Long with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Long} this shifted to the right by the given amount, with zeros placed into the new leading bits. - */ - Long.prototype.shiftRightUnsigned = function (numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var high = this.high_; - if (numBits < 32) { - var low = this.low_; - return Long.fromBits(low >>> numBits | high << 32 - numBits, high >>> numBits); - } else if (numBits === 32) { - return Long.fromBits(high, 0); - } else { - return Long.fromBits(high >>> numBits - 32, 0); - } - } - }; - - /** - * Returns a Long representing the given (32-bit) integer value. - * - * @method - * @param {number} value the 32-bit integer in question. - * @return {Long} the corresponding Long value. - */ - Long.fromInt = function (value) { - if (-128 <= value && value < 128) { - var cachedObj = Long.INT_CACHE_[value]; - if (cachedObj) { - return cachedObj; - } - } - - var obj = new Long(value | 0, value < 0 ? -1 : 0); - if (-128 <= value && value < 128) { - Long.INT_CACHE_[value] = obj; - } - return obj; - }; - - /** - * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned. - * - * @method - * @param {number} value the number in question. - * @return {Long} the corresponding Long value. - */ - Long.fromNumber = function (value) { - if (isNaN(value) || !isFinite(value)) { - return Long.ZERO; - } else if (value <= -Long.TWO_PWR_63_DBL_) { - return Long.MIN_VALUE; - } else if (value + 1 >= Long.TWO_PWR_63_DBL_) { - return Long.MAX_VALUE; - } else if (value < 0) { - return Long.fromNumber(-value).negate(); - } else { - return new Long(value % Long.TWO_PWR_32_DBL_ | 0, value / Long.TWO_PWR_32_DBL_ | 0); - } - }; - - /** - * Returns a Long representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. - * - * @method - * @param {number} lowBits the low 32-bits. - * @param {number} highBits the high 32-bits. - * @return {Long} the corresponding Long value. - */ - Long.fromBits = function (lowBits, highBits) { - return new Long(lowBits, highBits); - }; - - /** - * Returns a Long representation of the given string, written using the given radix. - * - * @method - * @param {string} str the textual representation of the Long. - * @param {number} opt_radix the radix in which the text is written. - * @return {Long} the corresponding Long value. - */ - Long.fromString = function (str, opt_radix) { - if (str.length === 0) { - throw Error('number format error: empty string'); - } - - var radix = opt_radix || 10; - if (radix < 2 || 36 < radix) { - throw Error('radix out of range: ' + radix); - } - - if (str.charAt(0) === '-') { - return Long.fromString(str.substring(1), radix).negate(); - } else if (str.indexOf('-') >= 0) { - throw Error('number format error: interior "-" character: ' + str); - } - - // Do several (8) digits each time through the loop, so as to - // minimize the calls to the very expensive emulated div. - var radixToPower = Long.fromNumber(Math.pow(radix, 8)); - - var result = Long.ZERO; - for (var i = 0; i < str.length; i += 8) { - var size = Math.min(8, str.length - i); - var value = parseInt(str.substring(i, i + size), radix); - if (size < 8) { - var power = Long.fromNumber(Math.pow(radix, size)); - result = result.multiply(power).add(Long.fromNumber(value)); - } else { - result = result.multiply(radixToPower); - result = result.add(Long.fromNumber(value)); - } - } - return result; - }; - - // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the - // from* methods on which they depend. - - /** - * A cache of the Long representations of small integer values. - * @type {Object} - * @ignore - */ - Long.INT_CACHE_ = {}; - - // NOTE: the compiler should inline these constant values below and then remove - // these variables, so there should be no runtime penalty for these. - - /** - * Number used repeated below in calculations. This must appear before the - * first call to any from* function below. - * @type {number} - * @ignore - */ - Long.TWO_PWR_16_DBL_ = 1 << 16; - - /** - * @type {number} - * @ignore - */ - Long.TWO_PWR_24_DBL_ = 1 << 24; - - /** - * @type {number} - * @ignore - */ - Long.TWO_PWR_32_DBL_ = Long.TWO_PWR_16_DBL_ * Long.TWO_PWR_16_DBL_; - - /** - * @type {number} - * @ignore - */ - Long.TWO_PWR_31_DBL_ = Long.TWO_PWR_32_DBL_ / 2; - - /** - * @type {number} - * @ignore - */ - Long.TWO_PWR_48_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_16_DBL_; - - /** - * @type {number} - * @ignore - */ - Long.TWO_PWR_64_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_32_DBL_; - - /** - * @type {number} - * @ignore - */ - Long.TWO_PWR_63_DBL_ = Long.TWO_PWR_64_DBL_ / 2; - - /** @type {Long} */ - Long.ZERO = Long.fromInt(0); - - /** @type {Long} */ - Long.ONE = Long.fromInt(1); - - /** @type {Long} */ - Long.NEG_ONE = Long.fromInt(-1); - - /** @type {Long} */ - Long.MAX_VALUE = Long.fromBits(0xffffffff | 0, 0x7fffffff | 0); - - /** @type {Long} */ - Long.MIN_VALUE = Long.fromBits(0, 0x80000000 | 0); - - /** - * @type {Long} - * @ignore - */ - Long.TWO_PWR_24_ = Long.fromInt(1 << 24); - - /** - * Expose. - */ - module.exports = Long; - module.exports.Long = Long; - -/***/ }), -/* 336 */ -/***/ (function(module, exports) { - - /** - * A class representation of the BSON Double type. - * - * @class - * @param {number} value the number we want to represent as a double. - * @return {Double} - */ - function Double(value) { - if (!(this instanceof Double)) return new Double(value); - - this._bsontype = 'Double'; - this.value = value; - } - - /** - * Access the number value. - * - * @method - * @return {number} returns the wrapped double number. - */ - Double.prototype.valueOf = function () { - return this.value; - }; - - /** - * @ignore - */ - Double.prototype.toJSON = function () { - return this.value; - }; - - module.exports = Double; - module.exports.Double = Double; - -/***/ }), -/* 337 */ -/***/ (function(module, exports) { - - // Licensed under the Apache License, Version 2.0 (the "License"); - // you may not use this file except in compliance with the License. - // You may obtain a copy of the License at - // - // http://www.apache.org/licenses/LICENSE-2.0 - // - // Unless required by applicable law or agreed to in writing, software - // distributed under the License is distributed on an "AS IS" BASIS, - // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - // See the License for the specific language governing permissions and - // limitations under the License. - // - // Copyright 2009 Google Inc. All Rights Reserved - - /** - * This type is for INTERNAL use in MongoDB only and should not be used in applications. - * The appropriate corresponding type is the JavaScript Date type. - * - * Defines a Timestamp class for representing a 64-bit two's-complement - * integer value, which faithfully simulates the behavior of a Java "Timestamp". This - * implementation is derived from TimestampLib in GWT. - * - * Constructs a 64-bit two's-complement integer, given its low and high 32-bit - * values as *signed* integers. See the from* functions below for more - * convenient ways of constructing Timestamps. - * - * The internal representation of a Timestamp is the two given signed, 32-bit values. - * We use 32-bit pieces because these are the size of integers on which - * Javascript performs bit-operations. For operations like addition and - * multiplication, we split each number into 16-bit pieces, which can easily be - * multiplied within Javascript's floating-point representation without overflow - * or change in sign. - * - * In the algorithms below, we frequently reduce the negative case to the - * positive case by negating the input(s) and then post-processing the result. - * Note that we must ALWAYS check specially whether those values are MIN_VALUE - * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as - * a positive number, it overflows back into a negative). Not handling this - * case would often result in infinite recursion. - * - * @class - * @param {number} low the low (signed) 32 bits of the Timestamp. - * @param {number} high the high (signed) 32 bits of the Timestamp. - */ - function Timestamp(low, high) { - if (!(this instanceof Timestamp)) return new Timestamp(low, high); - this._bsontype = 'Timestamp'; - /** - * @type {number} - * @ignore - */ - this.low_ = low | 0; // force into 32 signed bits. - - /** - * @type {number} - * @ignore - */ - this.high_ = high | 0; // force into 32 signed bits. - } - - /** - * Return the int value. - * - * @return {number} the value, assuming it is a 32-bit integer. - */ - Timestamp.prototype.toInt = function () { - return this.low_; - }; - - /** - * Return the Number value. - * - * @method - * @return {number} the closest floating-point representation to this value. - */ - Timestamp.prototype.toNumber = function () { - return this.high_ * Timestamp.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); - }; - - /** - * Return the JSON value. - * - * @method - * @return {string} the JSON representation. - */ - Timestamp.prototype.toJSON = function () { - return this.toString(); - }; - - /** - * Return the String value. - * - * @method - * @param {number} [opt_radix] the radix in which the text should be written. - * @return {string} the textual representation of this value. - */ - Timestamp.prototype.toString = function (opt_radix) { - var radix = opt_radix || 10; - if (radix < 2 || 36 < radix) { - throw Error('radix out of range: ' + radix); - } - - if (this.isZero()) { - return '0'; - } - - if (this.isNegative()) { - if (this.equals(Timestamp.MIN_VALUE)) { - // We need to change the Timestamp value before it can be negated, so we remove - // the bottom-most digit in this base and then recurse to do the rest. - var radixTimestamp = Timestamp.fromNumber(radix); - var div = this.div(radixTimestamp); - var rem = div.multiply(radixTimestamp).subtract(this); - return div.toString(radix) + rem.toInt().toString(radix); - } else { - return '-' + this.negate().toString(radix); - } - } - - // Do several (6) digits each time through the loop, so as to - // minimize the calls to the very expensive emulated div. - var radixToPower = Timestamp.fromNumber(Math.pow(radix, 6)); - - rem = this; - var result = ''; - - while (!rem.isZero()) { - var remDiv = rem.div(radixToPower); - var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); - var digits = intval.toString(radix); - - rem = remDiv; - if (rem.isZero()) { - return digits + result; - } else { - while (digits.length < 6) { - digits = '0' + digits; - } - result = '' + digits + result; - } - } - }; - - /** - * Return the high 32-bits value. - * - * @method - * @return {number} the high 32-bits as a signed value. - */ - Timestamp.prototype.getHighBits = function () { - return this.high_; - }; - - /** - * Return the low 32-bits value. - * - * @method - * @return {number} the low 32-bits as a signed value. - */ - Timestamp.prototype.getLowBits = function () { - return this.low_; - }; - - /** - * Return the low unsigned 32-bits value. - * - * @method - * @return {number} the low 32-bits as an unsigned value. - */ - Timestamp.prototype.getLowBitsUnsigned = function () { - return this.low_ >= 0 ? this.low_ : Timestamp.TWO_PWR_32_DBL_ + this.low_; - }; - - /** - * Returns the number of bits needed to represent the absolute value of this Timestamp. - * - * @method - * @return {number} Returns the number of bits needed to represent the absolute value of this Timestamp. - */ - Timestamp.prototype.getNumBitsAbs = function () { - if (this.isNegative()) { - if (this.equals(Timestamp.MIN_VALUE)) { - return 64; - } else { - return this.negate().getNumBitsAbs(); - } - } else { - var val = this.high_ !== 0 ? this.high_ : this.low_; - for (var bit = 31; bit > 0; bit--) { - if ((val & 1 << bit) !== 0) { - break; - } - } - return this.high_ !== 0 ? bit + 33 : bit + 1; - } - }; - - /** - * Return whether this value is zero. - * - * @method - * @return {boolean} whether this value is zero. - */ - Timestamp.prototype.isZero = function () { - return this.high_ === 0 && this.low_ === 0; - }; - - /** - * Return whether this value is negative. - * - * @method - * @return {boolean} whether this value is negative. - */ - Timestamp.prototype.isNegative = function () { - return this.high_ < 0; - }; - - /** - * Return whether this value is odd. - * - * @method - * @return {boolean} whether this value is odd. - */ - Timestamp.prototype.isOdd = function () { - return (this.low_ & 1) === 1; - }; - - /** - * Return whether this Timestamp equals the other - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp equals the other - */ - Timestamp.prototype.equals = function (other) { - return this.high_ === other.high_ && this.low_ === other.low_; - }; - - /** - * Return whether this Timestamp does not equal the other. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp does not equal the other. - */ - Timestamp.prototype.notEquals = function (other) { - return this.high_ !== other.high_ || this.low_ !== other.low_; - }; - - /** - * Return whether this Timestamp is less than the other. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp is less than the other. - */ - Timestamp.prototype.lessThan = function (other) { - return this.compare(other) < 0; - }; - - /** - * Return whether this Timestamp is less than or equal to the other. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp is less than or equal to the other. - */ - Timestamp.prototype.lessThanOrEqual = function (other) { - return this.compare(other) <= 0; - }; - - /** - * Return whether this Timestamp is greater than the other. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp is greater than the other. - */ - Timestamp.prototype.greaterThan = function (other) { - return this.compare(other) > 0; - }; - - /** - * Return whether this Timestamp is greater than or equal to the other. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp is greater than or equal to the other. - */ - Timestamp.prototype.greaterThanOrEqual = function (other) { - return this.compare(other) >= 0; - }; - - /** - * Compares this Timestamp with the given one. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. - */ - Timestamp.prototype.compare = function (other) { - if (this.equals(other)) { - return 0; - } - - var thisNeg = this.isNegative(); - var otherNeg = other.isNegative(); - if (thisNeg && !otherNeg) { - return -1; - } - if (!thisNeg && otherNeg) { - return 1; - } - - // at this point, the signs are the same, so subtraction will not overflow - if (this.subtract(other).isNegative()) { - return -1; - } else { - return 1; - } - }; - - /** - * The negation of this value. - * - * @method - * @return {Timestamp} the negation of this value. - */ - Timestamp.prototype.negate = function () { - if (this.equals(Timestamp.MIN_VALUE)) { - return Timestamp.MIN_VALUE; - } else { - return this.not().add(Timestamp.ONE); - } - }; - - /** - * Returns the sum of this and the given Timestamp. - * - * @method - * @param {Timestamp} other Timestamp to add to this one. - * @return {Timestamp} the sum of this and the given Timestamp. - */ - Timestamp.prototype.add = function (other) { - // Divide each number into 4 chunks of 16 bits, and then sum the chunks. - - var a48 = this.high_ >>> 16; - var a32 = this.high_ & 0xffff; - var a16 = this.low_ >>> 16; - var a00 = this.low_ & 0xffff; - - var b48 = other.high_ >>> 16; - var b32 = other.high_ & 0xffff; - var b16 = other.low_ >>> 16; - var b00 = other.low_ & 0xffff; - - var c48 = 0, - c32 = 0, - c16 = 0, - c00 = 0; - c00 += a00 + b00; - c16 += c00 >>> 16; - c00 &= 0xffff; - c16 += a16 + b16; - c32 += c16 >>> 16; - c16 &= 0xffff; - c32 += a32 + b32; - c48 += c32 >>> 16; - c32 &= 0xffff; - c48 += a48 + b48; - c48 &= 0xffff; - return Timestamp.fromBits(c16 << 16 | c00, c48 << 16 | c32); - }; - - /** - * Returns the difference of this and the given Timestamp. - * - * @method - * @param {Timestamp} other Timestamp to subtract from this. - * @return {Timestamp} the difference of this and the given Timestamp. - */ - Timestamp.prototype.subtract = function (other) { - return this.add(other.negate()); - }; - - /** - * Returns the product of this and the given Timestamp. - * - * @method - * @param {Timestamp} other Timestamp to multiply with this. - * @return {Timestamp} the product of this and the other. - */ - Timestamp.prototype.multiply = function (other) { - if (this.isZero()) { - return Timestamp.ZERO; - } else if (other.isZero()) { - return Timestamp.ZERO; - } - - if (this.equals(Timestamp.MIN_VALUE)) { - return other.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; - } else if (other.equals(Timestamp.MIN_VALUE)) { - return this.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; - } - - if (this.isNegative()) { - if (other.isNegative()) { - return this.negate().multiply(other.negate()); - } else { - return this.negate().multiply(other).negate(); - } - } else if (other.isNegative()) { - return this.multiply(other.negate()).negate(); - } - - // If both Timestamps are small, use float multiplication - if (this.lessThan(Timestamp.TWO_PWR_24_) && other.lessThan(Timestamp.TWO_PWR_24_)) { - return Timestamp.fromNumber(this.toNumber() * other.toNumber()); - } - - // Divide each Timestamp into 4 chunks of 16 bits, and then add up 4x4 products. - // We can skip products that would overflow. - - var a48 = this.high_ >>> 16; - var a32 = this.high_ & 0xffff; - var a16 = this.low_ >>> 16; - var a00 = this.low_ & 0xffff; - - var b48 = other.high_ >>> 16; - var b32 = other.high_ & 0xffff; - var b16 = other.low_ >>> 16; - var b00 = other.low_ & 0xffff; - - var c48 = 0, - c32 = 0, - c16 = 0, - c00 = 0; - c00 += a00 * b00; - c16 += c00 >>> 16; - c00 &= 0xffff; - c16 += a16 * b00; - c32 += c16 >>> 16; - c16 &= 0xffff; - c16 += a00 * b16; - c32 += c16 >>> 16; - c16 &= 0xffff; - c32 += a32 * b00; - c48 += c32 >>> 16; - c32 &= 0xffff; - c32 += a16 * b16; - c48 += c32 >>> 16; - c32 &= 0xffff; - c32 += a00 * b32; - c48 += c32 >>> 16; - c32 &= 0xffff; - c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; - c48 &= 0xffff; - return Timestamp.fromBits(c16 << 16 | c00, c48 << 16 | c32); - }; - - /** - * Returns this Timestamp divided by the given one. - * - * @method - * @param {Timestamp} other Timestamp by which to divide. - * @return {Timestamp} this Timestamp divided by the given one. - */ - Timestamp.prototype.div = function (other) { - if (other.isZero()) { - throw Error('division by zero'); - } else if (this.isZero()) { - return Timestamp.ZERO; - } - - if (this.equals(Timestamp.MIN_VALUE)) { - if (other.equals(Timestamp.ONE) || other.equals(Timestamp.NEG_ONE)) { - return Timestamp.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE - } else if (other.equals(Timestamp.MIN_VALUE)) { - return Timestamp.ONE; - } else { - // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. - var halfThis = this.shiftRight(1); - var approx = halfThis.div(other).shiftLeft(1); - if (approx.equals(Timestamp.ZERO)) { - return other.isNegative() ? Timestamp.ONE : Timestamp.NEG_ONE; - } else { - var rem = this.subtract(other.multiply(approx)); - var result = approx.add(rem.div(other)); - return result; - } - } - } else if (other.equals(Timestamp.MIN_VALUE)) { - return Timestamp.ZERO; - } - - if (this.isNegative()) { - if (other.isNegative()) { - return this.negate().div(other.negate()); - } else { - return this.negate().div(other).negate(); - } - } else if (other.isNegative()) { - return this.div(other.negate()).negate(); - } - - // Repeat the following until the remainder is less than other: find a - // floating-point that approximates remainder / other *from below*, add this - // into the result, and subtract it from the remainder. It is critical that - // the approximate value is less than or equal to the real value so that the - // remainder never becomes negative. - var res = Timestamp.ZERO; - rem = this; - while (rem.greaterThanOrEqual(other)) { - // Approximate the result of division. This may be a little greater or - // smaller than the actual value. - approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); - - // We will tweak the approximate result by changing it in the 48-th digit or - // the smallest non-fractional digit, whichever is larger. - var log2 = Math.ceil(Math.log(approx) / Math.LN2); - var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); - - // Decrease the approximation until it is smaller than the remainder. Note - // that if it is too large, the product overflows and is negative. - var approxRes = Timestamp.fromNumber(approx); - var approxRem = approxRes.multiply(other); - while (approxRem.isNegative() || approxRem.greaterThan(rem)) { - approx -= delta; - approxRes = Timestamp.fromNumber(approx); - approxRem = approxRes.multiply(other); - } - - // We know the answer can't be zero... and actually, zero would cause - // infinite recursion since we would make no progress. - if (approxRes.isZero()) { - approxRes = Timestamp.ONE; - } - - res = res.add(approxRes); - rem = rem.subtract(approxRem); - } - return res; - }; - - /** - * Returns this Timestamp modulo the given one. - * - * @method - * @param {Timestamp} other Timestamp by which to mod. - * @return {Timestamp} this Timestamp modulo the given one. - */ - Timestamp.prototype.modulo = function (other) { - return this.subtract(this.div(other).multiply(other)); - }; - - /** - * The bitwise-NOT of this value. - * - * @method - * @return {Timestamp} the bitwise-NOT of this value. - */ - Timestamp.prototype.not = function () { - return Timestamp.fromBits(~this.low_, ~this.high_); - }; - - /** - * Returns the bitwise-AND of this Timestamp and the given one. - * - * @method - * @param {Timestamp} other the Timestamp with which to AND. - * @return {Timestamp} the bitwise-AND of this and the other. - */ - Timestamp.prototype.and = function (other) { - return Timestamp.fromBits(this.low_ & other.low_, this.high_ & other.high_); - }; - - /** - * Returns the bitwise-OR of this Timestamp and the given one. - * - * @method - * @param {Timestamp} other the Timestamp with which to OR. - * @return {Timestamp} the bitwise-OR of this and the other. - */ - Timestamp.prototype.or = function (other) { - return Timestamp.fromBits(this.low_ | other.low_, this.high_ | other.high_); - }; - - /** - * Returns the bitwise-XOR of this Timestamp and the given one. - * - * @method - * @param {Timestamp} other the Timestamp with which to XOR. - * @return {Timestamp} the bitwise-XOR of this and the other. - */ - Timestamp.prototype.xor = function (other) { - return Timestamp.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); - }; - - /** - * Returns this Timestamp with bits shifted to the left by the given amount. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Timestamp} this shifted to the left by the given amount. - */ - Timestamp.prototype.shiftLeft = function (numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var low = this.low_; - if (numBits < 32) { - var high = this.high_; - return Timestamp.fromBits(low << numBits, high << numBits | low >>> 32 - numBits); - } else { - return Timestamp.fromBits(0, low << numBits - 32); - } - } - }; - - /** - * Returns this Timestamp with bits shifted to the right by the given amount. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Timestamp} this shifted to the right by the given amount. - */ - Timestamp.prototype.shiftRight = function (numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var high = this.high_; - if (numBits < 32) { - var low = this.low_; - return Timestamp.fromBits(low >>> numBits | high << 32 - numBits, high >> numBits); - } else { - return Timestamp.fromBits(high >> numBits - 32, high >= 0 ? 0 : -1); - } - } - }; - - /** - * Returns this Timestamp with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Timestamp} this shifted to the right by the given amount, with zeros placed into the new leading bits. - */ - Timestamp.prototype.shiftRightUnsigned = function (numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var high = this.high_; - if (numBits < 32) { - var low = this.low_; - return Timestamp.fromBits(low >>> numBits | high << 32 - numBits, high >>> numBits); - } else if (numBits === 32) { - return Timestamp.fromBits(high, 0); - } else { - return Timestamp.fromBits(high >>> numBits - 32, 0); - } - } - }; - - /** - * Returns a Timestamp representing the given (32-bit) integer value. - * - * @method - * @param {number} value the 32-bit integer in question. - * @return {Timestamp} the corresponding Timestamp value. - */ - Timestamp.fromInt = function (value) { - if (-128 <= value && value < 128) { - var cachedObj = Timestamp.INT_CACHE_[value]; - if (cachedObj) { - return cachedObj; - } - } - - var obj = new Timestamp(value | 0, value < 0 ? -1 : 0); - if (-128 <= value && value < 128) { - Timestamp.INT_CACHE_[value] = obj; - } - return obj; - }; - - /** - * Returns a Timestamp representing the given value, provided that it is a finite number. Otherwise, zero is returned. - * - * @method - * @param {number} value the number in question. - * @return {Timestamp} the corresponding Timestamp value. - */ - Timestamp.fromNumber = function (value) { - if (isNaN(value) || !isFinite(value)) { - return Timestamp.ZERO; - } else if (value <= -Timestamp.TWO_PWR_63_DBL_) { - return Timestamp.MIN_VALUE; - } else if (value + 1 >= Timestamp.TWO_PWR_63_DBL_) { - return Timestamp.MAX_VALUE; - } else if (value < 0) { - return Timestamp.fromNumber(-value).negate(); - } else { - return new Timestamp(value % Timestamp.TWO_PWR_32_DBL_ | 0, value / Timestamp.TWO_PWR_32_DBL_ | 0); - } - }; - - /** - * Returns a Timestamp representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. - * - * @method - * @param {number} lowBits the low 32-bits. - * @param {number} highBits the high 32-bits. - * @return {Timestamp} the corresponding Timestamp value. - */ - Timestamp.fromBits = function (lowBits, highBits) { - return new Timestamp(lowBits, highBits); - }; - - /** - * Returns a Timestamp representation of the given string, written using the given radix. - * - * @method - * @param {string} str the textual representation of the Timestamp. - * @param {number} opt_radix the radix in which the text is written. - * @return {Timestamp} the corresponding Timestamp value. - */ - Timestamp.fromString = function (str, opt_radix) { - if (str.length === 0) { - throw Error('number format error: empty string'); - } - - var radix = opt_radix || 10; - if (radix < 2 || 36 < radix) { - throw Error('radix out of range: ' + radix); - } - - if (str.charAt(0) === '-') { - return Timestamp.fromString(str.substring(1), radix).negate(); - } else if (str.indexOf('-') >= 0) { - throw Error('number format error: interior "-" character: ' + str); - } - - // Do several (8) digits each time through the loop, so as to - // minimize the calls to the very expensive emulated div. - var radixToPower = Timestamp.fromNumber(Math.pow(radix, 8)); - - var result = Timestamp.ZERO; - for (var i = 0; i < str.length; i += 8) { - var size = Math.min(8, str.length - i); - var value = parseInt(str.substring(i, i + size), radix); - if (size < 8) { - var power = Timestamp.fromNumber(Math.pow(radix, size)); - result = result.multiply(power).add(Timestamp.fromNumber(value)); - } else { - result = result.multiply(radixToPower); - result = result.add(Timestamp.fromNumber(value)); - } - } - return result; - }; - - // NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the - // from* methods on which they depend. - - /** - * A cache of the Timestamp representations of small integer values. - * @type {Object} - * @ignore - */ - Timestamp.INT_CACHE_ = {}; - - // NOTE: the compiler should inline these constant values below and then remove - // these variables, so there should be no runtime penalty for these. - - /** - * Number used repeated below in calculations. This must appear before the - * first call to any from* function below. - * @type {number} - * @ignore - */ - Timestamp.TWO_PWR_16_DBL_ = 1 << 16; - - /** - * @type {number} - * @ignore - */ - Timestamp.TWO_PWR_24_DBL_ = 1 << 24; - - /** - * @type {number} - * @ignore - */ - Timestamp.TWO_PWR_32_DBL_ = Timestamp.TWO_PWR_16_DBL_ * Timestamp.TWO_PWR_16_DBL_; - - /** - * @type {number} - * @ignore - */ - Timestamp.TWO_PWR_31_DBL_ = Timestamp.TWO_PWR_32_DBL_ / 2; - - /** - * @type {number} - * @ignore - */ - Timestamp.TWO_PWR_48_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_16_DBL_; - - /** - * @type {number} - * @ignore - */ - Timestamp.TWO_PWR_64_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_32_DBL_; - - /** - * @type {number} - * @ignore - */ - Timestamp.TWO_PWR_63_DBL_ = Timestamp.TWO_PWR_64_DBL_ / 2; - - /** @type {Timestamp} */ - Timestamp.ZERO = Timestamp.fromInt(0); - - /** @type {Timestamp} */ - Timestamp.ONE = Timestamp.fromInt(1); - - /** @type {Timestamp} */ - Timestamp.NEG_ONE = Timestamp.fromInt(-1); - - /** @type {Timestamp} */ - Timestamp.MAX_VALUE = Timestamp.fromBits(0xffffffff | 0, 0x7fffffff | 0); - - /** @type {Timestamp} */ - Timestamp.MIN_VALUE = Timestamp.fromBits(0, 0x80000000 | 0); - - /** - * @type {Timestamp} - * @ignore - */ - Timestamp.TWO_PWR_24_ = Timestamp.fromInt(1 << 24); - - /** - * Expose. - */ - module.exports = Timestamp; - module.exports.Timestamp = Timestamp; - -/***/ }), -/* 338 */ -/***/ (function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer, process) {// Custom inspect property name / symbol. - var inspect = 'inspect'; - - var utils = __webpack_require__(344); - - /** - * Machine id. - * - * Create a random 3-byte value (i.e. unique for this - * process). Other drivers use a md5 of the machine id here, but - * that would mean an asyc call to gethostname, so we don't bother. - * @ignore - */ - var MACHINE_ID = parseInt(Math.random() * 0xffffff, 10); - - // Regular expression that checks for hex value - var checkForHexRegExp = new RegExp('^[0-9a-fA-F]{24}$'); - - // Check if buffer exists - try { - if (Buffer && Buffer.from) { - var hasBufferType = true; - inspect = __webpack_require__(345).inspect.custom || 'inspect'; - } - } catch (err) { - hasBufferType = false; - } - - /** - * Create a new ObjectID instance - * - * @class - * @param {(string|number)} id Can be a 24 byte hex string, 12 byte binary string or a Number. - * @property {number} generationTime The generation time of this ObjectId instance - * @return {ObjectID} instance of ObjectID. - */ - var ObjectID = function ObjectID(id) { - // Duck-typing to support ObjectId from different npm packages - if (id instanceof ObjectID) return id; - if (!(this instanceof ObjectID)) return new ObjectID(id); - - this._bsontype = 'ObjectID'; - - // The most common usecase (blank id, new objectId instance) - if (id == null || typeof id === 'number') { - // Generate a new id - this.id = this.generate(id); - // If we are caching the hex string - if (ObjectID.cacheHexString) this.__id = this.toString('hex'); - // Return the object - return; - } - - // Check if the passed in id is valid - var valid = ObjectID.isValid(id); - - // Throw an error if it's not a valid setup - if (!valid && id != null) { - throw new Error('Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'); - } else if (valid && typeof id === 'string' && id.length === 24 && hasBufferType) { - return new ObjectID(utils.toBuffer(id, 'hex')); - } else if (valid && typeof id === 'string' && id.length === 24) { - return ObjectID.createFromHexString(id); - } else if (id != null && id.length === 12) { - // assume 12 byte string - this.id = id; - } else if (id != null && id.toHexString) { - // Duck-typing to support ObjectId from different npm packages - return id; - } else { - throw new Error('Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'); - } - - if (ObjectID.cacheHexString) this.__id = this.toString('hex'); - }; - - // Allow usage of ObjectId as well as ObjectID - // var ObjectId = ObjectID; - - // Precomputed hex table enables speedy hex string conversion - var hexTable = []; - for (var i = 0; i < 256; i++) { - hexTable[i] = (i <= 15 ? '0' : '') + i.toString(16); - } - - /** - * Return the ObjectID id as a 24 byte hex string representation - * - * @method - * @return {string} return the 24 byte hex string representation. - */ - ObjectID.prototype.toHexString = function () { - if (ObjectID.cacheHexString && this.__id) return this.__id; - - var hexString = ''; - if (!this.id || !this.id.length) { - throw new Error('invalid ObjectId, ObjectId.id must be either a string or a Buffer, but is [' + JSON.stringify(this.id) + ']'); - } - - if (this.id instanceof _Buffer) { - hexString = convertToHex(this.id); - if (ObjectID.cacheHexString) this.__id = hexString; - return hexString; - } - - for (var i = 0; i < this.id.length; i++) { - hexString += hexTable[this.id.charCodeAt(i)]; - } - - if (ObjectID.cacheHexString) this.__id = hexString; - return hexString; - }; - - /** - * Update the ObjectID index used in generating new ObjectID's on the driver - * - * @method - * @return {number} returns next index value. - * @ignore - */ - ObjectID.prototype.get_inc = function () { - return ObjectID.index = (ObjectID.index + 1) % 0xffffff; - }; - - /** - * Update the ObjectID index used in generating new ObjectID's on the driver - * - * @method - * @return {number} returns next index value. - * @ignore - */ - ObjectID.prototype.getInc = function () { - return this.get_inc(); - }; - - /** - * Generate a 12 byte id buffer used in ObjectID's - * - * @method - * @param {number} [time] optional parameter allowing to pass in a second based timestamp. - * @return {Buffer} return the 12 byte id buffer string. - */ - ObjectID.prototype.generate = function (time) { - if ('number' !== typeof time) { - time = ~~(Date.now() / 1000); - } - - // Use pid - var pid = (typeof process === 'undefined' || process.pid === 1 ? Math.floor(Math.random() * 100000) : process.pid) % 0xffff; - var inc = this.get_inc(); - // Buffer used - var buffer = utils.allocBuffer(12); - // Encode time - buffer[3] = time & 0xff; - buffer[2] = time >> 8 & 0xff; - buffer[1] = time >> 16 & 0xff; - buffer[0] = time >> 24 & 0xff; - // Encode machine - buffer[6] = MACHINE_ID & 0xff; - buffer[5] = MACHINE_ID >> 8 & 0xff; - buffer[4] = MACHINE_ID >> 16 & 0xff; - // Encode pid - buffer[8] = pid & 0xff; - buffer[7] = pid >> 8 & 0xff; - // Encode index - buffer[11] = inc & 0xff; - buffer[10] = inc >> 8 & 0xff; - buffer[9] = inc >> 16 & 0xff; - // Return the buffer - return buffer; - }; - - /** - * Converts the id into a 24 byte hex string for printing - * - * @param {String} format The Buffer toString format parameter. - * @return {String} return the 24 byte hex string representation. - * @ignore - */ - ObjectID.prototype.toString = function (format) { - // Is the id a buffer then use the buffer toString method to return the format - if (this.id && this.id.copy) { - return this.id.toString(typeof format === 'string' ? format : 'hex'); - } - - // if(this.buffer ) - return this.toHexString(); - }; - - /** - * Converts to a string representation of this Id. - * - * @return {String} return the 24 byte hex string representation. - * @ignore - */ - ObjectID.prototype[inspect] = ObjectID.prototype.toString; - - /** - * Converts to its JSON representation. - * - * @return {String} return the 24 byte hex string representation. - * @ignore - */ - ObjectID.prototype.toJSON = function () { - return this.toHexString(); - }; - - /** - * Compares the equality of this ObjectID with `otherID`. - * - * @method - * @param {object} otherID ObjectID instance to compare against. - * @return {boolean} the result of comparing two ObjectID's - */ - ObjectID.prototype.equals = function equals(otherId) { - // var id; - - if (otherId instanceof ObjectID) { - return this.toString() === otherId.toString(); - } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 12 && this.id instanceof _Buffer) { - return otherId === this.id.toString('binary'); - } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 24) { - return otherId.toLowerCase() === this.toHexString(); - } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 12) { - return otherId === this.id; - } else if (otherId != null && (otherId instanceof ObjectID || otherId.toHexString)) { - return otherId.toHexString() === this.toHexString(); - } else { - return false; - } - }; - - /** - * Returns the generation date (accurate up to the second) that this ID was generated. - * - * @method - * @return {date} the generation date - */ - ObjectID.prototype.getTimestamp = function () { - var timestamp = new Date(); - var time = this.id[3] | this.id[2] << 8 | this.id[1] << 16 | this.id[0] << 24; - timestamp.setTime(Math.floor(time) * 1000); - return timestamp; - }; - - /** - * @ignore - */ - ObjectID.index = ~~(Math.random() * 0xffffff); - - /** - * @ignore - */ - ObjectID.createPk = function createPk() { - return new ObjectID(); - }; - - /** - * Creates an ObjectID from a second based number, with the rest of the ObjectID zeroed out. Used for comparisons or sorting the ObjectID. - * - * @method - * @param {number} time an integer number representing a number of seconds. - * @return {ObjectID} return the created ObjectID - */ - ObjectID.createFromTime = function createFromTime(time) { - var buffer = utils.toBuffer([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); - // Encode time into first 4 bytes - buffer[3] = time & 0xff; - buffer[2] = time >> 8 & 0xff; - buffer[1] = time >> 16 & 0xff; - buffer[0] = time >> 24 & 0xff; - // Return the new objectId - return new ObjectID(buffer); - }; - - // Lookup tables - //var encodeLookup = '0123456789abcdef'.split(''); - var decodeLookup = []; - i = 0; - while (i < 10) decodeLookup[0x30 + i] = i++; - while (i < 16) decodeLookup[0x41 - 10 + i] = decodeLookup[0x61 - 10 + i] = i++; - - var _Buffer = Buffer; - var convertToHex = function (bytes) { - return bytes.toString('hex'); - }; - - /** - * Creates an ObjectID from a hex string representation of an ObjectID. - * - * @method - * @param {string} hexString create a ObjectID from a passed in 24 byte hexstring. - * @return {ObjectID} return the created ObjectID - */ - ObjectID.createFromHexString = function createFromHexString(string) { - // Throw an error if it's not a valid setup - if (typeof string === 'undefined' || string != null && string.length !== 24) { - throw new Error('Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'); - } - - // Use Buffer.from method if available - if (hasBufferType) return new ObjectID(utils.toBuffer(string, 'hex')); - - // Calculate lengths - var array = new _Buffer(12); - var n = 0; - var i = 0; - - while (i < 24) { - array[n++] = decodeLookup[string.charCodeAt(i++)] << 4 | decodeLookup[string.charCodeAt(i++)]; - } - - return new ObjectID(array); - }; - - /** - * Checks if a value is a valid bson ObjectId - * - * @method - * @return {boolean} return true if the value is a valid bson ObjectId, return false otherwise. - */ - ObjectID.isValid = function isValid(id) { - if (id == null) return false; - - if (typeof id === 'number') { - return true; - } - - if (typeof id === 'string') { - return id.length === 12 || id.length === 24 && checkForHexRegExp.test(id); - } - - if (id instanceof ObjectID) { - return true; - } - - if (id instanceof _Buffer) { - return true; - } - - // Duck-Typing detection of ObjectId like objects - if (id.toHexString) { - return id.id.length === 12 || id.id.length === 24 && checkForHexRegExp.test(id.id); - } - - return false; - }; - - /** - * @ignore - */ - Object.defineProperty(ObjectID.prototype, 'generationTime', { - enumerable: true, - get: function () { - return this.id[3] | this.id[2] << 8 | this.id[1] << 16 | this.id[0] << 24; - }, - set: function (value) { - // Encode time into first 4 bytes - this.id[3] = value & 0xff; - this.id[2] = value >> 8 & 0xff; - this.id[1] = value >> 16 & 0xff; - this.id[0] = value >> 24 & 0xff; - } - }); - - /** - * Expose. - */ - module.exports = ObjectID; - module.exports.ObjectID = ObjectID; - module.exports.ObjectId = ObjectID; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(339).Buffer, __webpack_require__(343))) - -/***/ }), -/* 339 */ -/***/ (function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(global) {/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ - /* eslint-disable no-proto */ - - 'use strict' - - var base64 = __webpack_require__(340) - var ieee754 = __webpack_require__(341) - var isArray = __webpack_require__(342) - - exports.Buffer = Buffer - exports.SlowBuffer = SlowBuffer - exports.INSPECT_MAX_BYTES = 50 - - /** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ - Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined - ? global.TYPED_ARRAY_SUPPORT - : typedArraySupport() - - /* - * Export kMaxLength after typed array support is determined. - */ - exports.kMaxLength = kMaxLength() - - function typedArraySupport () { - try { - var arr = new Uint8Array(1) - arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} - return arr.foo() === 42 && // typed array instances can be augmented - typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` - arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` - } catch (e) { - return false - } - } - - function kMaxLength () { - return Buffer.TYPED_ARRAY_SUPPORT - ? 0x7fffffff - : 0x3fffffff - } - - function createBuffer (that, length) { - if (kMaxLength() < length) { - throw new RangeError('Invalid typed array length') - } - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = new Uint8Array(length) - that.__proto__ = Buffer.prototype - } else { - // Fallback: Return an object instance of the Buffer class - if (that === null) { - that = new Buffer(length) - } - that.length = length - } - - return that - } - - /** - * The Buffer constructor returns instances of `Uint8Array` that have their - * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of - * `Uint8Array`, so the returned instances will have all the node `Buffer` methods - * and the `Uint8Array` methods. Square bracket notation works as expected -- it - * returns a single octet. - * - * The `Uint8Array` prototype remains unmodified. - */ - - function Buffer (arg, encodingOrOffset, length) { - if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { - return new Buffer(arg, encodingOrOffset, length) - } - - // Common case. - if (typeof arg === 'number') { - if (typeof encodingOrOffset === 'string') { - throw new Error( - 'If encoding is specified then the first argument must be a string' - ) - } - return allocUnsafe(this, arg) - } - return from(this, arg, encodingOrOffset, length) - } - - Buffer.poolSize = 8192 // not used by this implementation - - // TODO: Legacy, not needed anymore. Remove in next major version. - Buffer._augment = function (arr) { - arr.__proto__ = Buffer.prototype - return arr - } - - function from (that, value, encodingOrOffset, length) { - if (typeof value === 'number') { - throw new TypeError('"value" argument must not be a number') - } - - if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { - return fromArrayBuffer(that, value, encodingOrOffset, length) - } - - if (typeof value === 'string') { - return fromString(that, value, encodingOrOffset) - } - - return fromObject(that, value) - } - - /** - * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError - * if value is a number. - * Buffer.from(str[, encoding]) - * Buffer.from(array) - * Buffer.from(buffer) - * Buffer.from(arrayBuffer[, byteOffset[, length]]) - **/ - Buffer.from = function (value, encodingOrOffset, length) { - return from(null, value, encodingOrOffset, length) - } - - if (Buffer.TYPED_ARRAY_SUPPORT) { - Buffer.prototype.__proto__ = Uint8Array.prototype - Buffer.__proto__ = Uint8Array - if (typeof Symbol !== 'undefined' && Symbol.species && - Buffer[Symbol.species] === Buffer) { - // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 - Object.defineProperty(Buffer, Symbol.species, { - value: null, - configurable: true - }) - } - } - - function assertSize (size) { - if (typeof size !== 'number') { - throw new TypeError('"size" argument must be a number') - } else if (size < 0) { - throw new RangeError('"size" argument must not be negative') - } - } - - function alloc (that, size, fill, encoding) { - assertSize(size) - if (size <= 0) { - return createBuffer(that, size) - } - if (fill !== undefined) { - // Only pay attention to encoding if it's a string. This - // prevents accidentally sending in a number that would - // be interpretted as a start offset. - return typeof encoding === 'string' - ? createBuffer(that, size).fill(fill, encoding) - : createBuffer(that, size).fill(fill) - } - return createBuffer(that, size) - } - - /** - * Creates a new filled Buffer instance. - * alloc(size[, fill[, encoding]]) - **/ - Buffer.alloc = function (size, fill, encoding) { - return alloc(null, size, fill, encoding) - } - - function allocUnsafe (that, size) { - assertSize(size) - that = createBuffer(that, size < 0 ? 0 : checked(size) | 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < size; ++i) { - that[i] = 0 - } - } - return that - } - - /** - * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. - * */ - Buffer.allocUnsafe = function (size) { - return allocUnsafe(null, size) - } - /** - * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. - */ - Buffer.allocUnsafeSlow = function (size) { - return allocUnsafe(null, size) - } - - function fromString (that, string, encoding) { - if (typeof encoding !== 'string' || encoding === '') { - encoding = 'utf8' - } - - if (!Buffer.isEncoding(encoding)) { - throw new TypeError('"encoding" must be a valid string encoding') - } - - var length = byteLength(string, encoding) | 0 - that = createBuffer(that, length) - - var actual = that.write(string, encoding) - - if (actual !== length) { - // Writing a hex string, for example, that contains invalid characters will - // cause everything after the first invalid character to be ignored. (e.g. - // 'abxxcd' will be treated as 'ab') - that = that.slice(0, actual) - } - - return that - } - - function fromArrayLike (that, array) { - var length = array.length < 0 ? 0 : checked(array.length) | 0 - that = createBuffer(that, length) - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that - } - - function fromArrayBuffer (that, array, byteOffset, length) { - array.byteLength // this throws if `array` is not a valid ArrayBuffer - - if (byteOffset < 0 || array.byteLength < byteOffset) { - throw new RangeError('\'offset\' is out of bounds') - } - - if (array.byteLength < byteOffset + (length || 0)) { - throw new RangeError('\'length\' is out of bounds') - } - - if (byteOffset === undefined && length === undefined) { - array = new Uint8Array(array) - } else if (length === undefined) { - array = new Uint8Array(array, byteOffset) - } else { - array = new Uint8Array(array, byteOffset, length) - } - - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = array - that.__proto__ = Buffer.prototype - } else { - // Fallback: Return an object instance of the Buffer class - that = fromArrayLike(that, array) - } - return that - } - - function fromObject (that, obj) { - if (Buffer.isBuffer(obj)) { - var len = checked(obj.length) | 0 - that = createBuffer(that, len) - - if (that.length === 0) { - return that - } - - obj.copy(that, 0, 0, len) - return that - } - - if (obj) { - if ((typeof ArrayBuffer !== 'undefined' && - obj.buffer instanceof ArrayBuffer) || 'length' in obj) { - if (typeof obj.length !== 'number' || isnan(obj.length)) { - return createBuffer(that, 0) - } - return fromArrayLike(that, obj) - } - - if (obj.type === 'Buffer' && isArray(obj.data)) { - return fromArrayLike(that, obj.data) - } - } - - throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') - } - - function checked (length) { - // Note: cannot use `length < kMaxLength()` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= kMaxLength()) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + kMaxLength().toString(16) + ' bytes') - } - return length | 0 - } - - function SlowBuffer (length) { - if (+length != length) { // eslint-disable-line eqeqeq - length = 0 - } - return Buffer.alloc(+length) - } - - Buffer.isBuffer = function isBuffer (b) { - return !!(b != null && b._isBuffer) - } - - Buffer.compare = function compare (a, b) { - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - for (var i = 0, len = Math.min(x, y); i < len; ++i) { - if (a[i] !== b[i]) { - x = a[i] - y = b[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - } - - Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'latin1': - case 'binary': - case 'base64': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } - } - - Buffer.concat = function concat (list, length) { - if (!isArray(list)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - - if (list.length === 0) { - return Buffer.alloc(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; ++i) { - length += list[i].length - } - } - - var buffer = Buffer.allocUnsafe(length) - var pos = 0 - for (i = 0; i < list.length; ++i) { - var buf = list[i] - if (!Buffer.isBuffer(buf)) { - throw new TypeError('"list" argument must be an Array of Buffers') - } - buf.copy(buffer, pos) - pos += buf.length - } - return buffer - } - - function byteLength (string, encoding) { - if (Buffer.isBuffer(string)) { - return string.length - } - if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && - (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { - return string.byteLength - } - if (typeof string !== 'string') { - string = '' + string - } - - var len = string.length - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'latin1': - case 'binary': - return len - case 'utf8': - case 'utf-8': - case undefined: - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - Buffer.byteLength = byteLength - - function slowToString (encoding, start, end) { - var loweredCase = false - - // No need to verify that "this.length <= MAX_UINT32" since it's a read-only - // property of a typed array. - - // This behaves neither like String nor Uint8Array in that we set start/end - // to their upper/lower bounds if the value passed is out of range. - // undefined is handled specially as per ECMA-262 6th Edition, - // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. - if (start === undefined || start < 0) { - start = 0 - } - // Return early if start > this.length. Done here to prevent potential uint32 - // coercion fail below. - if (start > this.length) { - return '' - } - - if (end === undefined || end > this.length) { - end = this.length - } - - if (end <= 0) { - return '' - } - - // Force coersion to uint32. This will also coerce falsey/NaN values to 0. - end >>>= 0 - start >>>= 0 - - if (end <= start) { - return '' - } - - if (!encoding) encoding = 'utf8' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'latin1': - case 'binary': - return latin1Slice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } - } - - // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect - // Buffer instances. - Buffer.prototype._isBuffer = true - - function swap (b, n, m) { - var i = b[n] - b[n] = b[m] - b[m] = i - } - - Buffer.prototype.swap16 = function swap16 () { - var len = this.length - if (len % 2 !== 0) { - throw new RangeError('Buffer size must be a multiple of 16-bits') - } - for (var i = 0; i < len; i += 2) { - swap(this, i, i + 1) - } - return this - } - - Buffer.prototype.swap32 = function swap32 () { - var len = this.length - if (len % 4 !== 0) { - throw new RangeError('Buffer size must be a multiple of 32-bits') - } - for (var i = 0; i < len; i += 4) { - swap(this, i, i + 3) - swap(this, i + 1, i + 2) - } - return this - } - - Buffer.prototype.swap64 = function swap64 () { - var len = this.length - if (len % 8 !== 0) { - throw new RangeError('Buffer size must be a multiple of 64-bits') - } - for (var i = 0; i < len; i += 8) { - swap(this, i, i + 7) - swap(this, i + 1, i + 6) - swap(this, i + 2, i + 5) - swap(this, i + 3, i + 4) - } - return this - } - - Buffer.prototype.toString = function toString () { - var length = this.length | 0 - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) - } - - Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 - } - - Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') - if (this.length > max) str += ' ... ' - } - return '' - } - - Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { - if (!Buffer.isBuffer(target)) { - throw new TypeError('Argument must be a Buffer') - } - - if (start === undefined) { - start = 0 - } - if (end === undefined) { - end = target ? target.length : 0 - } - if (thisStart === undefined) { - thisStart = 0 - } - if (thisEnd === undefined) { - thisEnd = this.length - } - - if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { - throw new RangeError('out of range index') - } - - if (thisStart >= thisEnd && start >= end) { - return 0 - } - if (thisStart >= thisEnd) { - return -1 - } - if (start >= end) { - return 1 - } - - start >>>= 0 - end >>>= 0 - thisStart >>>= 0 - thisEnd >>>= 0 - - if (this === target) return 0 - - var x = thisEnd - thisStart - var y = end - start - var len = Math.min(x, y) - - var thisCopy = this.slice(thisStart, thisEnd) - var targetCopy = target.slice(start, end) - - for (var i = 0; i < len; ++i) { - if (thisCopy[i] !== targetCopy[i]) { - x = thisCopy[i] - y = targetCopy[i] - break - } - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 - } - - // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, - // OR the last index of `val` in `buffer` at offset <= `byteOffset`. - // - // Arguments: - // - buffer - a Buffer to search - // - val - a string, Buffer, or number - // - byteOffset - an index into `buffer`; will be clamped to an int32 - // - encoding - an optional encoding, relevant is val is a string - // - dir - true for indexOf, false for lastIndexOf - function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { - // Empty buffer means no match - if (buffer.length === 0) return -1 - - // Normalize byteOffset - if (typeof byteOffset === 'string') { - encoding = byteOffset - byteOffset = 0 - } else if (byteOffset > 0x7fffffff) { - byteOffset = 0x7fffffff - } else if (byteOffset < -0x80000000) { - byteOffset = -0x80000000 - } - byteOffset = +byteOffset // Coerce to Number. - if (isNaN(byteOffset)) { - // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer - byteOffset = dir ? 0 : (buffer.length - 1) - } - - // Normalize byteOffset: negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = buffer.length + byteOffset - if (byteOffset >= buffer.length) { - if (dir) return -1 - else byteOffset = buffer.length - 1 - } else if (byteOffset < 0) { - if (dir) byteOffset = 0 - else return -1 - } - - // Normalize val - if (typeof val === 'string') { - val = Buffer.from(val, encoding) - } - - // Finally, search either indexOf (if dir is true) or lastIndexOf - if (Buffer.isBuffer(val)) { - // Special case: looking for empty string/buffer always fails - if (val.length === 0) { - return -1 - } - return arrayIndexOf(buffer, val, byteOffset, encoding, dir) - } else if (typeof val === 'number') { - val = val & 0xFF // Search for a byte value [0-255] - if (Buffer.TYPED_ARRAY_SUPPORT && - typeof Uint8Array.prototype.indexOf === 'function') { - if (dir) { - return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) - } else { - return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) - } - } - return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) - } - - throw new TypeError('val must be string, number or Buffer') - } - - function arrayIndexOf (arr, val, byteOffset, encoding, dir) { - var indexSize = 1 - var arrLength = arr.length - var valLength = val.length - - if (encoding !== undefined) { - encoding = String(encoding).toLowerCase() - if (encoding === 'ucs2' || encoding === 'ucs-2' || - encoding === 'utf16le' || encoding === 'utf-16le') { - if (arr.length < 2 || val.length < 2) { - return -1 - } - indexSize = 2 - arrLength /= 2 - valLength /= 2 - byteOffset /= 2 - } - } - - function read (buf, i) { - if (indexSize === 1) { - return buf[i] - } else { - return buf.readUInt16BE(i * indexSize) - } - } - - var i - if (dir) { - var foundIndex = -1 - for (i = byteOffset; i < arrLength; i++) { - if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === valLength) return foundIndex * indexSize - } else { - if (foundIndex !== -1) i -= i - foundIndex - foundIndex = -1 - } - } - } else { - if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength - for (i = byteOffset; i >= 0; i--) { - var found = true - for (var j = 0; j < valLength; j++) { - if (read(arr, i + j) !== read(val, j)) { - found = false - break - } - } - if (found) return i - } - } - - return -1 - } - - Buffer.prototype.includes = function includes (val, byteOffset, encoding) { - return this.indexOf(val, byteOffset, encoding) !== -1 - } - - Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, true) - } - - Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { - return bidirectionalIndexOf(this, val, byteOffset, encoding, false) - } - - function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - // must be an even number of digits - var strLen = string.length - if (strLen % 2 !== 0) throw new TypeError('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; ++i) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (isNaN(parsed)) return i - buf[offset + i] = parsed - } - return i - } - - function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) - } - - function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) - } - - function latin1Write (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) - } - - function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) - } - - function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) - } - - Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset | 0 - if (isFinite(length)) { - length = length | 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - // legacy write(string, encoding, offset, length) - remove in v0.13 - } else { - throw new Error( - 'Buffer.write(string, encoding, offset[, length]) is no longer supported' - ) - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('Attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'latin1': - case 'binary': - return latin1Write(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } - } - - Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } - } - - function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } - } - - function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) - } - - // Based on http://stackoverflow.com/a/22747272/680742, the browser with - // the lowest limit is Chrome, with 0x10000 args. - // We go 1 magnitude less, for safety - var MAX_ARGUMENTS_LENGTH = 0x1000 - - function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res - } - - function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret - } - - function latin1Slice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; ++i) { - ret += String.fromCharCode(buf[i]) - } - return ret - } - - function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; ++i) { - out += toHex(buf[i]) - } - return out - } - - function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) - } - return res - } - - Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf - if (Buffer.TYPED_ARRAY_SUPPORT) { - newBuf = this.subarray(start, end) - newBuf.__proto__ = Buffer.prototype - } else { - var sliceLen = end - start - newBuf = new Buffer(sliceLen, undefined) - for (var i = 0; i < sliceLen; ++i) { - newBuf[i] = this[i + start] - } - } - - return newBuf - } - - /* - * Need to make sure that buffer isn't trying to write out of bounds. - */ - function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') - } - - Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val - } - - Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val - } - - Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] - } - - Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) - } - - Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] - } - - Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) - } - - Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) - } - - Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val - } - - Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val - } - - Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) - } - - Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val - } - - Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val - } - - Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) - } - - Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) - } - - Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) - } - - Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) - } - - Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) - } - - Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) - } - - function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') - if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') - if (offset + ext > buf.length) throw new RangeError('Index out of range') - } - - Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - var maxBytes = Math.pow(2, 8 * byteLength) - 1 - checkInt(this, value, offset, byteLength, maxBytes, 0) - } - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - this[offset] = (value & 0xff) - return offset + 1 - } - - function objectWriteUInt16 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) { - buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> - (littleEndian ? i : 1 - i) * 8 - } - } - - Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 - } - - Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 - } - - function objectWriteUInt32 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffffffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) { - buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff - } - } - - Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 - } - - Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 - } - - Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { - sub = 1 - } - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength - } - - Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 - } - - Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 - } - - Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 - } - - Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 - } - - Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 - } - - function checkIEEE754 (buf, value, offset, ext, max, min) { - if (offset + ext > buf.length) throw new RangeError('Index out of range') - if (offset < 0) throw new RangeError('Index out of range') - } - - function writeFloat (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 - } - - Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) - } - - Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) - } - - function writeDouble (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 - } - - Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) - } - - Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) - } - - // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) - Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - var i - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; --i) { - target[i + targetStart] = this[i + start] - } - } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { - // ascending copy from start - for (i = 0; i < len; ++i) { - target[i + targetStart] = this[i + start] - } - } else { - Uint8Array.prototype.set.call( - target, - this.subarray(start, start + len), - targetStart - ) - } - - return len - } - - // Usage: - // buffer.fill(number[, offset[, end]]) - // buffer.fill(buffer[, offset[, end]]) - // buffer.fill(string[, offset[, end]][, encoding]) - Buffer.prototype.fill = function fill (val, start, end, encoding) { - // Handle string cases: - if (typeof val === 'string') { - if (typeof start === 'string') { - encoding = start - start = 0 - end = this.length - } else if (typeof end === 'string') { - encoding = end - end = this.length - } - if (val.length === 1) { - var code = val.charCodeAt(0) - if (code < 256) { - val = code - } - } - if (encoding !== undefined && typeof encoding !== 'string') { - throw new TypeError('encoding must be a string') - } - if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { - throw new TypeError('Unknown encoding: ' + encoding) - } - } else if (typeof val === 'number') { - val = val & 255 - } - - // Invalid ranges are not set to a default, so can range check early. - if (start < 0 || this.length < start || this.length < end) { - throw new RangeError('Out of range index') - } - - if (end <= start) { - return this - } - - start = start >>> 0 - end = end === undefined ? this.length : end >>> 0 - - if (!val) val = 0 - - var i - if (typeof val === 'number') { - for (i = start; i < end; ++i) { - this[i] = val - } - } else { - var bytes = Buffer.isBuffer(val) - ? val - : utf8ToBytes(new Buffer(val, encoding).toString()) - var len = bytes.length - for (i = 0; i < end - start; ++i) { - this[i + start] = bytes[i % len] - } - } - - return this - } - - // HELPER FUNCTIONS - // ================ - - var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g - - function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = stringtrim(str).replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str - } - - function stringtrim (str) { - if (str.trim) return str.trim() - return str.replace(/^\s+|\s+$/g, '') - } - - function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) - } - - function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; ++i) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes - } - - function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray - } - - function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; ++i) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray - } - - function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) - } - - function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; ++i) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i - } - - function isnan (val) { - return val !== val // eslint-disable-line no-self-compare - } - - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }), -/* 340 */ -/***/ (function(module, exports) { - - 'use strict' - - exports.byteLength = byteLength - exports.toByteArray = toByteArray - exports.fromByteArray = fromByteArray - - var lookup = [] - var revLookup = [] - var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array - - var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' - for (var i = 0, len = code.length; i < len; ++i) { - lookup[i] = code[i] - revLookup[code.charCodeAt(i)] = i - } - - // Support decoding URL-safe base64 strings, as Node.js does. - // See: https://en.wikipedia.org/wiki/Base64#URL_applications - revLookup['-'.charCodeAt(0)] = 62 - revLookup['_'.charCodeAt(0)] = 63 - - function getLens (b64) { - var len = b64.length - - if (len % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // Trim off extra bytes after placeholder bytes are found - // See: https://github.com/beatgammit/base64-js/issues/42 - var validLen = b64.indexOf('=') - if (validLen === -1) validLen = len - - var placeHoldersLen = validLen === len - ? 0 - : 4 - (validLen % 4) - - return [validLen, placeHoldersLen] - } - - // base64 is 4/3 + up to two characters of the original data - function byteLength (b64) { - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen - } - - function _byteLength (b64, validLen, placeHoldersLen) { - return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen - } - - function toByteArray (b64) { - var tmp - var lens = getLens(b64) - var validLen = lens[0] - var placeHoldersLen = lens[1] - - var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) - - var curByte = 0 - - // if there are placeholders, only get up to the last complete 4 chars - var len = placeHoldersLen > 0 - ? validLen - 4 - : validLen - - var i - for (i = 0; i < len; i += 4) { - tmp = - (revLookup[b64.charCodeAt(i)] << 18) | - (revLookup[b64.charCodeAt(i + 1)] << 12) | - (revLookup[b64.charCodeAt(i + 2)] << 6) | - revLookup[b64.charCodeAt(i + 3)] - arr[curByte++] = (tmp >> 16) & 0xFF - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 2) { - tmp = - (revLookup[b64.charCodeAt(i)] << 2) | - (revLookup[b64.charCodeAt(i + 1)] >> 4) - arr[curByte++] = tmp & 0xFF - } - - if (placeHoldersLen === 1) { - tmp = - (revLookup[b64.charCodeAt(i)] << 10) | - (revLookup[b64.charCodeAt(i + 1)] << 4) | - (revLookup[b64.charCodeAt(i + 2)] >> 2) - arr[curByte++] = (tmp >> 8) & 0xFF - arr[curByte++] = tmp & 0xFF - } - - return arr - } - - function tripletToBase64 (num) { - return lookup[num >> 18 & 0x3F] + - lookup[num >> 12 & 0x3F] + - lookup[num >> 6 & 0x3F] + - lookup[num & 0x3F] - } - - function encodeChunk (uint8, start, end) { - var tmp - var output = [] - for (var i = start; i < end; i += 3) { - tmp = - ((uint8[i] << 16) & 0xFF0000) + - ((uint8[i + 1] << 8) & 0xFF00) + - (uint8[i + 2] & 0xFF) - output.push(tripletToBase64(tmp)) - } - return output.join('') - } - - function fromByteArray (uint8) { - var tmp - var len = uint8.length - var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes - var parts = [] - var maxChunkLength = 16383 // must be multiple of 3 - - // go through the array every three bytes, we'll deal with trailing stuff later - for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { - parts.push(encodeChunk( - uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) - )) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - if (extraBytes === 1) { - tmp = uint8[len - 1] - parts.push( - lookup[tmp >> 2] + - lookup[(tmp << 4) & 0x3F] + - '==' - ) - } else if (extraBytes === 2) { - tmp = (uint8[len - 2] << 8) + uint8[len - 1] - parts.push( - lookup[tmp >> 10] + - lookup[(tmp >> 4) & 0x3F] + - lookup[(tmp << 2) & 0x3F] + - '=' - ) - } - - return parts.join('') - } - - -/***/ }), -/* 341 */ -/***/ (function(module, exports) { - - exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = (nBytes * 8) - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) - } - - exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = (nBytes * 8) - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = ((value * c) - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 - } - - -/***/ }), -/* 342 */ -/***/ (function(module, exports) { - - var toString = {}.toString; - - module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; - }; - - -/***/ }), -/* 343 */ -/***/ (function(module, exports) { - - // shim for using process in browser - var process = module.exports = {}; - - // cached from whatever global is present so that test runners that stub it - // don't break things. But we need to wrap it in a try catch in case it is - // wrapped in strict mode code which doesn't define any globals. It's inside a - // function because try/catches deoptimize in certain engines. - - var cachedSetTimeout; - var cachedClearTimeout; - - function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); - } - function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); - } - (function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; - } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; - } - } ()) - function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - - } - function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - - } - var queue = []; - var draining = false; - var currentQueue; - var queueIndex = -1; - - function cleanUpNextTick() { - if (!draining || !currentQueue) { - return; - } - draining = false; - if (currentQueue.length) { - queue = currentQueue.concat(queue); - } else { - queueIndex = -1; - } - if (queue.length) { - drainQueue(); - } - } - - function drainQueue() { - if (draining) { - return; - } - var timeout = runTimeout(cleanUpNextTick); - draining = true; - - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - while (++queueIndex < len) { - if (currentQueue) { - currentQueue[queueIndex].run(); - } - } - queueIndex = -1; - len = queue.length; - } - currentQueue = null; - draining = false; - runClearTimeout(timeout); - } - - process.nextTick = function (fun) { - var args = new Array(arguments.length - 1); - if (arguments.length > 1) { - for (var i = 1; i < arguments.length; i++) { - args[i - 1] = arguments[i]; - } - } - queue.push(new Item(fun, args)); - if (queue.length === 1 && !draining) { - runTimeout(drainQueue); - } - }; - - // v8 likes predictible objects - function Item(fun, array) { - this.fun = fun; - this.array = array; - } - Item.prototype.run = function () { - this.fun.apply(null, this.array); - }; - process.title = 'browser'; - process.browser = true; - process.env = {}; - process.argv = []; - process.version = ''; // empty string to avoid regexp issues - process.versions = {}; - - function noop() {} - - process.on = noop; - process.addListener = noop; - process.once = noop; - process.off = noop; - process.removeListener = noop; - process.removeAllListeners = noop; - process.emit = noop; - process.prependListener = noop; - process.prependOnceListener = noop; - - process.listeners = function (name) { return [] } - - process.binding = function (name) { - throw new Error('process.binding is not supported'); - }; - - process.cwd = function () { return '/' }; - process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); - }; - process.umask = function() { return 0; }; - - -/***/ }), -/* 344 */ -/***/ (function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; - - /** - * Normalizes our expected stringified form of a function across versions of node - * @param {Function} fn The function to stringify - */ - - function normalizedFunctionString(fn) { - return fn.toString().replace(/function *\(/, 'function ('); - } - - function newBuffer(item, encoding) { - return new Buffer(item, encoding); - } - - function allocBuffer() { - return Buffer.alloc.apply(Buffer, arguments); - } - - function toBuffer() { - return Buffer.from.apply(Buffer, arguments); - } - - module.exports = { - normalizedFunctionString: normalizedFunctionString, - allocBuffer: typeof Buffer.alloc === 'function' ? allocBuffer : newBuffer, - toBuffer: typeof Buffer.from === 'function' ? toBuffer : newBuffer - }; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(339).Buffer)) - -/***/ }), -/* 345 */ -/***/ (function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(global, process) {// Copyright Joyent, Inc. and other Node contributors. - // - // Permission is hereby granted, free of charge, to any person obtaining a - // copy of this software and associated documentation files (the - // "Software"), to deal in the Software without restriction, including - // without limitation the rights to use, copy, modify, merge, publish, - // distribute, sublicense, and/or sell copies of the Software, and to permit - // persons to whom the Software is furnished to do so, subject to the - // following conditions: - // - // The above copyright notice and this permission notice shall be included - // in all copies or substantial portions of the Software. - // - // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS - // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN - // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, - // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - - var formatRegExp = /%[sdj%]/g; - exports.format = function(f) { - if (!isString(f)) { - var objects = []; - for (var i = 0; i < arguments.length; i++) { - objects.push(inspect(arguments[i])); - } - return objects.join(' '); - } - - var i = 1; - var args = arguments; - var len = args.length; - var str = String(f).replace(formatRegExp, function(x) { - if (x === '%%') return '%'; - if (i >= len) return x; - switch (x) { - case '%s': return String(args[i++]); - case '%d': return Number(args[i++]); - case '%j': - try { - return JSON.stringify(args[i++]); - } catch (_) { - return '[Circular]'; - } - default: - return x; - } - }); - for (var x = args[i]; i < len; x = args[++i]) { - if (isNull(x) || !isObject(x)) { - str += ' ' + x; - } else { - str += ' ' + inspect(x); - } - } - return str; - }; - - - // Mark that a method should not be used. - // Returns a modified function which warns once by default. - // If --no-deprecation is set, then it is a no-op. - exports.deprecate = function(fn, msg) { - // Allow for deprecating things in the process of starting up. - if (isUndefined(global.process)) { - return function() { - return exports.deprecate(fn, msg).apply(this, arguments); - }; - } - - if (process.noDeprecation === true) { - return fn; - } - - var warned = false; - function deprecated() { - if (!warned) { - if (process.throwDeprecation) { - throw new Error(msg); - } else if (process.traceDeprecation) { - console.trace(msg); - } else { - console.error(msg); - } - warned = true; - } - return fn.apply(this, arguments); - } - - return deprecated; - }; - - - var debugs = {}; - var debugEnviron; - exports.debuglog = function(set) { - if (isUndefined(debugEnviron)) - debugEnviron = process.env.NODE_DEBUG || ''; - set = set.toUpperCase(); - if (!debugs[set]) { - if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { - var pid = process.pid; - debugs[set] = function() { - var msg = exports.format.apply(exports, arguments); - console.error('%s %d: %s', set, pid, msg); - }; - } else { - debugs[set] = function() {}; - } - } - return debugs[set]; - }; - - - /** - * Echos the value of a value. Trys to print the value out - * in the best way possible given the different types. - * - * @param {Object} obj The object to print out. - * @param {Object} opts Optional options object that alters the output. - */ - /* legacy: obj, showHidden, depth, colors*/ - function inspect(obj, opts) { - // default options - var ctx = { - seen: [], - stylize: stylizeNoColor - }; - // legacy... - if (arguments.length >= 3) ctx.depth = arguments[2]; - if (arguments.length >= 4) ctx.colors = arguments[3]; - if (isBoolean(opts)) { - // legacy... - ctx.showHidden = opts; - } else if (opts) { - // got an "options" object - exports._extend(ctx, opts); - } - // set default options - if (isUndefined(ctx.showHidden)) ctx.showHidden = false; - if (isUndefined(ctx.depth)) ctx.depth = 2; - if (isUndefined(ctx.colors)) ctx.colors = false; - if (isUndefined(ctx.customInspect)) ctx.customInspect = true; - if (ctx.colors) ctx.stylize = stylizeWithColor; - return formatValue(ctx, obj, ctx.depth); - } - exports.inspect = inspect; - - - // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics - inspect.colors = { - 'bold' : [1, 22], - 'italic' : [3, 23], - 'underline' : [4, 24], - 'inverse' : [7, 27], - 'white' : [37, 39], - 'grey' : [90, 39], - 'black' : [30, 39], - 'blue' : [34, 39], - 'cyan' : [36, 39], - 'green' : [32, 39], - 'magenta' : [35, 39], - 'red' : [31, 39], - 'yellow' : [33, 39] - }; - - // Don't use 'blue' not visible on cmd.exe - inspect.styles = { - 'special': 'cyan', - 'number': 'yellow', - 'boolean': 'yellow', - 'undefined': 'grey', - 'null': 'bold', - 'string': 'green', - 'date': 'magenta', - // "name": intentionally not styling - 'regexp': 'red' - }; - - - function stylizeWithColor(str, styleType) { - var style = inspect.styles[styleType]; - - if (style) { - return '\u001b[' + inspect.colors[style][0] + 'm' + str + - '\u001b[' + inspect.colors[style][1] + 'm'; - } else { - return str; - } - } - - - function stylizeNoColor(str, styleType) { - return str; - } - - - function arrayToHash(array) { - var hash = {}; - - array.forEach(function(val, idx) { - hash[val] = true; - }); - - return hash; - } - - - function formatValue(ctx, value, recurseTimes) { - // Provide a hook for user-specified inspect functions. - // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && - // Filter out the util module, it's inspect function is special - value.inspect !== exports.inspect && - // Also filter out any prototype objects using the circular check. - !(value.constructor && value.constructor.prototype === value)) { - var ret = value.inspect(recurseTimes, ctx); - if (!isString(ret)) { - ret = formatValue(ctx, ret, recurseTimes); - } - return ret; - } - - // Primitive types cannot have properties - var primitive = formatPrimitive(ctx, value); - if (primitive) { - return primitive; - } - - // Look up the keys of the object. - var keys = Object.keys(value); - var visibleKeys = arrayToHash(keys); - - if (ctx.showHidden) { - keys = Object.getOwnPropertyNames(value); - } - - // IE doesn't make error fields non-enumerable - // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx - if (isError(value) - && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) { - return formatError(value); - } - - // Some type of object without properties can be shortcutted. - if (keys.length === 0) { - if (isFunction(value)) { - var name = value.name ? ': ' + value.name : ''; - return ctx.stylize('[Function' + name + ']', 'special'); - } - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } - if (isDate(value)) { - return ctx.stylize(Date.prototype.toString.call(value), 'date'); - } - if (isError(value)) { - return formatError(value); - } - } - - var base = '', array = false, braces = ['{', '}']; - - // Make Array say that they are Array - if (isArray(value)) { - array = true; - braces = ['[', ']']; - } - - // Make functions say that they are functions - if (isFunction(value)) { - var n = value.name ? ': ' + value.name : ''; - base = ' [Function' + n + ']'; - } - - // Make RegExps say that they are RegExps - if (isRegExp(value)) { - base = ' ' + RegExp.prototype.toString.call(value); - } - - // Make dates with properties first say the date - if (isDate(value)) { - base = ' ' + Date.prototype.toUTCString.call(value); - } - - // Make error with message first say the error - if (isError(value)) { - base = ' ' + formatError(value); - } - - if (keys.length === 0 && (!array || value.length == 0)) { - return braces[0] + base + braces[1]; - } - - if (recurseTimes < 0) { - if (isRegExp(value)) { - return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); - } else { - return ctx.stylize('[Object]', 'special'); - } - } - - ctx.seen.push(value); - - var output; - if (array) { - output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); - } else { - output = keys.map(function(key) { - return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); - }); - } - - ctx.seen.pop(); - - return reduceToSingleString(output, base, braces); - } - - - function formatPrimitive(ctx, value) { - if (isUndefined(value)) - return ctx.stylize('undefined', 'undefined'); - if (isString(value)) { - var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') - .replace(/'/g, "\\'") - .replace(/\\"/g, '"') + '\''; - return ctx.stylize(simple, 'string'); - } - if (isNumber(value)) - return ctx.stylize('' + value, 'number'); - if (isBoolean(value)) - return ctx.stylize('' + value, 'boolean'); - // For some reason typeof null is "object", so special case here. - if (isNull(value)) - return ctx.stylize('null', 'null'); - } - - - function formatError(value) { - return '[' + Error.prototype.toString.call(value) + ']'; - } - - - function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { - var output = []; - for (var i = 0, l = value.length; i < l; ++i) { - if (hasOwnProperty(value, String(i))) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - String(i), true)); - } else { - output.push(''); - } - } - keys.forEach(function(key) { - if (!key.match(/^\d+$/)) { - output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, - key, true)); - } - }); - return output; - } - - - function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { - var name, str, desc; - desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; - if (desc.get) { - if (desc.set) { - str = ctx.stylize('[Getter/Setter]', 'special'); - } else { - str = ctx.stylize('[Getter]', 'special'); - } - } else { - if (desc.set) { - str = ctx.stylize('[Setter]', 'special'); - } - } - if (!hasOwnProperty(visibleKeys, key)) { - name = '[' + key + ']'; - } - if (!str) { - if (ctx.seen.indexOf(desc.value) < 0) { - if (isNull(recurseTimes)) { - str = formatValue(ctx, desc.value, null); - } else { - str = formatValue(ctx, desc.value, recurseTimes - 1); - } - if (str.indexOf('\n') > -1) { - if (array) { - str = str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n').substr(2); - } else { - str = '\n' + str.split('\n').map(function(line) { - return ' ' + line; - }).join('\n'); - } - } - } else { - str = ctx.stylize('[Circular]', 'special'); - } - } - if (isUndefined(name)) { - if (array && key.match(/^\d+$/)) { - return str; - } - name = JSON.stringify('' + key); - if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); - name = ctx.stylize(name, 'name'); - } else { - name = name.replace(/'/g, "\\'") - .replace(/\\"/g, '"') - .replace(/(^"|"$)/g, "'"); - name = ctx.stylize(name, 'string'); - } - } - - return name + ': ' + str; - } - - - function reduceToSingleString(output, base, braces) { - var numLinesEst = 0; - var length = output.reduce(function(prev, cur) { - numLinesEst++; - if (cur.indexOf('\n') >= 0) numLinesEst++; - return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; - }, 0); - - if (length > 60) { - return braces[0] + - (base === '' ? '' : base + '\n ') + - ' ' + - output.join(',\n ') + - ' ' + - braces[1]; - } - - return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; - } - - - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - function isArray(ar) { - return Array.isArray(ar); - } - exports.isArray = isArray; - - function isBoolean(arg) { - return typeof arg === 'boolean'; - } - exports.isBoolean = isBoolean; - - function isNull(arg) { - return arg === null; - } - exports.isNull = isNull; - - function isNullOrUndefined(arg) { - return arg == null; - } - exports.isNullOrUndefined = isNullOrUndefined; - - function isNumber(arg) { - return typeof arg === 'number'; - } - exports.isNumber = isNumber; - - function isString(arg) { - return typeof arg === 'string'; - } - exports.isString = isString; - - function isSymbol(arg) { - return typeof arg === 'symbol'; - } - exports.isSymbol = isSymbol; - - function isUndefined(arg) { - return arg === void 0; - } - exports.isUndefined = isUndefined; - - function isRegExp(re) { - return isObject(re) && objectToString(re) === '[object RegExp]'; - } - exports.isRegExp = isRegExp; - - function isObject(arg) { - return typeof arg === 'object' && arg !== null; - } - exports.isObject = isObject; - - function isDate(d) { - return isObject(d) && objectToString(d) === '[object Date]'; - } - exports.isDate = isDate; - - function isError(e) { - return isObject(e) && - (objectToString(e) === '[object Error]' || e instanceof Error); - } - exports.isError = isError; - - function isFunction(arg) { - return typeof arg === 'function'; - } - exports.isFunction = isFunction; - - function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; - } - exports.isPrimitive = isPrimitive; - - exports.isBuffer = __webpack_require__(346); - - function objectToString(o) { - return Object.prototype.toString.call(o); - } - - - function pad(n) { - return n < 10 ? '0' + n.toString(10) : n.toString(10); - } - - - var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', - 'Oct', 'Nov', 'Dec']; - - // 26 Feb 16:19:34 - function timestamp() { - var d = new Date(); - var time = [pad(d.getHours()), - pad(d.getMinutes()), - pad(d.getSeconds())].join(':'); - return [d.getDate(), months[d.getMonth()], time].join(' '); - } - - - // log is just a thin wrapper to console.log that prepends a timestamp - exports.log = function() { - console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); - }; - - - /** - * Inherit the prototype methods from one constructor into another. - * - * The Function.prototype.inherits from lang.js rewritten as a standalone - * function (not on Function.prototype). NOTE: If this file is to be loaded - * during bootstrapping this function needs to be rewritten using some native - * functions as prototype setup using normal JavaScript does not work as - * expected during bootstrapping (see mirror.js in r114903). - * - * @param {function} ctor Constructor function which needs to inherit the - * prototype. - * @param {function} superCtor Constructor function to inherit prototype from. - */ - exports.inherits = __webpack_require__(347); - - exports._extend = function(origin, add) { - // Don't do anything if add isn't an object - if (!add || !isObject(add)) return origin; - - var keys = Object.keys(add); - var i = keys.length; - while (i--) { - origin[keys[i]] = add[keys[i]]; - } - return origin; - }; - - function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); - } - - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(343))) - -/***/ }), -/* 346 */ -/***/ (function(module, exports) { - - module.exports = function isBuffer(arg) { - return arg && typeof arg === 'object' - && typeof arg.copy === 'function' - && typeof arg.fill === 'function' - && typeof arg.readUInt8 === 'function'; - } - -/***/ }), -/* 347 */ -/***/ (function(module, exports) { - - if (typeof Object.create === 'function') { - // implementation from standard node.js 'util' module - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - ctor.prototype = Object.create(superCtor.prototype, { - constructor: { - value: ctor, - enumerable: false, - writable: true, - configurable: true - } - }); - }; - } else { - // old school shim for old browsers - module.exports = function inherits(ctor, superCtor) { - ctor.super_ = superCtor - var TempCtor = function () {} - TempCtor.prototype = superCtor.prototype - ctor.prototype = new TempCtor() - ctor.prototype.constructor = ctor - } - } - - -/***/ }), -/* 348 */ -/***/ (function(module, exports) { - - /** - * A class representation of the BSON RegExp type. - * - * @class - * @return {BSONRegExp} A MinKey instance - */ - function BSONRegExp(pattern, options) { - if (!(this instanceof BSONRegExp)) return new BSONRegExp(); - - // Execute - this._bsontype = 'BSONRegExp'; - this.pattern = pattern || ''; - this.options = options || ''; - - // Validate options - for (var i = 0; i < this.options.length; i++) { - if (!(this.options[i] === 'i' || this.options[i] === 'm' || this.options[i] === 'x' || this.options[i] === 'l' || this.options[i] === 's' || this.options[i] === 'u')) { - throw new Error('the regular expression options [' + this.options[i] + '] is not supported'); - } - } - } - - module.exports = BSONRegExp; - module.exports.BSONRegExp = BSONRegExp; - -/***/ }), -/* 349 */ -/***/ (function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {// Custom inspect property name / symbol. - var inspect = Buffer ? __webpack_require__(345).inspect.custom || 'inspect' : 'inspect'; - - /** - * A class representation of the BSON Symbol type. - * - * @class - * @deprecated - * @param {string} value the string representing the symbol. - * @return {Symbol} - */ - function Symbol(value) { - if (!(this instanceof Symbol)) return new Symbol(value); - this._bsontype = 'Symbol'; - this.value = value; - } - - /** - * Access the wrapped string value. - * - * @method - * @return {String} returns the wrapped string. - */ - Symbol.prototype.valueOf = function () { - return this.value; - }; - - /** - * @ignore - */ - Symbol.prototype.toString = function () { - return this.value; - }; - - /** - * @ignore - */ - Symbol.prototype[inspect] = function () { - return this.value; - }; - - /** - * @ignore - */ - Symbol.prototype.toJSON = function () { - return this.value; - }; - - module.exports = Symbol; - module.exports.Symbol = Symbol; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(339).Buffer)) - -/***/ }), -/* 350 */ -/***/ (function(module, exports) { - - /** - * A class representation of a BSON Int32 type. - * - * @class - * @param {number} value the number we want to represent as an int32. - * @return {Int32} - */ - var Int32 = function (value) { - if (!(this instanceof Int32)) return new Int32(value); - - this._bsontype = 'Int32'; - this.value = value; - }; - - /** - * Access the number value. - * - * @method - * @return {number} returns the wrapped int32 number. - */ - Int32.prototype.valueOf = function () { - return this.value; - }; - - /** - * @ignore - */ - Int32.prototype.toJSON = function () { - return this.value; - }; - - module.exports = Int32; - module.exports.Int32 = Int32; - -/***/ }), -/* 351 */ -/***/ (function(module, exports) { - - /** - * A class representation of the BSON Code type. - * - * @class - * @param {(string|function)} code a string or function. - * @param {Object} [scope] an optional scope for the function. - * @return {Code} - */ - var Code = function Code(code, scope) { - if (!(this instanceof Code)) return new Code(code, scope); - this._bsontype = 'Code'; - this.code = code; - this.scope = scope; - }; - - /** - * @ignore - */ - Code.prototype.toJSON = function () { - return { scope: this.scope, code: this.code }; - }; - - module.exports = Code; - module.exports.Code = Code; - -/***/ }), -/* 352 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - - var Long = __webpack_require__(335); - - var PARSE_STRING_REGEXP = /^(\+|-)?(\d+|(\d*\.\d*))?(E|e)?([-+])?(\d+)?$/; - var PARSE_INF_REGEXP = /^(\+|-)?(Infinity|inf)$/i; - var PARSE_NAN_REGEXP = /^(\+|-)?NaN$/i; - - var EXPONENT_MAX = 6111; - var EXPONENT_MIN = -6176; - var EXPONENT_BIAS = 6176; - var MAX_DIGITS = 34; - - // Nan value bits as 32 bit values (due to lack of longs) - var NAN_BUFFER = [0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].reverse(); - // Infinity value bits 32 bit values (due to lack of longs) - var INF_NEGATIVE_BUFFER = [0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].reverse(); - var INF_POSITIVE_BUFFER = [0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00].reverse(); - - var EXPONENT_REGEX = /^([-+])?(\d+)?$/; - - var utils = __webpack_require__(344); - - // Detect if the value is a digit - var isDigit = function (value) { - return !isNaN(parseInt(value, 10)); - }; - - // Divide two uint128 values - var divideu128 = function (value) { - var DIVISOR = Long.fromNumber(1000 * 1000 * 1000); - var _rem = Long.fromNumber(0); - var i = 0; - - if (!value.parts[0] && !value.parts[1] && !value.parts[2] && !value.parts[3]) { - return { quotient: value, rem: _rem }; - } - - for (i = 0; i <= 3; i++) { - // Adjust remainder to match value of next dividend - _rem = _rem.shiftLeft(32); - // Add the divided to _rem - _rem = _rem.add(new Long(value.parts[i], 0)); - value.parts[i] = _rem.div(DIVISOR).low_; - _rem = _rem.modulo(DIVISOR); - } - - return { quotient: value, rem: _rem }; - }; - - // Multiply two Long values and return the 128 bit value - var multiply64x2 = function (left, right) { - if (!left && !right) { - return { high: Long.fromNumber(0), low: Long.fromNumber(0) }; - } - - var leftHigh = left.shiftRightUnsigned(32); - var leftLow = new Long(left.getLowBits(), 0); - var rightHigh = right.shiftRightUnsigned(32); - var rightLow = new Long(right.getLowBits(), 0); - - var productHigh = leftHigh.multiply(rightHigh); - var productMid = leftHigh.multiply(rightLow); - var productMid2 = leftLow.multiply(rightHigh); - var productLow = leftLow.multiply(rightLow); - - productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); - productMid = new Long(productMid.getLowBits(), 0).add(productMid2).add(productLow.shiftRightUnsigned(32)); - - productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); - productLow = productMid.shiftLeft(32).add(new Long(productLow.getLowBits(), 0)); - - // Return the 128 bit result - return { high: productHigh, low: productLow }; - }; - - var lessThan = function (left, right) { - // Make values unsigned - var uhleft = left.high_ >>> 0; - var uhright = right.high_ >>> 0; - - // Compare high bits first - if (uhleft < uhright) { - return true; - } else if (uhleft === uhright) { - var ulleft = left.low_ >>> 0; - var ulright = right.low_ >>> 0; - if (ulleft < ulright) return true; - } - - return false; - }; - - // var longtoHex = function(value) { - // var buffer = utils.allocBuffer(8); - // var index = 0; - // // Encode the low 64 bits of the decimal - // // Encode low bits - // buffer[index++] = value.low_ & 0xff; - // buffer[index++] = (value.low_ >> 8) & 0xff; - // buffer[index++] = (value.low_ >> 16) & 0xff; - // buffer[index++] = (value.low_ >> 24) & 0xff; - // // Encode high bits - // buffer[index++] = value.high_ & 0xff; - // buffer[index++] = (value.high_ >> 8) & 0xff; - // buffer[index++] = (value.high_ >> 16) & 0xff; - // buffer[index++] = (value.high_ >> 24) & 0xff; - // return buffer.reverse().toString('hex'); - // }; - - // var int32toHex = function(value) { - // var buffer = utils.allocBuffer(4); - // var index = 0; - // // Encode the low 64 bits of the decimal - // // Encode low bits - // buffer[index++] = value & 0xff; - // buffer[index++] = (value >> 8) & 0xff; - // buffer[index++] = (value >> 16) & 0xff; - // buffer[index++] = (value >> 24) & 0xff; - // return buffer.reverse().toString('hex'); - // }; - - /** - * A class representation of the BSON Decimal128 type. - * - * @class - * @param {Buffer} bytes a buffer containing the raw Decimal128 bytes. - * @return {Double} - */ - var Decimal128 = function (bytes) { - this._bsontype = 'Decimal128'; - this.bytes = bytes; - }; - - /** - * Create a Decimal128 instance from a string representation - * - * @method - * @param {string} string a numeric string representation. - * @return {Decimal128} returns a Decimal128 instance. - */ - Decimal128.fromString = function (string) { - // Parse state tracking - var isNegative = false; - var sawRadix = false; - var foundNonZero = false; - - // Total number of significant digits (no leading or trailing zero) - var significantDigits = 0; - // Total number of significand digits read - var nDigitsRead = 0; - // Total number of digits (no leading zeros) - var nDigits = 0; - // The number of the digits after radix - var radixPosition = 0; - // The index of the first non-zero in *str* - var firstNonZero = 0; - - // Digits Array - var digits = [0]; - // The number of digits in digits - var nDigitsStored = 0; - // Insertion pointer for digits - var digitsInsert = 0; - // The index of the first non-zero digit - var firstDigit = 0; - // The index of the last digit - var lastDigit = 0; - - // Exponent - var exponent = 0; - // loop index over array - var i = 0; - // The high 17 digits of the significand - var significandHigh = [0, 0]; - // The low 17 digits of the significand - var significandLow = [0, 0]; - // The biased exponent - var biasedExponent = 0; - - // Read index - var index = 0; - - // Trim the string - string = string.trim(); - - // Naively prevent against REDOS attacks. - // TODO: implementing a custom parsing for this, or refactoring the regex would yield - // further gains. - if (string.length >= 7000) { - throw new Error('' + string + ' not a valid Decimal128 string'); - } - - // Results - var stringMatch = string.match(PARSE_STRING_REGEXP); - var infMatch = string.match(PARSE_INF_REGEXP); - var nanMatch = string.match(PARSE_NAN_REGEXP); - - // Validate the string - if (!stringMatch && !infMatch && !nanMatch || string.length === 0) { - throw new Error('' + string + ' not a valid Decimal128 string'); - } - - // Check if we have an illegal exponent format - if (stringMatch && stringMatch[4] && stringMatch[2] === undefined) { - throw new Error('' + string + ' not a valid Decimal128 string'); - } - - // Get the negative or positive sign - if (string[index] === '+' || string[index] === '-') { - isNegative = string[index++] === '-'; - } - - // Check if user passed Infinity or NaN - if (!isDigit(string[index]) && string[index] !== '.') { - if (string[index] === 'i' || string[index] === 'I') { - return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); - } else if (string[index] === 'N') { - return new Decimal128(utils.toBuffer(NAN_BUFFER)); - } - } - - // Read all the digits - while (isDigit(string[index]) || string[index] === '.') { - if (string[index] === '.') { - if (sawRadix) { - return new Decimal128(utils.toBuffer(NAN_BUFFER)); - } - - sawRadix = true; - index = index + 1; - continue; - } - - if (nDigitsStored < 34) { - if (string[index] !== '0' || foundNonZero) { - if (!foundNonZero) { - firstNonZero = nDigitsRead; - } - - foundNonZero = true; - - // Only store 34 digits - digits[digitsInsert++] = parseInt(string[index], 10); - nDigitsStored = nDigitsStored + 1; - } - } - - if (foundNonZero) { - nDigits = nDigits + 1; - } - - if (sawRadix) { - radixPosition = radixPosition + 1; - } - - nDigitsRead = nDigitsRead + 1; - index = index + 1; - } - - if (sawRadix && !nDigitsRead) { - throw new Error('' + string + ' not a valid Decimal128 string'); - } - - // Read exponent if exists - if (string[index] === 'e' || string[index] === 'E') { - // Read exponent digits - var match = string.substr(++index).match(EXPONENT_REGEX); - - // No digits read - if (!match || !match[2]) { - return new Decimal128(utils.toBuffer(NAN_BUFFER)); - } - - // Get exponent - exponent = parseInt(match[0], 10); - - // Adjust the index - index = index + match[0].length; - } - - // Return not a number - if (string[index]) { - return new Decimal128(utils.toBuffer(NAN_BUFFER)); - } - - // Done reading input - // Find first non-zero digit in digits - firstDigit = 0; - - if (!nDigitsStored) { - firstDigit = 0; - lastDigit = 0; - digits[0] = 0; - nDigits = 1; - nDigitsStored = 1; - significantDigits = 0; - } else { - lastDigit = nDigitsStored - 1; - significantDigits = nDigits; - - if (exponent !== 0 && significantDigits !== 1) { - while (string[firstNonZero + significantDigits - 1] === '0') { - significantDigits = significantDigits - 1; - } - } - } - - // Normalization of exponent - // Correct exponent based on radix position, and shift significand as needed - // to represent user input - - // Overflow prevention - if (exponent <= radixPosition && radixPosition - exponent > 1 << 14) { - exponent = EXPONENT_MIN; - } else { - exponent = exponent - radixPosition; - } - - // Attempt to normalize the exponent - while (exponent > EXPONENT_MAX) { - // Shift exponent to significand and decrease - lastDigit = lastDigit + 1; - - if (lastDigit - firstDigit > MAX_DIGITS) { - // Check if we have a zero then just hard clamp, otherwise fail - var digitsString = digits.join(''); - if (digitsString.match(/^0+$/)) { - exponent = EXPONENT_MAX; - break; - } else { - return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); - } - } - - exponent = exponent - 1; - } - - while (exponent < EXPONENT_MIN || nDigitsStored < nDigits) { - // Shift last digit - if (lastDigit === 0) { - exponent = EXPONENT_MIN; - significantDigits = 0; - break; - } - - if (nDigitsStored < nDigits) { - // adjust to match digits not stored - nDigits = nDigits - 1; - } else { - // adjust to round - lastDigit = lastDigit - 1; - } - - if (exponent < EXPONENT_MAX) { - exponent = exponent + 1; - } else { - // Check if we have a zero then just hard clamp, otherwise fail - digitsString = digits.join(''); - if (digitsString.match(/^0+$/)) { - exponent = EXPONENT_MAX; - break; - } else { - return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); - } - } - } - - // Round - // We've normalized the exponent, but might still need to round. - if (lastDigit - firstDigit + 1 < significantDigits && string[significantDigits] !== '0') { - var endOfString = nDigitsRead; - - // If we have seen a radix point, 'string' is 1 longer than we have - // documented with ndigits_read, so inc the position of the first nonzero - // digit and the position that digits are read to. - if (sawRadix && exponent === EXPONENT_MIN) { - firstNonZero = firstNonZero + 1; - endOfString = endOfString + 1; - } - - var roundDigit = parseInt(string[firstNonZero + lastDigit + 1], 10); - var roundBit = 0; - - if (roundDigit >= 5) { - roundBit = 1; - - if (roundDigit === 5) { - roundBit = digits[lastDigit] % 2 === 1; - - for (i = firstNonZero + lastDigit + 2; i < endOfString; i++) { - if (parseInt(string[i], 10)) { - roundBit = 1; - break; - } - } - } - } - - if (roundBit) { - var dIdx = lastDigit; - - for (; dIdx >= 0; dIdx--) { - if (++digits[dIdx] > 9) { - digits[dIdx] = 0; - - // overflowed most significant digit - if (dIdx === 0) { - if (exponent < EXPONENT_MAX) { - exponent = exponent + 1; - digits[dIdx] = 1; - } else { - return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); - } - } - } else { - break; - } - } - } - } - - // Encode significand - // The high 17 digits of the significand - significandHigh = Long.fromNumber(0); - // The low 17 digits of the significand - significandLow = Long.fromNumber(0); - - // read a zero - if (significantDigits === 0) { - significandHigh = Long.fromNumber(0); - significandLow = Long.fromNumber(0); - } else if (lastDigit - firstDigit < 17) { - dIdx = firstDigit; - significandLow = Long.fromNumber(digits[dIdx++]); - significandHigh = new Long(0, 0); - - for (; dIdx <= lastDigit; dIdx++) { - significandLow = significandLow.multiply(Long.fromNumber(10)); - significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); - } - } else { - dIdx = firstDigit; - significandHigh = Long.fromNumber(digits[dIdx++]); - - for (; dIdx <= lastDigit - 17; dIdx++) { - significandHigh = significandHigh.multiply(Long.fromNumber(10)); - significandHigh = significandHigh.add(Long.fromNumber(digits[dIdx])); - } - - significandLow = Long.fromNumber(digits[dIdx++]); - - for (; dIdx <= lastDigit; dIdx++) { - significandLow = significandLow.multiply(Long.fromNumber(10)); - significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); - } - } - - var significand = multiply64x2(significandHigh, Long.fromString('100000000000000000')); - - significand.low = significand.low.add(significandLow); - - if (lessThan(significand.low, significandLow)) { - significand.high = significand.high.add(Long.fromNumber(1)); - } - - // Biased exponent - biasedExponent = exponent + EXPONENT_BIAS; - var dec = { low: Long.fromNumber(0), high: Long.fromNumber(0) }; - - // Encode combination, exponent, and significand. - if (significand.high.shiftRightUnsigned(49).and(Long.fromNumber(1)).equals(Long.fromNumber)) { - // Encode '11' into bits 1 to 3 - dec.high = dec.high.or(Long.fromNumber(0x3).shiftLeft(61)); - dec.high = dec.high.or(Long.fromNumber(biasedExponent).and(Long.fromNumber(0x3fff).shiftLeft(47))); - dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x7fffffffffff))); - } else { - dec.high = dec.high.or(Long.fromNumber(biasedExponent & 0x3fff).shiftLeft(49)); - dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x1ffffffffffff))); - } - - dec.low = significand.low; - - // Encode sign - if (isNegative) { - dec.high = dec.high.or(Long.fromString('9223372036854775808')); - } - - // Encode into a buffer - var buffer = utils.allocBuffer(16); - index = 0; - - // Encode the low 64 bits of the decimal - // Encode low bits - buffer[index++] = dec.low.low_ & 0xff; - buffer[index++] = dec.low.low_ >> 8 & 0xff; - buffer[index++] = dec.low.low_ >> 16 & 0xff; - buffer[index++] = dec.low.low_ >> 24 & 0xff; - // Encode high bits - buffer[index++] = dec.low.high_ & 0xff; - buffer[index++] = dec.low.high_ >> 8 & 0xff; - buffer[index++] = dec.low.high_ >> 16 & 0xff; - buffer[index++] = dec.low.high_ >> 24 & 0xff; - - // Encode the high 64 bits of the decimal - // Encode low bits - buffer[index++] = dec.high.low_ & 0xff; - buffer[index++] = dec.high.low_ >> 8 & 0xff; - buffer[index++] = dec.high.low_ >> 16 & 0xff; - buffer[index++] = dec.high.low_ >> 24 & 0xff; - // Encode high bits - buffer[index++] = dec.high.high_ & 0xff; - buffer[index++] = dec.high.high_ >> 8 & 0xff; - buffer[index++] = dec.high.high_ >> 16 & 0xff; - buffer[index++] = dec.high.high_ >> 24 & 0xff; - - // Return the new Decimal128 - return new Decimal128(buffer); - }; - - // Extract least significant 5 bits - var COMBINATION_MASK = 0x1f; - // Extract least significant 14 bits - var EXPONENT_MASK = 0x3fff; - // Value of combination field for Inf - var COMBINATION_INFINITY = 30; - // Value of combination field for NaN - var COMBINATION_NAN = 31; - // Value of combination field for NaN - // var COMBINATION_SNAN = 32; - // decimal128 exponent bias - EXPONENT_BIAS = 6176; - - /** - * Create a string representation of the raw Decimal128 value - * - * @method - * @return {string} returns a Decimal128 string representation. - */ - Decimal128.prototype.toString = function () { - // Note: bits in this routine are referred to starting at 0, - // from the sign bit, towards the coefficient. - - // bits 0 - 31 - var high; - // bits 32 - 63 - var midh; - // bits 64 - 95 - var midl; - // bits 96 - 127 - var low; - // bits 1 - 5 - var combination; - // decoded biased exponent (14 bits) - var biased_exponent; - // the number of significand digits - var significand_digits = 0; - // the base-10 digits in the significand - var significand = new Array(36); - for (var i = 0; i < significand.length; i++) significand[i] = 0; - // read pointer into significand - var index = 0; - - // unbiased exponent - var exponent; - // the exponent if scientific notation is used - var scientific_exponent; - - // true if the number is zero - var is_zero = false; - - // the most signifcant significand bits (50-46) - var significand_msb; - // temporary storage for significand decoding - var significand128 = { parts: new Array(4) }; - // indexing variables - i; - var j, k; - - // Output string - var string = []; - - // Unpack index - index = 0; - - // Buffer reference - var buffer = this.bytes; - - // Unpack the low 64bits into a long - low = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - midl = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - - // Unpack the high 64bits into a long - midh = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - high = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - - // Unpack index - index = 0; - - // Create the state of the decimal - var dec = { - low: new Long(low, midl), - high: new Long(midh, high) - }; - - if (dec.high.lessThan(Long.ZERO)) { - string.push('-'); - } - - // Decode combination field and exponent - combination = high >> 26 & COMBINATION_MASK; - - if (combination >> 3 === 3) { - // Check for 'special' values - if (combination === COMBINATION_INFINITY) { - return string.join('') + 'Infinity'; - } else if (combination === COMBINATION_NAN) { - return 'NaN'; - } else { - biased_exponent = high >> 15 & EXPONENT_MASK; - significand_msb = 0x08 + (high >> 14 & 0x01); - } - } else { - significand_msb = high >> 14 & 0x07; - biased_exponent = high >> 17 & EXPONENT_MASK; - } - - exponent = biased_exponent - EXPONENT_BIAS; - - // Create string of significand digits - - // Convert the 114-bit binary number represented by - // (significand_high, significand_low) to at most 34 decimal - // digits through modulo and division. - significand128.parts[0] = (high & 0x3fff) + ((significand_msb & 0xf) << 14); - significand128.parts[1] = midh; - significand128.parts[2] = midl; - significand128.parts[3] = low; - - if (significand128.parts[0] === 0 && significand128.parts[1] === 0 && significand128.parts[2] === 0 && significand128.parts[3] === 0) { - is_zero = true; - } else { - for (k = 3; k >= 0; k--) { - var least_digits = 0; - // Peform the divide - var result = divideu128(significand128); - significand128 = result.quotient; - least_digits = result.rem.low_; - - // We now have the 9 least significant digits (in base 2). - // Convert and output to string. - if (!least_digits) continue; - - for (j = 8; j >= 0; j--) { - // significand[k * 9 + j] = Math.round(least_digits % 10); - significand[k * 9 + j] = least_digits % 10; - // least_digits = Math.round(least_digits / 10); - least_digits = Math.floor(least_digits / 10); - } - } - } - - // Output format options: - // Scientific - [-]d.dddE(+/-)dd or [-]dE(+/-)dd - // Regular - ddd.ddd - - if (is_zero) { - significand_digits = 1; - significand[index] = 0; - } else { - significand_digits = 36; - i = 0; - - while (!significand[index]) { - i++; - significand_digits = significand_digits - 1; - index = index + 1; - } - } - - scientific_exponent = significand_digits - 1 + exponent; - - // The scientific exponent checks are dictated by the string conversion - // specification and are somewhat arbitrary cutoffs. - // - // We must check exponent > 0, because if this is the case, the number - // has trailing zeros. However, we *cannot* output these trailing zeros, - // because doing so would change the precision of the value, and would - // change stored data if the string converted number is round tripped. - - if (scientific_exponent >= 34 || scientific_exponent <= -7 || exponent > 0) { - // Scientific format - string.push(significand[index++]); - significand_digits = significand_digits - 1; - - if (significand_digits) { - string.push('.'); - } - - for (i = 0; i < significand_digits; i++) { - string.push(significand[index++]); - } - - // Exponent - string.push('E'); - if (scientific_exponent > 0) { - string.push('+' + scientific_exponent); - } else { - string.push(scientific_exponent); - } - } else { - // Regular format with no decimal place - if (exponent >= 0) { - for (i = 0; i < significand_digits; i++) { - string.push(significand[index++]); - } - } else { - var radix_position = significand_digits + exponent; - - // non-zero digits before radix - if (radix_position > 0) { - for (i = 0; i < radix_position; i++) { - string.push(significand[index++]); - } - } else { - string.push('0'); - } - - string.push('.'); - // add leading zeros after radix - while (radix_position++ < 0) { - string.push('0'); - } - - for (i = 0; i < significand_digits - Math.max(radix_position - 1, 0); i++) { - string.push(significand[index++]); - } - } - } - - return string.join(''); - }; - - Decimal128.prototype.toJSON = function () { - return { $numberDecimal: this.toString() }; - }; - - module.exports = Decimal128; - module.exports.Decimal128 = Decimal128; - -/***/ }), -/* 353 */ -/***/ (function(module, exports) { - - /** - * A class representation of the BSON MinKey type. - * - * @class - * @return {MinKey} A MinKey instance - */ - function MinKey() { - if (!(this instanceof MinKey)) return new MinKey(); - - this._bsontype = 'MinKey'; - } - - module.exports = MinKey; - module.exports.MinKey = MinKey; - -/***/ }), -/* 354 */ -/***/ (function(module, exports) { - - /** - * A class representation of the BSON MaxKey type. - * - * @class - * @return {MaxKey} A MaxKey instance - */ - function MaxKey() { - if (!(this instanceof MaxKey)) return new MaxKey(); - - this._bsontype = 'MaxKey'; - } - - module.exports = MaxKey; - module.exports.MaxKey = MaxKey; - -/***/ }), -/* 355 */ -/***/ (function(module, exports) { - - /** - * A class representation of the BSON DBRef type. - * - * @class - * @param {string} namespace the collection name. - * @param {ObjectID} oid the reference ObjectID. - * @param {string} [db] optional db name, if omitted the reference is local to the current db. - * @return {DBRef} - */ - function DBRef(namespace, oid, db) { - if (!(this instanceof DBRef)) return new DBRef(namespace, oid, db); - - this._bsontype = 'DBRef'; - this.namespace = namespace; - this.oid = oid; - this.db = db; - } - - /** - * @ignore - * @api private - */ - DBRef.prototype.toJSON = function () { - return { - $ref: this.namespace, - $id: this.oid, - $db: this.db == null ? '' : this.db - }; - }; - - module.exports = DBRef; - module.exports.DBRef = DBRef; - -/***/ }), -/* 356 */ -/***/ (function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(global) {/** - * Module dependencies. - * @ignore - */ - - // Test if we're in Node via presence of "global" not absence of "window" - // to support hybrid environments like Electron - if (typeof global !== 'undefined') { - var Buffer = __webpack_require__(339).Buffer; // TODO just use global Buffer - } - - var utils = __webpack_require__(344); - - /** - * A class representation of the BSON Binary type. - * - * Sub types - * - **BSON.BSON_BINARY_SUBTYPE_DEFAULT**, default BSON type. - * - **BSON.BSON_BINARY_SUBTYPE_FUNCTION**, BSON function type. - * - **BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY**, BSON byte array type. - * - **BSON.BSON_BINARY_SUBTYPE_UUID**, BSON uuid type. - * - **BSON.BSON_BINARY_SUBTYPE_MD5**, BSON md5 type. - * - **BSON.BSON_BINARY_SUBTYPE_USER_DEFINED**, BSON user defined type. - * - * @class - * @param {Buffer} buffer a buffer object containing the binary data. - * @param {Number} [subType] the option binary type. - * @return {Binary} - */ - function Binary(buffer, subType) { - if (!(this instanceof Binary)) return new Binary(buffer, subType); - - if (buffer != null && !(typeof buffer === 'string') && !Buffer.isBuffer(buffer) && !(buffer instanceof Uint8Array) && !Array.isArray(buffer)) { - throw new Error('only String, Buffer, Uint8Array or Array accepted'); - } - - this._bsontype = 'Binary'; - - if (buffer instanceof Number) { - this.sub_type = buffer; - this.position = 0; - } else { - this.sub_type = subType == null ? BSON_BINARY_SUBTYPE_DEFAULT : subType; - this.position = 0; - } - - if (buffer != null && !(buffer instanceof Number)) { - // Only accept Buffer, Uint8Array or Arrays - if (typeof buffer === 'string') { - // Different ways of writing the length of the string for the different types - if (typeof Buffer !== 'undefined') { - this.buffer = utils.toBuffer(buffer); - } else if (typeof Uint8Array !== 'undefined' || Object.prototype.toString.call(buffer) === '[object Array]') { - this.buffer = writeStringToArray(buffer); - } else { - throw new Error('only String, Buffer, Uint8Array or Array accepted'); - } - } else { - this.buffer = buffer; - } - this.position = buffer.length; - } else { - if (typeof Buffer !== 'undefined') { - this.buffer = utils.allocBuffer(Binary.BUFFER_SIZE); - } else if (typeof Uint8Array !== 'undefined') { - this.buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE)); - } else { - this.buffer = new Array(Binary.BUFFER_SIZE); - } - // Set position to start of buffer - this.position = 0; - } - } - - /** - * Updates this binary with byte_value. - * - * @method - * @param {string} byte_value a single byte we wish to write. - */ - Binary.prototype.put = function put(byte_value) { - // If it's a string and a has more than one character throw an error - if (byte_value['length'] != null && typeof byte_value !== 'number' && byte_value.length !== 1) throw new Error('only accepts single character String, Uint8Array or Array'); - if (typeof byte_value !== 'number' && byte_value < 0 || byte_value > 255) throw new Error('only accepts number in a valid unsigned byte range 0-255'); - - // Decode the byte value once - var decoded_byte = null; - if (typeof byte_value === 'string') { - decoded_byte = byte_value.charCodeAt(0); - } else if (byte_value['length'] != null) { - decoded_byte = byte_value[0]; - } else { - decoded_byte = byte_value; - } - - if (this.buffer.length > this.position) { - this.buffer[this.position++] = decoded_byte; - } else { - if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { - // Create additional overflow buffer - var buffer = utils.allocBuffer(Binary.BUFFER_SIZE + this.buffer.length); - // Combine the two buffers together - this.buffer.copy(buffer, 0, 0, this.buffer.length); - this.buffer = buffer; - this.buffer[this.position++] = decoded_byte; - } else { - buffer = null; - // Create a new buffer (typed or normal array) - if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { - buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE + this.buffer.length)); - } else { - buffer = new Array(Binary.BUFFER_SIZE + this.buffer.length); - } - - // We need to copy all the content to the new array - for (var i = 0; i < this.buffer.length; i++) { - buffer[i] = this.buffer[i]; - } - - // Reassign the buffer - this.buffer = buffer; - // Write the byte - this.buffer[this.position++] = decoded_byte; - } - } - }; - - /** - * Writes a buffer or string to the binary. - * - * @method - * @param {(Buffer|string)} string a string or buffer to be written to the Binary BSON object. - * @param {number} offset specify the binary of where to write the content. - * @return {null} - */ - Binary.prototype.write = function write(string, offset) { - offset = typeof offset === 'number' ? offset : this.position; - - // If the buffer is to small let's extend the buffer - if (this.buffer.length < offset + string.length) { - var buffer = null; - // If we are in node.js - if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { - buffer = utils.allocBuffer(this.buffer.length + string.length); - this.buffer.copy(buffer, 0, 0, this.buffer.length); - } else if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { - // Create a new buffer - buffer = new Uint8Array(new ArrayBuffer(this.buffer.length + string.length)); - // Copy the content - for (var i = 0; i < this.position; i++) { - buffer[i] = this.buffer[i]; - } - } - - // Assign the new buffer - this.buffer = buffer; - } - - if (typeof Buffer !== 'undefined' && Buffer.isBuffer(string) && Buffer.isBuffer(this.buffer)) { - string.copy(this.buffer, offset, 0, string.length); - this.position = offset + string.length > this.position ? offset + string.length : this.position; - // offset = string.length - } else if (typeof Buffer !== 'undefined' && typeof string === 'string' && Buffer.isBuffer(this.buffer)) { - this.buffer.write(string, offset, 'binary'); - this.position = offset + string.length > this.position ? offset + string.length : this.position; - // offset = string.length; - } else if (Object.prototype.toString.call(string) === '[object Uint8Array]' || Object.prototype.toString.call(string) === '[object Array]' && typeof string !== 'string') { - for (i = 0; i < string.length; i++) { - this.buffer[offset++] = string[i]; - } - - this.position = offset > this.position ? offset : this.position; - } else if (typeof string === 'string') { - for (i = 0; i < string.length; i++) { - this.buffer[offset++] = string.charCodeAt(i); - } - - this.position = offset > this.position ? offset : this.position; - } - }; - - /** - * Reads **length** bytes starting at **position**. - * - * @method - * @param {number} position read from the given position in the Binary. - * @param {number} length the number of bytes to read. - * @return {Buffer} - */ - Binary.prototype.read = function read(position, length) { - length = length && length > 0 ? length : this.position; - - // Let's return the data based on the type we have - if (this.buffer['slice']) { - return this.buffer.slice(position, position + length); - } else { - // Create a buffer to keep the result - var buffer = typeof Uint8Array !== 'undefined' ? new Uint8Array(new ArrayBuffer(length)) : new Array(length); - for (var i = 0; i < length; i++) { - buffer[i] = this.buffer[position++]; - } - } - // Return the buffer - return buffer; - }; - - /** - * Returns the value of this binary as a string. - * - * @method - * @return {string} - */ - Binary.prototype.value = function value(asRaw) { - asRaw = asRaw == null ? false : asRaw; - - // Optimize to serialize for the situation where the data == size of buffer - if (asRaw && typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer) && this.buffer.length === this.position) return this.buffer; - - // If it's a node.js buffer object - if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { - return asRaw ? this.buffer.slice(0, this.position) : this.buffer.toString('binary', 0, this.position); - } else { - if (asRaw) { - // we support the slice command use it - if (this.buffer['slice'] != null) { - return this.buffer.slice(0, this.position); - } else { - // Create a new buffer to copy content to - var newBuffer = Object.prototype.toString.call(this.buffer) === '[object Uint8Array]' ? new Uint8Array(new ArrayBuffer(this.position)) : new Array(this.position); - // Copy content - for (var i = 0; i < this.position; i++) { - newBuffer[i] = this.buffer[i]; - } - // Return the buffer - return newBuffer; - } - } else { - return convertArraytoUtf8BinaryString(this.buffer, 0, this.position); - } - } - }; - - /** - * Length. - * - * @method - * @return {number} the length of the binary. - */ - Binary.prototype.length = function length() { - return this.position; - }; - - /** - * @ignore - */ - Binary.prototype.toJSON = function () { - return this.buffer != null ? this.buffer.toString('base64') : ''; - }; - - /** - * @ignore - */ - Binary.prototype.toString = function (format) { - return this.buffer != null ? this.buffer.slice(0, this.position).toString(format) : ''; - }; - - /** - * Binary default subtype - * @ignore - */ - var BSON_BINARY_SUBTYPE_DEFAULT = 0; - - /** - * @ignore - */ - var writeStringToArray = function (data) { - // Create a buffer - var buffer = typeof Uint8Array !== 'undefined' ? new Uint8Array(new ArrayBuffer(data.length)) : new Array(data.length); - // Write the content to the buffer - for (var i = 0; i < data.length; i++) { - buffer[i] = data.charCodeAt(i); - } - // Write the string to the buffer - return buffer; - }; - - /** - * Convert Array ot Uint8Array to Binary String - * - * @ignore - */ - var convertArraytoUtf8BinaryString = function (byteArray, startIndex, endIndex) { - var result = ''; - for (var i = startIndex; i < endIndex; i++) { - result = result + String.fromCharCode(byteArray[i]); - } - return result; - }; - - Binary.BUFFER_SIZE = 256; - - /** - * Default BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ - Binary.SUBTYPE_DEFAULT = 0; - /** - * Function BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ - Binary.SUBTYPE_FUNCTION = 1; - /** - * Byte Array BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ - Binary.SUBTYPE_BYTE_ARRAY = 2; - /** - * OLD UUID BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ - Binary.SUBTYPE_UUID_OLD = 3; - /** - * UUID BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ - Binary.SUBTYPE_UUID = 4; - /** - * MD5 BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ - Binary.SUBTYPE_MD5 = 5; - /** - * User BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ - Binary.SUBTYPE_USER_DEFINED = 128; - - /** - * Expose. - */ - module.exports = Binary; - module.exports.Binary = Binary; - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) - -/***/ }), -/* 357 */ -/***/ (function(module, exports, __webpack_require__) { - - 'use strict'; - - var Long = __webpack_require__(335).Long, - Double = __webpack_require__(336).Double, - Timestamp = __webpack_require__(337).Timestamp, - ObjectID = __webpack_require__(338).ObjectID, - Symbol = __webpack_require__(349).Symbol, - Code = __webpack_require__(351).Code, - MinKey = __webpack_require__(353).MinKey, - MaxKey = __webpack_require__(354).MaxKey, - Decimal128 = __webpack_require__(352), - Int32 = __webpack_require__(350), - DBRef = __webpack_require__(355).DBRef, - BSONRegExp = __webpack_require__(348).BSONRegExp, - Binary = __webpack_require__(356).Binary; - - var utils = __webpack_require__(344); - - var deserialize = function (buffer, options, isArray) { - options = options == null ? {} : options; - var index = options && options.index ? options.index : 0; - // Read the document size - var size = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; - - // Ensure buffer is valid size - if (size < 5 || buffer.length < size || size + index > buffer.length) { - throw new Error('corrupt bson message'); - } - - // Illegal end value - if (buffer[index + size - 1] !== 0) { - throw new Error("One object, sized correctly, with a spot for an EOO, but the EOO isn't 0x00"); - } - - // Start deserializtion - return deserializeObject(buffer, index, options, isArray); - }; - - var deserializeObject = function (buffer, index, options, isArray) { - var evalFunctions = options['evalFunctions'] == null ? false : options['evalFunctions']; - var cacheFunctions = options['cacheFunctions'] == null ? false : options['cacheFunctions']; - var cacheFunctionsCrc32 = options['cacheFunctionsCrc32'] == null ? false : options['cacheFunctionsCrc32']; - - if (!cacheFunctionsCrc32) var crc32 = null; - - var fieldsAsRaw = options['fieldsAsRaw'] == null ? null : options['fieldsAsRaw']; - - // Return raw bson buffer instead of parsing it - var raw = options['raw'] == null ? false : options['raw']; - - // Return BSONRegExp objects instead of native regular expressions - var bsonRegExp = typeof options['bsonRegExp'] === 'boolean' ? options['bsonRegExp'] : false; - - // Controls the promotion of values vs wrapper classes - var promoteBuffers = options['promoteBuffers'] == null ? false : options['promoteBuffers']; - var promoteLongs = options['promoteLongs'] == null ? true : options['promoteLongs']; - var promoteValues = options['promoteValues'] == null ? true : options['promoteValues']; - - // Set the start index - var startIndex = index; - - // Validate that we have at least 4 bytes of buffer - if (buffer.length < 5) throw new Error('corrupt bson message < 5 bytes long'); - - // Read the document size - var size = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - - // Ensure buffer is valid size - if (size < 5 || size > buffer.length) throw new Error('corrupt bson message'); - - // Create holding object - var object = isArray ? [] : {}; - // Used for arrays to skip having to perform utf8 decoding - var arrayIndex = 0; - - var done = false; - - // While we have more left data left keep parsing - // while (buffer[index + 1] !== 0) { - while (!done) { - // Read the type - var elementType = buffer[index++]; - // If we get a zero it's the last byte, exit - if (elementType === 0) break; - - // Get the start search index - var i = index; - // Locate the end of the c string - while (buffer[i] !== 0x00 && i < buffer.length) { - i++; - } - - // If are at the end of the buffer there is a problem with the document - if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); - var name = isArray ? arrayIndex++ : buffer.toString('utf8', index, i); - - index = i + 1; - - if (elementType === BSON.BSON_DATA_STRING) { - var stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); - object[name] = buffer.toString('utf8', index, index + stringSize - 1); - index = index + stringSize; - } else if (elementType === BSON.BSON_DATA_OID) { - var oid = utils.allocBuffer(12); - buffer.copy(oid, 0, index, index + 12); - object[name] = new ObjectID(oid); - index = index + 12; - } else if (elementType === BSON.BSON_DATA_INT && promoteValues === false) { - object[name] = new Int32(buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24); - } else if (elementType === BSON.BSON_DATA_INT) { - object[name] = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - } else if (elementType === BSON.BSON_DATA_NUMBER && promoteValues === false) { - object[name] = new Double(buffer.readDoubleLE(index)); - index = index + 8; - } else if (elementType === BSON.BSON_DATA_NUMBER) { - object[name] = buffer.readDoubleLE(index); - index = index + 8; - } else if (elementType === BSON.BSON_DATA_DATE) { - var lowBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - var highBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - object[name] = new Date(new Long(lowBits, highBits).toNumber()); - } else if (elementType === BSON.BSON_DATA_BOOLEAN) { - if (buffer[index] !== 0 && buffer[index] !== 1) throw new Error('illegal boolean type value'); - object[name] = buffer[index++] === 1; - } else if (elementType === BSON.BSON_DATA_OBJECT) { - var _index = index; - var objectSize = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; - if (objectSize <= 0 || objectSize > buffer.length - index) throw new Error('bad embedded document length in bson'); - - // We have a raw value - if (raw) { - object[name] = buffer.slice(index, index + objectSize); - } else { - object[name] = deserializeObject(buffer, _index, options, false); - } - - index = index + objectSize; - } else if (elementType === BSON.BSON_DATA_ARRAY) { - _index = index; - objectSize = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; - var arrayOptions = options; - - // Stop index - var stopIndex = index + objectSize; - - // All elements of array to be returned as raw bson - if (fieldsAsRaw && fieldsAsRaw[name]) { - arrayOptions = {}; - for (var n in options) arrayOptions[n] = options[n]; - arrayOptions['raw'] = true; - } - - object[name] = deserializeObject(buffer, _index, arrayOptions, true); - index = index + objectSize; - - if (buffer[index - 1] !== 0) throw new Error('invalid array terminator byte'); - if (index !== stopIndex) throw new Error('corrupted array bson'); - } else if (elementType === BSON.BSON_DATA_UNDEFINED) { - object[name] = undefined; - } else if (elementType === BSON.BSON_DATA_NULL) { - object[name] = null; - } else if (elementType === BSON.BSON_DATA_LONG) { - // Unpack the low and high bits - lowBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - highBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - var long = new Long(lowBits, highBits); - // Promote the long if possible - if (promoteLongs && promoteValues === true) { - object[name] = long.lessThanOrEqual(JS_INT_MAX_LONG) && long.greaterThanOrEqual(JS_INT_MIN_LONG) ? long.toNumber() : long; - } else { - object[name] = long; - } - } else if (elementType === BSON.BSON_DATA_DECIMAL128) { - // Buffer to contain the decimal bytes - var bytes = utils.allocBuffer(16); - // Copy the next 16 bytes into the bytes buffer - buffer.copy(bytes, 0, index, index + 16); - // Update index - index = index + 16; - // Assign the new Decimal128 value - var decimal128 = new Decimal128(bytes); - // If we have an alternative mapper use that - object[name] = decimal128.toObject ? decimal128.toObject() : decimal128; - } else if (elementType === BSON.BSON_DATA_BINARY) { - var binarySize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - var totalBinarySize = binarySize; - var subType = buffer[index++]; - - // Did we have a negative binary size, throw - if (binarySize < 0) throw new Error('Negative binary type element size found'); - - // Is the length longer than the document - if (binarySize > buffer.length) throw new Error('Binary type size larger than document size'); - - // Decode as raw Buffer object if options specifies it - if (buffer['slice'] != null) { - // If we have subtype 2 skip the 4 bytes for the size - if (subType === Binary.SUBTYPE_BYTE_ARRAY) { - binarySize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - if (binarySize < 0) throw new Error('Negative binary type element size found for subtype 0x02'); - if (binarySize > totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to long binary size'); - if (binarySize < totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to short binary size'); - } - - if (promoteBuffers && promoteValues) { - object[name] = buffer.slice(index, index + binarySize); - } else { - object[name] = new Binary(buffer.slice(index, index + binarySize), subType); - } - } else { - var _buffer = typeof Uint8Array !== 'undefined' ? new Uint8Array(new ArrayBuffer(binarySize)) : new Array(binarySize); - // If we have subtype 2 skip the 4 bytes for the size - if (subType === Binary.SUBTYPE_BYTE_ARRAY) { - binarySize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - if (binarySize < 0) throw new Error('Negative binary type element size found for subtype 0x02'); - if (binarySize > totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to long binary size'); - if (binarySize < totalBinarySize - 4) throw new Error('Binary type with subtype 0x02 contains to short binary size'); - } - - // Copy the data - for (i = 0; i < binarySize; i++) { - _buffer[i] = buffer[index + i]; - } - - if (promoteBuffers && promoteValues) { - object[name] = _buffer; - } else { - object[name] = new Binary(_buffer, subType); - } - } - - // Update the index - index = index + binarySize; - } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === false) { - // Get the start search index - i = index; - // Locate the end of the c string - while (buffer[i] !== 0x00 && i < buffer.length) { - i++; - } - // If are at the end of the buffer there is a problem with the document - if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); - // Return the C string - var source = buffer.toString('utf8', index, i); - // Create the regexp - index = i + 1; - - // Get the start search index - i = index; - // Locate the end of the c string - while (buffer[i] !== 0x00 && i < buffer.length) { - i++; - } - // If are at the end of the buffer there is a problem with the document - if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); - // Return the C string - var regExpOptions = buffer.toString('utf8', index, i); - index = i + 1; - - // For each option add the corresponding one for javascript - var optionsArray = new Array(regExpOptions.length); - - // Parse options - for (i = 0; i < regExpOptions.length; i++) { - switch (regExpOptions[i]) { - case 'm': - optionsArray[i] = 'm'; - break; - case 's': - optionsArray[i] = 'g'; - break; - case 'i': - optionsArray[i] = 'i'; - break; - } - } - - object[name] = new RegExp(source, optionsArray.join('')); - } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === true) { - // Get the start search index - i = index; - // Locate the end of the c string - while (buffer[i] !== 0x00 && i < buffer.length) { - i++; - } - // If are at the end of the buffer there is a problem with the document - if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); - // Return the C string - source = buffer.toString('utf8', index, i); - index = i + 1; - - // Get the start search index - i = index; - // Locate the end of the c string - while (buffer[i] !== 0x00 && i < buffer.length) { - i++; - } - // If are at the end of the buffer there is a problem with the document - if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); - // Return the C string - regExpOptions = buffer.toString('utf8', index, i); - index = i + 1; - - // Set the object - object[name] = new BSONRegExp(source, regExpOptions); - } else if (elementType === BSON.BSON_DATA_SYMBOL) { - stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); - object[name] = new Symbol(buffer.toString('utf8', index, index + stringSize - 1)); - index = index + stringSize; - } else if (elementType === BSON.BSON_DATA_TIMESTAMP) { - lowBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - highBits = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - object[name] = new Timestamp(lowBits, highBits); - } else if (elementType === BSON.BSON_DATA_MIN_KEY) { - object[name] = new MinKey(); - } else if (elementType === BSON.BSON_DATA_MAX_KEY) { - object[name] = new MaxKey(); - } else if (elementType === BSON.BSON_DATA_CODE) { - stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); - var functionString = buffer.toString('utf8', index, index + stringSize - 1); - - // If we are evaluating the functions - if (evalFunctions) { - // If we have cache enabled let's look for the md5 of the function in the cache - if (cacheFunctions) { - var hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; - // Got to do this to avoid V8 deoptimizing the call due to finding eval - object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); - } else { - object[name] = isolateEval(functionString); - } - } else { - object[name] = new Code(functionString); - } - - // Update parse index position - index = index + stringSize; - } else if (elementType === BSON.BSON_DATA_CODE_W_SCOPE) { - var totalSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - - // Element cannot be shorter than totalSize + stringSize + documentSize + terminator - if (totalSize < 4 + 4 + 4 + 1) { - throw new Error('code_w_scope total size shorter minimum expected length'); - } - - // Get the code string size - stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - // Check if we have a valid string - if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); - - // Javascript function - functionString = buffer.toString('utf8', index, index + stringSize - 1); - // Update parse index position - index = index + stringSize; - // Parse the element - _index = index; - // Decode the size of the object document - objectSize = buffer[index] | buffer[index + 1] << 8 | buffer[index + 2] << 16 | buffer[index + 3] << 24; - // Decode the scope object - var scopeObject = deserializeObject(buffer, _index, options, false); - // Adjust the index - index = index + objectSize; - - // Check if field length is to short - if (totalSize < 4 + 4 + objectSize + stringSize) { - throw new Error('code_w_scope total size is to short, truncating scope'); - } - - // Check if totalSize field is to long - if (totalSize > 4 + 4 + objectSize + stringSize) { - throw new Error('code_w_scope total size is to long, clips outer document'); - } - - // If we are evaluating the functions - if (evalFunctions) { - // If we have cache enabled let's look for the md5 of the function in the cache - if (cacheFunctions) { - hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; - // Got to do this to avoid V8 deoptimizing the call due to finding eval - object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); - } else { - object[name] = isolateEval(functionString); - } - - object[name].scope = scopeObject; - } else { - object[name] = new Code(functionString, scopeObject); - } - } else if (elementType === BSON.BSON_DATA_DBPOINTER) { - // Get the code string size - stringSize = buffer[index++] | buffer[index++] << 8 | buffer[index++] << 16 | buffer[index++] << 24; - // Check if we have a valid string - if (stringSize <= 0 || stringSize > buffer.length - index || buffer[index + stringSize - 1] !== 0) throw new Error('bad string length in bson'); - // Namespace - var namespace = buffer.toString('utf8', index, index + stringSize - 1); - // Update parse index position - index = index + stringSize; - - // Read the oid - var oidBuffer = utils.allocBuffer(12); - buffer.copy(oidBuffer, 0, index, index + 12); - oid = new ObjectID(oidBuffer); - - // Update the index - index = index + 12; - - // Split the namespace - var parts = namespace.split('.'); - var db = parts.shift(); - var collection = parts.join('.'); - // Upgrade to DBRef type - object[name] = new DBRef(collection, oid, db); - } else { - throw new Error('Detected unknown BSON type ' + elementType.toString(16) + ' for fieldname "' + name + '", are you using the latest BSON parser'); - } - } - - // Check if the deserialization was against a valid array/object - if (size !== index - startIndex) { - if (isArray) throw new Error('corrupt array bson'); - throw new Error('corrupt object bson'); - } - - // Check if we have a db ref object - if (object['$id'] != null) object = new DBRef(object['$ref'], object['$id'], object['$db']); - return object; - }; - - /** - * Ensure eval is isolated. - * - * @ignore - * @api private - */ - var isolateEvalWithHash = function (functionCache, hash, functionString, object) { - // Contains the value we are going to set - var value = null; - - // Check for cache hit, eval if missing and return cached function - if (functionCache[hash] == null) { - eval('value = ' + functionString); - functionCache[hash] = value; - } - // Set the object - return functionCache[hash].bind(object); - }; - - /** - * Ensure eval is isolated. - * - * @ignore - * @api private - */ - var isolateEval = function (functionString) { - // Contains the value we are going to set - var value = null; - // Eval the function - eval('value = ' + functionString); - return value; - }; - - var BSON = {}; - - /** - * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 - * - * @ignore - * @api private - */ - var functionCache = BSON.functionCache = {}; - - /** - * Number BSON Type - * - * @classconstant BSON_DATA_NUMBER - **/ - BSON.BSON_DATA_NUMBER = 1; - /** - * String BSON Type - * - * @classconstant BSON_DATA_STRING - **/ - BSON.BSON_DATA_STRING = 2; - /** - * Object BSON Type - * - * @classconstant BSON_DATA_OBJECT - **/ - BSON.BSON_DATA_OBJECT = 3; - /** - * Array BSON Type - * - * @classconstant BSON_DATA_ARRAY - **/ - BSON.BSON_DATA_ARRAY = 4; - /** - * Binary BSON Type - * - * @classconstant BSON_DATA_BINARY - **/ - BSON.BSON_DATA_BINARY = 5; - /** - * Binary BSON Type - * - * @classconstant BSON_DATA_UNDEFINED - **/ - BSON.BSON_DATA_UNDEFINED = 6; - /** - * ObjectID BSON Type - * - * @classconstant BSON_DATA_OID - **/ - BSON.BSON_DATA_OID = 7; - /** - * Boolean BSON Type - * - * @classconstant BSON_DATA_BOOLEAN - **/ - BSON.BSON_DATA_BOOLEAN = 8; - /** - * Date BSON Type - * - * @classconstant BSON_DATA_DATE - **/ - BSON.BSON_DATA_DATE = 9; - /** - * null BSON Type - * - * @classconstant BSON_DATA_NULL - **/ - BSON.BSON_DATA_NULL = 10; - /** - * RegExp BSON Type - * - * @classconstant BSON_DATA_REGEXP - **/ - BSON.BSON_DATA_REGEXP = 11; - /** - * Code BSON Type - * - * @classconstant BSON_DATA_DBPOINTER - **/ - BSON.BSON_DATA_DBPOINTER = 12; - /** - * Code BSON Type - * - * @classconstant BSON_DATA_CODE - **/ - BSON.BSON_DATA_CODE = 13; - /** - * Symbol BSON Type - * - * @classconstant BSON_DATA_SYMBOL - **/ - BSON.BSON_DATA_SYMBOL = 14; - /** - * Code with Scope BSON Type - * - * @classconstant BSON_DATA_CODE_W_SCOPE - **/ - BSON.BSON_DATA_CODE_W_SCOPE = 15; - /** - * 32 bit Integer BSON Type - * - * @classconstant BSON_DATA_INT - **/ - BSON.BSON_DATA_INT = 16; - /** - * Timestamp BSON Type - * - * @classconstant BSON_DATA_TIMESTAMP - **/ - BSON.BSON_DATA_TIMESTAMP = 17; - /** - * Long BSON Type - * - * @classconstant BSON_DATA_LONG - **/ - BSON.BSON_DATA_LONG = 18; - /** - * Long BSON Type - * - * @classconstant BSON_DATA_DECIMAL128 - **/ - BSON.BSON_DATA_DECIMAL128 = 19; - /** - * MinKey BSON Type - * - * @classconstant BSON_DATA_MIN_KEY - **/ - BSON.BSON_DATA_MIN_KEY = 0xff; - /** - * MaxKey BSON Type - * - * @classconstant BSON_DATA_MAX_KEY - **/ - BSON.BSON_DATA_MAX_KEY = 0x7f; - - /** - * Binary Default Type - * - * @classconstant BSON_BINARY_SUBTYPE_DEFAULT - **/ - BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; - /** - * Binary Function Type - * - * @classconstant BSON_BINARY_SUBTYPE_FUNCTION - **/ - BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; - /** - * Binary Byte Array Type - * - * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY - **/ - BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; - /** - * Binary UUID Type - * - * @classconstant BSON_BINARY_SUBTYPE_UUID - **/ - BSON.BSON_BINARY_SUBTYPE_UUID = 3; - /** - * Binary MD5 Type - * - * @classconstant BSON_BINARY_SUBTYPE_MD5 - **/ - BSON.BSON_BINARY_SUBTYPE_MD5 = 4; - /** - * Binary User Defined Type - * - * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED - **/ - BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; - - // BSON MAX VALUES - BSON.BSON_INT32_MAX = 0x7fffffff; - BSON.BSON_INT32_MIN = -0x80000000; - - BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; - BSON.BSON_INT64_MIN = -Math.pow(2, 63); - - // JS MAX PRECISE VALUES - BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. - BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. - - // Internal long versions - var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. - var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. - - module.exports = deserialize; - -/***/ }), -/* 358 */ -/***/ (function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; - - var writeIEEE754 = __webpack_require__(359).writeIEEE754, - Long = __webpack_require__(335).Long, - Map = __webpack_require__(334), - Binary = __webpack_require__(356).Binary; - - var normalizedFunctionString = __webpack_require__(344).normalizedFunctionString; - - // try { - // var _Buffer = Uint8Array; - // } catch (e) { - // _Buffer = Buffer; - // } - - var regexp = /\x00/; // eslint-disable-line no-control-regex - var ignoreKeys = ['$db', '$ref', '$id', '$clusterTime']; - - // To ensure that 0.4 of node works correctly - var isDate = function isDate(d) { - return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; - }; - - var isRegExp = function isRegExp(d) { - return Object.prototype.toString.call(d) === '[object RegExp]'; - }; - - var serializeString = function (buffer, key, value, index, isArray) { - // Encode String type - buffer[index++] = BSON.BSON_DATA_STRING; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes + 1; - buffer[index - 1] = 0; - // Write the string - var size = buffer.write(value, index + 4, 'utf8'); - // Write the size of the string to buffer - buffer[index + 3] = size + 1 >> 24 & 0xff; - buffer[index + 2] = size + 1 >> 16 & 0xff; - buffer[index + 1] = size + 1 >> 8 & 0xff; - buffer[index] = size + 1 & 0xff; - // Update index - index = index + 4 + size; - // Write zero - buffer[index++] = 0; - return index; - }; - - var serializeNumber = function (buffer, key, value, index, isArray) { - // We have an integer value - if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { - // If the value fits in 32 bits encode as int, if it fits in a double - // encode it as a double, otherwise long - if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { - // Set int type 32 bits or less - buffer[index++] = BSON.BSON_DATA_INT; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write the int value - buffer[index++] = value & 0xff; - buffer[index++] = value >> 8 & 0xff; - buffer[index++] = value >> 16 & 0xff; - buffer[index++] = value >> 24 & 0xff; - } else if (value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { - // Encode as double - buffer[index++] = BSON.BSON_DATA_NUMBER; - // Number of written bytes - numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write float - writeIEEE754(buffer, value, index, 'little', 52, 8); - // Ajust index - index = index + 8; - } else { - // Set long type - buffer[index++] = BSON.BSON_DATA_LONG; - // Number of written bytes - numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - var longVal = Long.fromNumber(value); - var lowBits = longVal.getLowBits(); - var highBits = longVal.getHighBits(); - // Encode low bits - buffer[index++] = lowBits & 0xff; - buffer[index++] = lowBits >> 8 & 0xff; - buffer[index++] = lowBits >> 16 & 0xff; - buffer[index++] = lowBits >> 24 & 0xff; - // Encode high bits - buffer[index++] = highBits & 0xff; - buffer[index++] = highBits >> 8 & 0xff; - buffer[index++] = highBits >> 16 & 0xff; - buffer[index++] = highBits >> 24 & 0xff; - } - } else { - // Encode as double - buffer[index++] = BSON.BSON_DATA_NUMBER; - // Number of written bytes - numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write float - writeIEEE754(buffer, value, index, 'little', 52, 8); - // Ajust index - index = index + 8; - } - - return index; - }; - - var serializeNull = function (buffer, key, value, index, isArray) { - // Set long type - buffer[index++] = BSON.BSON_DATA_NULL; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - return index; - }; - - var serializeBoolean = function (buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_BOOLEAN; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Encode the boolean value - buffer[index++] = value ? 1 : 0; - return index; - }; - - var serializeDate = function (buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_DATE; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - - // Write the date - var dateInMilis = Long.fromNumber(value.getTime()); - var lowBits = dateInMilis.getLowBits(); - var highBits = dateInMilis.getHighBits(); - // Encode low bits - buffer[index++] = lowBits & 0xff; - buffer[index++] = lowBits >> 8 & 0xff; - buffer[index++] = lowBits >> 16 & 0xff; - buffer[index++] = lowBits >> 24 & 0xff; - // Encode high bits - buffer[index++] = highBits & 0xff; - buffer[index++] = highBits >> 8 & 0xff; - buffer[index++] = highBits >> 16 & 0xff; - buffer[index++] = highBits >> 24 & 0xff; - return index; - }; - - var serializeRegExp = function (buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_REGEXP; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - if (value.source && value.source.match(regexp) != null) { - throw Error('value ' + value.source + ' must not contain null bytes'); - } - // Adjust the index - index = index + buffer.write(value.source, index, 'utf8'); - // Write zero - buffer[index++] = 0x00; - // Write the parameters - if (value.global) buffer[index++] = 0x73; // s - if (value.ignoreCase) buffer[index++] = 0x69; // i - if (value.multiline) buffer[index++] = 0x6d; // m - // Add ending zero - buffer[index++] = 0x00; - return index; - }; - - var serializeBSONRegExp = function (buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_REGEXP; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - - // Check the pattern for 0 bytes - if (value.pattern.match(regexp) != null) { - // The BSON spec doesn't allow keys with null bytes because keys are - // null-terminated. - throw Error('pattern ' + value.pattern + ' must not contain null bytes'); - } - - // Adjust the index - index = index + buffer.write(value.pattern, index, 'utf8'); - // Write zero - buffer[index++] = 0x00; - // Write the options - index = index + buffer.write(value.options.split('').sort().join(''), index, 'utf8'); - // Add ending zero - buffer[index++] = 0x00; - return index; - }; - - var serializeMinMax = function (buffer, key, value, index, isArray) { - // Write the type of either min or max key - if (value === null) { - buffer[index++] = BSON.BSON_DATA_NULL; - } else if (value._bsontype === 'MinKey') { - buffer[index++] = BSON.BSON_DATA_MIN_KEY; - } else { - buffer[index++] = BSON.BSON_DATA_MAX_KEY; - } - - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - return index; - }; - - var serializeObjectId = function (buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_OID; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - - // Write the objectId into the shared buffer - if (typeof value.id === 'string') { - buffer.write(value.id, index, 'binary'); - } else if (value.id && value.id.copy) { - value.id.copy(buffer, index, 0, 12); - } else { - throw new Error('object [' + JSON.stringify(value) + '] is not a valid ObjectId'); - } - - // Ajust index - return index + 12; - }; - - var serializeBuffer = function (buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_BINARY; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Get size of the buffer (current write point) - var size = value.length; - // Write the size of the string to buffer - buffer[index++] = size & 0xff; - buffer[index++] = size >> 8 & 0xff; - buffer[index++] = size >> 16 & 0xff; - buffer[index++] = size >> 24 & 0xff; - // Write the default subtype - buffer[index++] = BSON.BSON_BINARY_SUBTYPE_DEFAULT; - // Copy the content form the binary field to the buffer - value.copy(buffer, index, 0, size); - // Adjust the index - index = index + size; - return index; - }; - - var serializeObject = function (buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, isArray, path) { - for (var i = 0; i < path.length; i++) { - if (path[i] === value) throw new Error('cyclic dependency detected'); - } - - // Push value to stack - path.push(value); - // Write the type - buffer[index++] = Array.isArray(value) ? BSON.BSON_DATA_ARRAY : BSON.BSON_DATA_OBJECT; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - var endIndex = serializeInto(buffer, value, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined, path); - // Pop stack - path.pop(); - // Write size - return endIndex; - }; - - var serializeDecimal128 = function (buffer, key, value, index, isArray) { - buffer[index++] = BSON.BSON_DATA_DECIMAL128; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write the data from the value - value.bytes.copy(buffer, index, 0, 16); - return index + 16; - }; - - var serializeLong = function (buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = value._bsontype === 'Long' ? BSON.BSON_DATA_LONG : BSON.BSON_DATA_TIMESTAMP; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write the date - var lowBits = value.getLowBits(); - var highBits = value.getHighBits(); - // Encode low bits - buffer[index++] = lowBits & 0xff; - buffer[index++] = lowBits >> 8 & 0xff; - buffer[index++] = lowBits >> 16 & 0xff; - buffer[index++] = lowBits >> 24 & 0xff; - // Encode high bits - buffer[index++] = highBits & 0xff; - buffer[index++] = highBits >> 8 & 0xff; - buffer[index++] = highBits >> 16 & 0xff; - buffer[index++] = highBits >> 24 & 0xff; - return index; - }; - - var serializeInt32 = function (buffer, key, value, index, isArray) { - // Set int type 32 bits or less - buffer[index++] = BSON.BSON_DATA_INT; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write the int value - buffer[index++] = value & 0xff; - buffer[index++] = value >> 8 & 0xff; - buffer[index++] = value >> 16 & 0xff; - buffer[index++] = value >> 24 & 0xff; - return index; - }; - - var serializeDouble = function (buffer, key, value, index, isArray) { - // Encode as double - buffer[index++] = BSON.BSON_DATA_NUMBER; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write float - writeIEEE754(buffer, value, index, 'little', 52, 8); - // Ajust index - index = index + 8; - return index; - }; - - var serializeFunction = function (buffer, key, value, index, checkKeys, depth, isArray) { - buffer[index++] = BSON.BSON_DATA_CODE; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Function string - var functionString = normalizedFunctionString(value); - - // Write the string - var size = buffer.write(functionString, index + 4, 'utf8') + 1; - // Write the size of the string to buffer - buffer[index] = size & 0xff; - buffer[index + 1] = size >> 8 & 0xff; - buffer[index + 2] = size >> 16 & 0xff; - buffer[index + 3] = size >> 24 & 0xff; - // Update index - index = index + 4 + size - 1; - // Write zero - buffer[index++] = 0; - return index; - }; - - var serializeCode = function (buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, isArray) { - if (value.scope && typeof value.scope === 'object') { - // Write the type - buffer[index++] = BSON.BSON_DATA_CODE_W_SCOPE; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - - // Starting index - var startIndex = index; - - // Serialize the function - // Get the function string - var functionString = typeof value.code === 'string' ? value.code : value.code.toString(); - // Index adjustment - index = index + 4; - // Write string into buffer - var codeSize = buffer.write(functionString, index + 4, 'utf8') + 1; - // Write the size of the string to buffer - buffer[index] = codeSize & 0xff; - buffer[index + 1] = codeSize >> 8 & 0xff; - buffer[index + 2] = codeSize >> 16 & 0xff; - buffer[index + 3] = codeSize >> 24 & 0xff; - // Write end 0 - buffer[index + 4 + codeSize - 1] = 0; - // Write the - index = index + codeSize + 4; - - // - // Serialize the scope value - var endIndex = serializeInto(buffer, value.scope, checkKeys, index, depth + 1, serializeFunctions, ignoreUndefined); - index = endIndex - 1; - - // Writ the total - var totalSize = endIndex - startIndex; - - // Write the total size of the object - buffer[startIndex++] = totalSize & 0xff; - buffer[startIndex++] = totalSize >> 8 & 0xff; - buffer[startIndex++] = totalSize >> 16 & 0xff; - buffer[startIndex++] = totalSize >> 24 & 0xff; - // Write trailing zero - buffer[index++] = 0; - } else { - buffer[index++] = BSON.BSON_DATA_CODE; - // Number of written bytes - numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Function string - functionString = value.code.toString(); - // Write the string - var size = buffer.write(functionString, index + 4, 'utf8') + 1; - // Write the size of the string to buffer - buffer[index] = size & 0xff; - buffer[index + 1] = size >> 8 & 0xff; - buffer[index + 2] = size >> 16 & 0xff; - buffer[index + 3] = size >> 24 & 0xff; - // Update index - index = index + 4 + size - 1; - // Write zero - buffer[index++] = 0; - } - - return index; - }; - - var serializeBinary = function (buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_BINARY; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Extract the buffer - var data = value.value(true); - // Calculate size - var size = value.position; - // Add the deprecated 02 type 4 bytes of size to total - if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) size = size + 4; - // Write the size of the string to buffer - buffer[index++] = size & 0xff; - buffer[index++] = size >> 8 & 0xff; - buffer[index++] = size >> 16 & 0xff; - buffer[index++] = size >> 24 & 0xff; - // Write the subtype to the buffer - buffer[index++] = value.sub_type; - - // If we have binary type 2 the 4 first bytes are the size - if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { - size = size - 4; - buffer[index++] = size & 0xff; - buffer[index++] = size >> 8 & 0xff; - buffer[index++] = size >> 16 & 0xff; - buffer[index++] = size >> 24 & 0xff; - } - - // Write the data to the object - data.copy(buffer, index, 0, value.position); - // Adjust the index - index = index + value.position; - return index; - }; - - var serializeSymbol = function (buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_SYMBOL; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write the string - var size = buffer.write(value.value, index + 4, 'utf8') + 1; - // Write the size of the string to buffer - buffer[index] = size & 0xff; - buffer[index + 1] = size >> 8 & 0xff; - buffer[index + 2] = size >> 16 & 0xff; - buffer[index + 3] = size >> 24 & 0xff; - // Update index - index = index + 4 + size - 1; - // Write zero - buffer[index++] = 0x00; - return index; - }; - - var serializeDBRef = function (buffer, key, value, index, depth, serializeFunctions, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_OBJECT; - // Number of written bytes - var numberOfWrittenBytes = !isArray ? buffer.write(key, index, 'utf8') : buffer.write(key, index, 'ascii'); - - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - - var startIndex = index; - var endIndex; - - // Serialize object - if (null != value.db) { - endIndex = serializeInto(buffer, { - $ref: value.namespace, - $id: value.oid, - $db: value.db - }, false, index, depth + 1, serializeFunctions); - } else { - endIndex = serializeInto(buffer, { - $ref: value.namespace, - $id: value.oid - }, false, index, depth + 1, serializeFunctions); - } - - // Calculate object size - var size = endIndex - startIndex; - // Write the size - buffer[startIndex++] = size & 0xff; - buffer[startIndex++] = size >> 8 & 0xff; - buffer[startIndex++] = size >> 16 & 0xff; - buffer[startIndex++] = size >> 24 & 0xff; - // Set index - return endIndex; - }; - - var serializeInto = function serializeInto(buffer, object, checkKeys, startingIndex, depth, serializeFunctions, ignoreUndefined, path) { - startingIndex = startingIndex || 0; - path = path || []; - - // Push the object to the path - path.push(object); - - // Start place to serialize into - var index = startingIndex + 4; - // var self = this; - - // Special case isArray - if (Array.isArray(object)) { - // Get object keys - for (var i = 0; i < object.length; i++) { - var key = '' + i; - var value = object[i]; - - // Is there an override value - if (value && value.toBSON) { - if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); - value = value.toBSON(); - } - - var type = typeof value; - if (type === 'string') { - index = serializeString(buffer, key, value, index, true); - } else if (type === 'number') { - index = serializeNumber(buffer, key, value, index, true); - } else if (type === 'boolean') { - index = serializeBoolean(buffer, key, value, index, true); - } else if (value instanceof Date || isDate(value)) { - index = serializeDate(buffer, key, value, index, true); - } else if (value === undefined) { - index = serializeNull(buffer, key, value, index, true); - } else if (value === null) { - index = serializeNull(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { - index = serializeObjectId(buffer, key, value, index, true); - } else if (Buffer.isBuffer(value)) { - index = serializeBuffer(buffer, key, value, index, true); - } else if (value instanceof RegExp || isRegExp(value)) { - index = serializeRegExp(buffer, key, value, index, true); - } else if (type === 'object' && value['_bsontype'] == null) { - index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, true, path); - } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { - index = serializeDecimal128(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { - index = serializeLong(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'Double') { - index = serializeDouble(buffer, key, value, index, true); - } else if (typeof value === 'function' && serializeFunctions) { - index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions, true); - } else if (value['_bsontype'] === 'Code') { - index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, true); - } else if (value['_bsontype'] === 'Binary') { - index = serializeBinary(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'Symbol') { - index = serializeSymbol(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'DBRef') { - index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions, true); - } else if (value['_bsontype'] === 'BSONRegExp') { - index = serializeBSONRegExp(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'Int32') { - index = serializeInt32(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { - index = serializeMinMax(buffer, key, value, index, true); - } else if (typeof value['_bsontype'] !== 'undefined') { - throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); - } - } - } else if (object instanceof Map) { - var iterator = object.entries(); - var done = false; - - while (!done) { - // Unpack the next entry - var entry = iterator.next(); - done = entry.done; - // Are we done, then skip and terminate - if (done) continue; - - // Get the entry values - key = entry.value[0]; - value = entry.value[1]; - - // Check the type of the value - type = typeof value; - - // Check the key and throw error if it's illegal - if (typeof key === 'string' && ignoreKeys.indexOf(key) === -1) { - if (key.match(regexp) != null) { - // The BSON spec doesn't allow keys with null bytes because keys are - // null-terminated. - throw Error('key ' + key + ' must not contain null bytes'); - } - - if (checkKeys) { - if ('$' === key[0]) { - throw Error('key ' + key + " must not start with '$'"); - } else if (~key.indexOf('.')) { - throw Error('key ' + key + " must not contain '.'"); - } - } - } - - if (type === 'string') { - index = serializeString(buffer, key, value, index); - } else if (type === 'number') { - index = serializeNumber(buffer, key, value, index); - } else if (type === 'boolean') { - index = serializeBoolean(buffer, key, value, index); - } else if (value instanceof Date || isDate(value)) { - index = serializeDate(buffer, key, value, index); - // } else if (value === undefined && ignoreUndefined === true) { - } else if (value === null || value === undefined && ignoreUndefined === false) { - index = serializeNull(buffer, key, value, index); - } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { - index = serializeObjectId(buffer, key, value, index); - } else if (Buffer.isBuffer(value)) { - index = serializeBuffer(buffer, key, value, index); - } else if (value instanceof RegExp || isRegExp(value)) { - index = serializeRegExp(buffer, key, value, index); - } else if (type === 'object' && value['_bsontype'] == null) { - index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, false, path); - } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { - index = serializeDecimal128(buffer, key, value, index); - } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { - index = serializeLong(buffer, key, value, index); - } else if (value['_bsontype'] === 'Double') { - index = serializeDouble(buffer, key, value, index); - } else if (value['_bsontype'] === 'Code') { - index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined); - } else if (typeof value === 'function' && serializeFunctions) { - index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); - } else if (value['_bsontype'] === 'Binary') { - index = serializeBinary(buffer, key, value, index); - } else if (value['_bsontype'] === 'Symbol') { - index = serializeSymbol(buffer, key, value, index); - } else if (value['_bsontype'] === 'DBRef') { - index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); - } else if (value['_bsontype'] === 'BSONRegExp') { - index = serializeBSONRegExp(buffer, key, value, index); - } else if (value['_bsontype'] === 'Int32') { - index = serializeInt32(buffer, key, value, index); - } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { - index = serializeMinMax(buffer, key, value, index); - } else if (typeof value['_bsontype'] !== 'undefined') { - throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); - } - } - } else { - // Did we provide a custom serialization method - if (object.toBSON) { - if (typeof object.toBSON !== 'function') throw new Error('toBSON is not a function'); - object = object.toBSON(); - if (object != null && typeof object !== 'object') throw new Error('toBSON function did not return an object'); - } - - // Iterate over all the keys - for (key in object) { - value = object[key]; - // Is there an override value - if (value && value.toBSON) { - if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); - value = value.toBSON(); - } - - // Check the type of the value - type = typeof value; - - // Check the key and throw error if it's illegal - if (typeof key === 'string' && ignoreKeys.indexOf(key) === -1) { - if (key.match(regexp) != null) { - // The BSON spec doesn't allow keys with null bytes because keys are - // null-terminated. - throw Error('key ' + key + ' must not contain null bytes'); - } - - if (checkKeys) { - if ('$' === key[0]) { - throw Error('key ' + key + " must not start with '$'"); - } else if (~key.indexOf('.')) { - throw Error('key ' + key + " must not contain '.'"); - } - } - } - - if (type === 'string') { - index = serializeString(buffer, key, value, index); - } else if (type === 'number') { - index = serializeNumber(buffer, key, value, index); - } else if (type === 'boolean') { - index = serializeBoolean(buffer, key, value, index); - } else if (value instanceof Date || isDate(value)) { - index = serializeDate(buffer, key, value, index); - } else if (value === undefined) { - if (ignoreUndefined === false) index = serializeNull(buffer, key, value, index); - } else if (value === null) { - index = serializeNull(buffer, key, value, index); - } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { - index = serializeObjectId(buffer, key, value, index); - } else if (Buffer.isBuffer(value)) { - index = serializeBuffer(buffer, key, value, index); - } else if (value instanceof RegExp || isRegExp(value)) { - index = serializeRegExp(buffer, key, value, index); - } else if (type === 'object' && value['_bsontype'] == null) { - index = serializeObject(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined, false, path); - } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { - index = serializeDecimal128(buffer, key, value, index); - } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { - index = serializeLong(buffer, key, value, index); - } else if (value['_bsontype'] === 'Double') { - index = serializeDouble(buffer, key, value, index); - } else if (value['_bsontype'] === 'Code') { - index = serializeCode(buffer, key, value, index, checkKeys, depth, serializeFunctions, ignoreUndefined); - } else if (typeof value === 'function' && serializeFunctions) { - index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); - } else if (value['_bsontype'] === 'Binary') { - index = serializeBinary(buffer, key, value, index); - } else if (value['_bsontype'] === 'Symbol') { - index = serializeSymbol(buffer, key, value, index); - } else if (value['_bsontype'] === 'DBRef') { - index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); - } else if (value['_bsontype'] === 'BSONRegExp') { - index = serializeBSONRegExp(buffer, key, value, index); - } else if (value['_bsontype'] === 'Int32') { - index = serializeInt32(buffer, key, value, index); - } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { - index = serializeMinMax(buffer, key, value, index); - } else if (typeof value['_bsontype'] !== 'undefined') { - throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); - } - } - } - - // Remove the path - path.pop(); - - // Final padding byte for object - buffer[index++] = 0x00; - - // Final size - var size = index - startingIndex; - // Write the size of the object - buffer[startingIndex++] = size & 0xff; - buffer[startingIndex++] = size >> 8 & 0xff; - buffer[startingIndex++] = size >> 16 & 0xff; - buffer[startingIndex++] = size >> 24 & 0xff; - return index; - }; - - var BSON = {}; - - /** - * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 - * - * @ignore - * @api private - */ - // var functionCache = (BSON.functionCache = {}); - - /** - * Number BSON Type - * - * @classconstant BSON_DATA_NUMBER - **/ - BSON.BSON_DATA_NUMBER = 1; - /** - * String BSON Type - * - * @classconstant BSON_DATA_STRING - **/ - BSON.BSON_DATA_STRING = 2; - /** - * Object BSON Type - * - * @classconstant BSON_DATA_OBJECT - **/ - BSON.BSON_DATA_OBJECT = 3; - /** - * Array BSON Type - * - * @classconstant BSON_DATA_ARRAY - **/ - BSON.BSON_DATA_ARRAY = 4; - /** - * Binary BSON Type - * - * @classconstant BSON_DATA_BINARY - **/ - BSON.BSON_DATA_BINARY = 5; - /** - * ObjectID BSON Type, deprecated - * - * @classconstant BSON_DATA_UNDEFINED - **/ - BSON.BSON_DATA_UNDEFINED = 6; - /** - * ObjectID BSON Type - * - * @classconstant BSON_DATA_OID - **/ - BSON.BSON_DATA_OID = 7; - /** - * Boolean BSON Type - * - * @classconstant BSON_DATA_BOOLEAN - **/ - BSON.BSON_DATA_BOOLEAN = 8; - /** - * Date BSON Type - * - * @classconstant BSON_DATA_DATE - **/ - BSON.BSON_DATA_DATE = 9; - /** - * null BSON Type - * - * @classconstant BSON_DATA_NULL - **/ - BSON.BSON_DATA_NULL = 10; - /** - * RegExp BSON Type - * - * @classconstant BSON_DATA_REGEXP - **/ - BSON.BSON_DATA_REGEXP = 11; - /** - * Code BSON Type - * - * @classconstant BSON_DATA_CODE - **/ - BSON.BSON_DATA_CODE = 13; - /** - * Symbol BSON Type - * - * @classconstant BSON_DATA_SYMBOL - **/ - BSON.BSON_DATA_SYMBOL = 14; - /** - * Code with Scope BSON Type - * - * @classconstant BSON_DATA_CODE_W_SCOPE - **/ - BSON.BSON_DATA_CODE_W_SCOPE = 15; - /** - * 32 bit Integer BSON Type - * - * @classconstant BSON_DATA_INT - **/ - BSON.BSON_DATA_INT = 16; - /** - * Timestamp BSON Type - * - * @classconstant BSON_DATA_TIMESTAMP - **/ - BSON.BSON_DATA_TIMESTAMP = 17; - /** - * Long BSON Type - * - * @classconstant BSON_DATA_LONG - **/ - BSON.BSON_DATA_LONG = 18; - /** - * Long BSON Type - * - * @classconstant BSON_DATA_DECIMAL128 - **/ - BSON.BSON_DATA_DECIMAL128 = 19; - /** - * MinKey BSON Type - * - * @classconstant BSON_DATA_MIN_KEY - **/ - BSON.BSON_DATA_MIN_KEY = 0xff; - /** - * MaxKey BSON Type - * - * @classconstant BSON_DATA_MAX_KEY - **/ - BSON.BSON_DATA_MAX_KEY = 0x7f; - /** - * Binary Default Type - * - * @classconstant BSON_BINARY_SUBTYPE_DEFAULT - **/ - BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; - /** - * Binary Function Type - * - * @classconstant BSON_BINARY_SUBTYPE_FUNCTION - **/ - BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; - /** - * Binary Byte Array Type - * - * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY - **/ - BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; - /** - * Binary UUID Type - * - * @classconstant BSON_BINARY_SUBTYPE_UUID - **/ - BSON.BSON_BINARY_SUBTYPE_UUID = 3; - /** - * Binary MD5 Type - * - * @classconstant BSON_BINARY_SUBTYPE_MD5 - **/ - BSON.BSON_BINARY_SUBTYPE_MD5 = 4; - /** - * Binary User Defined Type - * - * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED - **/ - BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; - - // BSON MAX VALUES - BSON.BSON_INT32_MAX = 0x7fffffff; - BSON.BSON_INT32_MIN = -0x80000000; - - BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; - BSON.BSON_INT64_MIN = -Math.pow(2, 63); - - // JS MAX PRECISE VALUES - BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. - BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. - - // Internal long versions - // var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. - // var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. - - module.exports = serializeInto; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(339).Buffer)) - -/***/ }), -/* 359 */ -/***/ (function(module, exports) { - - // Copyright (c) 2008, Fair Oaks Labs, Inc. - // All rights reserved. - // - // Redistribution and use in source and binary forms, with or without - // modification, are permitted provided that the following conditions are met: - // - // * Redistributions of source code must retain the above copyright notice, - // this list of conditions and the following disclaimer. - // - // * Redistributions in binary form must reproduce the above copyright notice, - // this list of conditions and the following disclaimer in the documentation - // and/or other materials provided with the distribution. - // - // * Neither the name of Fair Oaks Labs, Inc. nor the names of its contributors - // may be used to endorse or promote products derived from this software - // without specific prior written permission. - // - // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - // CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - // POSSIBILITY OF SUCH DAMAGE. - // - // - // Modifications to writeIEEE754 to support negative zeroes made by Brian White - - var readIEEE754 = function (buffer, offset, endian, mLen, nBytes) { - var e, - m, - bBE = endian === 'big', - eLen = nBytes * 8 - mLen - 1, - eMax = (1 << eLen) - 1, - eBias = eMax >> 1, - nBits = -7, - i = bBE ? 0 : nBytes - 1, - d = bBE ? 1 : -1, - s = buffer[offset + i]; - - i += d; - - e = s & (1 << -nBits) - 1; - s >>= -nBits; - nBits += eLen; - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8); - - m = e & (1 << -nBits) - 1; - e >>= -nBits; - nBits += mLen; - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8); - - if (e === 0) { - e = 1 - eBias; - } else if (e === eMax) { - return m ? NaN : (s ? -1 : 1) * Infinity; - } else { - m = m + Math.pow(2, mLen); - e = e - eBias; - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen); - }; - - var writeIEEE754 = function (buffer, value, offset, endian, mLen, nBytes) { - var e, - m, - c, - bBE = endian === 'big', - eLen = nBytes * 8 - mLen - 1, - eMax = (1 << eLen) - 1, - eBias = eMax >> 1, - rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, - i = bBE ? nBytes - 1 : 0, - d = bBE ? -1 : 1, - s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; - - value = Math.abs(value); - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0; - e = eMax; - } else { - e = Math.floor(Math.log(value) / Math.LN2); - if (value * (c = Math.pow(2, -e)) < 1) { - e--; - c *= 2; - } - if (e + eBias >= 1) { - value += rt / c; - } else { - value += rt * Math.pow(2, 1 - eBias); - } - if (value * c >= 2) { - e++; - c /= 2; - } - - if (e + eBias >= eMax) { - m = 0; - e = eMax; - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen); - e = e + eBias; - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); - e = 0; - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8); - - e = e << mLen | m; - eLen += mLen; - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8); - - buffer[offset + i - d] |= s * 128; - }; - - exports.readIEEE754 = readIEEE754; - exports.writeIEEE754 = writeIEEE754; - -/***/ }), -/* 360 */ -/***/ (function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(Buffer) {'use strict'; - - var Long = __webpack_require__(335).Long, - Double = __webpack_require__(336).Double, - Timestamp = __webpack_require__(337).Timestamp, - ObjectID = __webpack_require__(338).ObjectID, - Symbol = __webpack_require__(349).Symbol, - BSONRegExp = __webpack_require__(348).BSONRegExp, - Code = __webpack_require__(351).Code, - Decimal128 = __webpack_require__(352), - MinKey = __webpack_require__(353).MinKey, - MaxKey = __webpack_require__(354).MaxKey, - DBRef = __webpack_require__(355).DBRef, - Binary = __webpack_require__(356).Binary; - - var normalizedFunctionString = __webpack_require__(344).normalizedFunctionString; - - // To ensure that 0.4 of node works correctly - var isDate = function isDate(d) { - return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; - }; - - var calculateObjectSize = function calculateObjectSize(object, serializeFunctions, ignoreUndefined) { - var totalLength = 4 + 1; - - if (Array.isArray(object)) { - for (var i = 0; i < object.length; i++) { - totalLength += calculateElement(i.toString(), object[i], serializeFunctions, true, ignoreUndefined); - } - } else { - // If we have toBSON defined, override the current object - if (object.toBSON) { - object = object.toBSON(); - } - - // Calculate size - for (var key in object) { - totalLength += calculateElement(key, object[key], serializeFunctions, false, ignoreUndefined); - } - } - - return totalLength; - }; - - /** - * @ignore - * @api private - */ - function calculateElement(name, value, serializeFunctions, isArray, ignoreUndefined) { - // If we have toBSON defined, override the current object - if (value && value.toBSON) { - value = value.toBSON(); - } - - switch (typeof value) { - case 'string': - return 1 + Buffer.byteLength(name, 'utf8') + 1 + 4 + Buffer.byteLength(value, 'utf8') + 1; - case 'number': - if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { - if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { - // 32 bit - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (4 + 1); - } else { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); - } - } else { - // 64 bit - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); - } - case 'undefined': - if (isArray || !ignoreUndefined) return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; - return 0; - case 'boolean': - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 1); - case 'object': - if (value == null || value instanceof MinKey || value instanceof MaxKey || value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; - } else if (value instanceof ObjectID || value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (12 + 1); - } else if (value instanceof Date || isDate(value)) { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); - } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 4 + 1) + value.length; - } else if (value instanceof Long || value instanceof Double || value instanceof Timestamp || value['_bsontype'] === 'Long' || value['_bsontype'] === 'Double' || value['_bsontype'] === 'Timestamp') { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); - } else if (value instanceof Decimal128 || value['_bsontype'] === 'Decimal128') { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (16 + 1); - } else if (value instanceof Code || value['_bsontype'] === 'Code') { - // Calculate size depending on the availability of a scope - if (value.scope != null && Object.keys(value.scope).length > 0) { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + 4 + Buffer.byteLength(value.code.toString(), 'utf8') + 1 + calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined); - } else { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + Buffer.byteLength(value.code.toString(), 'utf8') + 1; - } - } else if (value instanceof Binary || value['_bsontype'] === 'Binary') { - // Check what kind of subtype we have - if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (value.position + 1 + 4 + 1 + 4); - } else { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (value.position + 1 + 4 + 1); - } - } else if (value instanceof Symbol || value['_bsontype'] === 'Symbol') { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + Buffer.byteLength(value.value, 'utf8') + 4 + 1 + 1; - } else if (value instanceof DBRef || value['_bsontype'] === 'DBRef') { - // Set up correct object for serialization - var ordered_values = { - $ref: value.namespace, - $id: value.oid - }; - - // Add db reference if it exists - if (null != value.db) { - ordered_values['$db'] = value.db; - } - - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + calculateObjectSize(ordered_values, serializeFunctions, ignoreUndefined); - } else if (value instanceof RegExp || Object.prototype.toString.call(value) === '[object RegExp]') { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + Buffer.byteLength(value.source, 'utf8') + 1 + (value.global ? 1 : 0) + (value.ignoreCase ? 1 : 0) + (value.multiline ? 1 : 0) + 1; - } else if (value instanceof BSONRegExp || value['_bsontype'] === 'BSONRegExp') { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + Buffer.byteLength(value.pattern, 'utf8') + 1 + Buffer.byteLength(value.options, 'utf8') + 1; - } else { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + calculateObjectSize(value, serializeFunctions, ignoreUndefined) + 1; - } - case 'function': - // WTF for 0.4.X where typeof /someregexp/ === 'function' - if (value instanceof RegExp || Object.prototype.toString.call(value) === '[object RegExp]' || String.call(value) === '[object RegExp]') { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + Buffer.byteLength(value.source, 'utf8') + 1 + (value.global ? 1 : 0) + (value.ignoreCase ? 1 : 0) + (value.multiline ? 1 : 0) + 1; - } else { - if (serializeFunctions && value.scope != null && Object.keys(value.scope).length > 0) { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + 4 + Buffer.byteLength(normalizedFunctionString(value), 'utf8') + 1 + calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined); - } else if (serializeFunctions) { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1 + 4 + Buffer.byteLength(normalizedFunctionString(value), 'utf8') + 1; - } - } - } - - return 0; - } - - var BSON = {}; - - // BSON MAX VALUES - BSON.BSON_INT32_MAX = 0x7fffffff; - BSON.BSON_INT32_MIN = -0x80000000; - - // JS MAX PRECISE VALUES - BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. - BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. - - module.exports = calculateObjectSize; - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(339).Buffer)) - -/***/ }) -/******/ ]) -}); -; \ No newline at end of file diff --git a/views/node_modules/bson/browser_build/package.json b/views/node_modules/bson/browser_build/package.json deleted file mode 100644 index 980db7f..0000000 --- a/views/node_modules/bson/browser_build/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ "name" : "bson" -, "description" : "A bson parser for node.js and the browser" -, "main": "../" -, "directories" : { "lib" : "../lib/bson" } -, "engines" : { "node" : ">=0.6.0" } -, "licenses" : [ { "type" : "Apache License, Version 2.0" - , "url" : "http://www.apache.org/licenses/LICENSE-2.0" } ] -} diff --git a/views/node_modules/bson/index.js b/views/node_modules/bson/index.js deleted file mode 100644 index 6502552..0000000 --- a/views/node_modules/bson/index.js +++ /dev/null @@ -1,46 +0,0 @@ -var BSON = require('./lib/bson/bson'), - Binary = require('./lib/bson/binary'), - Code = require('./lib/bson/code'), - DBRef = require('./lib/bson/db_ref'), - Decimal128 = require('./lib/bson/decimal128'), - Double = require('./lib/bson/double'), - Int32 = require('./lib/bson/int_32'), - Long = require('./lib/bson/long'), - Map = require('./lib/bson/map'), - MaxKey = require('./lib/bson/max_key'), - MinKey = require('./lib/bson/min_key'), - ObjectId = require('./lib/bson/objectid'), - BSONRegExp = require('./lib/bson/regexp'), - Symbol = require('./lib/bson/symbol'), - Timestamp = require('./lib/bson/timestamp'); - -// BSON MAX VALUES -BSON.BSON_INT32_MAX = 0x7fffffff; -BSON.BSON_INT32_MIN = -0x80000000; - -BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; -BSON.BSON_INT64_MIN = -Math.pow(2, 63); - -// JS MAX PRECISE VALUES -BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. -BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. - -// Add BSON types to function creation -BSON.Binary = Binary; -BSON.Code = Code; -BSON.DBRef = DBRef; -BSON.Decimal128 = Decimal128; -BSON.Double = Double; -BSON.Int32 = Int32; -BSON.Long = Long; -BSON.Map = Map; -BSON.MaxKey = MaxKey; -BSON.MinKey = MinKey; -BSON.ObjectId = ObjectId; -BSON.ObjectID = ObjectId; -BSON.BSONRegExp = BSONRegExp; -BSON.Symbol = Symbol; -BSON.Timestamp = Timestamp; - -// Return the BSON -module.exports = BSON; diff --git a/views/node_modules/bson/lib/bson/binary.js b/views/node_modules/bson/lib/bson/binary.js deleted file mode 100644 index 6d190bc..0000000 --- a/views/node_modules/bson/lib/bson/binary.js +++ /dev/null @@ -1,384 +0,0 @@ -/** - * Module dependencies. - * @ignore - */ - -// Test if we're in Node via presence of "global" not absence of "window" -// to support hybrid environments like Electron -if (typeof global !== 'undefined') { - var Buffer = require('buffer').Buffer; // TODO just use global Buffer -} - -var utils = require('./parser/utils'); - -/** - * A class representation of the BSON Binary type. - * - * Sub types - * - **BSON.BSON_BINARY_SUBTYPE_DEFAULT**, default BSON type. - * - **BSON.BSON_BINARY_SUBTYPE_FUNCTION**, BSON function type. - * - **BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY**, BSON byte array type. - * - **BSON.BSON_BINARY_SUBTYPE_UUID**, BSON uuid type. - * - **BSON.BSON_BINARY_SUBTYPE_MD5**, BSON md5 type. - * - **BSON.BSON_BINARY_SUBTYPE_USER_DEFINED**, BSON user defined type. - * - * @class - * @param {Buffer} buffer a buffer object containing the binary data. - * @param {Number} [subType] the option binary type. - * @return {Binary} - */ -function Binary(buffer, subType) { - if (!(this instanceof Binary)) return new Binary(buffer, subType); - - if ( - buffer != null && - !(typeof buffer === 'string') && - !Buffer.isBuffer(buffer) && - !(buffer instanceof Uint8Array) && - !Array.isArray(buffer) - ) { - throw new Error('only String, Buffer, Uint8Array or Array accepted'); - } - - this._bsontype = 'Binary'; - - if (buffer instanceof Number) { - this.sub_type = buffer; - this.position = 0; - } else { - this.sub_type = subType == null ? BSON_BINARY_SUBTYPE_DEFAULT : subType; - this.position = 0; - } - - if (buffer != null && !(buffer instanceof Number)) { - // Only accept Buffer, Uint8Array or Arrays - if (typeof buffer === 'string') { - // Different ways of writing the length of the string for the different types - if (typeof Buffer !== 'undefined') { - this.buffer = utils.toBuffer(buffer); - } else if ( - typeof Uint8Array !== 'undefined' || - Object.prototype.toString.call(buffer) === '[object Array]' - ) { - this.buffer = writeStringToArray(buffer); - } else { - throw new Error('only String, Buffer, Uint8Array or Array accepted'); - } - } else { - this.buffer = buffer; - } - this.position = buffer.length; - } else { - if (typeof Buffer !== 'undefined') { - this.buffer = utils.allocBuffer(Binary.BUFFER_SIZE); - } else if (typeof Uint8Array !== 'undefined') { - this.buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE)); - } else { - this.buffer = new Array(Binary.BUFFER_SIZE); - } - // Set position to start of buffer - this.position = 0; - } -} - -/** - * Updates this binary with byte_value. - * - * @method - * @param {string} byte_value a single byte we wish to write. - */ -Binary.prototype.put = function put(byte_value) { - // If it's a string and a has more than one character throw an error - if (byte_value['length'] != null && typeof byte_value !== 'number' && byte_value.length !== 1) - throw new Error('only accepts single character String, Uint8Array or Array'); - if ((typeof byte_value !== 'number' && byte_value < 0) || byte_value > 255) - throw new Error('only accepts number in a valid unsigned byte range 0-255'); - - // Decode the byte value once - var decoded_byte = null; - if (typeof byte_value === 'string') { - decoded_byte = byte_value.charCodeAt(0); - } else if (byte_value['length'] != null) { - decoded_byte = byte_value[0]; - } else { - decoded_byte = byte_value; - } - - if (this.buffer.length > this.position) { - this.buffer[this.position++] = decoded_byte; - } else { - if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { - // Create additional overflow buffer - var buffer = utils.allocBuffer(Binary.BUFFER_SIZE + this.buffer.length); - // Combine the two buffers together - this.buffer.copy(buffer, 0, 0, this.buffer.length); - this.buffer = buffer; - this.buffer[this.position++] = decoded_byte; - } else { - buffer = null; - // Create a new buffer (typed or normal array) - if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { - buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE + this.buffer.length)); - } else { - buffer = new Array(Binary.BUFFER_SIZE + this.buffer.length); - } - - // We need to copy all the content to the new array - for (var i = 0; i < this.buffer.length; i++) { - buffer[i] = this.buffer[i]; - } - - // Reassign the buffer - this.buffer = buffer; - // Write the byte - this.buffer[this.position++] = decoded_byte; - } - } -}; - -/** - * Writes a buffer or string to the binary. - * - * @method - * @param {(Buffer|string)} string a string or buffer to be written to the Binary BSON object. - * @param {number} offset specify the binary of where to write the content. - * @return {null} - */ -Binary.prototype.write = function write(string, offset) { - offset = typeof offset === 'number' ? offset : this.position; - - // If the buffer is to small let's extend the buffer - if (this.buffer.length < offset + string.length) { - var buffer = null; - // If we are in node.js - if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { - buffer = utils.allocBuffer(this.buffer.length + string.length); - this.buffer.copy(buffer, 0, 0, this.buffer.length); - } else if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') { - // Create a new buffer - buffer = new Uint8Array(new ArrayBuffer(this.buffer.length + string.length)); - // Copy the content - for (var i = 0; i < this.position; i++) { - buffer[i] = this.buffer[i]; - } - } - - // Assign the new buffer - this.buffer = buffer; - } - - if (typeof Buffer !== 'undefined' && Buffer.isBuffer(string) && Buffer.isBuffer(this.buffer)) { - string.copy(this.buffer, offset, 0, string.length); - this.position = offset + string.length > this.position ? offset + string.length : this.position; - // offset = string.length - } else if ( - typeof Buffer !== 'undefined' && - typeof string === 'string' && - Buffer.isBuffer(this.buffer) - ) { - this.buffer.write(string, offset, 'binary'); - this.position = offset + string.length > this.position ? offset + string.length : this.position; - // offset = string.length; - } else if ( - Object.prototype.toString.call(string) === '[object Uint8Array]' || - (Object.prototype.toString.call(string) === '[object Array]' && typeof string !== 'string') - ) { - for (i = 0; i < string.length; i++) { - this.buffer[offset++] = string[i]; - } - - this.position = offset > this.position ? offset : this.position; - } else if (typeof string === 'string') { - for (i = 0; i < string.length; i++) { - this.buffer[offset++] = string.charCodeAt(i); - } - - this.position = offset > this.position ? offset : this.position; - } -}; - -/** - * Reads **length** bytes starting at **position**. - * - * @method - * @param {number} position read from the given position in the Binary. - * @param {number} length the number of bytes to read. - * @return {Buffer} - */ -Binary.prototype.read = function read(position, length) { - length = length && length > 0 ? length : this.position; - - // Let's return the data based on the type we have - if (this.buffer['slice']) { - return this.buffer.slice(position, position + length); - } else { - // Create a buffer to keep the result - var buffer = - typeof Uint8Array !== 'undefined' - ? new Uint8Array(new ArrayBuffer(length)) - : new Array(length); - for (var i = 0; i < length; i++) { - buffer[i] = this.buffer[position++]; - } - } - // Return the buffer - return buffer; -}; - -/** - * Returns the value of this binary as a string. - * - * @method - * @return {string} - */ -Binary.prototype.value = function value(asRaw) { - asRaw = asRaw == null ? false : asRaw; - - // Optimize to serialize for the situation where the data == size of buffer - if ( - asRaw && - typeof Buffer !== 'undefined' && - Buffer.isBuffer(this.buffer) && - this.buffer.length === this.position - ) - return this.buffer; - - // If it's a node.js buffer object - if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) { - return asRaw - ? this.buffer.slice(0, this.position) - : this.buffer.toString('binary', 0, this.position); - } else { - if (asRaw) { - // we support the slice command use it - if (this.buffer['slice'] != null) { - return this.buffer.slice(0, this.position); - } else { - // Create a new buffer to copy content to - var newBuffer = - Object.prototype.toString.call(this.buffer) === '[object Uint8Array]' - ? new Uint8Array(new ArrayBuffer(this.position)) - : new Array(this.position); - // Copy content - for (var i = 0; i < this.position; i++) { - newBuffer[i] = this.buffer[i]; - } - // Return the buffer - return newBuffer; - } - } else { - return convertArraytoUtf8BinaryString(this.buffer, 0, this.position); - } - } -}; - -/** - * Length. - * - * @method - * @return {number} the length of the binary. - */ -Binary.prototype.length = function length() { - return this.position; -}; - -/** - * @ignore - */ -Binary.prototype.toJSON = function() { - return this.buffer != null ? this.buffer.toString('base64') : ''; -}; - -/** - * @ignore - */ -Binary.prototype.toString = function(format) { - return this.buffer != null ? this.buffer.slice(0, this.position).toString(format) : ''; -}; - -/** - * Binary default subtype - * @ignore - */ -var BSON_BINARY_SUBTYPE_DEFAULT = 0; - -/** - * @ignore - */ -var writeStringToArray = function(data) { - // Create a buffer - var buffer = - typeof Uint8Array !== 'undefined' - ? new Uint8Array(new ArrayBuffer(data.length)) - : new Array(data.length); - // Write the content to the buffer - for (var i = 0; i < data.length; i++) { - buffer[i] = data.charCodeAt(i); - } - // Write the string to the buffer - return buffer; -}; - -/** - * Convert Array ot Uint8Array to Binary String - * - * @ignore - */ -var convertArraytoUtf8BinaryString = function(byteArray, startIndex, endIndex) { - var result = ''; - for (var i = startIndex; i < endIndex; i++) { - result = result + String.fromCharCode(byteArray[i]); - } - return result; -}; - -Binary.BUFFER_SIZE = 256; - -/** - * Default BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ -Binary.SUBTYPE_DEFAULT = 0; -/** - * Function BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ -Binary.SUBTYPE_FUNCTION = 1; -/** - * Byte Array BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ -Binary.SUBTYPE_BYTE_ARRAY = 2; -/** - * OLD UUID BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ -Binary.SUBTYPE_UUID_OLD = 3; -/** - * UUID BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ -Binary.SUBTYPE_UUID = 4; -/** - * MD5 BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ -Binary.SUBTYPE_MD5 = 5; -/** - * User BSON type - * - * @classconstant SUBTYPE_DEFAULT - **/ -Binary.SUBTYPE_USER_DEFINED = 128; - -/** - * Expose. - */ -module.exports = Binary; -module.exports.Binary = Binary; diff --git a/views/node_modules/bson/lib/bson/bson.js b/views/node_modules/bson/lib/bson/bson.js deleted file mode 100644 index 912c5b9..0000000 --- a/views/node_modules/bson/lib/bson/bson.js +++ /dev/null @@ -1,386 +0,0 @@ -'use strict'; - -var Map = require('./map'), - Long = require('./long'), - Double = require('./double'), - Timestamp = require('./timestamp'), - ObjectID = require('./objectid'), - BSONRegExp = require('./regexp'), - Symbol = require('./symbol'), - Int32 = require('./int_32'), - Code = require('./code'), - Decimal128 = require('./decimal128'), - MinKey = require('./min_key'), - MaxKey = require('./max_key'), - DBRef = require('./db_ref'), - Binary = require('./binary'); - -// Parts of the parser -var deserialize = require('./parser/deserializer'), - serializer = require('./parser/serializer'), - calculateObjectSize = require('./parser/calculate_size'), - utils = require('./parser/utils'); - -/** - * @ignore - * @api private - */ -// Default Max Size -var MAXSIZE = 1024 * 1024 * 17; - -// Current Internal Temporary Serialization Buffer -var buffer = utils.allocBuffer(MAXSIZE); - -var BSON = function() {}; - -/** - * Serialize a Javascript object. - * - * @param {Object} object the Javascript object to serialize. - * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. - * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. - * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. - * @param {Number} [options.minInternalBufferSize=1024*1024*17] minimum size of the internal temporary serialization buffer **(default:1024*1024*17)**. - * @return {Buffer} returns the Buffer object containing the serialized object. - * @api public - */ -BSON.prototype.serialize = function serialize(object, options) { - options = options || {}; - // Unpack the options - var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; - var serializeFunctions = - typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; - var ignoreUndefined = - typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; - var minInternalBufferSize = - typeof options.minInternalBufferSize === 'number' ? options.minInternalBufferSize : MAXSIZE; - - // Resize the internal serialization buffer if needed - if (buffer.length < minInternalBufferSize) { - buffer = utils.allocBuffer(minInternalBufferSize); - } - - // Attempt to serialize - var serializationIndex = serializer( - buffer, - object, - checkKeys, - 0, - 0, - serializeFunctions, - ignoreUndefined, - [] - ); - // Create the final buffer - var finishedBuffer = utils.allocBuffer(serializationIndex); - // Copy into the finished buffer - buffer.copy(finishedBuffer, 0, 0, finishedBuffer.length); - // Return the buffer - return finishedBuffer; -}; - -/** - * Serialize a Javascript object using a predefined Buffer and index into the buffer, useful when pre-allocating the space for serialization. - * - * @param {Object} object the Javascript object to serialize. - * @param {Buffer} buffer the Buffer you pre-allocated to store the serialized BSON object. - * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid. - * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. - * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. - * @param {Number} [options.index] the index in the buffer where we wish to start serializing into. - * @return {Number} returns the index pointing to the last written byte in the buffer. - * @api public - */ -BSON.prototype.serializeWithBufferAndIndex = function(object, finalBuffer, options) { - options = options || {}; - // Unpack the options - var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false; - var serializeFunctions = - typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; - var ignoreUndefined = - typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; - var startIndex = typeof options.index === 'number' ? options.index : 0; - - // Attempt to serialize - var serializationIndex = serializer( - finalBuffer, - object, - checkKeys, - startIndex || 0, - 0, - serializeFunctions, - ignoreUndefined - ); - - // Return the index - return serializationIndex - 1; -}; - -/** - * Deserialize data as BSON. - * - * @param {Buffer} buffer the buffer containing the serialized set of BSON documents. - * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. - * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. - * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. - * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits - * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. - * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. - * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. - * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. - * @return {Object} returns the deserialized Javascript Object. - * @api public - */ -BSON.prototype.deserialize = function(buffer, options) { - return deserialize(buffer, options); -}; - -/** - * Calculate the bson size for a passed in Javascript object. - * - * @param {Object} object the Javascript object to calculate the BSON byte size for. - * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**. - * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**. - * @return {Number} returns the number of bytes the BSON object will take up. - * @api public - */ -BSON.prototype.calculateObjectSize = function(object, options) { - options = options || {}; - - var serializeFunctions = - typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false; - var ignoreUndefined = - typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true; - - return calculateObjectSize(object, serializeFunctions, ignoreUndefined); -}; - -/** - * Deserialize stream data as BSON documents. - * - * @param {Buffer} data the buffer containing the serialized set of BSON documents. - * @param {Number} startIndex the start index in the data Buffer where the deserialization is to start. - * @param {Number} numberOfDocuments number of documents to deserialize. - * @param {Array} documents an array where to store the deserialized documents. - * @param {Number} docStartIndex the index in the documents array from where to start inserting documents. - * @param {Object} [options] additional options used for the deserialization. - * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized. - * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse. - * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function. - * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits - * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance. - * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types. - * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer. - * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances. - * @return {Number} returns the next index in the buffer after deserialization **x** numbers of documents. - * @api public - */ -BSON.prototype.deserializeStream = function( - data, - startIndex, - numberOfDocuments, - documents, - docStartIndex, - options -) { - options = options != null ? options : {}; - var index = startIndex; - // Loop over all documents - for (var i = 0; i < numberOfDocuments; i++) { - // Find size of the document - var size = - data[index] | (data[index + 1] << 8) | (data[index + 2] << 16) | (data[index + 3] << 24); - // Update options with index - options['index'] = index; - // Parse the document at this point - documents[docStartIndex + i] = this.deserialize(data, options); - // Adjust index by the document size - index = index + size; - } - - // Return object containing end index of parsing and list of documents - return index; -}; - -/** - * @ignore - * @api private - */ -// BSON MAX VALUES -BSON.BSON_INT32_MAX = 0x7fffffff; -BSON.BSON_INT32_MIN = -0x80000000; - -BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; -BSON.BSON_INT64_MIN = -Math.pow(2, 63); - -// JS MAX PRECISE VALUES -BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. -BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. - -// Internal long versions -// var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. -// var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. - -/** - * Number BSON Type - * - * @classconstant BSON_DATA_NUMBER - **/ -BSON.BSON_DATA_NUMBER = 1; -/** - * String BSON Type - * - * @classconstant BSON_DATA_STRING - **/ -BSON.BSON_DATA_STRING = 2; -/** - * Object BSON Type - * - * @classconstant BSON_DATA_OBJECT - **/ -BSON.BSON_DATA_OBJECT = 3; -/** - * Array BSON Type - * - * @classconstant BSON_DATA_ARRAY - **/ -BSON.BSON_DATA_ARRAY = 4; -/** - * Binary BSON Type - * - * @classconstant BSON_DATA_BINARY - **/ -BSON.BSON_DATA_BINARY = 5; -/** - * ObjectID BSON Type - * - * @classconstant BSON_DATA_OID - **/ -BSON.BSON_DATA_OID = 7; -/** - * Boolean BSON Type - * - * @classconstant BSON_DATA_BOOLEAN - **/ -BSON.BSON_DATA_BOOLEAN = 8; -/** - * Date BSON Type - * - * @classconstant BSON_DATA_DATE - **/ -BSON.BSON_DATA_DATE = 9; -/** - * null BSON Type - * - * @classconstant BSON_DATA_NULL - **/ -BSON.BSON_DATA_NULL = 10; -/** - * RegExp BSON Type - * - * @classconstant BSON_DATA_REGEXP - **/ -BSON.BSON_DATA_REGEXP = 11; -/** - * Code BSON Type - * - * @classconstant BSON_DATA_CODE - **/ -BSON.BSON_DATA_CODE = 13; -/** - * Symbol BSON Type - * - * @classconstant BSON_DATA_SYMBOL - **/ -BSON.BSON_DATA_SYMBOL = 14; -/** - * Code with Scope BSON Type - * - * @classconstant BSON_DATA_CODE_W_SCOPE - **/ -BSON.BSON_DATA_CODE_W_SCOPE = 15; -/** - * 32 bit Integer BSON Type - * - * @classconstant BSON_DATA_INT - **/ -BSON.BSON_DATA_INT = 16; -/** - * Timestamp BSON Type - * - * @classconstant BSON_DATA_TIMESTAMP - **/ -BSON.BSON_DATA_TIMESTAMP = 17; -/** - * Long BSON Type - * - * @classconstant BSON_DATA_LONG - **/ -BSON.BSON_DATA_LONG = 18; -/** - * MinKey BSON Type - * - * @classconstant BSON_DATA_MIN_KEY - **/ -BSON.BSON_DATA_MIN_KEY = 0xff; -/** - * MaxKey BSON Type - * - * @classconstant BSON_DATA_MAX_KEY - **/ -BSON.BSON_DATA_MAX_KEY = 0x7f; - -/** - * Binary Default Type - * - * @classconstant BSON_BINARY_SUBTYPE_DEFAULT - **/ -BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; -/** - * Binary Function Type - * - * @classconstant BSON_BINARY_SUBTYPE_FUNCTION - **/ -BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; -/** - * Binary Byte Array Type - * - * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY - **/ -BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; -/** - * Binary UUID Type - * - * @classconstant BSON_BINARY_SUBTYPE_UUID - **/ -BSON.BSON_BINARY_SUBTYPE_UUID = 3; -/** - * Binary MD5 Type - * - * @classconstant BSON_BINARY_SUBTYPE_MD5 - **/ -BSON.BSON_BINARY_SUBTYPE_MD5 = 4; -/** - * Binary User Defined Type - * - * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED - **/ -BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; - -// Return BSON -module.exports = BSON; -module.exports.Code = Code; -module.exports.Map = Map; -module.exports.Symbol = Symbol; -module.exports.BSON = BSON; -module.exports.DBRef = DBRef; -module.exports.Binary = Binary; -module.exports.ObjectID = ObjectID; -module.exports.Long = Long; -module.exports.Timestamp = Timestamp; -module.exports.Double = Double; -module.exports.Int32 = Int32; -module.exports.MinKey = MinKey; -module.exports.MaxKey = MaxKey; -module.exports.BSONRegExp = BSONRegExp; -module.exports.Decimal128 = Decimal128; diff --git a/views/node_modules/bson/lib/bson/code.js b/views/node_modules/bson/lib/bson/code.js deleted file mode 100644 index c2984cd..0000000 --- a/views/node_modules/bson/lib/bson/code.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * A class representation of the BSON Code type. - * - * @class - * @param {(string|function)} code a string or function. - * @param {Object} [scope] an optional scope for the function. - * @return {Code} - */ -var Code = function Code(code, scope) { - if (!(this instanceof Code)) return new Code(code, scope); - this._bsontype = 'Code'; - this.code = code; - this.scope = scope; -}; - -/** - * @ignore - */ -Code.prototype.toJSON = function() { - return { scope: this.scope, code: this.code }; -}; - -module.exports = Code; -module.exports.Code = Code; diff --git a/views/node_modules/bson/lib/bson/db_ref.js b/views/node_modules/bson/lib/bson/db_ref.js deleted file mode 100644 index f95795b..0000000 --- a/views/node_modules/bson/lib/bson/db_ref.js +++ /dev/null @@ -1,32 +0,0 @@ -/** - * A class representation of the BSON DBRef type. - * - * @class - * @param {string} namespace the collection name. - * @param {ObjectID} oid the reference ObjectID. - * @param {string} [db] optional db name, if omitted the reference is local to the current db. - * @return {DBRef} - */ -function DBRef(namespace, oid, db) { - if (!(this instanceof DBRef)) return new DBRef(namespace, oid, db); - - this._bsontype = 'DBRef'; - this.namespace = namespace; - this.oid = oid; - this.db = db; -} - -/** - * @ignore - * @api private - */ -DBRef.prototype.toJSON = function() { - return { - $ref: this.namespace, - $id: this.oid, - $db: this.db == null ? '' : this.db - }; -}; - -module.exports = DBRef; -module.exports.DBRef = DBRef; diff --git a/views/node_modules/bson/lib/bson/decimal128.js b/views/node_modules/bson/lib/bson/decimal128.js deleted file mode 100644 index 924513f..0000000 --- a/views/node_modules/bson/lib/bson/decimal128.js +++ /dev/null @@ -1,820 +0,0 @@ -'use strict'; - -var Long = require('./long'); - -var PARSE_STRING_REGEXP = /^(\+|-)?(\d+|(\d*\.\d*))?(E|e)?([-+])?(\d+)?$/; -var PARSE_INF_REGEXP = /^(\+|-)?(Infinity|inf)$/i; -var PARSE_NAN_REGEXP = /^(\+|-)?NaN$/i; - -var EXPONENT_MAX = 6111; -var EXPONENT_MIN = -6176; -var EXPONENT_BIAS = 6176; -var MAX_DIGITS = 34; - -// Nan value bits as 32 bit values (due to lack of longs) -var NAN_BUFFER = [ - 0x7c, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00 -].reverse(); -// Infinity value bits 32 bit values (due to lack of longs) -var INF_NEGATIVE_BUFFER = [ - 0xf8, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00 -].reverse(); -var INF_POSITIVE_BUFFER = [ - 0x78, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00 -].reverse(); - -var EXPONENT_REGEX = /^([-+])?(\d+)?$/; - -var utils = require('./parser/utils'); - -// Detect if the value is a digit -var isDigit = function(value) { - return !isNaN(parseInt(value, 10)); -}; - -// Divide two uint128 values -var divideu128 = function(value) { - var DIVISOR = Long.fromNumber(1000 * 1000 * 1000); - var _rem = Long.fromNumber(0); - var i = 0; - - if (!value.parts[0] && !value.parts[1] && !value.parts[2] && !value.parts[3]) { - return { quotient: value, rem: _rem }; - } - - for (i = 0; i <= 3; i++) { - // Adjust remainder to match value of next dividend - _rem = _rem.shiftLeft(32); - // Add the divided to _rem - _rem = _rem.add(new Long(value.parts[i], 0)); - value.parts[i] = _rem.div(DIVISOR).low_; - _rem = _rem.modulo(DIVISOR); - } - - return { quotient: value, rem: _rem }; -}; - -// Multiply two Long values and return the 128 bit value -var multiply64x2 = function(left, right) { - if (!left && !right) { - return { high: Long.fromNumber(0), low: Long.fromNumber(0) }; - } - - var leftHigh = left.shiftRightUnsigned(32); - var leftLow = new Long(left.getLowBits(), 0); - var rightHigh = right.shiftRightUnsigned(32); - var rightLow = new Long(right.getLowBits(), 0); - - var productHigh = leftHigh.multiply(rightHigh); - var productMid = leftHigh.multiply(rightLow); - var productMid2 = leftLow.multiply(rightHigh); - var productLow = leftLow.multiply(rightLow); - - productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); - productMid = new Long(productMid.getLowBits(), 0) - .add(productMid2) - .add(productLow.shiftRightUnsigned(32)); - - productHigh = productHigh.add(productMid.shiftRightUnsigned(32)); - productLow = productMid.shiftLeft(32).add(new Long(productLow.getLowBits(), 0)); - - // Return the 128 bit result - return { high: productHigh, low: productLow }; -}; - -var lessThan = function(left, right) { - // Make values unsigned - var uhleft = left.high_ >>> 0; - var uhright = right.high_ >>> 0; - - // Compare high bits first - if (uhleft < uhright) { - return true; - } else if (uhleft === uhright) { - var ulleft = left.low_ >>> 0; - var ulright = right.low_ >>> 0; - if (ulleft < ulright) return true; - } - - return false; -}; - -// var longtoHex = function(value) { -// var buffer = utils.allocBuffer(8); -// var index = 0; -// // Encode the low 64 bits of the decimal -// // Encode low bits -// buffer[index++] = value.low_ & 0xff; -// buffer[index++] = (value.low_ >> 8) & 0xff; -// buffer[index++] = (value.low_ >> 16) & 0xff; -// buffer[index++] = (value.low_ >> 24) & 0xff; -// // Encode high bits -// buffer[index++] = value.high_ & 0xff; -// buffer[index++] = (value.high_ >> 8) & 0xff; -// buffer[index++] = (value.high_ >> 16) & 0xff; -// buffer[index++] = (value.high_ >> 24) & 0xff; -// return buffer.reverse().toString('hex'); -// }; - -// var int32toHex = function(value) { -// var buffer = utils.allocBuffer(4); -// var index = 0; -// // Encode the low 64 bits of the decimal -// // Encode low bits -// buffer[index++] = value & 0xff; -// buffer[index++] = (value >> 8) & 0xff; -// buffer[index++] = (value >> 16) & 0xff; -// buffer[index++] = (value >> 24) & 0xff; -// return buffer.reverse().toString('hex'); -// }; - -/** - * A class representation of the BSON Decimal128 type. - * - * @class - * @param {Buffer} bytes a buffer containing the raw Decimal128 bytes. - * @return {Double} - */ -var Decimal128 = function(bytes) { - this._bsontype = 'Decimal128'; - this.bytes = bytes; -}; - -/** - * Create a Decimal128 instance from a string representation - * - * @method - * @param {string} string a numeric string representation. - * @return {Decimal128} returns a Decimal128 instance. - */ -Decimal128.fromString = function(string) { - // Parse state tracking - var isNegative = false; - var sawRadix = false; - var foundNonZero = false; - - // Total number of significant digits (no leading or trailing zero) - var significantDigits = 0; - // Total number of significand digits read - var nDigitsRead = 0; - // Total number of digits (no leading zeros) - var nDigits = 0; - // The number of the digits after radix - var radixPosition = 0; - // The index of the first non-zero in *str* - var firstNonZero = 0; - - // Digits Array - var digits = [0]; - // The number of digits in digits - var nDigitsStored = 0; - // Insertion pointer for digits - var digitsInsert = 0; - // The index of the first non-zero digit - var firstDigit = 0; - // The index of the last digit - var lastDigit = 0; - - // Exponent - var exponent = 0; - // loop index over array - var i = 0; - // The high 17 digits of the significand - var significandHigh = [0, 0]; - // The low 17 digits of the significand - var significandLow = [0, 0]; - // The biased exponent - var biasedExponent = 0; - - // Read index - var index = 0; - - // Trim the string - string = string.trim(); - - // Naively prevent against REDOS attacks. - // TODO: implementing a custom parsing for this, or refactoring the regex would yield - // further gains. - if (string.length >= 7000) { - throw new Error('' + string + ' not a valid Decimal128 string'); - } - - // Results - var stringMatch = string.match(PARSE_STRING_REGEXP); - var infMatch = string.match(PARSE_INF_REGEXP); - var nanMatch = string.match(PARSE_NAN_REGEXP); - - // Validate the string - if ((!stringMatch && !infMatch && !nanMatch) || string.length === 0) { - throw new Error('' + string + ' not a valid Decimal128 string'); - } - - // Check if we have an illegal exponent format - if (stringMatch && stringMatch[4] && stringMatch[2] === undefined) { - throw new Error('' + string + ' not a valid Decimal128 string'); - } - - // Get the negative or positive sign - if (string[index] === '+' || string[index] === '-') { - isNegative = string[index++] === '-'; - } - - // Check if user passed Infinity or NaN - if (!isDigit(string[index]) && string[index] !== '.') { - if (string[index] === 'i' || string[index] === 'I') { - return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); - } else if (string[index] === 'N') { - return new Decimal128(utils.toBuffer(NAN_BUFFER)); - } - } - - // Read all the digits - while (isDigit(string[index]) || string[index] === '.') { - if (string[index] === '.') { - if (sawRadix) { - return new Decimal128(utils.toBuffer(NAN_BUFFER)); - } - - sawRadix = true; - index = index + 1; - continue; - } - - if (nDigitsStored < 34) { - if (string[index] !== '0' || foundNonZero) { - if (!foundNonZero) { - firstNonZero = nDigitsRead; - } - - foundNonZero = true; - - // Only store 34 digits - digits[digitsInsert++] = parseInt(string[index], 10); - nDigitsStored = nDigitsStored + 1; - } - } - - if (foundNonZero) { - nDigits = nDigits + 1; - } - - if (sawRadix) { - radixPosition = radixPosition + 1; - } - - nDigitsRead = nDigitsRead + 1; - index = index + 1; - } - - if (sawRadix && !nDigitsRead) { - throw new Error('' + string + ' not a valid Decimal128 string'); - } - - // Read exponent if exists - if (string[index] === 'e' || string[index] === 'E') { - // Read exponent digits - var match = string.substr(++index).match(EXPONENT_REGEX); - - // No digits read - if (!match || !match[2]) { - return new Decimal128(utils.toBuffer(NAN_BUFFER)); - } - - // Get exponent - exponent = parseInt(match[0], 10); - - // Adjust the index - index = index + match[0].length; - } - - // Return not a number - if (string[index]) { - return new Decimal128(utils.toBuffer(NAN_BUFFER)); - } - - // Done reading input - // Find first non-zero digit in digits - firstDigit = 0; - - if (!nDigitsStored) { - firstDigit = 0; - lastDigit = 0; - digits[0] = 0; - nDigits = 1; - nDigitsStored = 1; - significantDigits = 0; - } else { - lastDigit = nDigitsStored - 1; - significantDigits = nDigits; - - if (exponent !== 0 && significantDigits !== 1) { - while (string[firstNonZero + significantDigits - 1] === '0') { - significantDigits = significantDigits - 1; - } - } - } - - // Normalization of exponent - // Correct exponent based on radix position, and shift significand as needed - // to represent user input - - // Overflow prevention - if (exponent <= radixPosition && radixPosition - exponent > 1 << 14) { - exponent = EXPONENT_MIN; - } else { - exponent = exponent - radixPosition; - } - - // Attempt to normalize the exponent - while (exponent > EXPONENT_MAX) { - // Shift exponent to significand and decrease - lastDigit = lastDigit + 1; - - if (lastDigit - firstDigit > MAX_DIGITS) { - // Check if we have a zero then just hard clamp, otherwise fail - var digitsString = digits.join(''); - if (digitsString.match(/^0+$/)) { - exponent = EXPONENT_MAX; - break; - } else { - return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); - } - } - - exponent = exponent - 1; - } - - while (exponent < EXPONENT_MIN || nDigitsStored < nDigits) { - // Shift last digit - if (lastDigit === 0) { - exponent = EXPONENT_MIN; - significantDigits = 0; - break; - } - - if (nDigitsStored < nDigits) { - // adjust to match digits not stored - nDigits = nDigits - 1; - } else { - // adjust to round - lastDigit = lastDigit - 1; - } - - if (exponent < EXPONENT_MAX) { - exponent = exponent + 1; - } else { - // Check if we have a zero then just hard clamp, otherwise fail - digitsString = digits.join(''); - if (digitsString.match(/^0+$/)) { - exponent = EXPONENT_MAX; - break; - } else { - return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)); - } - } - } - - // Round - // We've normalized the exponent, but might still need to round. - if (lastDigit - firstDigit + 1 < significantDigits && string[significantDigits] !== '0') { - var endOfString = nDigitsRead; - - // If we have seen a radix point, 'string' is 1 longer than we have - // documented with ndigits_read, so inc the position of the first nonzero - // digit and the position that digits are read to. - if (sawRadix && exponent === EXPONENT_MIN) { - firstNonZero = firstNonZero + 1; - endOfString = endOfString + 1; - } - - var roundDigit = parseInt(string[firstNonZero + lastDigit + 1], 10); - var roundBit = 0; - - if (roundDigit >= 5) { - roundBit = 1; - - if (roundDigit === 5) { - roundBit = digits[lastDigit] % 2 === 1; - - for (i = firstNonZero + lastDigit + 2; i < endOfString; i++) { - if (parseInt(string[i], 10)) { - roundBit = 1; - break; - } - } - } - } - - if (roundBit) { - var dIdx = lastDigit; - - for (; dIdx >= 0; dIdx--) { - if (++digits[dIdx] > 9) { - digits[dIdx] = 0; - - // overflowed most significant digit - if (dIdx === 0) { - if (exponent < EXPONENT_MAX) { - exponent = exponent + 1; - digits[dIdx] = 1; - } else { - return new Decimal128( - utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER) - ); - } - } - } else { - break; - } - } - } - } - - // Encode significand - // The high 17 digits of the significand - significandHigh = Long.fromNumber(0); - // The low 17 digits of the significand - significandLow = Long.fromNumber(0); - - // read a zero - if (significantDigits === 0) { - significandHigh = Long.fromNumber(0); - significandLow = Long.fromNumber(0); - } else if (lastDigit - firstDigit < 17) { - dIdx = firstDigit; - significandLow = Long.fromNumber(digits[dIdx++]); - significandHigh = new Long(0, 0); - - for (; dIdx <= lastDigit; dIdx++) { - significandLow = significandLow.multiply(Long.fromNumber(10)); - significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); - } - } else { - dIdx = firstDigit; - significandHigh = Long.fromNumber(digits[dIdx++]); - - for (; dIdx <= lastDigit - 17; dIdx++) { - significandHigh = significandHigh.multiply(Long.fromNumber(10)); - significandHigh = significandHigh.add(Long.fromNumber(digits[dIdx])); - } - - significandLow = Long.fromNumber(digits[dIdx++]); - - for (; dIdx <= lastDigit; dIdx++) { - significandLow = significandLow.multiply(Long.fromNumber(10)); - significandLow = significandLow.add(Long.fromNumber(digits[dIdx])); - } - } - - var significand = multiply64x2(significandHigh, Long.fromString('100000000000000000')); - - significand.low = significand.low.add(significandLow); - - if (lessThan(significand.low, significandLow)) { - significand.high = significand.high.add(Long.fromNumber(1)); - } - - // Biased exponent - biasedExponent = exponent + EXPONENT_BIAS; - var dec = { low: Long.fromNumber(0), high: Long.fromNumber(0) }; - - // Encode combination, exponent, and significand. - if ( - significand.high - .shiftRightUnsigned(49) - .and(Long.fromNumber(1)) - .equals(Long.fromNumber) - ) { - // Encode '11' into bits 1 to 3 - dec.high = dec.high.or(Long.fromNumber(0x3).shiftLeft(61)); - dec.high = dec.high.or( - Long.fromNumber(biasedExponent).and(Long.fromNumber(0x3fff).shiftLeft(47)) - ); - dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x7fffffffffff))); - } else { - dec.high = dec.high.or(Long.fromNumber(biasedExponent & 0x3fff).shiftLeft(49)); - dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x1ffffffffffff))); - } - - dec.low = significand.low; - - // Encode sign - if (isNegative) { - dec.high = dec.high.or(Long.fromString('9223372036854775808')); - } - - // Encode into a buffer - var buffer = utils.allocBuffer(16); - index = 0; - - // Encode the low 64 bits of the decimal - // Encode low bits - buffer[index++] = dec.low.low_ & 0xff; - buffer[index++] = (dec.low.low_ >> 8) & 0xff; - buffer[index++] = (dec.low.low_ >> 16) & 0xff; - buffer[index++] = (dec.low.low_ >> 24) & 0xff; - // Encode high bits - buffer[index++] = dec.low.high_ & 0xff; - buffer[index++] = (dec.low.high_ >> 8) & 0xff; - buffer[index++] = (dec.low.high_ >> 16) & 0xff; - buffer[index++] = (dec.low.high_ >> 24) & 0xff; - - // Encode the high 64 bits of the decimal - // Encode low bits - buffer[index++] = dec.high.low_ & 0xff; - buffer[index++] = (dec.high.low_ >> 8) & 0xff; - buffer[index++] = (dec.high.low_ >> 16) & 0xff; - buffer[index++] = (dec.high.low_ >> 24) & 0xff; - // Encode high bits - buffer[index++] = dec.high.high_ & 0xff; - buffer[index++] = (dec.high.high_ >> 8) & 0xff; - buffer[index++] = (dec.high.high_ >> 16) & 0xff; - buffer[index++] = (dec.high.high_ >> 24) & 0xff; - - // Return the new Decimal128 - return new Decimal128(buffer); -}; - -// Extract least significant 5 bits -var COMBINATION_MASK = 0x1f; -// Extract least significant 14 bits -var EXPONENT_MASK = 0x3fff; -// Value of combination field for Inf -var COMBINATION_INFINITY = 30; -// Value of combination field for NaN -var COMBINATION_NAN = 31; -// Value of combination field for NaN -// var COMBINATION_SNAN = 32; -// decimal128 exponent bias -EXPONENT_BIAS = 6176; - -/** - * Create a string representation of the raw Decimal128 value - * - * @method - * @return {string} returns a Decimal128 string representation. - */ -Decimal128.prototype.toString = function() { - // Note: bits in this routine are referred to starting at 0, - // from the sign bit, towards the coefficient. - - // bits 0 - 31 - var high; - // bits 32 - 63 - var midh; - // bits 64 - 95 - var midl; - // bits 96 - 127 - var low; - // bits 1 - 5 - var combination; - // decoded biased exponent (14 bits) - var biased_exponent; - // the number of significand digits - var significand_digits = 0; - // the base-10 digits in the significand - var significand = new Array(36); - for (var i = 0; i < significand.length; i++) significand[i] = 0; - // read pointer into significand - var index = 0; - - // unbiased exponent - var exponent; - // the exponent if scientific notation is used - var scientific_exponent; - - // true if the number is zero - var is_zero = false; - - // the most signifcant significand bits (50-46) - var significand_msb; - // temporary storage for significand decoding - var significand128 = { parts: new Array(4) }; - // indexing variables - i; - var j, k; - - // Output string - var string = []; - - // Unpack index - index = 0; - - // Buffer reference - var buffer = this.bytes; - - // Unpack the low 64bits into a long - low = - buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); - midl = - buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); - - // Unpack the high 64bits into a long - midh = - buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); - high = - buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); - - // Unpack index - index = 0; - - // Create the state of the decimal - var dec = { - low: new Long(low, midl), - high: new Long(midh, high) - }; - - if (dec.high.lessThan(Long.ZERO)) { - string.push('-'); - } - - // Decode combination field and exponent - combination = (high >> 26) & COMBINATION_MASK; - - if (combination >> 3 === 3) { - // Check for 'special' values - if (combination === COMBINATION_INFINITY) { - return string.join('') + 'Infinity'; - } else if (combination === COMBINATION_NAN) { - return 'NaN'; - } else { - biased_exponent = (high >> 15) & EXPONENT_MASK; - significand_msb = 0x08 + ((high >> 14) & 0x01); - } - } else { - significand_msb = (high >> 14) & 0x07; - biased_exponent = (high >> 17) & EXPONENT_MASK; - } - - exponent = biased_exponent - EXPONENT_BIAS; - - // Create string of significand digits - - // Convert the 114-bit binary number represented by - // (significand_high, significand_low) to at most 34 decimal - // digits through modulo and division. - significand128.parts[0] = (high & 0x3fff) + ((significand_msb & 0xf) << 14); - significand128.parts[1] = midh; - significand128.parts[2] = midl; - significand128.parts[3] = low; - - if ( - significand128.parts[0] === 0 && - significand128.parts[1] === 0 && - significand128.parts[2] === 0 && - significand128.parts[3] === 0 - ) { - is_zero = true; - } else { - for (k = 3; k >= 0; k--) { - var least_digits = 0; - // Peform the divide - var result = divideu128(significand128); - significand128 = result.quotient; - least_digits = result.rem.low_; - - // We now have the 9 least significant digits (in base 2). - // Convert and output to string. - if (!least_digits) continue; - - for (j = 8; j >= 0; j--) { - // significand[k * 9 + j] = Math.round(least_digits % 10); - significand[k * 9 + j] = least_digits % 10; - // least_digits = Math.round(least_digits / 10); - least_digits = Math.floor(least_digits / 10); - } - } - } - - // Output format options: - // Scientific - [-]d.dddE(+/-)dd or [-]dE(+/-)dd - // Regular - ddd.ddd - - if (is_zero) { - significand_digits = 1; - significand[index] = 0; - } else { - significand_digits = 36; - i = 0; - - while (!significand[index]) { - i++; - significand_digits = significand_digits - 1; - index = index + 1; - } - } - - scientific_exponent = significand_digits - 1 + exponent; - - // The scientific exponent checks are dictated by the string conversion - // specification and are somewhat arbitrary cutoffs. - // - // We must check exponent > 0, because if this is the case, the number - // has trailing zeros. However, we *cannot* output these trailing zeros, - // because doing so would change the precision of the value, and would - // change stored data if the string converted number is round tripped. - - if (scientific_exponent >= 34 || scientific_exponent <= -7 || exponent > 0) { - // Scientific format - string.push(significand[index++]); - significand_digits = significand_digits - 1; - - if (significand_digits) { - string.push('.'); - } - - for (i = 0; i < significand_digits; i++) { - string.push(significand[index++]); - } - - // Exponent - string.push('E'); - if (scientific_exponent > 0) { - string.push('+' + scientific_exponent); - } else { - string.push(scientific_exponent); - } - } else { - // Regular format with no decimal place - if (exponent >= 0) { - for (i = 0; i < significand_digits; i++) { - string.push(significand[index++]); - } - } else { - var radix_position = significand_digits + exponent; - - // non-zero digits before radix - if (radix_position > 0) { - for (i = 0; i < radix_position; i++) { - string.push(significand[index++]); - } - } else { - string.push('0'); - } - - string.push('.'); - // add leading zeros after radix - while (radix_position++ < 0) { - string.push('0'); - } - - for (i = 0; i < significand_digits - Math.max(radix_position - 1, 0); i++) { - string.push(significand[index++]); - } - } - } - - return string.join(''); -}; - -Decimal128.prototype.toJSON = function() { - return { $numberDecimal: this.toString() }; -}; - -module.exports = Decimal128; -module.exports.Decimal128 = Decimal128; diff --git a/views/node_modules/bson/lib/bson/double.js b/views/node_modules/bson/lib/bson/double.js deleted file mode 100644 index 523c21f..0000000 --- a/views/node_modules/bson/lib/bson/double.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * A class representation of the BSON Double type. - * - * @class - * @param {number} value the number we want to represent as a double. - * @return {Double} - */ -function Double(value) { - if (!(this instanceof Double)) return new Double(value); - - this._bsontype = 'Double'; - this.value = value; -} - -/** - * Access the number value. - * - * @method - * @return {number} returns the wrapped double number. - */ -Double.prototype.valueOf = function() { - return this.value; -}; - -/** - * @ignore - */ -Double.prototype.toJSON = function() { - return this.value; -}; - -module.exports = Double; -module.exports.Double = Double; diff --git a/views/node_modules/bson/lib/bson/float_parser.js b/views/node_modules/bson/lib/bson/float_parser.js deleted file mode 100644 index 0054a2f..0000000 --- a/views/node_modules/bson/lib/bson/float_parser.js +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (c) 2008, Fair Oaks Labs, Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistributions in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * Neither the name of Fair Oaks Labs, Inc. nor the names of its contributors -// may be used to endorse or promote products derived from this software -// without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. -// -// -// Modifications to writeIEEE754 to support negative zeroes made by Brian White - -var readIEEE754 = function(buffer, offset, endian, mLen, nBytes) { - var e, - m, - bBE = endian === 'big', - eLen = nBytes * 8 - mLen - 1, - eMax = (1 << eLen) - 1, - eBias = eMax >> 1, - nBits = -7, - i = bBE ? 0 : nBytes - 1, - d = bBE ? 1 : -1, - s = buffer[offset + i]; - - i += d; - - e = s & ((1 << -nBits) - 1); - s >>= -nBits; - nBits += eLen; - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8); - - m = e & ((1 << -nBits) - 1); - e >>= -nBits; - nBits += mLen; - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8); - - if (e === 0) { - e = 1 - eBias; - } else if (e === eMax) { - return m ? NaN : (s ? -1 : 1) * Infinity; - } else { - m = m + Math.pow(2, mLen); - e = e - eBias; - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen); -}; - -var writeIEEE754 = function(buffer, value, offset, endian, mLen, nBytes) { - var e, - m, - c, - bBE = endian === 'big', - eLen = nBytes * 8 - mLen - 1, - eMax = (1 << eLen) - 1, - eBias = eMax >> 1, - rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0, - i = bBE ? nBytes - 1 : 0, - d = bBE ? -1 : 1, - s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; - - value = Math.abs(value); - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0; - e = eMax; - } else { - e = Math.floor(Math.log(value) / Math.LN2); - if (value * (c = Math.pow(2, -e)) < 1) { - e--; - c *= 2; - } - if (e + eBias >= 1) { - value += rt / c; - } else { - value += rt * Math.pow(2, 1 - eBias); - } - if (value * c >= 2) { - e++; - c /= 2; - } - - if (e + eBias >= eMax) { - m = 0; - e = eMax; - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen); - e = e + eBias; - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); - e = 0; - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8); - - e = (e << mLen) | m; - eLen += mLen; - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8); - - buffer[offset + i - d] |= s * 128; -}; - -exports.readIEEE754 = readIEEE754; -exports.writeIEEE754 = writeIEEE754; diff --git a/views/node_modules/bson/lib/bson/int_32.js b/views/node_modules/bson/lib/bson/int_32.js deleted file mode 100644 index 85dbdec..0000000 --- a/views/node_modules/bson/lib/bson/int_32.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * A class representation of a BSON Int32 type. - * - * @class - * @param {number} value the number we want to represent as an int32. - * @return {Int32} - */ -var Int32 = function(value) { - if (!(this instanceof Int32)) return new Int32(value); - - this._bsontype = 'Int32'; - this.value = value; -}; - -/** - * Access the number value. - * - * @method - * @return {number} returns the wrapped int32 number. - */ -Int32.prototype.valueOf = function() { - return this.value; -}; - -/** - * @ignore - */ -Int32.prototype.toJSON = function() { - return this.value; -}; - -module.exports = Int32; -module.exports.Int32 = Int32; diff --git a/views/node_modules/bson/lib/bson/long.js b/views/node_modules/bson/lib/bson/long.js deleted file mode 100644 index 551d1a6..0000000 --- a/views/node_modules/bson/lib/bson/long.js +++ /dev/null @@ -1,865 +0,0 @@ -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// Copyright 2009 Google Inc. All Rights Reserved - -/** - * Defines a Long class for representing a 64-bit two's-complement - * integer value, which faithfully simulates the behavior of a Java "Long". This - * implementation is derived from LongLib in GWT. - * - * Constructs a 64-bit two's-complement integer, given its low and high 32-bit - * values as *signed* integers. See the from* functions below for more - * convenient ways of constructing Longs. - * - * The internal representation of a Long is the two given signed, 32-bit values. - * We use 32-bit pieces because these are the size of integers on which - * Javascript performs bit-operations. For operations like addition and - * multiplication, we split each number into 16-bit pieces, which can easily be - * multiplied within Javascript's floating-point representation without overflow - * or change in sign. - * - * In the algorithms below, we frequently reduce the negative case to the - * positive case by negating the input(s) and then post-processing the result. - * Note that we must ALWAYS check specially whether those values are MIN_VALUE - * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as - * a positive number, it overflows back into a negative). Not handling this - * case would often result in infinite recursion. - * - * @class - * @param {number} low the low (signed) 32 bits of the Long. - * @param {number} high the high (signed) 32 bits of the Long. - * @return {Long} - */ -function Long(low, high) { - if (!(this instanceof Long)) return new Long(low, high); - - this._bsontype = 'Long'; - /** - * @type {number} - * @ignore - */ - this.low_ = low | 0; // force into 32 signed bits. - - /** - * @type {number} - * @ignore - */ - this.high_ = high | 0; // force into 32 signed bits. -} - -/** - * Return the int value. - * - * @method - * @return {number} the value, assuming it is a 32-bit integer. - */ -Long.prototype.toInt = function() { - return this.low_; -}; - -/** - * Return the Number value. - * - * @method - * @return {number} the closest floating-point representation to this value. - */ -Long.prototype.toNumber = function() { - return this.high_ * Long.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); -}; - -/** Converts the Long to a BigInt (arbitrary precision). */ -Long.prototype.toBigInt = function () { - return BigInt(this.toString()); -} - -/** - * Return the JSON value. - * - * @method - * @return {string} the JSON representation. - */ -Long.prototype.toJSON = function() { - return this.toString(); -}; - -/** - * Return the String value. - * - * @method - * @param {number} [opt_radix] the radix in which the text should be written. - * @return {string} the textual representation of this value. - */ -Long.prototype.toString = function(opt_radix) { - var radix = opt_radix || 10; - if (radix < 2 || 36 < radix) { - throw Error('radix out of range: ' + radix); - } - - if (this.isZero()) { - return '0'; - } - - if (this.isNegative()) { - if (this.equals(Long.MIN_VALUE)) { - // We need to change the Long value before it can be negated, so we remove - // the bottom-most digit in this base and then recurse to do the rest. - var radixLong = Long.fromNumber(radix); - var div = this.div(radixLong); - var rem = div.multiply(radixLong).subtract(this); - return div.toString(radix) + rem.toInt().toString(radix); - } else { - return '-' + this.negate().toString(radix); - } - } - - // Do several (6) digits each time through the loop, so as to - // minimize the calls to the very expensive emulated div. - var radixToPower = Long.fromNumber(Math.pow(radix, 6)); - - rem = this; - var result = ''; - - while (!rem.isZero()) { - var remDiv = rem.div(radixToPower); - var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); - var digits = intval.toString(radix); - - rem = remDiv; - if (rem.isZero()) { - return digits + result; - } else { - while (digits.length < 6) { - digits = '0' + digits; - } - result = '' + digits + result; - } - } -}; - -/** - * Return the high 32-bits value. - * - * @method - * @return {number} the high 32-bits as a signed value. - */ -Long.prototype.getHighBits = function() { - return this.high_; -}; - -/** - * Return the low 32-bits value. - * - * @method - * @return {number} the low 32-bits as a signed value. - */ -Long.prototype.getLowBits = function() { - return this.low_; -}; - -/** - * Return the low unsigned 32-bits value. - * - * @method - * @return {number} the low 32-bits as an unsigned value. - */ -Long.prototype.getLowBitsUnsigned = function() { - return this.low_ >= 0 ? this.low_ : Long.TWO_PWR_32_DBL_ + this.low_; -}; - -/** - * Returns the number of bits needed to represent the absolute value of this Long. - * - * @method - * @return {number} Returns the number of bits needed to represent the absolute value of this Long. - */ -Long.prototype.getNumBitsAbs = function() { - if (this.isNegative()) { - if (this.equals(Long.MIN_VALUE)) { - return 64; - } else { - return this.negate().getNumBitsAbs(); - } - } else { - var val = this.high_ !== 0 ? this.high_ : this.low_; - for (var bit = 31; bit > 0; bit--) { - if ((val & (1 << bit)) !== 0) { - break; - } - } - return this.high_ !== 0 ? bit + 33 : bit + 1; - } -}; - -/** - * Return whether this value is zero. - * - * @method - * @return {boolean} whether this value is zero. - */ -Long.prototype.isZero = function() { - return this.high_ === 0 && this.low_ === 0; -}; - -/** - * Return whether this value is negative. - * - * @method - * @return {boolean} whether this value is negative. - */ -Long.prototype.isNegative = function() { - return this.high_ < 0; -}; - -/** - * Return whether this value is odd. - * - * @method - * @return {boolean} whether this value is odd. - */ -Long.prototype.isOdd = function() { - return (this.low_ & 1) === 1; -}; - -/** - * Return whether this Long equals the other - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long equals the other - */ -Long.prototype.equals = function(other) { - return this.high_ === other.high_ && this.low_ === other.low_; -}; - -/** - * Return whether this Long does not equal the other. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long does not equal the other. - */ -Long.prototype.notEquals = function(other) { - return this.high_ !== other.high_ || this.low_ !== other.low_; -}; - -/** - * Return whether this Long is less than the other. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long is less than the other. - */ -Long.prototype.lessThan = function(other) { - return this.compare(other) < 0; -}; - -/** - * Return whether this Long is less than or equal to the other. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long is less than or equal to the other. - */ -Long.prototype.lessThanOrEqual = function(other) { - return this.compare(other) <= 0; -}; - -/** - * Return whether this Long is greater than the other. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long is greater than the other. - */ -Long.prototype.greaterThan = function(other) { - return this.compare(other) > 0; -}; - -/** - * Return whether this Long is greater than or equal to the other. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} whether this Long is greater than or equal to the other. - */ -Long.prototype.greaterThanOrEqual = function(other) { - return this.compare(other) >= 0; -}; - -/** - * Compares this Long with the given one. - * - * @method - * @param {Long} other Long to compare against. - * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. - */ -Long.prototype.compare = function(other) { - if (this.equals(other)) { - return 0; - } - - var thisNeg = this.isNegative(); - var otherNeg = other.isNegative(); - if (thisNeg && !otherNeg) { - return -1; - } - if (!thisNeg && otherNeg) { - return 1; - } - - // at this point, the signs are the same, so subtraction will not overflow - if (this.subtract(other).isNegative()) { - return -1; - } else { - return 1; - } -}; - -/** - * The negation of this value. - * - * @method - * @return {Long} the negation of this value. - */ -Long.prototype.negate = function() { - if (this.equals(Long.MIN_VALUE)) { - return Long.MIN_VALUE; - } else { - return this.not().add(Long.ONE); - } -}; - -/** - * Returns the sum of this and the given Long. - * - * @method - * @param {Long} other Long to add to this one. - * @return {Long} the sum of this and the given Long. - */ -Long.prototype.add = function(other) { - // Divide each number into 4 chunks of 16 bits, and then sum the chunks. - - var a48 = this.high_ >>> 16; - var a32 = this.high_ & 0xffff; - var a16 = this.low_ >>> 16; - var a00 = this.low_ & 0xffff; - - var b48 = other.high_ >>> 16; - var b32 = other.high_ & 0xffff; - var b16 = other.low_ >>> 16; - var b00 = other.low_ & 0xffff; - - var c48 = 0, - c32 = 0, - c16 = 0, - c00 = 0; - c00 += a00 + b00; - c16 += c00 >>> 16; - c00 &= 0xffff; - c16 += a16 + b16; - c32 += c16 >>> 16; - c16 &= 0xffff; - c32 += a32 + b32; - c48 += c32 >>> 16; - c32 &= 0xffff; - c48 += a48 + b48; - c48 &= 0xffff; - return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); -}; - -/** - * Returns the difference of this and the given Long. - * - * @method - * @param {Long} other Long to subtract from this. - * @return {Long} the difference of this and the given Long. - */ -Long.prototype.subtract = function(other) { - return this.add(other.negate()); -}; - -/** - * Returns the product of this and the given Long. - * - * @method - * @param {Long} other Long to multiply with this. - * @return {Long} the product of this and the other. - */ -Long.prototype.multiply = function(other) { - if (this.isZero()) { - return Long.ZERO; - } else if (other.isZero()) { - return Long.ZERO; - } - - if (this.equals(Long.MIN_VALUE)) { - return other.isOdd() ? Long.MIN_VALUE : Long.ZERO; - } else if (other.equals(Long.MIN_VALUE)) { - return this.isOdd() ? Long.MIN_VALUE : Long.ZERO; - } - - if (this.isNegative()) { - if (other.isNegative()) { - return this.negate().multiply(other.negate()); - } else { - return this.negate() - .multiply(other) - .negate(); - } - } else if (other.isNegative()) { - return this.multiply(other.negate()).negate(); - } - - // If both Longs are small, use float multiplication - if (this.lessThan(Long.TWO_PWR_24_) && other.lessThan(Long.TWO_PWR_24_)) { - return Long.fromNumber(this.toNumber() * other.toNumber()); - } - - // Divide each Long into 4 chunks of 16 bits, and then add up 4x4 products. - // We can skip products that would overflow. - - var a48 = this.high_ >>> 16; - var a32 = this.high_ & 0xffff; - var a16 = this.low_ >>> 16; - var a00 = this.low_ & 0xffff; - - var b48 = other.high_ >>> 16; - var b32 = other.high_ & 0xffff; - var b16 = other.low_ >>> 16; - var b00 = other.low_ & 0xffff; - - var c48 = 0, - c32 = 0, - c16 = 0, - c00 = 0; - c00 += a00 * b00; - c16 += c00 >>> 16; - c00 &= 0xffff; - c16 += a16 * b00; - c32 += c16 >>> 16; - c16 &= 0xffff; - c16 += a00 * b16; - c32 += c16 >>> 16; - c16 &= 0xffff; - c32 += a32 * b00; - c48 += c32 >>> 16; - c32 &= 0xffff; - c32 += a16 * b16; - c48 += c32 >>> 16; - c32 &= 0xffff; - c32 += a00 * b32; - c48 += c32 >>> 16; - c32 &= 0xffff; - c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; - c48 &= 0xffff; - return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32); -}; - -/** - * Returns this Long divided by the given one. - * - * @method - * @param {Long} other Long by which to divide. - * @return {Long} this Long divided by the given one. - */ -Long.prototype.div = function(other) { - if (other.isZero()) { - throw Error('division by zero'); - } else if (this.isZero()) { - return Long.ZERO; - } - - if (this.equals(Long.MIN_VALUE)) { - if (other.equals(Long.ONE) || other.equals(Long.NEG_ONE)) { - return Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE - } else if (other.equals(Long.MIN_VALUE)) { - return Long.ONE; - } else { - // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. - var halfThis = this.shiftRight(1); - var approx = halfThis.div(other).shiftLeft(1); - if (approx.equals(Long.ZERO)) { - return other.isNegative() ? Long.ONE : Long.NEG_ONE; - } else { - var rem = this.subtract(other.multiply(approx)); - var result = approx.add(rem.div(other)); - return result; - } - } - } else if (other.equals(Long.MIN_VALUE)) { - return Long.ZERO; - } - - if (this.isNegative()) { - if (other.isNegative()) { - return this.negate().div(other.negate()); - } else { - return this.negate() - .div(other) - .negate(); - } - } else if (other.isNegative()) { - return this.div(other.negate()).negate(); - } - - // Repeat the following until the remainder is less than other: find a - // floating-point that approximates remainder / other *from below*, add this - // into the result, and subtract it from the remainder. It is critical that - // the approximate value is less than or equal to the real value so that the - // remainder never becomes negative. - var res = Long.ZERO; - rem = this; - while (rem.greaterThanOrEqual(other)) { - // Approximate the result of division. This may be a little greater or - // smaller than the actual value. - approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); - - // We will tweak the approximate result by changing it in the 48-th digit or - // the smallest non-fractional digit, whichever is larger. - var log2 = Math.ceil(Math.log(approx) / Math.LN2); - var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); - - // Decrease the approximation until it is smaller than the remainder. Note - // that if it is too large, the product overflows and is negative. - var approxRes = Long.fromNumber(approx); - var approxRem = approxRes.multiply(other); - while (approxRem.isNegative() || approxRem.greaterThan(rem)) { - approx -= delta; - approxRes = Long.fromNumber(approx); - approxRem = approxRes.multiply(other); - } - - // We know the answer can't be zero... and actually, zero would cause - // infinite recursion since we would make no progress. - if (approxRes.isZero()) { - approxRes = Long.ONE; - } - - res = res.add(approxRes); - rem = rem.subtract(approxRem); - } - return res; -}; - -/** - * Returns this Long modulo the given one. - * - * @method - * @param {Long} other Long by which to mod. - * @return {Long} this Long modulo the given one. - */ -Long.prototype.modulo = function(other) { - return this.subtract(this.div(other).multiply(other)); -}; - -/** - * The bitwise-NOT of this value. - * - * @method - * @return {Long} the bitwise-NOT of this value. - */ -Long.prototype.not = function() { - return Long.fromBits(~this.low_, ~this.high_); -}; - -/** - * Returns the bitwise-AND of this Long and the given one. - * - * @method - * @param {Long} other the Long with which to AND. - * @return {Long} the bitwise-AND of this and the other. - */ -Long.prototype.and = function(other) { - return Long.fromBits(this.low_ & other.low_, this.high_ & other.high_); -}; - -/** - * Returns the bitwise-OR of this Long and the given one. - * - * @method - * @param {Long} other the Long with which to OR. - * @return {Long} the bitwise-OR of this and the other. - */ -Long.prototype.or = function(other) { - return Long.fromBits(this.low_ | other.low_, this.high_ | other.high_); -}; - -/** - * Returns the bitwise-XOR of this Long and the given one. - * - * @method - * @param {Long} other the Long with which to XOR. - * @return {Long} the bitwise-XOR of this and the other. - */ -Long.prototype.xor = function(other) { - return Long.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); -}; - -/** - * Returns this Long with bits shifted to the left by the given amount. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Long} this shifted to the left by the given amount. - */ -Long.prototype.shiftLeft = function(numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var low = this.low_; - if (numBits < 32) { - var high = this.high_; - return Long.fromBits(low << numBits, (high << numBits) | (low >>> (32 - numBits))); - } else { - return Long.fromBits(0, low << (numBits - 32)); - } - } -}; - -/** - * Returns this Long with bits shifted to the right by the given amount. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Long} this shifted to the right by the given amount. - */ -Long.prototype.shiftRight = function(numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var high = this.high_; - if (numBits < 32) { - var low = this.low_; - return Long.fromBits((low >>> numBits) | (high << (32 - numBits)), high >> numBits); - } else { - return Long.fromBits(high >> (numBits - 32), high >= 0 ? 0 : -1); - } - } -}; - -/** - * Returns this Long with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Long} this shifted to the right by the given amount, with zeros placed into the new leading bits. - */ -Long.prototype.shiftRightUnsigned = function(numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var high = this.high_; - if (numBits < 32) { - var low = this.low_; - return Long.fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits); - } else if (numBits === 32) { - return Long.fromBits(high, 0); - } else { - return Long.fromBits(high >>> (numBits - 32), 0); - } - } -}; - -/** - * Returns a Long representing the given (32-bit) integer value. - * - * @method - * @param {number} value the 32-bit integer in question. - * @return {Long} the corresponding Long value. - */ -Long.fromInt = function(value) { - if (-128 <= value && value < 128) { - var cachedObj = Long.INT_CACHE_[value]; - if (cachedObj) { - return cachedObj; - } - } - - var obj = new Long(value | 0, value < 0 ? -1 : 0); - if (-128 <= value && value < 128) { - Long.INT_CACHE_[value] = obj; - } - return obj; -}; - -/** - * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned. - * - * @method - * @param {number} value the number in question. - * @return {Long} the corresponding Long value. - */ -Long.fromNumber = function(value) { - if (isNaN(value) || !isFinite(value)) { - return Long.ZERO; - } else if (value <= -Long.TWO_PWR_63_DBL_) { - return Long.MIN_VALUE; - } else if (value + 1 >= Long.TWO_PWR_63_DBL_) { - return Long.MAX_VALUE; - } else if (value < 0) { - return Long.fromNumber(-value).negate(); - } else { - return new Long((value % Long.TWO_PWR_32_DBL_) | 0, (value / Long.TWO_PWR_32_DBL_) | 0); - } -}; - -/** - * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned. - * @param {bigint} value - The number in question - * @returns {Long} The corresponding Long value - */ -Long.fromBigInt = function(value) { - return Long.fromString(value.toString(10), 10); -} - -/** - * Returns a Long representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. - * - * @method - * @param {number} lowBits the low 32-bits. - * @param {number} highBits the high 32-bits. - * @return {Long} the corresponding Long value. - */ -Long.fromBits = function(lowBits, highBits) { - return new Long(lowBits, highBits); -}; - -/** - * Returns a Long representation of the given string, written using the given radix. - * - * @method - * @param {string} str the textual representation of the Long. - * @param {number} opt_radix the radix in which the text is written. - * @return {Long} the corresponding Long value. - */ -Long.fromString = function(str, opt_radix) { - if (str.length === 0) { - throw Error('number format error: empty string'); - } - - var radix = opt_radix || 10; - if (radix < 2 || 36 < radix) { - throw Error('radix out of range: ' + radix); - } - - if (str.charAt(0) === '-') { - return Long.fromString(str.substring(1), radix).negate(); - } else if (str.indexOf('-') >= 0) { - throw Error('number format error: interior "-" character: ' + str); - } - - // Do several (8) digits each time through the loop, so as to - // minimize the calls to the very expensive emulated div. - var radixToPower = Long.fromNumber(Math.pow(radix, 8)); - - var result = Long.ZERO; - for (var i = 0; i < str.length; i += 8) { - var size = Math.min(8, str.length - i); - var value = parseInt(str.substring(i, i + size), radix); - if (size < 8) { - var power = Long.fromNumber(Math.pow(radix, size)); - result = result.multiply(power).add(Long.fromNumber(value)); - } else { - result = result.multiply(radixToPower); - result = result.add(Long.fromNumber(value)); - } - } - return result; -}; - -// NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the -// from* methods on which they depend. - -/** - * A cache of the Long representations of small integer values. - * @type {Object} - * @ignore - */ -Long.INT_CACHE_ = {}; - -// NOTE: the compiler should inline these constant values below and then remove -// these variables, so there should be no runtime penalty for these. - -/** - * Number used repeated below in calculations. This must appear before the - * first call to any from* function below. - * @type {number} - * @ignore - */ -Long.TWO_PWR_16_DBL_ = 1 << 16; - -/** - * @type {number} - * @ignore - */ -Long.TWO_PWR_24_DBL_ = 1 << 24; - -/** - * @type {number} - * @ignore - */ -Long.TWO_PWR_32_DBL_ = Long.TWO_PWR_16_DBL_ * Long.TWO_PWR_16_DBL_; - -/** - * @type {number} - * @ignore - */ -Long.TWO_PWR_31_DBL_ = Long.TWO_PWR_32_DBL_ / 2; - -/** - * @type {number} - * @ignore - */ -Long.TWO_PWR_48_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_16_DBL_; - -/** - * @type {number} - * @ignore - */ -Long.TWO_PWR_64_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_32_DBL_; - -/** - * @type {number} - * @ignore - */ -Long.TWO_PWR_63_DBL_ = Long.TWO_PWR_64_DBL_ / 2; - -/** @type {Long} */ -Long.ZERO = Long.fromInt(0); - -/** @type {Long} */ -Long.ONE = Long.fromInt(1); - -/** @type {Long} */ -Long.NEG_ONE = Long.fromInt(-1); - -/** @type {Long} */ -Long.MAX_VALUE = Long.fromBits(0xffffffff | 0, 0x7fffffff | 0); - -/** @type {Long} */ -Long.MIN_VALUE = Long.fromBits(0, 0x80000000 | 0); - -/** - * @type {Long} - * @ignore - */ -Long.TWO_PWR_24_ = Long.fromInt(1 << 24); - -/** - * Expose. - */ -module.exports = Long; -module.exports.Long = Long; diff --git a/views/node_modules/bson/lib/bson/map.js b/views/node_modules/bson/lib/bson/map.js deleted file mode 100644 index 7edb4f2..0000000 --- a/views/node_modules/bson/lib/bson/map.js +++ /dev/null @@ -1,128 +0,0 @@ -'use strict'; - -// We have an ES6 Map available, return the native instance -if (typeof global.Map !== 'undefined') { - module.exports = global.Map; - module.exports.Map = global.Map; -} else { - // We will return a polyfill - var Map = function(array) { - this._keys = []; - this._values = {}; - - for (var i = 0; i < array.length; i++) { - if (array[i] == null) continue; // skip null and undefined - var entry = array[i]; - var key = entry[0]; - var value = entry[1]; - // Add the key to the list of keys in order - this._keys.push(key); - // Add the key and value to the values dictionary with a point - // to the location in the ordered keys list - this._values[key] = { v: value, i: this._keys.length - 1 }; - } - }; - - Map.prototype.clear = function() { - this._keys = []; - this._values = {}; - }; - - Map.prototype.delete = function(key) { - var value = this._values[key]; - if (value == null) return false; - // Delete entry - delete this._values[key]; - // Remove the key from the ordered keys list - this._keys.splice(value.i, 1); - return true; - }; - - Map.prototype.entries = function() { - var self = this; - var index = 0; - - return { - next: function() { - var key = self._keys[index++]; - return { - value: key !== undefined ? [key, self._values[key].v] : undefined, - done: key !== undefined ? false : true - }; - } - }; - }; - - Map.prototype.forEach = function(callback, self) { - self = self || this; - - for (var i = 0; i < this._keys.length; i++) { - var key = this._keys[i]; - // Call the forEach callback - callback.call(self, this._values[key].v, key, self); - } - }; - - Map.prototype.get = function(key) { - return this._values[key] ? this._values[key].v : undefined; - }; - - Map.prototype.has = function(key) { - return this._values[key] != null; - }; - - Map.prototype.keys = function() { - var self = this; - var index = 0; - - return { - next: function() { - var key = self._keys[index++]; - return { - value: key !== undefined ? key : undefined, - done: key !== undefined ? false : true - }; - } - }; - }; - - Map.prototype.set = function(key, value) { - if (this._values[key]) { - this._values[key].v = value; - return this; - } - - // Add the key to the list of keys in order - this._keys.push(key); - // Add the key and value to the values dictionary with a point - // to the location in the ordered keys list - this._values[key] = { v: value, i: this._keys.length - 1 }; - return this; - }; - - Map.prototype.values = function() { - var self = this; - var index = 0; - - return { - next: function() { - var key = self._keys[index++]; - return { - value: key !== undefined ? self._values[key].v : undefined, - done: key !== undefined ? false : true - }; - } - }; - }; - - // Last ismaster - Object.defineProperty(Map.prototype, 'size', { - enumerable: true, - get: function() { - return this._keys.length; - } - }); - - module.exports = Map; - module.exports.Map = Map; -} diff --git a/views/node_modules/bson/lib/bson/max_key.js b/views/node_modules/bson/lib/bson/max_key.js deleted file mode 100644 index eebca7b..0000000 --- a/views/node_modules/bson/lib/bson/max_key.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * A class representation of the BSON MaxKey type. - * - * @class - * @return {MaxKey} A MaxKey instance - */ -function MaxKey() { - if (!(this instanceof MaxKey)) return new MaxKey(); - - this._bsontype = 'MaxKey'; -} - -module.exports = MaxKey; -module.exports.MaxKey = MaxKey; diff --git a/views/node_modules/bson/lib/bson/min_key.js b/views/node_modules/bson/lib/bson/min_key.js deleted file mode 100644 index 15f4522..0000000 --- a/views/node_modules/bson/lib/bson/min_key.js +++ /dev/null @@ -1,14 +0,0 @@ -/** - * A class representation of the BSON MinKey type. - * - * @class - * @return {MinKey} A MinKey instance - */ -function MinKey() { - if (!(this instanceof MinKey)) return new MinKey(); - - this._bsontype = 'MinKey'; -} - -module.exports = MinKey; -module.exports.MinKey = MinKey; diff --git a/views/node_modules/bson/lib/bson/objectid.js b/views/node_modules/bson/lib/bson/objectid.js deleted file mode 100644 index 0ebcc03..0000000 --- a/views/node_modules/bson/lib/bson/objectid.js +++ /dev/null @@ -1,392 +0,0 @@ -// Custom inspect property name / symbol. -var inspect = 'inspect'; - -var utils = require('./parser/utils'); - -/** - * Machine id. - * - * Create a random 3-byte value (i.e. unique for this - * process). Other drivers use a md5 of the machine id here, but - * that would mean an asyc call to gethostname, so we don't bother. - * @ignore - */ -var MACHINE_ID = parseInt(Math.random() * 0xffffff, 10); - -// Regular expression that checks for hex value -var checkForHexRegExp = new RegExp('^[0-9a-fA-F]{24}$'); - -// Check if buffer exists -try { - if (Buffer && Buffer.from) { - var hasBufferType = true; - inspect = require('util').inspect.custom || 'inspect'; - } -} catch (err) { - hasBufferType = false; -} - -/** -* Create a new ObjectID instance -* -* @class -* @param {(string|number)} id Can be a 24 byte hex string, 12 byte binary string or a Number. -* @property {number} generationTime The generation time of this ObjectId instance -* @return {ObjectID} instance of ObjectID. -*/ -var ObjectID = function ObjectID(id) { - // Duck-typing to support ObjectId from different npm packages - if (id instanceof ObjectID) return id; - if (!(this instanceof ObjectID)) return new ObjectID(id); - - this._bsontype = 'ObjectID'; - - // The most common usecase (blank id, new objectId instance) - if (id == null || typeof id === 'number') { - // Generate a new id - this.id = this.generate(id); - // If we are caching the hex string - if (ObjectID.cacheHexString) this.__id = this.toString('hex'); - // Return the object - return; - } - - // Check if the passed in id is valid - var valid = ObjectID.isValid(id); - - // Throw an error if it's not a valid setup - if (!valid && id != null) { - throw new Error( - 'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters' - ); - } else if (valid && typeof id === 'string' && id.length === 24 && hasBufferType) { - return new ObjectID(utils.toBuffer(id, 'hex')); - } else if (valid && typeof id === 'string' && id.length === 24) { - return ObjectID.createFromHexString(id); - } else if (id != null && id.length === 12) { - // assume 12 byte string - this.id = id; - } else if (id != null && typeof id.toHexString === 'function') { - // Duck-typing to support ObjectId from different npm packages - return id; - } else { - throw new Error( - 'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters' - ); - } - - if (ObjectID.cacheHexString) this.__id = this.toString('hex'); -}; - -// Allow usage of ObjectId as well as ObjectID -// var ObjectId = ObjectID; - -// Precomputed hex table enables speedy hex string conversion -var hexTable = []; -for (var i = 0; i < 256; i++) { - hexTable[i] = (i <= 15 ? '0' : '') + i.toString(16); -} - -/** -* Return the ObjectID id as a 24 byte hex string representation -* -* @method -* @return {string} return the 24 byte hex string representation. -*/ -ObjectID.prototype.toHexString = function() { - if (ObjectID.cacheHexString && this.__id) return this.__id; - - var hexString = ''; - if (!this.id || !this.id.length) { - throw new Error( - 'invalid ObjectId, ObjectId.id must be either a string or a Buffer, but is [' + - JSON.stringify(this.id) + - ']' - ); - } - - if (this.id instanceof _Buffer) { - hexString = convertToHex(this.id); - if (ObjectID.cacheHexString) this.__id = hexString; - return hexString; - } - - for (var i = 0; i < this.id.length; i++) { - hexString += hexTable[this.id.charCodeAt(i)]; - } - - if (ObjectID.cacheHexString) this.__id = hexString; - return hexString; -}; - -/** -* Update the ObjectID index used in generating new ObjectID's on the driver -* -* @method -* @return {number} returns next index value. -* @ignore -*/ -ObjectID.prototype.get_inc = function() { - return (ObjectID.index = (ObjectID.index + 1) % 0xffffff); -}; - -/** -* Update the ObjectID index used in generating new ObjectID's on the driver -* -* @method -* @return {number} returns next index value. -* @ignore -*/ -ObjectID.prototype.getInc = function() { - return this.get_inc(); -}; - -/** -* Generate a 12 byte id buffer used in ObjectID's -* -* @method -* @param {number} [time] optional parameter allowing to pass in a second based timestamp. -* @return {Buffer} return the 12 byte id buffer string. -*/ -ObjectID.prototype.generate = function(time) { - if ('number' !== typeof time) { - time = ~~(Date.now() / 1000); - } - - // Use pid - var pid = - (typeof process === 'undefined' || process.pid === 1 - ? Math.floor(Math.random() * 100000) - : process.pid) % 0xffff; - var inc = this.get_inc(); - // Buffer used - var buffer = utils.allocBuffer(12); - // Encode time - buffer[3] = time & 0xff; - buffer[2] = (time >> 8) & 0xff; - buffer[1] = (time >> 16) & 0xff; - buffer[0] = (time >> 24) & 0xff; - // Encode machine - buffer[6] = MACHINE_ID & 0xff; - buffer[5] = (MACHINE_ID >> 8) & 0xff; - buffer[4] = (MACHINE_ID >> 16) & 0xff; - // Encode pid - buffer[8] = pid & 0xff; - buffer[7] = (pid >> 8) & 0xff; - // Encode index - buffer[11] = inc & 0xff; - buffer[10] = (inc >> 8) & 0xff; - buffer[9] = (inc >> 16) & 0xff; - // Return the buffer - return buffer; -}; - -/** -* Converts the id into a 24 byte hex string for printing -* -* @param {String} format The Buffer toString format parameter. -* @return {String} return the 24 byte hex string representation. -* @ignore -*/ -ObjectID.prototype.toString = function(format) { - // Is the id a buffer then use the buffer toString method to return the format - if (this.id && this.id.copy) { - return this.id.toString(typeof format === 'string' ? format : 'hex'); - } - - // if(this.buffer ) - return this.toHexString(); -}; - -/** -* Converts to a string representation of this Id. -* -* @return {String} return the 24 byte hex string representation. -* @ignore -*/ -ObjectID.prototype[inspect] = ObjectID.prototype.toString; - -/** -* Converts to its JSON representation. -* -* @return {String} return the 24 byte hex string representation. -* @ignore -*/ -ObjectID.prototype.toJSON = function() { - return this.toHexString(); -}; - -/** -* Compares the equality of this ObjectID with `otherID`. -* -* @method -* @param {object} otherID ObjectID instance to compare against. -* @return {boolean} the result of comparing two ObjectID's -*/ -ObjectID.prototype.equals = function equals(otherId) { - // var id; - - if (otherId instanceof ObjectID) { - return this.toString() === otherId.toString(); - } else if ( - typeof otherId === 'string' && - ObjectID.isValid(otherId) && - otherId.length === 12 && - this.id instanceof _Buffer - ) { - return otherId === this.id.toString('binary'); - } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 24) { - return otherId.toLowerCase() === this.toHexString(); - } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 12) { - return otherId === this.id; - } else if (otherId != null && (otherId instanceof ObjectID || otherId.toHexString)) { - return otherId.toHexString() === this.toHexString(); - } else { - return false; - } -}; - -/** -* Returns the generation date (accurate up to the second) that this ID was generated. -* -* @method -* @return {date} the generation date -*/ -ObjectID.prototype.getTimestamp = function() { - var timestamp = new Date(); - var time = this.id[3] | (this.id[2] << 8) | (this.id[1] << 16) | (this.id[0] << 24); - timestamp.setTime(Math.floor(time) * 1000); - return timestamp; -}; - -/** -* @ignore -*/ -ObjectID.index = ~~(Math.random() * 0xffffff); - -/** -* @ignore -*/ -ObjectID.createPk = function createPk() { - return new ObjectID(); -}; - -/** -* Creates an ObjectID from a second based number, with the rest of the ObjectID zeroed out. Used for comparisons or sorting the ObjectID. -* -* @method -* @param {number} time an integer number representing a number of seconds. -* @return {ObjectID} return the created ObjectID -*/ -ObjectID.createFromTime = function createFromTime(time) { - var buffer = utils.toBuffer([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]); - // Encode time into first 4 bytes - buffer[3] = time & 0xff; - buffer[2] = (time >> 8) & 0xff; - buffer[1] = (time >> 16) & 0xff; - buffer[0] = (time >> 24) & 0xff; - // Return the new objectId - return new ObjectID(buffer); -}; - -// Lookup tables -//var encodeLookup = '0123456789abcdef'.split(''); -var decodeLookup = []; -i = 0; -while (i < 10) decodeLookup[0x30 + i] = i++; -while (i < 16) decodeLookup[0x41 - 10 + i] = decodeLookup[0x61 - 10 + i] = i++; - -var _Buffer = Buffer; -var convertToHex = function(bytes) { - return bytes.toString('hex'); -}; - -/** -* Creates an ObjectID from a hex string representation of an ObjectID. -* -* @method -* @param {string} hexString create a ObjectID from a passed in 24 byte hexstring. -* @return {ObjectID} return the created ObjectID -*/ -ObjectID.createFromHexString = function createFromHexString(string) { - // Throw an error if it's not a valid setup - if (typeof string === 'undefined' || (string != null && string.length !== 24)) { - throw new Error( - 'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters' - ); - } - - // Use Buffer.from method if available - if (hasBufferType) return new ObjectID(utils.toBuffer(string, 'hex')); - - // Calculate lengths - var array = new _Buffer(12); - var n = 0; - var i = 0; - - while (i < 24) { - array[n++] = (decodeLookup[string.charCodeAt(i++)] << 4) | decodeLookup[string.charCodeAt(i++)]; - } - - return new ObjectID(array); -}; - -/** -* Checks if a value is a valid bson ObjectId -* -* @method -* @return {boolean} return true if the value is a valid bson ObjectId, return false otherwise. -*/ -ObjectID.isValid = function isValid(id) { - if (id == null) return false; - - if (typeof id === 'number') { - return true; - } - - if (typeof id === 'string') { - return id.length === 12 || (id.length === 24 && checkForHexRegExp.test(id)); - } - - if (id instanceof ObjectID) { - return true; - } - - if (id instanceof _Buffer) { - return true; - } - - // Duck-Typing detection of ObjectId like objects - if ( - typeof id.toHexString === 'function' && - (id.id instanceof _Buffer || typeof id.id === 'string') - ) { - return id.id.length === 12 || (id.id.length === 24 && checkForHexRegExp.test(id.id)); - } - - return false; -}; - -/** -* @ignore -*/ -Object.defineProperty(ObjectID.prototype, 'generationTime', { - enumerable: true, - get: function() { - return this.id[3] | (this.id[2] << 8) | (this.id[1] << 16) | (this.id[0] << 24); - }, - set: function(value) { - // Encode time into first 4 bytes - this.id[3] = value & 0xff; - this.id[2] = (value >> 8) & 0xff; - this.id[1] = (value >> 16) & 0xff; - this.id[0] = (value >> 24) & 0xff; - } -}); - -/** - * Expose. - */ -module.exports = ObjectID; -module.exports.ObjectID = ObjectID; -module.exports.ObjectId = ObjectID; diff --git a/views/node_modules/bson/lib/bson/parser/calculate_size.js b/views/node_modules/bson/lib/bson/parser/calculate_size.js deleted file mode 100644 index 7e0026c..0000000 --- a/views/node_modules/bson/lib/bson/parser/calculate_size.js +++ /dev/null @@ -1,255 +0,0 @@ -'use strict'; - -var Long = require('../long').Long, - Double = require('../double').Double, - Timestamp = require('../timestamp').Timestamp, - ObjectID = require('../objectid').ObjectID, - Symbol = require('../symbol').Symbol, - BSONRegExp = require('../regexp').BSONRegExp, - Code = require('../code').Code, - Decimal128 = require('../decimal128'), - MinKey = require('../min_key').MinKey, - MaxKey = require('../max_key').MaxKey, - DBRef = require('../db_ref').DBRef, - Binary = require('../binary').Binary; - -var normalizedFunctionString = require('./utils').normalizedFunctionString; - -// To ensure that 0.4 of node works correctly -var isDate = function isDate(d) { - return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; -}; - -var calculateObjectSize = function calculateObjectSize( - object, - serializeFunctions, - ignoreUndefined -) { - var totalLength = 4 + 1; - - if (Array.isArray(object)) { - for (var i = 0; i < object.length; i++) { - totalLength += calculateElement( - i.toString(), - object[i], - serializeFunctions, - true, - ignoreUndefined - ); - } - } else { - // If we have toBSON defined, override the current object - if (object.toBSON) { - object = object.toBSON(); - } - - // Calculate size - for (var key in object) { - totalLength += calculateElement(key, object[key], serializeFunctions, false, ignoreUndefined); - } - } - - return totalLength; -}; - -/** - * @ignore - * @api private - */ -function calculateElement(name, value, serializeFunctions, isArray, ignoreUndefined) { - // If we have toBSON defined, override the current object - if (value && value.toBSON) { - value = value.toBSON(); - } - - switch (typeof value) { - case 'string': - return 1 + Buffer.byteLength(name, 'utf8') + 1 + 4 + Buffer.byteLength(value, 'utf8') + 1; - case 'number': - if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { - if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { - // 32 bit - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (4 + 1); - } else { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); - } - } else { - // 64 bit - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); - } - case 'undefined': - if (isArray || !ignoreUndefined) - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; - return 0; - case 'boolean': - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 1); - case 'object': - if ( - value == null || - value instanceof MinKey || - value instanceof MaxKey || - value['_bsontype'] === 'MinKey' || - value['_bsontype'] === 'MaxKey' - ) { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1; - } else if (value instanceof ObjectID || value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (12 + 1); - } else if (value instanceof Date || isDate(value)) { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); - } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 4 + 1) + value.length - ); - } else if ( - value instanceof Long || - value instanceof Double || - value instanceof Timestamp || - value['_bsontype'] === 'Long' || - value['_bsontype'] === 'Double' || - value['_bsontype'] === 'Timestamp' - ) { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1); - } else if (value instanceof Decimal128 || value['_bsontype'] === 'Decimal128') { - return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (16 + 1); - } else if (value instanceof Code || value['_bsontype'] === 'Code') { - // Calculate size depending on the availability of a scope - if (value.scope != null && Object.keys(value.scope).length > 0) { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + - 1 + - 4 + - 4 + - Buffer.byteLength(value.code.toString(), 'utf8') + - 1 + - calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined) - ); - } else { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + - 1 + - 4 + - Buffer.byteLength(value.code.toString(), 'utf8') + - 1 - ); - } - } else if (value instanceof Binary || value['_bsontype'] === 'Binary') { - // Check what kind of subtype we have - if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + - (value.position + 1 + 4 + 1 + 4) - ); - } else { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (value.position + 1 + 4 + 1) - ); - } - } else if (value instanceof Symbol || value['_bsontype'] === 'Symbol') { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + - Buffer.byteLength(value.value, 'utf8') + - 4 + - 1 + - 1 - ); - } else if (value instanceof DBRef || value['_bsontype'] === 'DBRef') { - // Set up correct object for serialization - var ordered_values = { - $ref: value.namespace, - $id: value.oid - }; - - // Add db reference if it exists - if (null != value.db) { - ordered_values['$db'] = value.db; - } - - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + - 1 + - calculateObjectSize(ordered_values, serializeFunctions, ignoreUndefined) - ); - } else if ( - value instanceof RegExp || - Object.prototype.toString.call(value) === '[object RegExp]' - ) { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + - 1 + - Buffer.byteLength(value.source, 'utf8') + - 1 + - (value.global ? 1 : 0) + - (value.ignoreCase ? 1 : 0) + - (value.multiline ? 1 : 0) + - 1 - ); - } else if (value instanceof BSONRegExp || value['_bsontype'] === 'BSONRegExp') { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + - 1 + - Buffer.byteLength(value.pattern, 'utf8') + - 1 + - Buffer.byteLength(value.options, 'utf8') + - 1 - ); - } else { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + - calculateObjectSize(value, serializeFunctions, ignoreUndefined) + - 1 - ); - } - case 'function': - // WTF for 0.4.X where typeof /someregexp/ === 'function' - if ( - value instanceof RegExp || - Object.prototype.toString.call(value) === '[object RegExp]' || - String.call(value) === '[object RegExp]' - ) { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + - 1 + - Buffer.byteLength(value.source, 'utf8') + - 1 + - (value.global ? 1 : 0) + - (value.ignoreCase ? 1 : 0) + - (value.multiline ? 1 : 0) + - 1 - ); - } else { - if (serializeFunctions && value.scope != null && Object.keys(value.scope).length > 0) { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + - 1 + - 4 + - 4 + - Buffer.byteLength(normalizedFunctionString(value), 'utf8') + - 1 + - calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined) - ); - } else if (serializeFunctions) { - return ( - (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + - 1 + - 4 + - Buffer.byteLength(normalizedFunctionString(value), 'utf8') + - 1 - ); - } - } - } - - return 0; -} - -var BSON = {}; - -// BSON MAX VALUES -BSON.BSON_INT32_MAX = 0x7fffffff; -BSON.BSON_INT32_MIN = -0x80000000; - -// JS MAX PRECISE VALUES -BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. -BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. - -module.exports = calculateObjectSize; diff --git a/views/node_modules/bson/lib/bson/parser/deserializer.js b/views/node_modules/bson/lib/bson/parser/deserializer.js deleted file mode 100644 index be3c865..0000000 --- a/views/node_modules/bson/lib/bson/parser/deserializer.js +++ /dev/null @@ -1,782 +0,0 @@ -'use strict'; - -var Long = require('../long').Long, - Double = require('../double').Double, - Timestamp = require('../timestamp').Timestamp, - ObjectID = require('../objectid').ObjectID, - Symbol = require('../symbol').Symbol, - Code = require('../code').Code, - MinKey = require('../min_key').MinKey, - MaxKey = require('../max_key').MaxKey, - Decimal128 = require('../decimal128'), - Int32 = require('../int_32'), - DBRef = require('../db_ref').DBRef, - BSONRegExp = require('../regexp').BSONRegExp, - Binary = require('../binary').Binary; - -var utils = require('./utils'); - -var deserialize = function(buffer, options, isArray) { - options = options == null ? {} : options; - var index = options && options.index ? options.index : 0; - // Read the document size - var size = - buffer[index] | - (buffer[index + 1] << 8) | - (buffer[index + 2] << 16) | - (buffer[index + 3] << 24); - - // Ensure buffer is valid size - if (size < 5 || buffer.length < size || size + index > buffer.length) { - throw new Error('corrupt bson message'); - } - - // Illegal end value - if (buffer[index + size - 1] !== 0) { - throw new Error("One object, sized correctly, with a spot for an EOO, but the EOO isn't 0x00"); - } - - // Start deserializtion - return deserializeObject(buffer, index, options, isArray); -}; - -var deserializeObject = function(buffer, index, options, isArray) { - var evalFunctions = options['evalFunctions'] == null ? false : options['evalFunctions']; - var cacheFunctions = options['cacheFunctions'] == null ? false : options['cacheFunctions']; - var cacheFunctionsCrc32 = - options['cacheFunctionsCrc32'] == null ? false : options['cacheFunctionsCrc32']; - - if (!cacheFunctionsCrc32) var crc32 = null; - - var fieldsAsRaw = options['fieldsAsRaw'] == null ? null : options['fieldsAsRaw']; - - // Return raw bson buffer instead of parsing it - var raw = options['raw'] == null ? false : options['raw']; - - // Return BSONRegExp objects instead of native regular expressions - var bsonRegExp = typeof options['bsonRegExp'] === 'boolean' ? options['bsonRegExp'] : false; - - // Controls the promotion of values vs wrapper classes - var promoteBuffers = options['promoteBuffers'] == null ? false : options['promoteBuffers']; - var promoteLongs = options['promoteLongs'] == null ? true : options['promoteLongs']; - var promoteValues = options['promoteValues'] == null ? true : options['promoteValues']; - - // Set the start index - var startIndex = index; - - // Validate that we have at least 4 bytes of buffer - if (buffer.length < 5) throw new Error('corrupt bson message < 5 bytes long'); - - // Read the document size - var size = - buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24); - - // Ensure buffer is valid size - if (size < 5 || size > buffer.length) throw new Error('corrupt bson message'); - - // Create holding object - var object = isArray ? [] : {}; - // Used for arrays to skip having to perform utf8 decoding - var arrayIndex = 0; - - var done = false; - - // While we have more left data left keep parsing - // while (buffer[index + 1] !== 0) { - while (!done) { - // Read the type - var elementType = buffer[index++]; - // If we get a zero it's the last byte, exit - if (elementType === 0) break; - - // Get the start search index - var i = index; - // Locate the end of the c string - while (buffer[i] !== 0x00 && i < buffer.length) { - i++; - } - - // If are at the end of the buffer there is a problem with the document - if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); - var name = isArray ? arrayIndex++ : buffer.toString('utf8', index, i); - - index = i + 1; - - if (elementType === BSON.BSON_DATA_STRING) { - var stringSize = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - if ( - stringSize <= 0 || - stringSize > buffer.length - index || - buffer[index + stringSize - 1] !== 0 - ) - throw new Error('bad string length in bson'); - object[name] = buffer.toString('utf8', index, index + stringSize - 1); - index = index + stringSize; - } else if (elementType === BSON.BSON_DATA_OID) { - var oid = utils.allocBuffer(12); - buffer.copy(oid, 0, index, index + 12); - object[name] = new ObjectID(oid); - index = index + 12; - } else if (elementType === BSON.BSON_DATA_INT && promoteValues === false) { - object[name] = new Int32( - buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24) - ); - } else if (elementType === BSON.BSON_DATA_INT) { - object[name] = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - } else if (elementType === BSON.BSON_DATA_NUMBER && promoteValues === false) { - object[name] = new Double(buffer.readDoubleLE(index)); - index = index + 8; - } else if (elementType === BSON.BSON_DATA_NUMBER) { - object[name] = buffer.readDoubleLE(index); - index = index + 8; - } else if (elementType === BSON.BSON_DATA_DATE) { - var lowBits = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - var highBits = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - object[name] = new Date(new Long(lowBits, highBits).toNumber()); - } else if (elementType === BSON.BSON_DATA_BOOLEAN) { - if (buffer[index] !== 0 && buffer[index] !== 1) throw new Error('illegal boolean type value'); - object[name] = buffer[index++] === 1; - } else if (elementType === BSON.BSON_DATA_OBJECT) { - var _index = index; - var objectSize = - buffer[index] | - (buffer[index + 1] << 8) | - (buffer[index + 2] << 16) | - (buffer[index + 3] << 24); - if (objectSize <= 0 || objectSize > buffer.length - index) - throw new Error('bad embedded document length in bson'); - - // We have a raw value - if (raw) { - object[name] = buffer.slice(index, index + objectSize); - } else { - object[name] = deserializeObject(buffer, _index, options, false); - } - - index = index + objectSize; - } else if (elementType === BSON.BSON_DATA_ARRAY) { - _index = index; - objectSize = - buffer[index] | - (buffer[index + 1] << 8) | - (buffer[index + 2] << 16) | - (buffer[index + 3] << 24); - var arrayOptions = options; - - // Stop index - var stopIndex = index + objectSize; - - // All elements of array to be returned as raw bson - if (fieldsAsRaw && fieldsAsRaw[name]) { - arrayOptions = {}; - for (var n in options) arrayOptions[n] = options[n]; - arrayOptions['raw'] = true; - } - - object[name] = deserializeObject(buffer, _index, arrayOptions, true); - index = index + objectSize; - - if (buffer[index - 1] !== 0) throw new Error('invalid array terminator byte'); - if (index !== stopIndex) throw new Error('corrupted array bson'); - } else if (elementType === BSON.BSON_DATA_UNDEFINED) { - object[name] = undefined; - } else if (elementType === BSON.BSON_DATA_NULL) { - object[name] = null; - } else if (elementType === BSON.BSON_DATA_LONG) { - // Unpack the low and high bits - lowBits = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - highBits = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - var long = new Long(lowBits, highBits); - // Promote the long if possible - if (promoteLongs && promoteValues === true) { - object[name] = - long.lessThanOrEqual(JS_INT_MAX_LONG) && long.greaterThanOrEqual(JS_INT_MIN_LONG) - ? long.toNumber() - : long; - } else { - object[name] = long; - } - } else if (elementType === BSON.BSON_DATA_DECIMAL128) { - // Buffer to contain the decimal bytes - var bytes = utils.allocBuffer(16); - // Copy the next 16 bytes into the bytes buffer - buffer.copy(bytes, 0, index, index + 16); - // Update index - index = index + 16; - // Assign the new Decimal128 value - var decimal128 = new Decimal128(bytes); - // If we have an alternative mapper use that - object[name] = decimal128.toObject ? decimal128.toObject() : decimal128; - } else if (elementType === BSON.BSON_DATA_BINARY) { - var binarySize = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - var totalBinarySize = binarySize; - var subType = buffer[index++]; - - // Did we have a negative binary size, throw - if (binarySize < 0) throw new Error('Negative binary type element size found'); - - // Is the length longer than the document - if (binarySize > buffer.length) throw new Error('Binary type size larger than document size'); - - // Decode as raw Buffer object if options specifies it - if (buffer['slice'] != null) { - // If we have subtype 2 skip the 4 bytes for the size - if (subType === Binary.SUBTYPE_BYTE_ARRAY) { - binarySize = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - if (binarySize < 0) - throw new Error('Negative binary type element size found for subtype 0x02'); - if (binarySize > totalBinarySize - 4) - throw new Error('Binary type with subtype 0x02 contains to long binary size'); - if (binarySize < totalBinarySize - 4) - throw new Error('Binary type with subtype 0x02 contains to short binary size'); - } - - if (promoteBuffers && promoteValues) { - object[name] = buffer.slice(index, index + binarySize); - } else { - object[name] = new Binary(buffer.slice(index, index + binarySize), subType); - } - } else { - var _buffer = - typeof Uint8Array !== 'undefined' - ? new Uint8Array(new ArrayBuffer(binarySize)) - : new Array(binarySize); - // If we have subtype 2 skip the 4 bytes for the size - if (subType === Binary.SUBTYPE_BYTE_ARRAY) { - binarySize = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - if (binarySize < 0) - throw new Error('Negative binary type element size found for subtype 0x02'); - if (binarySize > totalBinarySize - 4) - throw new Error('Binary type with subtype 0x02 contains to long binary size'); - if (binarySize < totalBinarySize - 4) - throw new Error('Binary type with subtype 0x02 contains to short binary size'); - } - - // Copy the data - for (i = 0; i < binarySize; i++) { - _buffer[i] = buffer[index + i]; - } - - if (promoteBuffers && promoteValues) { - object[name] = _buffer; - } else { - object[name] = new Binary(_buffer, subType); - } - } - - // Update the index - index = index + binarySize; - } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === false) { - // Get the start search index - i = index; - // Locate the end of the c string - while (buffer[i] !== 0x00 && i < buffer.length) { - i++; - } - // If are at the end of the buffer there is a problem with the document - if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); - // Return the C string - var source = buffer.toString('utf8', index, i); - // Create the regexp - index = i + 1; - - // Get the start search index - i = index; - // Locate the end of the c string - while (buffer[i] !== 0x00 && i < buffer.length) { - i++; - } - // If are at the end of the buffer there is a problem with the document - if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); - // Return the C string - var regExpOptions = buffer.toString('utf8', index, i); - index = i + 1; - - // For each option add the corresponding one for javascript - var optionsArray = new Array(regExpOptions.length); - - // Parse options - for (i = 0; i < regExpOptions.length; i++) { - switch (regExpOptions[i]) { - case 'm': - optionsArray[i] = 'm'; - break; - case 's': - optionsArray[i] = 'g'; - break; - case 'i': - optionsArray[i] = 'i'; - break; - } - } - - object[name] = new RegExp(source, optionsArray.join('')); - } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === true) { - // Get the start search index - i = index; - // Locate the end of the c string - while (buffer[i] !== 0x00 && i < buffer.length) { - i++; - } - // If are at the end of the buffer there is a problem with the document - if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); - // Return the C string - source = buffer.toString('utf8', index, i); - index = i + 1; - - // Get the start search index - i = index; - // Locate the end of the c string - while (buffer[i] !== 0x00 && i < buffer.length) { - i++; - } - // If are at the end of the buffer there is a problem with the document - if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString'); - // Return the C string - regExpOptions = buffer.toString('utf8', index, i); - index = i + 1; - - // Set the object - object[name] = new BSONRegExp(source, regExpOptions); - } else if (elementType === BSON.BSON_DATA_SYMBOL) { - stringSize = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - if ( - stringSize <= 0 || - stringSize > buffer.length - index || - buffer[index + stringSize - 1] !== 0 - ) - throw new Error('bad string length in bson'); - object[name] = new Symbol(buffer.toString('utf8', index, index + stringSize - 1)); - index = index + stringSize; - } else if (elementType === BSON.BSON_DATA_TIMESTAMP) { - lowBits = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - highBits = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - object[name] = new Timestamp(lowBits, highBits); - } else if (elementType === BSON.BSON_DATA_MIN_KEY) { - object[name] = new MinKey(); - } else if (elementType === BSON.BSON_DATA_MAX_KEY) { - object[name] = new MaxKey(); - } else if (elementType === BSON.BSON_DATA_CODE) { - stringSize = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - if ( - stringSize <= 0 || - stringSize > buffer.length - index || - buffer[index + stringSize - 1] !== 0 - ) - throw new Error('bad string length in bson'); - var functionString = buffer.toString('utf8', index, index + stringSize - 1); - - // If we are evaluating the functions - if (evalFunctions) { - // If we have cache enabled let's look for the md5 of the function in the cache - if (cacheFunctions) { - var hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; - // Got to do this to avoid V8 deoptimizing the call due to finding eval - object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); - } else { - object[name] = isolateEval(functionString); - } - } else { - object[name] = new Code(functionString); - } - - // Update parse index position - index = index + stringSize; - } else if (elementType === BSON.BSON_DATA_CODE_W_SCOPE) { - var totalSize = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - - // Element cannot be shorter than totalSize + stringSize + documentSize + terminator - if (totalSize < 4 + 4 + 4 + 1) { - throw new Error('code_w_scope total size shorter minimum expected length'); - } - - // Get the code string size - stringSize = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - // Check if we have a valid string - if ( - stringSize <= 0 || - stringSize > buffer.length - index || - buffer[index + stringSize - 1] !== 0 - ) - throw new Error('bad string length in bson'); - - // Javascript function - functionString = buffer.toString('utf8', index, index + stringSize - 1); - // Update parse index position - index = index + stringSize; - // Parse the element - _index = index; - // Decode the size of the object document - objectSize = - buffer[index] | - (buffer[index + 1] << 8) | - (buffer[index + 2] << 16) | - (buffer[index + 3] << 24); - // Decode the scope object - var scopeObject = deserializeObject(buffer, _index, options, false); - // Adjust the index - index = index + objectSize; - - // Check if field length is to short - if (totalSize < 4 + 4 + objectSize + stringSize) { - throw new Error('code_w_scope total size is to short, truncating scope'); - } - - // Check if totalSize field is to long - if (totalSize > 4 + 4 + objectSize + stringSize) { - throw new Error('code_w_scope total size is to long, clips outer document'); - } - - // If we are evaluating the functions - if (evalFunctions) { - // If we have cache enabled let's look for the md5 of the function in the cache - if (cacheFunctions) { - hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString; - // Got to do this to avoid V8 deoptimizing the call due to finding eval - object[name] = isolateEvalWithHash(functionCache, hash, functionString, object); - } else { - object[name] = isolateEval(functionString); - } - - object[name].scope = scopeObject; - } else { - object[name] = new Code(functionString, scopeObject); - } - } else if (elementType === BSON.BSON_DATA_DBPOINTER) { - // Get the code string size - stringSize = - buffer[index++] | - (buffer[index++] << 8) | - (buffer[index++] << 16) | - (buffer[index++] << 24); - // Check if we have a valid string - if ( - stringSize <= 0 || - stringSize > buffer.length - index || - buffer[index + stringSize - 1] !== 0 - ) - throw new Error('bad string length in bson'); - // Namespace - var namespace = buffer.toString('utf8', index, index + stringSize - 1); - // Update parse index position - index = index + stringSize; - - // Read the oid - var oidBuffer = utils.allocBuffer(12); - buffer.copy(oidBuffer, 0, index, index + 12); - oid = new ObjectID(oidBuffer); - - // Update the index - index = index + 12; - - // Split the namespace - var parts = namespace.split('.'); - var db = parts.shift(); - var collection = parts.join('.'); - // Upgrade to DBRef type - object[name] = new DBRef(collection, oid, db); - } else { - throw new Error( - 'Detected unknown BSON type ' + - elementType.toString(16) + - ' for fieldname "' + - name + - '", are you using the latest BSON parser' - ); - } - } - - // Check if the deserialization was against a valid array/object - if (size !== index - startIndex) { - if (isArray) throw new Error('corrupt array bson'); - throw new Error('corrupt object bson'); - } - - // Check if we have a db ref object - if (object['$id'] != null) object = new DBRef(object['$ref'], object['$id'], object['$db']); - return object; -}; - -/** - * Ensure eval is isolated. - * - * @ignore - * @api private - */ -var isolateEvalWithHash = function(functionCache, hash, functionString, object) { - // Contains the value we are going to set - var value = null; - - // Check for cache hit, eval if missing and return cached function - if (functionCache[hash] == null) { - eval('value = ' + functionString); - functionCache[hash] = value; - } - // Set the object - return functionCache[hash].bind(object); -}; - -/** - * Ensure eval is isolated. - * - * @ignore - * @api private - */ -var isolateEval = function(functionString) { - // Contains the value we are going to set - var value = null; - // Eval the function - eval('value = ' + functionString); - return value; -}; - -var BSON = {}; - -/** - * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 - * - * @ignore - * @api private - */ -var functionCache = (BSON.functionCache = {}); - -/** - * Number BSON Type - * - * @classconstant BSON_DATA_NUMBER - **/ -BSON.BSON_DATA_NUMBER = 1; -/** - * String BSON Type - * - * @classconstant BSON_DATA_STRING - **/ -BSON.BSON_DATA_STRING = 2; -/** - * Object BSON Type - * - * @classconstant BSON_DATA_OBJECT - **/ -BSON.BSON_DATA_OBJECT = 3; -/** - * Array BSON Type - * - * @classconstant BSON_DATA_ARRAY - **/ -BSON.BSON_DATA_ARRAY = 4; -/** - * Binary BSON Type - * - * @classconstant BSON_DATA_BINARY - **/ -BSON.BSON_DATA_BINARY = 5; -/** - * Binary BSON Type - * - * @classconstant BSON_DATA_UNDEFINED - **/ -BSON.BSON_DATA_UNDEFINED = 6; -/** - * ObjectID BSON Type - * - * @classconstant BSON_DATA_OID - **/ -BSON.BSON_DATA_OID = 7; -/** - * Boolean BSON Type - * - * @classconstant BSON_DATA_BOOLEAN - **/ -BSON.BSON_DATA_BOOLEAN = 8; -/** - * Date BSON Type - * - * @classconstant BSON_DATA_DATE - **/ -BSON.BSON_DATA_DATE = 9; -/** - * null BSON Type - * - * @classconstant BSON_DATA_NULL - **/ -BSON.BSON_DATA_NULL = 10; -/** - * RegExp BSON Type - * - * @classconstant BSON_DATA_REGEXP - **/ -BSON.BSON_DATA_REGEXP = 11; -/** - * Code BSON Type - * - * @classconstant BSON_DATA_DBPOINTER - **/ -BSON.BSON_DATA_DBPOINTER = 12; -/** - * Code BSON Type - * - * @classconstant BSON_DATA_CODE - **/ -BSON.BSON_DATA_CODE = 13; -/** - * Symbol BSON Type - * - * @classconstant BSON_DATA_SYMBOL - **/ -BSON.BSON_DATA_SYMBOL = 14; -/** - * Code with Scope BSON Type - * - * @classconstant BSON_DATA_CODE_W_SCOPE - **/ -BSON.BSON_DATA_CODE_W_SCOPE = 15; -/** - * 32 bit Integer BSON Type - * - * @classconstant BSON_DATA_INT - **/ -BSON.BSON_DATA_INT = 16; -/** - * Timestamp BSON Type - * - * @classconstant BSON_DATA_TIMESTAMP - **/ -BSON.BSON_DATA_TIMESTAMP = 17; -/** - * Long BSON Type - * - * @classconstant BSON_DATA_LONG - **/ -BSON.BSON_DATA_LONG = 18; -/** - * Long BSON Type - * - * @classconstant BSON_DATA_DECIMAL128 - **/ -BSON.BSON_DATA_DECIMAL128 = 19; -/** - * MinKey BSON Type - * - * @classconstant BSON_DATA_MIN_KEY - **/ -BSON.BSON_DATA_MIN_KEY = 0xff; -/** - * MaxKey BSON Type - * - * @classconstant BSON_DATA_MAX_KEY - **/ -BSON.BSON_DATA_MAX_KEY = 0x7f; - -/** - * Binary Default Type - * - * @classconstant BSON_BINARY_SUBTYPE_DEFAULT - **/ -BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; -/** - * Binary Function Type - * - * @classconstant BSON_BINARY_SUBTYPE_FUNCTION - **/ -BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; -/** - * Binary Byte Array Type - * - * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY - **/ -BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; -/** - * Binary UUID Type - * - * @classconstant BSON_BINARY_SUBTYPE_UUID - **/ -BSON.BSON_BINARY_SUBTYPE_UUID = 3; -/** - * Binary MD5 Type - * - * @classconstant BSON_BINARY_SUBTYPE_MD5 - **/ -BSON.BSON_BINARY_SUBTYPE_MD5 = 4; -/** - * Binary User Defined Type - * - * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED - **/ -BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; - -// BSON MAX VALUES -BSON.BSON_INT32_MAX = 0x7fffffff; -BSON.BSON_INT32_MIN = -0x80000000; - -BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; -BSON.BSON_INT64_MIN = -Math.pow(2, 63); - -// JS MAX PRECISE VALUES -BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. -BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. - -// Internal long versions -var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. -var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. - -module.exports = deserialize; diff --git a/views/node_modules/bson/lib/bson/parser/serializer.js b/views/node_modules/bson/lib/bson/parser/serializer.js deleted file mode 100644 index fab9b6f..0000000 --- a/views/node_modules/bson/lib/bson/parser/serializer.js +++ /dev/null @@ -1,1194 +0,0 @@ -'use strict'; - -var writeIEEE754 = require('../float_parser').writeIEEE754, - Long = require('../long').Long, - Map = require('../map'), - Binary = require('../binary').Binary; - -var normalizedFunctionString = require('./utils').normalizedFunctionString; - -// try { -// var _Buffer = Uint8Array; -// } catch (e) { -// _Buffer = Buffer; -// } - -var regexp = /\x00/; // eslint-disable-line no-control-regex -var ignoreKeys = ['$db', '$ref', '$id', '$clusterTime']; - -// To ensure that 0.4 of node works correctly -var isDate = function isDate(d) { - return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]'; -}; - -var isRegExp = function isRegExp(d) { - return Object.prototype.toString.call(d) === '[object RegExp]'; -}; - -var serializeString = function(buffer, key, value, index, isArray) { - // Encode String type - buffer[index++] = BSON.BSON_DATA_STRING; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes + 1; - buffer[index - 1] = 0; - // Write the string - var size = buffer.write(value, index + 4, 'utf8'); - // Write the size of the string to buffer - buffer[index + 3] = ((size + 1) >> 24) & 0xff; - buffer[index + 2] = ((size + 1) >> 16) & 0xff; - buffer[index + 1] = ((size + 1) >> 8) & 0xff; - buffer[index] = (size + 1) & 0xff; - // Update index - index = index + 4 + size; - // Write zero - buffer[index++] = 0; - return index; -}; - -var serializeNumber = function(buffer, key, value, index, isArray) { - // We have an integer value - if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { - // If the value fits in 32 bits encode as int, if it fits in a double - // encode it as a double, otherwise long - if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) { - // Set int type 32 bits or less - buffer[index++] = BSON.BSON_DATA_INT; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write the int value - buffer[index++] = value & 0xff; - buffer[index++] = (value >> 8) & 0xff; - buffer[index++] = (value >> 16) & 0xff; - buffer[index++] = (value >> 24) & 0xff; - } else if (value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) { - // Encode as double - buffer[index++] = BSON.BSON_DATA_NUMBER; - // Number of written bytes - numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write float - writeIEEE754(buffer, value, index, 'little', 52, 8); - // Ajust index - index = index + 8; - } else { - // Set long type - buffer[index++] = BSON.BSON_DATA_LONG; - // Number of written bytes - numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - var longVal = Long.fromNumber(value); - var lowBits = longVal.getLowBits(); - var highBits = longVal.getHighBits(); - // Encode low bits - buffer[index++] = lowBits & 0xff; - buffer[index++] = (lowBits >> 8) & 0xff; - buffer[index++] = (lowBits >> 16) & 0xff; - buffer[index++] = (lowBits >> 24) & 0xff; - // Encode high bits - buffer[index++] = highBits & 0xff; - buffer[index++] = (highBits >> 8) & 0xff; - buffer[index++] = (highBits >> 16) & 0xff; - buffer[index++] = (highBits >> 24) & 0xff; - } - } else { - // Encode as double - buffer[index++] = BSON.BSON_DATA_NUMBER; - // Number of written bytes - numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write float - writeIEEE754(buffer, value, index, 'little', 52, 8); - // Ajust index - index = index + 8; - } - - return index; -}; - -var serializeNull = function(buffer, key, value, index, isArray) { - // Set long type - buffer[index++] = BSON.BSON_DATA_NULL; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - return index; -}; - -var serializeBoolean = function(buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_BOOLEAN; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Encode the boolean value - buffer[index++] = value ? 1 : 0; - return index; -}; - -var serializeDate = function(buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_DATE; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - - // Write the date - var dateInMilis = Long.fromNumber(value.getTime()); - var lowBits = dateInMilis.getLowBits(); - var highBits = dateInMilis.getHighBits(); - // Encode low bits - buffer[index++] = lowBits & 0xff; - buffer[index++] = (lowBits >> 8) & 0xff; - buffer[index++] = (lowBits >> 16) & 0xff; - buffer[index++] = (lowBits >> 24) & 0xff; - // Encode high bits - buffer[index++] = highBits & 0xff; - buffer[index++] = (highBits >> 8) & 0xff; - buffer[index++] = (highBits >> 16) & 0xff; - buffer[index++] = (highBits >> 24) & 0xff; - return index; -}; - -var serializeRegExp = function(buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_REGEXP; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - if (value.source && value.source.match(regexp) != null) { - throw Error('value ' + value.source + ' must not contain null bytes'); - } - // Adjust the index - index = index + buffer.write(value.source, index, 'utf8'); - // Write zero - buffer[index++] = 0x00; - // Write the parameters - if (value.global) buffer[index++] = 0x73; // s - if (value.ignoreCase) buffer[index++] = 0x69; // i - if (value.multiline) buffer[index++] = 0x6d; // m - // Add ending zero - buffer[index++] = 0x00; - return index; -}; - -var serializeBSONRegExp = function(buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_REGEXP; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - - // Check the pattern for 0 bytes - if (value.pattern.match(regexp) != null) { - // The BSON spec doesn't allow keys with null bytes because keys are - // null-terminated. - throw Error('pattern ' + value.pattern + ' must not contain null bytes'); - } - - // Adjust the index - index = index + buffer.write(value.pattern, index, 'utf8'); - // Write zero - buffer[index++] = 0x00; - // Write the options - index = - index + - buffer.write( - value.options - .split('') - .sort() - .join(''), - index, - 'utf8' - ); - // Add ending zero - buffer[index++] = 0x00; - return index; -}; - -var serializeMinMax = function(buffer, key, value, index, isArray) { - // Write the type of either min or max key - if (value === null) { - buffer[index++] = BSON.BSON_DATA_NULL; - } else if (value._bsontype === 'MinKey') { - buffer[index++] = BSON.BSON_DATA_MIN_KEY; - } else { - buffer[index++] = BSON.BSON_DATA_MAX_KEY; - } - - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - return index; -}; - -var serializeObjectId = function(buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_OID; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - - // Write the objectId into the shared buffer - if (typeof value.id === 'string') { - buffer.write(value.id, index, 'binary'); - } else if (value.id && value.id.copy) { - value.id.copy(buffer, index, 0, 12); - } else { - throw new Error('object [' + JSON.stringify(value) + '] is not a valid ObjectId'); - } - - // Ajust index - return index + 12; -}; - -var serializeBuffer = function(buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_BINARY; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Get size of the buffer (current write point) - var size = value.length; - // Write the size of the string to buffer - buffer[index++] = size & 0xff; - buffer[index++] = (size >> 8) & 0xff; - buffer[index++] = (size >> 16) & 0xff; - buffer[index++] = (size >> 24) & 0xff; - // Write the default subtype - buffer[index++] = BSON.BSON_BINARY_SUBTYPE_DEFAULT; - // Copy the content form the binary field to the buffer - value.copy(buffer, index, 0, size); - // Adjust the index - index = index + size; - return index; -}; - -var serializeObject = function( - buffer, - key, - value, - index, - checkKeys, - depth, - serializeFunctions, - ignoreUndefined, - isArray, - path -) { - for (var i = 0; i < path.length; i++) { - if (path[i] === value) throw new Error('cyclic dependency detected'); - } - - // Push value to stack - path.push(value); - // Write the type - buffer[index++] = Array.isArray(value) ? BSON.BSON_DATA_ARRAY : BSON.BSON_DATA_OBJECT; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - var endIndex = serializeInto( - buffer, - value, - checkKeys, - index, - depth + 1, - serializeFunctions, - ignoreUndefined, - path - ); - // Pop stack - path.pop(); - // Write size - return endIndex; -}; - -var serializeDecimal128 = function(buffer, key, value, index, isArray) { - buffer[index++] = BSON.BSON_DATA_DECIMAL128; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write the data from the value - value.bytes.copy(buffer, index, 0, 16); - return index + 16; -}; - -var serializeLong = function(buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = value._bsontype === 'Long' ? BSON.BSON_DATA_LONG : BSON.BSON_DATA_TIMESTAMP; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write the date - var lowBits = value.getLowBits(); - var highBits = value.getHighBits(); - // Encode low bits - buffer[index++] = lowBits & 0xff; - buffer[index++] = (lowBits >> 8) & 0xff; - buffer[index++] = (lowBits >> 16) & 0xff; - buffer[index++] = (lowBits >> 24) & 0xff; - // Encode high bits - buffer[index++] = highBits & 0xff; - buffer[index++] = (highBits >> 8) & 0xff; - buffer[index++] = (highBits >> 16) & 0xff; - buffer[index++] = (highBits >> 24) & 0xff; - return index; -}; - -var serializeInt32 = function(buffer, key, value, index, isArray) { - // Set int type 32 bits or less - buffer[index++] = BSON.BSON_DATA_INT; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write the int value - buffer[index++] = value & 0xff; - buffer[index++] = (value >> 8) & 0xff; - buffer[index++] = (value >> 16) & 0xff; - buffer[index++] = (value >> 24) & 0xff; - return index; -}; - -var serializeDouble = function(buffer, key, value, index, isArray) { - // Encode as double - buffer[index++] = BSON.BSON_DATA_NUMBER; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write float - writeIEEE754(buffer, value, index, 'little', 52, 8); - // Ajust index - index = index + 8; - return index; -}; - -var serializeFunction = function(buffer, key, value, index, checkKeys, depth, isArray) { - buffer[index++] = BSON.BSON_DATA_CODE; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Function string - var functionString = normalizedFunctionString(value); - - // Write the string - var size = buffer.write(functionString, index + 4, 'utf8') + 1; - // Write the size of the string to buffer - buffer[index] = size & 0xff; - buffer[index + 1] = (size >> 8) & 0xff; - buffer[index + 2] = (size >> 16) & 0xff; - buffer[index + 3] = (size >> 24) & 0xff; - // Update index - index = index + 4 + size - 1; - // Write zero - buffer[index++] = 0; - return index; -}; - -var serializeCode = function( - buffer, - key, - value, - index, - checkKeys, - depth, - serializeFunctions, - ignoreUndefined, - isArray -) { - if (value.scope && typeof value.scope === 'object') { - // Write the type - buffer[index++] = BSON.BSON_DATA_CODE_W_SCOPE; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - - // Starting index - var startIndex = index; - - // Serialize the function - // Get the function string - var functionString = typeof value.code === 'string' ? value.code : value.code.toString(); - // Index adjustment - index = index + 4; - // Write string into buffer - var codeSize = buffer.write(functionString, index + 4, 'utf8') + 1; - // Write the size of the string to buffer - buffer[index] = codeSize & 0xff; - buffer[index + 1] = (codeSize >> 8) & 0xff; - buffer[index + 2] = (codeSize >> 16) & 0xff; - buffer[index + 3] = (codeSize >> 24) & 0xff; - // Write end 0 - buffer[index + 4 + codeSize - 1] = 0; - // Write the - index = index + codeSize + 4; - - // - // Serialize the scope value - var endIndex = serializeInto( - buffer, - value.scope, - checkKeys, - index, - depth + 1, - serializeFunctions, - ignoreUndefined - ); - index = endIndex - 1; - - // Writ the total - var totalSize = endIndex - startIndex; - - // Write the total size of the object - buffer[startIndex++] = totalSize & 0xff; - buffer[startIndex++] = (totalSize >> 8) & 0xff; - buffer[startIndex++] = (totalSize >> 16) & 0xff; - buffer[startIndex++] = (totalSize >> 24) & 0xff; - // Write trailing zero - buffer[index++] = 0; - } else { - buffer[index++] = BSON.BSON_DATA_CODE; - // Number of written bytes - numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Function string - functionString = value.code.toString(); - // Write the string - var size = buffer.write(functionString, index + 4, 'utf8') + 1; - // Write the size of the string to buffer - buffer[index] = size & 0xff; - buffer[index + 1] = (size >> 8) & 0xff; - buffer[index + 2] = (size >> 16) & 0xff; - buffer[index + 3] = (size >> 24) & 0xff; - // Update index - index = index + 4 + size - 1; - // Write zero - buffer[index++] = 0; - } - - return index; -}; - -var serializeBinary = function(buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_BINARY; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Extract the buffer - var data = value.value(true); - // Calculate size - var size = value.position; - // Add the deprecated 02 type 4 bytes of size to total - if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) size = size + 4; - // Write the size of the string to buffer - buffer[index++] = size & 0xff; - buffer[index++] = (size >> 8) & 0xff; - buffer[index++] = (size >> 16) & 0xff; - buffer[index++] = (size >> 24) & 0xff; - // Write the subtype to the buffer - buffer[index++] = value.sub_type; - - // If we have binary type 2 the 4 first bytes are the size - if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) { - size = size - 4; - buffer[index++] = size & 0xff; - buffer[index++] = (size >> 8) & 0xff; - buffer[index++] = (size >> 16) & 0xff; - buffer[index++] = (size >> 24) & 0xff; - } - - // Write the data to the object - data.copy(buffer, index, 0, value.position); - // Adjust the index - index = index + value.position; - return index; -}; - -var serializeSymbol = function(buffer, key, value, index, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_SYMBOL; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - // Write the string - var size = buffer.write(value.value, index + 4, 'utf8') + 1; - // Write the size of the string to buffer - buffer[index] = size & 0xff; - buffer[index + 1] = (size >> 8) & 0xff; - buffer[index + 2] = (size >> 16) & 0xff; - buffer[index + 3] = (size >> 24) & 0xff; - // Update index - index = index + 4 + size - 1; - // Write zero - buffer[index++] = 0x00; - return index; -}; - -var serializeDBRef = function(buffer, key, value, index, depth, serializeFunctions, isArray) { - // Write the type - buffer[index++] = BSON.BSON_DATA_OBJECT; - // Number of written bytes - var numberOfWrittenBytes = !isArray - ? buffer.write(key, index, 'utf8') - : buffer.write(key, index, 'ascii'); - - // Encode the name - index = index + numberOfWrittenBytes; - buffer[index++] = 0; - - var startIndex = index; - var endIndex; - - // Serialize object - if (null != value.db) { - endIndex = serializeInto( - buffer, - { - $ref: value.namespace, - $id: value.oid, - $db: value.db - }, - false, - index, - depth + 1, - serializeFunctions - ); - } else { - endIndex = serializeInto( - buffer, - { - $ref: value.namespace, - $id: value.oid - }, - false, - index, - depth + 1, - serializeFunctions - ); - } - - // Calculate object size - var size = endIndex - startIndex; - // Write the size - buffer[startIndex++] = size & 0xff; - buffer[startIndex++] = (size >> 8) & 0xff; - buffer[startIndex++] = (size >> 16) & 0xff; - buffer[startIndex++] = (size >> 24) & 0xff; - // Set index - return endIndex; -}; - -var serializeInto = function serializeInto( - buffer, - object, - checkKeys, - startingIndex, - depth, - serializeFunctions, - ignoreUndefined, - path -) { - startingIndex = startingIndex || 0; - path = path || []; - - // Push the object to the path - path.push(object); - - // Start place to serialize into - var index = startingIndex + 4; - // var self = this; - - // Special case isArray - if (Array.isArray(object)) { - // Get object keys - for (var i = 0; i < object.length; i++) { - var key = '' + i; - var value = object[i]; - - // Is there an override value - if (value && value.toBSON) { - if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); - value = value.toBSON(); - } - - var type = typeof value; - if (type === 'string') { - index = serializeString(buffer, key, value, index, true); - } else if (type === 'number') { - index = serializeNumber(buffer, key, value, index, true); - } else if(type === 'bigint') { - throw new TypeError('Unsupported type BigInt, please use Decimal128'); - } else if (type === 'boolean') { - index = serializeBoolean(buffer, key, value, index, true); - } else if (value instanceof Date || isDate(value)) { - index = serializeDate(buffer, key, value, index, true); - } else if (value === undefined) { - index = serializeNull(buffer, key, value, index, true); - } else if (value === null) { - index = serializeNull(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { - index = serializeObjectId(buffer, key, value, index, true); - } else if (Buffer.isBuffer(value)) { - index = serializeBuffer(buffer, key, value, index, true); - } else if (value instanceof RegExp || isRegExp(value)) { - index = serializeRegExp(buffer, key, value, index, true); - } else if (type === 'object' && value['_bsontype'] == null) { - index = serializeObject( - buffer, - key, - value, - index, - checkKeys, - depth, - serializeFunctions, - ignoreUndefined, - true, - path - ); - } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { - index = serializeDecimal128(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { - index = serializeLong(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'Double') { - index = serializeDouble(buffer, key, value, index, true); - } else if (typeof value === 'function' && serializeFunctions) { - index = serializeFunction( - buffer, - key, - value, - index, - checkKeys, - depth, - serializeFunctions, - true - ); - } else if (value['_bsontype'] === 'Code') { - index = serializeCode( - buffer, - key, - value, - index, - checkKeys, - depth, - serializeFunctions, - ignoreUndefined, - true - ); - } else if (value['_bsontype'] === 'Binary') { - index = serializeBinary(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'Symbol') { - index = serializeSymbol(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'DBRef') { - index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions, true); - } else if (value['_bsontype'] === 'BSONRegExp') { - index = serializeBSONRegExp(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'Int32') { - index = serializeInt32(buffer, key, value, index, true); - } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { - index = serializeMinMax(buffer, key, value, index, true); - } else if (typeof value['_bsontype'] !== 'undefined') { - throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); - } - } - } else if (object instanceof Map) { - var iterator = object.entries(); - var done = false; - - while (!done) { - // Unpack the next entry - var entry = iterator.next(); - done = entry.done; - // Are we done, then skip and terminate - if (done) continue; - - // Get the entry values - key = entry.value[0]; - value = entry.value[1]; - - // Check the type of the value - type = typeof value; - - // Check the key and throw error if it's illegal - if (typeof key === 'string' && ignoreKeys.indexOf(key) === -1) { - if (key.match(regexp) != null) { - // The BSON spec doesn't allow keys with null bytes because keys are - // null-terminated. - throw Error('key ' + key + ' must not contain null bytes'); - } - - if (checkKeys) { - if ('$' === key[0]) { - throw Error('key ' + key + " must not start with '$'"); - } else if (~key.indexOf('.')) { - throw Error('key ' + key + " must not contain '.'"); - } - } - } - - if (type === 'string') { - index = serializeString(buffer, key, value, index); - } else if (type === 'number') { - index = serializeNumber(buffer, key, value, index); - } else if(type === 'bigint') { - throw new TypeError('Unsupported type BigInt, please use Decimal128'); - } else if (type === 'boolean') { - index = serializeBoolean(buffer, key, value, index); - } else if (value instanceof Date || isDate(value)) { - index = serializeDate(buffer, key, value, index); - // } else if (value === undefined && ignoreUndefined === true) { - } else if (value === null || (value === undefined && ignoreUndefined === false)) { - index = serializeNull(buffer, key, value, index); - } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { - index = serializeObjectId(buffer, key, value, index); - } else if (Buffer.isBuffer(value)) { - index = serializeBuffer(buffer, key, value, index); - } else if (value instanceof RegExp || isRegExp(value)) { - index = serializeRegExp(buffer, key, value, index); - } else if (type === 'object' && value['_bsontype'] == null) { - index = serializeObject( - buffer, - key, - value, - index, - checkKeys, - depth, - serializeFunctions, - ignoreUndefined, - false, - path - ); - } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { - index = serializeDecimal128(buffer, key, value, index); - } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { - index = serializeLong(buffer, key, value, index); - } else if (value['_bsontype'] === 'Double') { - index = serializeDouble(buffer, key, value, index); - } else if (value['_bsontype'] === 'Code') { - index = serializeCode( - buffer, - key, - value, - index, - checkKeys, - depth, - serializeFunctions, - ignoreUndefined - ); - } else if (typeof value === 'function' && serializeFunctions) { - index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); - } else if (value['_bsontype'] === 'Binary') { - index = serializeBinary(buffer, key, value, index); - } else if (value['_bsontype'] === 'Symbol') { - index = serializeSymbol(buffer, key, value, index); - } else if (value['_bsontype'] === 'DBRef') { - index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); - } else if (value['_bsontype'] === 'BSONRegExp') { - index = serializeBSONRegExp(buffer, key, value, index); - } else if (value['_bsontype'] === 'Int32') { - index = serializeInt32(buffer, key, value, index); - } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { - index = serializeMinMax(buffer, key, value, index); - } else if (typeof value['_bsontype'] !== 'undefined') { - throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); - } - } - } else { - // Did we provide a custom serialization method - if (object.toBSON) { - if (typeof object.toBSON !== 'function') throw new Error('toBSON is not a function'); - object = object.toBSON(); - if (object != null && typeof object !== 'object') - throw new Error('toBSON function did not return an object'); - } - - // Iterate over all the keys - for (key in object) { - value = object[key]; - // Is there an override value - if (value && value.toBSON) { - if (typeof value.toBSON !== 'function') throw new Error('toBSON is not a function'); - value = value.toBSON(); - } - - // Check the type of the value - type = typeof value; - - // Check the key and throw error if it's illegal - if (typeof key === 'string' && ignoreKeys.indexOf(key) === -1) { - if (key.match(regexp) != null) { - // The BSON spec doesn't allow keys with null bytes because keys are - // null-terminated. - throw Error('key ' + key + ' must not contain null bytes'); - } - - if (checkKeys) { - if ('$' === key[0]) { - throw Error('key ' + key + " must not start with '$'"); - } else if (~key.indexOf('.')) { - throw Error('key ' + key + " must not contain '.'"); - } - } - } - - if (type === 'string') { - index = serializeString(buffer, key, value, index); - } else if (type === 'number') { - index = serializeNumber(buffer, key, value, index); - } else if(type === 'bigint') { - throw new TypeError('Unsupported type BigInt, please use Decimal128'); - } else if (type === 'boolean') { - index = serializeBoolean(buffer, key, value, index); - } else if (value instanceof Date || isDate(value)) { - index = serializeDate(buffer, key, value, index); - } else if (value === undefined) { - if (ignoreUndefined === false) index = serializeNull(buffer, key, value, index); - } else if (value === null) { - index = serializeNull(buffer, key, value, index); - } else if (value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') { - index = serializeObjectId(buffer, key, value, index); - } else if (Buffer.isBuffer(value)) { - index = serializeBuffer(buffer, key, value, index); - } else if (value instanceof RegExp || isRegExp(value)) { - index = serializeRegExp(buffer, key, value, index); - } else if (type === 'object' && value['_bsontype'] == null) { - index = serializeObject( - buffer, - key, - value, - index, - checkKeys, - depth, - serializeFunctions, - ignoreUndefined, - false, - path - ); - } else if (type === 'object' && value['_bsontype'] === 'Decimal128') { - index = serializeDecimal128(buffer, key, value, index); - } else if (value['_bsontype'] === 'Long' || value['_bsontype'] === 'Timestamp') { - index = serializeLong(buffer, key, value, index); - } else if (value['_bsontype'] === 'Double') { - index = serializeDouble(buffer, key, value, index); - } else if (value['_bsontype'] === 'Code') { - index = serializeCode( - buffer, - key, - value, - index, - checkKeys, - depth, - serializeFunctions, - ignoreUndefined - ); - } else if (typeof value === 'function' && serializeFunctions) { - index = serializeFunction(buffer, key, value, index, checkKeys, depth, serializeFunctions); - } else if (value['_bsontype'] === 'Binary') { - index = serializeBinary(buffer, key, value, index); - } else if (value['_bsontype'] === 'Symbol') { - index = serializeSymbol(buffer, key, value, index); - } else if (value['_bsontype'] === 'DBRef') { - index = serializeDBRef(buffer, key, value, index, depth, serializeFunctions); - } else if (value['_bsontype'] === 'BSONRegExp') { - index = serializeBSONRegExp(buffer, key, value, index); - } else if (value['_bsontype'] === 'Int32') { - index = serializeInt32(buffer, key, value, index); - } else if (value['_bsontype'] === 'MinKey' || value['_bsontype'] === 'MaxKey') { - index = serializeMinMax(buffer, key, value, index); - } else if (typeof value['_bsontype'] !== 'undefined') { - throw new TypeError('Unrecognized or invalid _bsontype: ' + value['_bsontype']); - } - } - } - - // Remove the path - path.pop(); - - // Final padding byte for object - buffer[index++] = 0x00; - - // Final size - var size = index - startingIndex; - // Write the size of the object - buffer[startingIndex++] = size & 0xff; - buffer[startingIndex++] = (size >> 8) & 0xff; - buffer[startingIndex++] = (size >> 16) & 0xff; - buffer[startingIndex++] = (size >> 24) & 0xff; - return index; -}; - -var BSON = {}; - -/** - * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5 - * - * @ignore - * @api private - */ -// var functionCache = (BSON.functionCache = {}); - -/** - * Number BSON Type - * - * @classconstant BSON_DATA_NUMBER - **/ -BSON.BSON_DATA_NUMBER = 1; -/** - * String BSON Type - * - * @classconstant BSON_DATA_STRING - **/ -BSON.BSON_DATA_STRING = 2; -/** - * Object BSON Type - * - * @classconstant BSON_DATA_OBJECT - **/ -BSON.BSON_DATA_OBJECT = 3; -/** - * Array BSON Type - * - * @classconstant BSON_DATA_ARRAY - **/ -BSON.BSON_DATA_ARRAY = 4; -/** - * Binary BSON Type - * - * @classconstant BSON_DATA_BINARY - **/ -BSON.BSON_DATA_BINARY = 5; -/** - * ObjectID BSON Type, deprecated - * - * @classconstant BSON_DATA_UNDEFINED - **/ -BSON.BSON_DATA_UNDEFINED = 6; -/** - * ObjectID BSON Type - * - * @classconstant BSON_DATA_OID - **/ -BSON.BSON_DATA_OID = 7; -/** - * Boolean BSON Type - * - * @classconstant BSON_DATA_BOOLEAN - **/ -BSON.BSON_DATA_BOOLEAN = 8; -/** - * Date BSON Type - * - * @classconstant BSON_DATA_DATE - **/ -BSON.BSON_DATA_DATE = 9; -/** - * null BSON Type - * - * @classconstant BSON_DATA_NULL - **/ -BSON.BSON_DATA_NULL = 10; -/** - * RegExp BSON Type - * - * @classconstant BSON_DATA_REGEXP - **/ -BSON.BSON_DATA_REGEXP = 11; -/** - * Code BSON Type - * - * @classconstant BSON_DATA_CODE - **/ -BSON.BSON_DATA_CODE = 13; -/** - * Symbol BSON Type - * - * @classconstant BSON_DATA_SYMBOL - **/ -BSON.BSON_DATA_SYMBOL = 14; -/** - * Code with Scope BSON Type - * - * @classconstant BSON_DATA_CODE_W_SCOPE - **/ -BSON.BSON_DATA_CODE_W_SCOPE = 15; -/** - * 32 bit Integer BSON Type - * - * @classconstant BSON_DATA_INT - **/ -BSON.BSON_DATA_INT = 16; -/** - * Timestamp BSON Type - * - * @classconstant BSON_DATA_TIMESTAMP - **/ -BSON.BSON_DATA_TIMESTAMP = 17; -/** - * Long BSON Type - * - * @classconstant BSON_DATA_LONG - **/ -BSON.BSON_DATA_LONG = 18; -/** - * Long BSON Type - * - * @classconstant BSON_DATA_DECIMAL128 - **/ -BSON.BSON_DATA_DECIMAL128 = 19; -/** - * MinKey BSON Type - * - * @classconstant BSON_DATA_MIN_KEY - **/ -BSON.BSON_DATA_MIN_KEY = 0xff; -/** - * MaxKey BSON Type - * - * @classconstant BSON_DATA_MAX_KEY - **/ -BSON.BSON_DATA_MAX_KEY = 0x7f; -/** - * Binary Default Type - * - * @classconstant BSON_BINARY_SUBTYPE_DEFAULT - **/ -BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0; -/** - * Binary Function Type - * - * @classconstant BSON_BINARY_SUBTYPE_FUNCTION - **/ -BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1; -/** - * Binary Byte Array Type - * - * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY - **/ -BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2; -/** - * Binary UUID Type - * - * @classconstant BSON_BINARY_SUBTYPE_UUID - **/ -BSON.BSON_BINARY_SUBTYPE_UUID = 3; -/** - * Binary MD5 Type - * - * @classconstant BSON_BINARY_SUBTYPE_MD5 - **/ -BSON.BSON_BINARY_SUBTYPE_MD5 = 4; -/** - * Binary User Defined Type - * - * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED - **/ -BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128; - -// BSON MAX VALUES -BSON.BSON_INT32_MAX = 0x7fffffff; -BSON.BSON_INT32_MIN = -0x80000000; - -BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1; -BSON.BSON_INT64_MIN = -Math.pow(2, 63); - -// JS MAX PRECISE VALUES -BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double. -BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double. - -// Internal long versions -// var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double. -// var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double. - -module.exports = serializeInto; diff --git a/views/node_modules/bson/lib/bson/parser/utils.js b/views/node_modules/bson/lib/bson/parser/utils.js deleted file mode 100644 index 6faa439..0000000 --- a/views/node_modules/bson/lib/bson/parser/utils.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -/** - * Normalizes our expected stringified form of a function across versions of node - * @param {Function} fn The function to stringify - */ -function normalizedFunctionString(fn) { - return fn.toString().replace(/function *\(/, 'function ('); -} - -function newBuffer(item, encoding) { - return new Buffer(item, encoding); -} - -function allocBuffer() { - return Buffer.alloc.apply(Buffer, arguments); -} - -function toBuffer() { - return Buffer.from.apply(Buffer, arguments); -} - -module.exports = { - normalizedFunctionString: normalizedFunctionString, - allocBuffer: typeof Buffer.alloc === 'function' ? allocBuffer : newBuffer, - toBuffer: typeof Buffer.from === 'function' ? toBuffer : newBuffer -}; - diff --git a/views/node_modules/bson/lib/bson/regexp.js b/views/node_modules/bson/lib/bson/regexp.js deleted file mode 100644 index 108f016..0000000 --- a/views/node_modules/bson/lib/bson/regexp.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * A class representation of the BSON RegExp type. - * - * @class - * @return {BSONRegExp} A MinKey instance - */ -function BSONRegExp(pattern, options) { - if (!(this instanceof BSONRegExp)) return new BSONRegExp(); - - // Execute - this._bsontype = 'BSONRegExp'; - this.pattern = pattern || ''; - this.options = options || ''; - - // Validate options - for (var i = 0; i < this.options.length; i++) { - if ( - !( - this.options[i] === 'i' || - this.options[i] === 'm' || - this.options[i] === 'x' || - this.options[i] === 'l' || - this.options[i] === 's' || - this.options[i] === 'u' - ) - ) { - throw new Error('the regular expression options [' + this.options[i] + '] is not supported'); - } - } -} - -module.exports = BSONRegExp; -module.exports.BSONRegExp = BSONRegExp; diff --git a/views/node_modules/bson/lib/bson/symbol.js b/views/node_modules/bson/lib/bson/symbol.js deleted file mode 100644 index ba20cab..0000000 --- a/views/node_modules/bson/lib/bson/symbol.js +++ /dev/null @@ -1,50 +0,0 @@ -// Custom inspect property name / symbol. -var inspect = Buffer ? require('util').inspect.custom || 'inspect' : 'inspect'; - -/** - * A class representation of the BSON Symbol type. - * - * @class - * @deprecated - * @param {string} value the string representing the symbol. - * @return {Symbol} - */ -function Symbol(value) { - if (!(this instanceof Symbol)) return new Symbol(value); - this._bsontype = 'Symbol'; - this.value = value; -} - -/** - * Access the wrapped string value. - * - * @method - * @return {String} returns the wrapped string. - */ -Symbol.prototype.valueOf = function() { - return this.value; -}; - -/** - * @ignore - */ -Symbol.prototype.toString = function() { - return this.value; -}; - -/** - * @ignore - */ -Symbol.prototype[inspect] = function() { - return this.value; -}; - -/** - * @ignore - */ -Symbol.prototype.toJSON = function() { - return this.value; -}; - -module.exports = Symbol; -module.exports.Symbol = Symbol; diff --git a/views/node_modules/bson/lib/bson/timestamp.js b/views/node_modules/bson/lib/bson/timestamp.js deleted file mode 100644 index dc61a6c..0000000 --- a/views/node_modules/bson/lib/bson/timestamp.js +++ /dev/null @@ -1,854 +0,0 @@ -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// Copyright 2009 Google Inc. All Rights Reserved - -/** - * This type is for INTERNAL use in MongoDB only and should not be used in applications. - * The appropriate corresponding type is the JavaScript Date type. - * - * Defines a Timestamp class for representing a 64-bit two's-complement - * integer value, which faithfully simulates the behavior of a Java "Timestamp". This - * implementation is derived from TimestampLib in GWT. - * - * Constructs a 64-bit two's-complement integer, given its low and high 32-bit - * values as *signed* integers. See the from* functions below for more - * convenient ways of constructing Timestamps. - * - * The internal representation of a Timestamp is the two given signed, 32-bit values. - * We use 32-bit pieces because these are the size of integers on which - * Javascript performs bit-operations. For operations like addition and - * multiplication, we split each number into 16-bit pieces, which can easily be - * multiplied within Javascript's floating-point representation without overflow - * or change in sign. - * - * In the algorithms below, we frequently reduce the negative case to the - * positive case by negating the input(s) and then post-processing the result. - * Note that we must ALWAYS check specially whether those values are MIN_VALUE - * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as - * a positive number, it overflows back into a negative). Not handling this - * case would often result in infinite recursion. - * - * @class - * @param {number} low the low (signed) 32 bits of the Timestamp. - * @param {number} high the high (signed) 32 bits of the Timestamp. - */ -function Timestamp(low, high) { - if (!(this instanceof Timestamp)) return new Timestamp(low, high); - this._bsontype = 'Timestamp'; - /** - * @type {number} - * @ignore - */ - this.low_ = low | 0; // force into 32 signed bits. - - /** - * @type {number} - * @ignore - */ - this.high_ = high | 0; // force into 32 signed bits. -} - -/** - * Return the int value. - * - * @return {number} the value, assuming it is a 32-bit integer. - */ -Timestamp.prototype.toInt = function() { - return this.low_; -}; - -/** - * Return the Number value. - * - * @method - * @return {number} the closest floating-point representation to this value. - */ -Timestamp.prototype.toNumber = function() { - return this.high_ * Timestamp.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned(); -}; - -/** - * Return the JSON value. - * - * @method - * @return {string} the JSON representation. - */ -Timestamp.prototype.toJSON = function() { - return this.toString(); -}; - -/** - * Return the String value. - * - * @method - * @param {number} [opt_radix] the radix in which the text should be written. - * @return {string} the textual representation of this value. - */ -Timestamp.prototype.toString = function(opt_radix) { - var radix = opt_radix || 10; - if (radix < 2 || 36 < radix) { - throw Error('radix out of range: ' + radix); - } - - if (this.isZero()) { - return '0'; - } - - if (this.isNegative()) { - if (this.equals(Timestamp.MIN_VALUE)) { - // We need to change the Timestamp value before it can be negated, so we remove - // the bottom-most digit in this base and then recurse to do the rest. - var radixTimestamp = Timestamp.fromNumber(radix); - var div = this.div(radixTimestamp); - var rem = div.multiply(radixTimestamp).subtract(this); - return div.toString(radix) + rem.toInt().toString(radix); - } else { - return '-' + this.negate().toString(radix); - } - } - - // Do several (6) digits each time through the loop, so as to - // minimize the calls to the very expensive emulated div. - var radixToPower = Timestamp.fromNumber(Math.pow(radix, 6)); - - rem = this; - var result = ''; - - while (!rem.isZero()) { - var remDiv = rem.div(radixToPower); - var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt(); - var digits = intval.toString(radix); - - rem = remDiv; - if (rem.isZero()) { - return digits + result; - } else { - while (digits.length < 6) { - digits = '0' + digits; - } - result = '' + digits + result; - } - } -}; - -/** - * Return the high 32-bits value. - * - * @method - * @return {number} the high 32-bits as a signed value. - */ -Timestamp.prototype.getHighBits = function() { - return this.high_; -}; - -/** - * Return the low 32-bits value. - * - * @method - * @return {number} the low 32-bits as a signed value. - */ -Timestamp.prototype.getLowBits = function() { - return this.low_; -}; - -/** - * Return the low unsigned 32-bits value. - * - * @method - * @return {number} the low 32-bits as an unsigned value. - */ -Timestamp.prototype.getLowBitsUnsigned = function() { - return this.low_ >= 0 ? this.low_ : Timestamp.TWO_PWR_32_DBL_ + this.low_; -}; - -/** - * Returns the number of bits needed to represent the absolute value of this Timestamp. - * - * @method - * @return {number} Returns the number of bits needed to represent the absolute value of this Timestamp. - */ -Timestamp.prototype.getNumBitsAbs = function() { - if (this.isNegative()) { - if (this.equals(Timestamp.MIN_VALUE)) { - return 64; - } else { - return this.negate().getNumBitsAbs(); - } - } else { - var val = this.high_ !== 0 ? this.high_ : this.low_; - for (var bit = 31; bit > 0; bit--) { - if ((val & (1 << bit)) !== 0) { - break; - } - } - return this.high_ !== 0 ? bit + 33 : bit + 1; - } -}; - -/** - * Return whether this value is zero. - * - * @method - * @return {boolean} whether this value is zero. - */ -Timestamp.prototype.isZero = function() { - return this.high_ === 0 && this.low_ === 0; -}; - -/** - * Return whether this value is negative. - * - * @method - * @return {boolean} whether this value is negative. - */ -Timestamp.prototype.isNegative = function() { - return this.high_ < 0; -}; - -/** - * Return whether this value is odd. - * - * @method - * @return {boolean} whether this value is odd. - */ -Timestamp.prototype.isOdd = function() { - return (this.low_ & 1) === 1; -}; - -/** - * Return whether this Timestamp equals the other - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp equals the other - */ -Timestamp.prototype.equals = function(other) { - return this.high_ === other.high_ && this.low_ === other.low_; -}; - -/** - * Return whether this Timestamp does not equal the other. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp does not equal the other. - */ -Timestamp.prototype.notEquals = function(other) { - return this.high_ !== other.high_ || this.low_ !== other.low_; -}; - -/** - * Return whether this Timestamp is less than the other. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp is less than the other. - */ -Timestamp.prototype.lessThan = function(other) { - return this.compare(other) < 0; -}; - -/** - * Return whether this Timestamp is less than or equal to the other. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp is less than or equal to the other. - */ -Timestamp.prototype.lessThanOrEqual = function(other) { - return this.compare(other) <= 0; -}; - -/** - * Return whether this Timestamp is greater than the other. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp is greater than the other. - */ -Timestamp.prototype.greaterThan = function(other) { - return this.compare(other) > 0; -}; - -/** - * Return whether this Timestamp is greater than or equal to the other. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} whether this Timestamp is greater than or equal to the other. - */ -Timestamp.prototype.greaterThanOrEqual = function(other) { - return this.compare(other) >= 0; -}; - -/** - * Compares this Timestamp with the given one. - * - * @method - * @param {Timestamp} other Timestamp to compare against. - * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater. - */ -Timestamp.prototype.compare = function(other) { - if (this.equals(other)) { - return 0; - } - - var thisNeg = this.isNegative(); - var otherNeg = other.isNegative(); - if (thisNeg && !otherNeg) { - return -1; - } - if (!thisNeg && otherNeg) { - return 1; - } - - // at this point, the signs are the same, so subtraction will not overflow - if (this.subtract(other).isNegative()) { - return -1; - } else { - return 1; - } -}; - -/** - * The negation of this value. - * - * @method - * @return {Timestamp} the negation of this value. - */ -Timestamp.prototype.negate = function() { - if (this.equals(Timestamp.MIN_VALUE)) { - return Timestamp.MIN_VALUE; - } else { - return this.not().add(Timestamp.ONE); - } -}; - -/** - * Returns the sum of this and the given Timestamp. - * - * @method - * @param {Timestamp} other Timestamp to add to this one. - * @return {Timestamp} the sum of this and the given Timestamp. - */ -Timestamp.prototype.add = function(other) { - // Divide each number into 4 chunks of 16 bits, and then sum the chunks. - - var a48 = this.high_ >>> 16; - var a32 = this.high_ & 0xffff; - var a16 = this.low_ >>> 16; - var a00 = this.low_ & 0xffff; - - var b48 = other.high_ >>> 16; - var b32 = other.high_ & 0xffff; - var b16 = other.low_ >>> 16; - var b00 = other.low_ & 0xffff; - - var c48 = 0, - c32 = 0, - c16 = 0, - c00 = 0; - c00 += a00 + b00; - c16 += c00 >>> 16; - c00 &= 0xffff; - c16 += a16 + b16; - c32 += c16 >>> 16; - c16 &= 0xffff; - c32 += a32 + b32; - c48 += c32 >>> 16; - c32 &= 0xffff; - c48 += a48 + b48; - c48 &= 0xffff; - return Timestamp.fromBits((c16 << 16) | c00, (c48 << 16) | c32); -}; - -/** - * Returns the difference of this and the given Timestamp. - * - * @method - * @param {Timestamp} other Timestamp to subtract from this. - * @return {Timestamp} the difference of this and the given Timestamp. - */ -Timestamp.prototype.subtract = function(other) { - return this.add(other.negate()); -}; - -/** - * Returns the product of this and the given Timestamp. - * - * @method - * @param {Timestamp} other Timestamp to multiply with this. - * @return {Timestamp} the product of this and the other. - */ -Timestamp.prototype.multiply = function(other) { - if (this.isZero()) { - return Timestamp.ZERO; - } else if (other.isZero()) { - return Timestamp.ZERO; - } - - if (this.equals(Timestamp.MIN_VALUE)) { - return other.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; - } else if (other.equals(Timestamp.MIN_VALUE)) { - return this.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO; - } - - if (this.isNegative()) { - if (other.isNegative()) { - return this.negate().multiply(other.negate()); - } else { - return this.negate() - .multiply(other) - .negate(); - } - } else if (other.isNegative()) { - return this.multiply(other.negate()).negate(); - } - - // If both Timestamps are small, use float multiplication - if (this.lessThan(Timestamp.TWO_PWR_24_) && other.lessThan(Timestamp.TWO_PWR_24_)) { - return Timestamp.fromNumber(this.toNumber() * other.toNumber()); - } - - // Divide each Timestamp into 4 chunks of 16 bits, and then add up 4x4 products. - // We can skip products that would overflow. - - var a48 = this.high_ >>> 16; - var a32 = this.high_ & 0xffff; - var a16 = this.low_ >>> 16; - var a00 = this.low_ & 0xffff; - - var b48 = other.high_ >>> 16; - var b32 = other.high_ & 0xffff; - var b16 = other.low_ >>> 16; - var b00 = other.low_ & 0xffff; - - var c48 = 0, - c32 = 0, - c16 = 0, - c00 = 0; - c00 += a00 * b00; - c16 += c00 >>> 16; - c00 &= 0xffff; - c16 += a16 * b00; - c32 += c16 >>> 16; - c16 &= 0xffff; - c16 += a00 * b16; - c32 += c16 >>> 16; - c16 &= 0xffff; - c32 += a32 * b00; - c48 += c32 >>> 16; - c32 &= 0xffff; - c32 += a16 * b16; - c48 += c32 >>> 16; - c32 &= 0xffff; - c32 += a00 * b32; - c48 += c32 >>> 16; - c32 &= 0xffff; - c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48; - c48 &= 0xffff; - return Timestamp.fromBits((c16 << 16) | c00, (c48 << 16) | c32); -}; - -/** - * Returns this Timestamp divided by the given one. - * - * @method - * @param {Timestamp} other Timestamp by which to divide. - * @return {Timestamp} this Timestamp divided by the given one. - */ -Timestamp.prototype.div = function(other) { - if (other.isZero()) { - throw Error('division by zero'); - } else if (this.isZero()) { - return Timestamp.ZERO; - } - - if (this.equals(Timestamp.MIN_VALUE)) { - if (other.equals(Timestamp.ONE) || other.equals(Timestamp.NEG_ONE)) { - return Timestamp.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE - } else if (other.equals(Timestamp.MIN_VALUE)) { - return Timestamp.ONE; - } else { - // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|. - var halfThis = this.shiftRight(1); - var approx = halfThis.div(other).shiftLeft(1); - if (approx.equals(Timestamp.ZERO)) { - return other.isNegative() ? Timestamp.ONE : Timestamp.NEG_ONE; - } else { - var rem = this.subtract(other.multiply(approx)); - var result = approx.add(rem.div(other)); - return result; - } - } - } else if (other.equals(Timestamp.MIN_VALUE)) { - return Timestamp.ZERO; - } - - if (this.isNegative()) { - if (other.isNegative()) { - return this.negate().div(other.negate()); - } else { - return this.negate() - .div(other) - .negate(); - } - } else if (other.isNegative()) { - return this.div(other.negate()).negate(); - } - - // Repeat the following until the remainder is less than other: find a - // floating-point that approximates remainder / other *from below*, add this - // into the result, and subtract it from the remainder. It is critical that - // the approximate value is less than or equal to the real value so that the - // remainder never becomes negative. - var res = Timestamp.ZERO; - rem = this; - while (rem.greaterThanOrEqual(other)) { - // Approximate the result of division. This may be a little greater or - // smaller than the actual value. - approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber())); - - // We will tweak the approximate result by changing it in the 48-th digit or - // the smallest non-fractional digit, whichever is larger. - var log2 = Math.ceil(Math.log(approx) / Math.LN2); - var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48); - - // Decrease the approximation until it is smaller than the remainder. Note - // that if it is too large, the product overflows and is negative. - var approxRes = Timestamp.fromNumber(approx); - var approxRem = approxRes.multiply(other); - while (approxRem.isNegative() || approxRem.greaterThan(rem)) { - approx -= delta; - approxRes = Timestamp.fromNumber(approx); - approxRem = approxRes.multiply(other); - } - - // We know the answer can't be zero... and actually, zero would cause - // infinite recursion since we would make no progress. - if (approxRes.isZero()) { - approxRes = Timestamp.ONE; - } - - res = res.add(approxRes); - rem = rem.subtract(approxRem); - } - return res; -}; - -/** - * Returns this Timestamp modulo the given one. - * - * @method - * @param {Timestamp} other Timestamp by which to mod. - * @return {Timestamp} this Timestamp modulo the given one. - */ -Timestamp.prototype.modulo = function(other) { - return this.subtract(this.div(other).multiply(other)); -}; - -/** - * The bitwise-NOT of this value. - * - * @method - * @return {Timestamp} the bitwise-NOT of this value. - */ -Timestamp.prototype.not = function() { - return Timestamp.fromBits(~this.low_, ~this.high_); -}; - -/** - * Returns the bitwise-AND of this Timestamp and the given one. - * - * @method - * @param {Timestamp} other the Timestamp with which to AND. - * @return {Timestamp} the bitwise-AND of this and the other. - */ -Timestamp.prototype.and = function(other) { - return Timestamp.fromBits(this.low_ & other.low_, this.high_ & other.high_); -}; - -/** - * Returns the bitwise-OR of this Timestamp and the given one. - * - * @method - * @param {Timestamp} other the Timestamp with which to OR. - * @return {Timestamp} the bitwise-OR of this and the other. - */ -Timestamp.prototype.or = function(other) { - return Timestamp.fromBits(this.low_ | other.low_, this.high_ | other.high_); -}; - -/** - * Returns the bitwise-XOR of this Timestamp and the given one. - * - * @method - * @param {Timestamp} other the Timestamp with which to XOR. - * @return {Timestamp} the bitwise-XOR of this and the other. - */ -Timestamp.prototype.xor = function(other) { - return Timestamp.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_); -}; - -/** - * Returns this Timestamp with bits shifted to the left by the given amount. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Timestamp} this shifted to the left by the given amount. - */ -Timestamp.prototype.shiftLeft = function(numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var low = this.low_; - if (numBits < 32) { - var high = this.high_; - return Timestamp.fromBits(low << numBits, (high << numBits) | (low >>> (32 - numBits))); - } else { - return Timestamp.fromBits(0, low << (numBits - 32)); - } - } -}; - -/** - * Returns this Timestamp with bits shifted to the right by the given amount. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Timestamp} this shifted to the right by the given amount. - */ -Timestamp.prototype.shiftRight = function(numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var high = this.high_; - if (numBits < 32) { - var low = this.low_; - return Timestamp.fromBits((low >>> numBits) | (high << (32 - numBits)), high >> numBits); - } else { - return Timestamp.fromBits(high >> (numBits - 32), high >= 0 ? 0 : -1); - } - } -}; - -/** - * Returns this Timestamp with bits shifted to the right by the given amount, with the new top bits matching the current sign bit. - * - * @method - * @param {number} numBits the number of bits by which to shift. - * @return {Timestamp} this shifted to the right by the given amount, with zeros placed into the new leading bits. - */ -Timestamp.prototype.shiftRightUnsigned = function(numBits) { - numBits &= 63; - if (numBits === 0) { - return this; - } else { - var high = this.high_; - if (numBits < 32) { - var low = this.low_; - return Timestamp.fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits); - } else if (numBits === 32) { - return Timestamp.fromBits(high, 0); - } else { - return Timestamp.fromBits(high >>> (numBits - 32), 0); - } - } -}; - -/** - * Returns a Timestamp representing the given (32-bit) integer value. - * - * @method - * @param {number} value the 32-bit integer in question. - * @return {Timestamp} the corresponding Timestamp value. - */ -Timestamp.fromInt = function(value) { - if (-128 <= value && value < 128) { - var cachedObj = Timestamp.INT_CACHE_[value]; - if (cachedObj) { - return cachedObj; - } - } - - var obj = new Timestamp(value | 0, value < 0 ? -1 : 0); - if (-128 <= value && value < 128) { - Timestamp.INT_CACHE_[value] = obj; - } - return obj; -}; - -/** - * Returns a Timestamp representing the given value, provided that it is a finite number. Otherwise, zero is returned. - * - * @method - * @param {number} value the number in question. - * @return {Timestamp} the corresponding Timestamp value. - */ -Timestamp.fromNumber = function(value) { - if (isNaN(value) || !isFinite(value)) { - return Timestamp.ZERO; - } else if (value <= -Timestamp.TWO_PWR_63_DBL_) { - return Timestamp.MIN_VALUE; - } else if (value + 1 >= Timestamp.TWO_PWR_63_DBL_) { - return Timestamp.MAX_VALUE; - } else if (value < 0) { - return Timestamp.fromNumber(-value).negate(); - } else { - return new Timestamp( - (value % Timestamp.TWO_PWR_32_DBL_) | 0, - (value / Timestamp.TWO_PWR_32_DBL_) | 0 - ); - } -}; - -/** - * Returns a Timestamp representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits. - * - * @method - * @param {number} lowBits the low 32-bits. - * @param {number} highBits the high 32-bits. - * @return {Timestamp} the corresponding Timestamp value. - */ -Timestamp.fromBits = function(lowBits, highBits) { - return new Timestamp(lowBits, highBits); -}; - -/** - * Returns a Timestamp representation of the given string, written using the given radix. - * - * @method - * @param {string} str the textual representation of the Timestamp. - * @param {number} opt_radix the radix in which the text is written. - * @return {Timestamp} the corresponding Timestamp value. - */ -Timestamp.fromString = function(str, opt_radix) { - if (str.length === 0) { - throw Error('number format error: empty string'); - } - - var radix = opt_radix || 10; - if (radix < 2 || 36 < radix) { - throw Error('radix out of range: ' + radix); - } - - if (str.charAt(0) === '-') { - return Timestamp.fromString(str.substring(1), radix).negate(); - } else if (str.indexOf('-') >= 0) { - throw Error('number format error: interior "-" character: ' + str); - } - - // Do several (8) digits each time through the loop, so as to - // minimize the calls to the very expensive emulated div. - var radixToPower = Timestamp.fromNumber(Math.pow(radix, 8)); - - var result = Timestamp.ZERO; - for (var i = 0; i < str.length; i += 8) { - var size = Math.min(8, str.length - i); - var value = parseInt(str.substring(i, i + size), radix); - if (size < 8) { - var power = Timestamp.fromNumber(Math.pow(radix, size)); - result = result.multiply(power).add(Timestamp.fromNumber(value)); - } else { - result = result.multiply(radixToPower); - result = result.add(Timestamp.fromNumber(value)); - } - } - return result; -}; - -// NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the -// from* methods on which they depend. - -/** - * A cache of the Timestamp representations of small integer values. - * @type {Object} - * @ignore - */ -Timestamp.INT_CACHE_ = {}; - -// NOTE: the compiler should inline these constant values below and then remove -// these variables, so there should be no runtime penalty for these. - -/** - * Number used repeated below in calculations. This must appear before the - * first call to any from* function below. - * @type {number} - * @ignore - */ -Timestamp.TWO_PWR_16_DBL_ = 1 << 16; - -/** - * @type {number} - * @ignore - */ -Timestamp.TWO_PWR_24_DBL_ = 1 << 24; - -/** - * @type {number} - * @ignore - */ -Timestamp.TWO_PWR_32_DBL_ = Timestamp.TWO_PWR_16_DBL_ * Timestamp.TWO_PWR_16_DBL_; - -/** - * @type {number} - * @ignore - */ -Timestamp.TWO_PWR_31_DBL_ = Timestamp.TWO_PWR_32_DBL_ / 2; - -/** - * @type {number} - * @ignore - */ -Timestamp.TWO_PWR_48_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_16_DBL_; - -/** - * @type {number} - * @ignore - */ -Timestamp.TWO_PWR_64_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_32_DBL_; - -/** - * @type {number} - * @ignore - */ -Timestamp.TWO_PWR_63_DBL_ = Timestamp.TWO_PWR_64_DBL_ / 2; - -/** @type {Timestamp} */ -Timestamp.ZERO = Timestamp.fromInt(0); - -/** @type {Timestamp} */ -Timestamp.ONE = Timestamp.fromInt(1); - -/** @type {Timestamp} */ -Timestamp.NEG_ONE = Timestamp.fromInt(-1); - -/** @type {Timestamp} */ -Timestamp.MAX_VALUE = Timestamp.fromBits(0xffffffff | 0, 0x7fffffff | 0); - -/** @type {Timestamp} */ -Timestamp.MIN_VALUE = Timestamp.fromBits(0, 0x80000000 | 0); - -/** - * @type {Timestamp} - * @ignore - */ -Timestamp.TWO_PWR_24_ = Timestamp.fromInt(1 << 24); - -/** - * Expose. - */ -module.exports = Timestamp; -module.exports.Timestamp = Timestamp; diff --git a/views/node_modules/bson/package.json b/views/node_modules/bson/package.json deleted file mode 100644 index 5dc76e8..0000000 --- a/views/node_modules/bson/package.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - "name": "bson", - "description": "A bson parser for node.js and the browser", - "keywords": [ - "mongodb", - "bson", - "parser" - ], - "files": [ - "lib", - "index.js", - "browser_build", - "bower.json" - ], - "version": "1.1.6", - "author": "Christian Amor Kvalheim ", - "contributors": [], - "repository": "mongodb/js-bson", - "bugs": { - "mail": "node-mongodb-native@googlegroups.com", - "url": "https://github.com/mongodb/js-bson/issues" - }, - "devDependencies": { - "benchmark": "1.0.0", - "colors": "1.1.0", - "nodeunit": "0.9.0", - "babel-core": "^6.14.0", - "babel-loader": "^6.2.5", - "babel-polyfill": "^6.13.0", - "babel-preset-es2015": "^6.14.0", - "babel-preset-stage-0": "^6.5.0", - "babel-register": "^6.14.0", - "conventional-changelog-cli": "^1.3.5", - "standard-version": "^9.1.1", - "webpack": "^1.13.2", - "webpack-polyfills-plugin": "0.0.9" - }, - "config": { - "native": false - }, - "main": "./index", - "directories": { - "lib": "./lib/bson" - }, - "engines": { - "node": ">=0.6.19" - }, - "scripts": { - "test": "nodeunit ./test/node", - "build": "webpack --config ./webpack.dist.config.js", - "changelog": "conventional-changelog -p angular -i HISTORY.md -s", - "lint": "eslint lib test", - "format": "prettier --print-width 100 --tab-width 2 --single-quote --write 'test/**/*.js' 'lib/**/*.js'", - "release": "standard-version -i HISTORY.md" - }, - "browser": "lib/bson/bson.js", - "license": "Apache-2.0" -} diff --git a/views/node_modules/bytes/History.md b/views/node_modules/bytes/History.md deleted file mode 100644 index cf6a5bb..0000000 --- a/views/node_modules/bytes/History.md +++ /dev/null @@ -1,87 +0,0 @@ -3.1.0 / 2019-01-22 -================== - - * Add petabyte (`pb`) support - -3.0.0 / 2017-08-31 -================== - - * Change "kB" to "KB" in format output - * Remove support for Node.js 0.6 - * Remove support for ComponentJS - -2.5.0 / 2017-03-24 -================== - - * Add option "unit" - -2.4.0 / 2016-06-01 -================== - - * Add option "unitSeparator" - -2.3.0 / 2016-02-15 -================== - - * Drop partial bytes on all parsed units - * Fix non-finite numbers to `.format` to return `null` - * Fix parsing byte string that looks like hex - * perf: hoist regular expressions - -2.2.0 / 2015-11-13 -================== - - * add option "decimalPlaces" - * add option "fixedDecimals" - -2.1.0 / 2015-05-21 -================== - - * add `.format` export - * add `.parse` export - -2.0.2 / 2015-05-20 -================== - - * remove map recreation - * remove unnecessary object construction - -2.0.1 / 2015-05-07 -================== - - * fix browserify require - * remove node.extend dependency - -2.0.0 / 2015-04-12 -================== - - * add option "case" - * add option "thousandsSeparator" - * return "null" on invalid parse input - * support proper round-trip: bytes(bytes(num)) === num - * units no longer case sensitive when parsing - -1.0.0 / 2014-05-05 -================== - - * add negative support. fixes #6 - -0.3.0 / 2014-03-19 -================== - - * added terabyte support - -0.2.1 / 2013-04-01 -================== - - * add .component - -0.2.0 / 2012-10-28 -================== - - * bytes(200).should.eql('200b') - -0.1.0 / 2012-07-04 -================== - - * add bytes to string conversion [yields] diff --git a/views/node_modules/bytes/LICENSE b/views/node_modules/bytes/LICENSE deleted file mode 100644 index 63e95a9..0000000 --- a/views/node_modules/bytes/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 TJ Holowaychuk -Copyright (c) 2015 Jed Watson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/views/node_modules/bytes/Readme.md b/views/node_modules/bytes/Readme.md deleted file mode 100644 index 6ad1ec6..0000000 --- a/views/node_modules/bytes/Readme.md +++ /dev/null @@ -1,126 +0,0 @@ -# Bytes utility - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa. - -## Installation - -This is a [Node.js](https://nodejs.org/en/) module available through the -[npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): - -```bash -$ npm install bytes -``` - -## Usage - -```js -var bytes = require('bytes'); -``` - -#### bytes.format(number value, [options]): string|null - -Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is - rounded. - -**Arguments** - -| Name | Type | Description | -|---------|----------|--------------------| -| value | `number` | Value in bytes | -| options | `Object` | Conversion options | - -**Options** - -| Property | Type | Description | -|-------------------|--------|-----------------------------------------------------------------------------------------| -| decimalPlaces | `number`|`null` | Maximum number of decimal places to include in output. Default value to `2`. | -| fixedDecimals | `boolean`|`null` | Whether to always display the maximum number of decimal places. Default value to `false` | -| thousandsSeparator | `string`|`null` | Example of values: `' '`, `','` and `.`... Default value to `''`. | -| unit | `string`|`null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). | -| unitSeparator | `string`|`null` | Separator to use between number and unit. Default value to `''`. | - -**Returns** - -| Name | Type | Description | -|---------|------------------|-------------------------------------------------| -| results | `string`|`null` | Return null upon error. String value otherwise. | - -**Example** - -```js -bytes(1024); -// output: '1KB' - -bytes(1000); -// output: '1000B' - -bytes(1000, {thousandsSeparator: ' '}); -// output: '1 000B' - -bytes(1024 * 1.7, {decimalPlaces: 0}); -// output: '2KB' - -bytes(1024, {unitSeparator: ' '}); -// output: '1 KB' - -``` - -#### bytes.parse(string|number value): number|null - -Parse the string value into an integer in bytes. If no unit is given, or `value` -is a number, it is assumed the value is in bytes. - -Supported units and abbreviations are as follows and are case-insensitive: - - * `b` for bytes - * `kb` for kilobytes - * `mb` for megabytes - * `gb` for gigabytes - * `tb` for terabytes - * `pb` for petabytes - -The units are in powers of two, not ten. This means 1kb = 1024b according to this parser. - -**Arguments** - -| Name | Type | Description | -|---------------|--------|--------------------| -| value | `string`|`number` | String to parse, or number in bytes. | - -**Returns** - -| Name | Type | Description | -|---------|-------------|-------------------------| -| results | `number`|`null` | Return null upon error. Value in bytes otherwise. | - -**Example** - -```js -bytes('1KB'); -// output: 1024 - -bytes('1024'); -// output: 1024 - -bytes(1024); -// output: 1KB -``` - -## License - -[MIT](LICENSE) - -[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master -[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master -[downloads-image]: https://badgen.net/npm/dm/bytes -[downloads-url]: https://npmjs.org/package/bytes -[npm-image]: https://badgen.net/npm/node/bytes -[npm-url]: https://npmjs.org/package/bytes -[travis-image]: https://badgen.net/travis/visionmedia/bytes.js/master -[travis-url]: https://travis-ci.org/visionmedia/bytes.js diff --git a/views/node_modules/bytes/index.js b/views/node_modules/bytes/index.js deleted file mode 100644 index 4975bfb..0000000 --- a/views/node_modules/bytes/index.js +++ /dev/null @@ -1,162 +0,0 @@ -/*! - * bytes - * Copyright(c) 2012-2014 TJ Holowaychuk - * Copyright(c) 2015 Jed Watson - * MIT Licensed - */ - -'use strict'; - -/** - * Module exports. - * @public - */ - -module.exports = bytes; -module.exports.format = format; -module.exports.parse = parse; - -/** - * Module variables. - * @private - */ - -var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g; - -var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/; - -var map = { - b: 1, - kb: 1 << 10, - mb: 1 << 20, - gb: 1 << 30, - tb: Math.pow(1024, 4), - pb: Math.pow(1024, 5), -}; - -var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; - -/** - * Convert the given value in bytes into a string or parse to string to an integer in bytes. - * - * @param {string|number} value - * @param {{ - * case: [string], - * decimalPlaces: [number] - * fixedDecimals: [boolean] - * thousandsSeparator: [string] - * unitSeparator: [string] - * }} [options] bytes options. - * - * @returns {string|number|null} - */ - -function bytes(value, options) { - if (typeof value === 'string') { - return parse(value); - } - - if (typeof value === 'number') { - return format(value, options); - } - - return null; -} - -/** - * Format the given value in bytes into a string. - * - * If the value is negative, it is kept as such. If it is a float, - * it is rounded. - * - * @param {number} value - * @param {object} [options] - * @param {number} [options.decimalPlaces=2] - * @param {number} [options.fixedDecimals=false] - * @param {string} [options.thousandsSeparator=] - * @param {string} [options.unit=] - * @param {string} [options.unitSeparator=] - * - * @returns {string|null} - * @public - */ - -function format(value, options) { - if (!Number.isFinite(value)) { - return null; - } - - var mag = Math.abs(value); - var thousandsSeparator = (options && options.thousandsSeparator) || ''; - var unitSeparator = (options && options.unitSeparator) || ''; - var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2; - var fixedDecimals = Boolean(options && options.fixedDecimals); - var unit = (options && options.unit) || ''; - - if (!unit || !map[unit.toLowerCase()]) { - if (mag >= map.pb) { - unit = 'PB'; - } else if (mag >= map.tb) { - unit = 'TB'; - } else if (mag >= map.gb) { - unit = 'GB'; - } else if (mag >= map.mb) { - unit = 'MB'; - } else if (mag >= map.kb) { - unit = 'KB'; - } else { - unit = 'B'; - } - } - - var val = value / map[unit.toLowerCase()]; - var str = val.toFixed(decimalPlaces); - - if (!fixedDecimals) { - str = str.replace(formatDecimalsRegExp, '$1'); - } - - if (thousandsSeparator) { - str = str.replace(formatThousandsRegExp, thousandsSeparator); - } - - return str + unitSeparator + unit; -} - -/** - * Parse the string value into an integer in bytes. - * - * If no unit is given, it is assumed the value is in bytes. - * - * @param {number|string} val - * - * @returns {number|null} - * @public - */ - -function parse(val) { - if (typeof val === 'number' && !isNaN(val)) { - return val; - } - - if (typeof val !== 'string') { - return null; - } - - // Test if the string passed is valid - var results = parseRegExp.exec(val); - var floatValue; - var unit = 'b'; - - if (!results) { - // Nothing could be extracted from the given string - floatValue = parseInt(val, 10); - unit = 'b' - } else { - // Retrieve the value and the unit - floatValue = parseFloat(results[1]); - unit = results[4].toLowerCase(); - } - - return Math.floor(map[unit] * floatValue); -} diff --git a/views/node_modules/bytes/package.json b/views/node_modules/bytes/package.json deleted file mode 100644 index 72ee63d..0000000 --- a/views/node_modules/bytes/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "bytes", - "description": "Utility to parse a string bytes to bytes and vice-versa", - "version": "3.1.0", - "author": "TJ Holowaychuk (http://tjholowaychuk.com)", - "contributors": [ - "Jed Watson ", - "Théo FIDRY " - ], - "license": "MIT", - "keywords": [ - "byte", - "bytes", - "utility", - "parse", - "parser", - "convert", - "converter" - ], - "repository": "visionmedia/bytes.js", - "devDependencies": { - "eslint": "5.12.1", - "mocha": "5.2.0", - "nyc": "13.1.0" - }, - "files": [ - "History.md", - "LICENSE", - "Readme.md", - "index.js" - ], - "engines": { - "node": ">= 0.8" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --check-leaks --reporter spec", - "test-ci": "nyc --reporter=text npm test", - "test-cov": "nyc --reporter=html --reporter=text npm test" - } -} diff --git a/views/node_modules/cacheable-lookup/LICENSE b/views/node_modules/cacheable-lookup/LICENSE deleted file mode 100755 index 92498ed..0000000 --- a/views/node_modules/cacheable-lookup/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Szymon Marczak - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/views/node_modules/cacheable-lookup/README.md b/views/node_modules/cacheable-lookup/README.md deleted file mode 100755 index 2507155..0000000 --- a/views/node_modules/cacheable-lookup/README.md +++ /dev/null @@ -1,240 +0,0 @@ -# cacheable-lookup - -> A cacheable [`dns.lookup(…)`](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) that respects TTL :tada: - -[![Node CI](https://github.com/szmarczak/cacheable-lookup/workflows/Node%20CI/badge.svg)](https://github.com/szmarczak/cacheable-lookup/actions) -[![Coverage Status](https://coveralls.io/repos/github/szmarczak/cacheable-lookup/badge.svg?branch=master)](https://coveralls.io/github/szmarczak/cacheable-lookup?branch=master) -[![npm](https://img.shields.io/npm/dm/cacheable-lookup.svg)](https://www.npmjs.com/package/cacheable-lookup) -[![install size](https://packagephobia.now.sh/badge?p=cacheable-lookup)](https://packagephobia.now.sh/result?p=cacheable-lookup) - -Making lots of HTTP requests? You can save some time by caching DNS lookups :zap: - -## Usage - -### Using the `lookup` option - -```js -const http = require('http'); -const CacheableLookup = require('cacheable-lookup'); - -const cacheable = new CacheableLookup(); - -http.get('http://example.com', {lookup: cacheable.lookup}, response => { - // Handle the response here -}); -``` - -### Attaching CacheableLookup to an Agent - -```js -const http = require('http'); -const CacheableLookup = require('cacheable-lookup'); - -const cacheable = new CacheableLookup(); -cacheable.install(http.globalAgent); - -http.get('http://example.com', response => { - // Handle the response here -}); -``` - -## API - -### new CacheableLookup(options) - -Returns a new instance of `CacheableLookup`. - -#### options - -Type: `object`
-Default: `{}` - -Options used to cache the DNS lookups. - -##### cache - -Type: `Map` | [`Keyv`](https://github.com/lukechilds/keyv/)
-Default: `new Map()` - -Custom cache instance. If `undefined`, it will create a new one. - -**Note**: If you decide to use Keyv instead of the native implementation, the performance will drop by 10x. Memory leaks may occur as it doesn't provide any way to remove all the deprecated values at once. - -**Tip**: [`QuickLRU`](https://github.com/sindresorhus/quick-lru) is fully compatible with the Map API, you can use it to limit the amount of cached entries. Example: - -```js -const http = require('http'); -const CacheableLookup = require('cacheable-lookup'); -const QuickLRU = require('quick-lru'); - -const cacheable = new CacheableLookup({ - cache: new QuickLRU({maxSize: 1000}) -}); - -http.get('http://example.com', {lookup: cacheable.lookup}, response => { - // Handle the response here -}); -``` - -##### options.maxTtl - -Type: `number`
-Default: `Infinity` - -The maximum lifetime of the entries received from the specifed DNS server (TTL in seconds). - -If set to `0`, it will make a new DNS query each time. - -**Pro Tip**: This shouldn't be lower than your DNS server response time in order to prevent bottlenecks. For example, if you use Cloudflare, this value should be greater than `0.01`. - -##### options.fallbackDuration - -Type: `number`
-Default: `3600` (1 hour) - -When the DNS server responds with `ENOTFOUND` or `ENODATA` and the OS reports that the entry is available, it will use `dns.lookup(...)` directly for the requested hostnames for the specified amount of time (in seconds). - -If you don't query internal hostnames (such as `localhost`, `database.local` etc.), it is strongly recommended to set this value to `0`. - -##### options.errorTtl - -Type: `number`
-Default: `0.15` - -The time how long it needs to remember queries that threw `ENOTFOUND` or `ENODATA` (TTL in seconds). - -**Note**: This option is independent, `options.maxTtl` does not affect this. - -**Pro Tip**: This shouldn't be lower than your DNS server response time in order to prevent bottlenecks. For example, if you use Cloudflare, this value should be greater than `0.01`. - -##### options.resolver - -Type: `dns.Resolver | dns.promises.Resolver`
-Default: [`new dns.promises.Resolver()`](https://nodejs.org/api/dns.html#dns_class_dns_resolver) - -An instance of [DNS Resolver](https://nodejs.org/api/dns.html#dns_class_dns_resolver) used to make DNS queries. - -##### options.lookup - -Type: `Function`
-Default: [`dns.lookup`](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) - -The fallback function to use when the DNS server responds with `ENOTFOUND` or `ENODATA`. - -**Note**: This has no effect if the `fallbackDuration` option is less than `1`. - -### Entry object - -Type: `object` - -#### address - -Type: `string` - -The IP address (can be an IPv4 or IPv6 address). - -#### family - -Type: `number` - -The IP family (`4` or `6`). - -##### expires - -Type: `number` - -**Note**: This is not present when falling back to `dns.lookup(...)`! - -The timestamp (`Date.now() + ttl * 1000`) when the entry expires. - -#### ttl - -**Note**: This is not present when falling back to `dns.lookup(...)`! - -The time in seconds for its lifetime. - -### Entry object (callback-style) - -When `options.all` is `false`, then `callback(error, address, family, expires, ttl)` is called.
-When `options.all` is `true`, then `callback(error, entries)` is called. - -### CacheableLookup instance - -#### servers - -Type: `Array` - -The DNS servers used to make queries. Can be overridden - doing so will clear the cache. - -#### [lookup(hostname, options, callback)](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) - -#### lookupAsync(hostname, options) - -The asynchronous version of `dns.lookup(…)`. - -Returns an [entry object](#entry-object).
-If `options.all` is true, returns an array of entry objects. - -##### hostname - -Type: `string` - -##### options - -Type: `object` - -The same as the [`dns.lookup(…)`](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) options. - -#### query(hostname) - -An asynchronous function which returns cached DNS lookup entries.
-This is the base for `lookupAsync(hostname, options)` and `lookup(hostname, options, callback)`. - -**Note**: This function has no options. - -Returns an array of objects with `address`, `family`, `ttl` and `expires` properties. - -#### queryAndCache(hostname) - -An asynchronous function which makes two DNS queries: A and AAAA. The result is cached.
-This is used by `query(hostname)` if no entry in the database is present. - -Returns an array of objects with `address`, `family`, `ttl` and `expires` properties. - -#### updateInterfaceInfo() - -Updates interface info. For example, you need to run this when you plug or unplug your WiFi driver. - -**Note:** Running `updateInterfaceInfo()` will trigger `clear()` only on network interface removal. - -#### clear(hostname?) - -Clears the cache for the given hostname. If the hostname argument is not present, the entire cache will be emptied. - -## High performance - -Performed on: -- Query: `example.com` -- CPU: i7-7700k -- CPU governor: performance - -``` -CacheableLookup#lookupAsync x 2,896,251 ops/sec ±1.07% (85 runs sampled) -CacheableLookup#lookupAsync.all x 2,842,664 ops/sec ±1.11% (88 runs sampled) -CacheableLookup#lookupAsync.all.ADDRCONFIG x 2,598,283 ops/sec ±1.21% (88 runs sampled) -CacheableLookup#lookup x 2,565,913 ops/sec ±1.56% (85 runs sampled) -CacheableLookup#lookup.all x 2,609,039 ops/sec ±1.01% (86 runs sampled) -CacheableLookup#lookup.all.ADDRCONFIG x 2,416,242 ops/sec ±0.89% (85 runs sampled) -dns#lookup x 7,272 ops/sec ±0.36% (86 runs sampled) -dns#lookup.all x 7,249 ops/sec ±0.40% (86 runs sampled) -dns#lookup.all.ADDRCONFIG x 5,693 ops/sec ±0.28% (85 runs sampled) -Fastest is CacheableLookup#lookupAsync.all -``` - -## Related - - - [cacheable-request](https://github.com/lukechilds/cacheable-request) - Wrap native HTTP requests with RFC compliant cache support - -## License - -MIT diff --git a/views/node_modules/cacheable-lookup/index.d.ts b/views/node_modules/cacheable-lookup/index.d.ts deleted file mode 100755 index 528b1e2..0000000 --- a/views/node_modules/cacheable-lookup/index.d.ts +++ /dev/null @@ -1,139 +0,0 @@ -import {Resolver, promises as dnsPromises, lookup} from 'dns'; -import {Agent} from 'http'; - -type AsyncResolver = dnsPromises.Resolver; - -export type IPFamily = 4 | 6; - -type TPromise = T | Promise; - -export interface CacheInstance { - set(hostname: string, entries: EntryObject[], ttl: number): TPromise; - get(hostname: string): TPromise; - delete(hostname: string): TPromise; - clear(): TPromise; -} - -export interface Options { - /** - * Custom cache instance. If `undefined`, it will create a new one. - * @default undefined - */ - cache?: CacheInstance; - /** - * Limits the cache time (TTL). If set to `0`, it will make a new DNS query each time. - * @default Infinity - */ - maxTtl?: number; - /** - * DNS Resolver used to make DNS queries. - * @default new dns.promises.Resolver() - */ - resolver?: Resolver | AsyncResolver; - /** - * When the DNS server responds with `ENOTFOUND` or `ENODATA` and the OS reports that the entry is available, - * it will use `dns.lookup(...)` directly for the requested hostnames for the specified amount of time (in seconds). - * - * If you don't query internal hostnames (such as `localhost`, `database.local` etc.), - * it is strongly recommended to set this value to `0`. - * @default 3600 - */ - fallbackDuration?: number; - /** - * The time how long it needs to remember failed queries (TTL in seconds). - * - * **Note**: This option is independent, `options.maxTtl` does not affect this. - * @default 0.15 - */ - errorTtl?: number; - /** - * The fallback function to use when the DNS server responds with `ENOTFOUND` or `ENODATA`. - * - * **Note**: This has no effect if the `fallbackDuration` option is less than `1`. - * @default dns.lookup - */ - lookup?: typeof lookup; -} - -export interface EntryObject { - /** - * The IP address (can be an IPv4 or IPv5 address). - */ - readonly address: string; - /** - * The IP family. - */ - readonly family: IPFamily; - /** - * The original TTL. - */ - readonly ttl?: number; - /** - * The expiration timestamp. - */ - readonly expires?: number; -} - -export interface LookupOptions { - /** - * One or more supported getaddrinfo flags. Multiple flags may be passed by bitwise ORing their values. - */ - hints?: number; - /** - * The record family. Must be `4` or `6`. IPv4 and IPv6 addresses are both returned by default. - */ - family?: IPFamily; - /** - * When `true`, the callback returns all resolved addresses in an array. Otherwise, returns a single address. - * @default false - */ - all?: boolean; -} - -export default class CacheableLookup { - constructor(options?: Options); - /** - * The DNS servers used to make queries. Can be overridden - doing so will clear the cache. - */ - servers: string[]; - /** - * @see https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback - */ - lookup(hostname: string, family: IPFamily, callback: (error: NodeJS.ErrnoException, address: string, family: IPFamily) => void): void; - lookup(hostname: string, callback: (error: NodeJS.ErrnoException, address: string, family: IPFamily) => void): void; - lookup(hostname: string, options: LookupOptions & {all: true}, callback: (error: NodeJS.ErrnoException, result: ReadonlyArray) => void): void; - lookup(hostname: string, options: LookupOptions, callback: (error: NodeJS.ErrnoException, address: string, family: IPFamily) => void): void; - /** - * The asynchronous version of `dns.lookup(…)`. - */ - lookupAsync(hostname: string, options: LookupOptions & {all: true}): Promise>; - lookupAsync(hostname: string, options: LookupOptions): Promise; - lookupAsync(hostname: string): Promise; - lookupAsync(hostname: string, family: IPFamily): Promise; - /** - * An asynchronous function which returns cached DNS lookup entries. This is the base for `lookupAsync(hostname, options)` and `lookup(hostname, options, callback)`. - */ - query(hostname: string): Promise>; - /** - * An asynchronous function which makes a new DNS lookup query and updates the database. This is used by `query(hostname, family)` if no entry in the database is present. Returns an array of objects with `address`, `family`, `ttl` and `expires` properties. - */ - queryAndCache(hostname: string): Promise>; - /** - * Attaches itself to an Agent instance. - */ - install(agent: Agent): void; - /** - * Removes itself from an Agent instance. - */ - uninstall(agent: Agent): void; - /** - * Updates interface info. For example, you need to run this when you plug or unplug your WiFi driver. - * - * **Note:** Running `updateInterfaceInfo()` will trigger `clear()` only on network interface removal. - */ - updateInterfaceInfo(): void; - /** - * Clears the cache for the given hostname. If the hostname argument is not present, the entire cache will be emptied. - */ - clear(hostname?: string): void; -} diff --git a/views/node_modules/cacheable-lookup/package.json b/views/node_modules/cacheable-lookup/package.json deleted file mode 100755 index f20991e..0000000 --- a/views/node_modules/cacheable-lookup/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "cacheable-lookup", - "version": "5.0.4", - "description": "A cacheable dns.lookup(…) that respects the TTL", - "engines": { - "node": ">=10.6.0" - }, - "files": [ - "source", - "index.d.ts" - ], - "main": "source/index.js", - "types": "index.d.ts", - "scripts": { - "test": "xo && nyc --reporter=lcovonly --reporter=text ava && tsd" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/szmarczak/cacheable-lookup.git" - }, - "keywords": [ - "dns", - "lookup", - "cacheable", - "ttl" - ], - "author": "Szymon Marczak", - "license": "MIT", - "bugs": { - "url": "https://github.com/szmarczak/cacheable-lookup/issues" - }, - "homepage": "https://github.com/szmarczak/cacheable-lookup#readme", - "devDependencies": { - "@types/keyv": "^3.1.1", - "ava": "^3.8.2", - "benchmark": "^2.1.4", - "coveralls": "^3.0.9", - "keyv": "^4.0.0", - "nyc": "^15.0.0", - "proxyquire": "^2.1.3", - "tsd": "^0.11.0", - "quick-lru": "^5.1.0", - "xo": "^0.25.3" - } -} diff --git a/views/node_modules/cacheable-lookup/source/index.js b/views/node_modules/cacheable-lookup/source/index.js deleted file mode 100755 index 21f731e..0000000 --- a/views/node_modules/cacheable-lookup/source/index.js +++ /dev/null @@ -1,436 +0,0 @@ -'use strict'; -const { - V4MAPPED, - ADDRCONFIG, - ALL, - promises: { - Resolver: AsyncResolver - }, - lookup: dnsLookup -} = require('dns'); -const {promisify} = require('util'); -const os = require('os'); - -const kCacheableLookupCreateConnection = Symbol('cacheableLookupCreateConnection'); -const kCacheableLookupInstance = Symbol('cacheableLookupInstance'); -const kExpires = Symbol('expires'); - -const supportsALL = typeof ALL === 'number'; - -const verifyAgent = agent => { - if (!(agent && typeof agent.createConnection === 'function')) { - throw new Error('Expected an Agent instance as the first argument'); - } -}; - -const map4to6 = entries => { - for (const entry of entries) { - if (entry.family === 6) { - continue; - } - - entry.address = `::ffff:${entry.address}`; - entry.family = 6; - } -}; - -const getIfaceInfo = () => { - let has4 = false; - let has6 = false; - - for (const device of Object.values(os.networkInterfaces())) { - for (const iface of device) { - if (iface.internal) { - continue; - } - - if (iface.family === 'IPv6') { - has6 = true; - } else { - has4 = true; - } - - if (has4 && has6) { - return {has4, has6}; - } - } - } - - return {has4, has6}; -}; - -const isIterable = map => { - return Symbol.iterator in map; -}; - -const ttl = {ttl: true}; -const all = {all: true}; - -class CacheableLookup { - constructor({ - cache = new Map(), - maxTtl = Infinity, - fallbackDuration = 3600, - errorTtl = 0.15, - resolver = new AsyncResolver(), - lookup = dnsLookup - } = {}) { - this.maxTtl = maxTtl; - this.errorTtl = errorTtl; - - this._cache = cache; - this._resolver = resolver; - this._dnsLookup = promisify(lookup); - - if (this._resolver instanceof AsyncResolver) { - this._resolve4 = this._resolver.resolve4.bind(this._resolver); - this._resolve6 = this._resolver.resolve6.bind(this._resolver); - } else { - this._resolve4 = promisify(this._resolver.resolve4.bind(this._resolver)); - this._resolve6 = promisify(this._resolver.resolve6.bind(this._resolver)); - } - - this._iface = getIfaceInfo(); - - this._pending = {}; - this._nextRemovalTime = false; - this._hostnamesToFallback = new Set(); - - if (fallbackDuration < 1) { - this._fallback = false; - } else { - this._fallback = true; - - const interval = setInterval(() => { - this._hostnamesToFallback.clear(); - }, fallbackDuration * 1000); - - /* istanbul ignore next: There is no `interval.unref()` when running inside an Electron renderer */ - if (interval.unref) { - interval.unref(); - } - } - - this.lookup = this.lookup.bind(this); - this.lookupAsync = this.lookupAsync.bind(this); - } - - set servers(servers) { - this.clear(); - - this._resolver.setServers(servers); - } - - get servers() { - return this._resolver.getServers(); - } - - lookup(hostname, options, callback) { - if (typeof options === 'function') { - callback = options; - options = {}; - } else if (typeof options === 'number') { - options = { - family: options - }; - } - - if (!callback) { - throw new Error('Callback must be a function.'); - } - - // eslint-disable-next-line promise/prefer-await-to-then - this.lookupAsync(hostname, options).then(result => { - if (options.all) { - callback(null, result); - } else { - callback(null, result.address, result.family, result.expires, result.ttl); - } - }, callback); - } - - async lookupAsync(hostname, options = {}) { - if (typeof options === 'number') { - options = { - family: options - }; - } - - let cached = await this.query(hostname); - - if (options.family === 6) { - const filtered = cached.filter(entry => entry.family === 6); - - if (options.hints & V4MAPPED) { - if ((supportsALL && options.hints & ALL) || filtered.length === 0) { - map4to6(cached); - } else { - cached = filtered; - } - } else { - cached = filtered; - } - } else if (options.family === 4) { - cached = cached.filter(entry => entry.family === 4); - } - - if (options.hints & ADDRCONFIG) { - const {_iface} = this; - cached = cached.filter(entry => entry.family === 6 ? _iface.has6 : _iface.has4); - } - - if (cached.length === 0) { - const error = new Error(`cacheableLookup ENOTFOUND ${hostname}`); - error.code = 'ENOTFOUND'; - error.hostname = hostname; - - throw error; - } - - if (options.all) { - return cached; - } - - return cached[0]; - } - - async query(hostname) { - let cached = await this._cache.get(hostname); - - if (!cached) { - const pending = this._pending[hostname]; - - if (pending) { - cached = await pending; - } else { - const newPromise = this.queryAndCache(hostname); - this._pending[hostname] = newPromise; - - try { - cached = await newPromise; - } finally { - delete this._pending[hostname]; - } - } - } - - cached = cached.map(entry => { - return {...entry}; - }); - - return cached; - } - - async _resolve(hostname) { - const wrap = async promise => { - try { - return await promise; - } catch (error) { - if (error.code === 'ENODATA' || error.code === 'ENOTFOUND') { - return []; - } - - throw error; - } - }; - - // ANY is unsafe as it doesn't trigger new queries in the underlying server. - const [A, AAAA] = await Promise.all([ - this._resolve4(hostname, ttl), - this._resolve6(hostname, ttl) - ].map(promise => wrap(promise))); - - let aTtl = 0; - let aaaaTtl = 0; - let cacheTtl = 0; - - const now = Date.now(); - - for (const entry of A) { - entry.family = 4; - entry.expires = now + (entry.ttl * 1000); - - aTtl = Math.max(aTtl, entry.ttl); - } - - for (const entry of AAAA) { - entry.family = 6; - entry.expires = now + (entry.ttl * 1000); - - aaaaTtl = Math.max(aaaaTtl, entry.ttl); - } - - if (A.length > 0) { - if (AAAA.length > 0) { - cacheTtl = Math.min(aTtl, aaaaTtl); - } else { - cacheTtl = aTtl; - } - } else { - cacheTtl = aaaaTtl; - } - - return { - entries: [ - ...A, - ...AAAA - ], - cacheTtl - }; - } - - async _lookup(hostname) { - try { - const entries = await this._dnsLookup(hostname, { - all: true - }); - - return { - entries, - cacheTtl: 0 - }; - } catch (_) { - return { - entries: [], - cacheTtl: 0 - }; - } - } - - async _set(hostname, data, cacheTtl) { - if (this.maxTtl > 0 && cacheTtl > 0) { - cacheTtl = Math.min(cacheTtl, this.maxTtl) * 1000; - data[kExpires] = Date.now() + cacheTtl; - - try { - await this._cache.set(hostname, data, cacheTtl); - } catch (error) { - this.lookupAsync = async () => { - const cacheError = new Error('Cache Error. Please recreate the CacheableLookup instance.'); - cacheError.cause = error; - - throw cacheError; - }; - } - - if (isIterable(this._cache)) { - this._tick(cacheTtl); - } - } - } - - async queryAndCache(hostname) { - if (this._hostnamesToFallback.has(hostname)) { - return this._dnsLookup(hostname, all); - } - - let query = await this._resolve(hostname); - - if (query.entries.length === 0 && this._fallback) { - query = await this._lookup(hostname); - - if (query.entries.length !== 0) { - // Use `dns.lookup(...)` for that particular hostname - this._hostnamesToFallback.add(hostname); - } - } - - const cacheTtl = query.entries.length === 0 ? this.errorTtl : query.cacheTtl; - await this._set(hostname, query.entries, cacheTtl); - - return query.entries; - } - - _tick(ms) { - const nextRemovalTime = this._nextRemovalTime; - - if (!nextRemovalTime || ms < nextRemovalTime) { - clearTimeout(this._removalTimeout); - - this._nextRemovalTime = ms; - - this._removalTimeout = setTimeout(() => { - this._nextRemovalTime = false; - - let nextExpiry = Infinity; - - const now = Date.now(); - - for (const [hostname, entries] of this._cache) { - const expires = entries[kExpires]; - - if (now >= expires) { - this._cache.delete(hostname); - } else if (expires < nextExpiry) { - nextExpiry = expires; - } - } - - if (nextExpiry !== Infinity) { - this._tick(nextExpiry - now); - } - }, ms); - - /* istanbul ignore next: There is no `timeout.unref()` when running inside an Electron renderer */ - if (this._removalTimeout.unref) { - this._removalTimeout.unref(); - } - } - } - - install(agent) { - verifyAgent(agent); - - if (kCacheableLookupCreateConnection in agent) { - throw new Error('CacheableLookup has been already installed'); - } - - agent[kCacheableLookupCreateConnection] = agent.createConnection; - agent[kCacheableLookupInstance] = this; - - agent.createConnection = (options, callback) => { - if (!('lookup' in options)) { - options.lookup = this.lookup; - } - - return agent[kCacheableLookupCreateConnection](options, callback); - }; - } - - uninstall(agent) { - verifyAgent(agent); - - if (agent[kCacheableLookupCreateConnection]) { - if (agent[kCacheableLookupInstance] !== this) { - throw new Error('The agent is not owned by this CacheableLookup instance'); - } - - agent.createConnection = agent[kCacheableLookupCreateConnection]; - - delete agent[kCacheableLookupCreateConnection]; - delete agent[kCacheableLookupInstance]; - } - } - - updateInterfaceInfo() { - const {_iface} = this; - - this._iface = getIfaceInfo(); - - if ((_iface.has4 && !this._iface.has4) || (_iface.has6 && !this._iface.has6)) { - this._cache.clear(); - } - } - - clear(hostname) { - if (hostname) { - this._cache.delete(hostname); - return; - } - - this._cache.clear(); - } -} - -module.exports = CacheableLookup; -module.exports.default = CacheableLookup; diff --git a/views/node_modules/cacheable-request/LICENSE b/views/node_modules/cacheable-request/LICENSE deleted file mode 100644 index f27ee9b..0000000 --- a/views/node_modules/cacheable-request/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Luke Childs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/views/node_modules/cacheable-request/README.md b/views/node_modules/cacheable-request/README.md deleted file mode 100644 index 725e7e0..0000000 --- a/views/node_modules/cacheable-request/README.md +++ /dev/null @@ -1,206 +0,0 @@ -# cacheable-request - -> Wrap native HTTP requests with RFC compliant cache support - -[![Build Status](https://travis-ci.org/lukechilds/cacheable-request.svg?branch=master)](https://travis-ci.org/lukechilds/cacheable-request) -[![Coverage Status](https://coveralls.io/repos/github/lukechilds/cacheable-request/badge.svg?branch=master)](https://coveralls.io/github/lukechilds/cacheable-request?branch=master) -[![npm](https://img.shields.io/npm/dm/cacheable-request.svg)](https://www.npmjs.com/package/cacheable-request) -[![npm](https://img.shields.io/npm/v/cacheable-request.svg)](https://www.npmjs.com/package/cacheable-request) - -[RFC 7234](http://httpwg.org/specs/rfc7234.html) compliant HTTP caching for native Node.js HTTP/HTTPS requests. Caching works out of the box in memory or is easily pluggable with a wide range of storage adapters. - -**Note:** This is a low level wrapper around the core HTTP modules, it's not a high level request library. - -## Features - -- Only stores cacheable responses as defined by RFC 7234 -- Fresh cache entries are served directly from cache -- Stale cache entries are revalidated with `If-None-Match`/`If-Modified-Since` headers -- 304 responses from revalidation requests use cached body -- Updates `Age` header on cached responses -- Can completely bypass cache on a per request basis -- In memory cache by default -- Official support for Redis, MongoDB, SQLite, PostgreSQL and MySQL storage adapters -- Easily plug in your own or third-party storage adapters -- If DB connection fails, cache is automatically bypassed ([disabled by default](#optsautomaticfailover)) -- Adds cache support to any existing HTTP code with minimal changes -- Uses [http-cache-semantics](https://github.com/pornel/http-cache-semantics) internally for HTTP RFC 7234 compliance - -## Install - -```shell -npm install cacheable-request -``` - -## Usage - -```js -const http = require('http'); -const CacheableRequest = require('cacheable-request'); - -// Then instead of -const req = http.request('http://example.com', cb); -req.end(); - -// You can do -const cacheableRequest = new CacheableRequest(http.request); -const cacheReq = cacheableRequest('http://example.com', cb); -cacheReq.on('request', req => req.end()); -// Future requests to 'example.com' will be returned from cache if still valid - -// You pass in any other http.request API compatible method to be wrapped with cache support: -const cacheableRequest = new CacheableRequest(https.request); -const cacheableRequest = new CacheableRequest(electron.net); -``` - -## Storage Adapters - -`cacheable-request` uses [Keyv](https://github.com/lukechilds/keyv) to support a wide range of storage adapters. - -For example, to use Redis as a cache backend, you just need to install the official Redis Keyv storage adapter: - -``` -npm install @keyv/redis -``` - -And then you can pass `CacheableRequest` your connection string: - -```js -const cacheableRequest = new CacheableRequest(http.request, 'redis://user:pass@localhost:6379'); -``` - -[View all official Keyv storage adapters.](https://github.com/lukechilds/keyv#official-storage-adapters) - -Keyv also supports anything that follows the Map API so it's easy to write your own storage adapter or use a third-party solution. - -e.g The following are all valid storage adapters - -```js -const storageAdapter = new Map(); -// or -const storageAdapter = require('./my-storage-adapter'); -// or -const QuickLRU = require('quick-lru'); -const storageAdapter = new QuickLRU({ maxSize: 1000 }); - -const cacheableRequest = new CacheableRequest(http.request, storageAdapter); -``` - -View the [Keyv docs](https://github.com/lukechilds/keyv) for more information on how to use storage adapters. - -## API - -### new cacheableRequest(request, [storageAdapter]) - -Returns the provided request function wrapped with cache support. - -#### request - -Type: `function` - -Request function to wrap with cache support. Should be [`http.request`](https://nodejs.org/api/http.html#http_http_request_options_callback) or a similar API compatible request function. - -#### storageAdapter - -Type: `Keyv storage adapter`
-Default: `new Map()` - -A [Keyv](https://github.com/lukechilds/keyv) storage adapter instance, or connection string if using with an official Keyv storage adapter. - -### Instance - -#### cacheableRequest(opts, [cb]) - -Returns an event emitter. - -##### opts - -Type: `object`, `string` - -- Any of the default request functions options. -- Any [`http-cache-semantics`](https://github.com/kornelski/http-cache-semantics#constructor-options) options. -- Any of the following: - -###### opts.cache - -Type: `boolean`
-Default: `true` - -If the cache should be used. Setting this to false will completely bypass the cache for the current request. - -###### opts.strictTtl - -Type: `boolean`
-Default: `false` - -If set to `true` once a cached resource has expired it is deleted and will have to be re-requested. - -If set to `false` (default), after a cached resource's TTL expires it is kept in the cache and will be revalidated on the next request with `If-None-Match`/`If-Modified-Since` headers. - -###### opts.maxTtl - -Type: `number`
-Default: `undefined` - -Limits TTL. The `number` represents milliseconds. - -###### opts.automaticFailover - -Type: `boolean`
-Default: `false` - -When set to `true`, if the DB connection fails we will automatically fallback to a network request. DB errors will still be emitted to notify you of the problem even though the request callback may succeed. - -###### opts.forceRefresh - -Type: `boolean`
-Default: `false` - -Forces refreshing the cache. If the response could be retrieved from the cache, it will perform a new request and override the cache instead. - -##### cb - -Type: `function` - -The callback function which will receive the response as an argument. - -The response can be either a [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage) or a [responselike object](https://github.com/lukechilds/responselike). The response will also have a `fromCache` property set with a boolean value. - -##### .on('request', request) - -`request` event to get the request object of the request. - -**Note:** This event will only fire if an HTTP request is actually made, not when a response is retrieved from cache. However, you should always handle the `request` event to end the request and handle any potential request errors. - -##### .on('response', response) - -`response` event to get the response object from the HTTP request or cache. - -##### .on('error', error) - -`error` event emitted in case of an error with the cache. - -Errors emitted here will be an instance of `CacheableRequest.RequestError` or `CacheableRequest.CacheError`. You will only ever receive a `RequestError` if the request function throws (normally caused by invalid user input). Normal request errors should be handled inside the `request` event. - -To properly handle all error scenarios you should use the following pattern: - -```js -cacheableRequest('example.com', cb) - .on('error', err => { - if (err instanceof CacheableRequest.CacheError) { - handleCacheError(err); // Cache error - } else if (err instanceof CacheableRequest.RequestError) { - handleRequestError(err); // Request function thrown - } - }) - .on('request', req => { - req.on('error', handleRequestError); // Request error emitted - req.end(); - }); -``` - -**Note:** Database connection errors are emitted here, however `cacheable-request` will attempt to re-request the resource and bypass the cache on a connection error. Therefore a database connection error doesn't necessarily mean the request won't be fulfilled. - -## License - -MIT © Luke Childs diff --git a/views/node_modules/cacheable-request/package.json b/views/node_modules/cacheable-request/package.json deleted file mode 100644 index fec4797..0000000 --- a/views/node_modules/cacheable-request/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "cacheable-request", - "version": "7.0.1", - "description": "Wrap native HTTP requests with RFC compliant cache support", - "license": "MIT", - "repository": "lukechilds/cacheable-request", - "author": "Luke Childs (http://lukechilds.co.uk)", - "main": "src/index.js", - "engines": { - "node": ">=8" - }, - "scripts": { - "test": "xo && nyc ava", - "coverage": "nyc report --reporter=text-lcov | coveralls" - }, - "files": [ - "src" - ], - "keywords": [ - "HTTP", - "HTTPS", - "cache", - "caching", - "layer", - "cacheable", - "RFC 7234", - "RFC", - "7234", - "compliant" - ], - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^2.0.0" - }, - "devDependencies": { - "@keyv/sqlite": "^2.0.0", - "ava": "^1.1.0", - "coveralls": "^3.0.0", - "create-test-server": "3.0.0", - "delay": "^4.0.0", - "eslint-config-xo-lukechilds": "^1.0.0", - "nyc": "^14.1.1", - "pify": "^4.0.0", - "sqlite3": "^4.0.2", - "this": "^1.0.2", - "xo": "^0.23.0" - }, - "xo": { - "extends": "xo-lukechilds" - } -} diff --git a/views/node_modules/cacheable-request/src/index.js b/views/node_modules/cacheable-request/src/index.js deleted file mode 100644 index 3fcea3f..0000000 --- a/views/node_modules/cacheable-request/src/index.js +++ /dev/null @@ -1,251 +0,0 @@ -'use strict'; - -const EventEmitter = require('events'); -const urlLib = require('url'); -const normalizeUrl = require('normalize-url'); -const getStream = require('get-stream'); -const CachePolicy = require('http-cache-semantics'); -const Response = require('responselike'); -const lowercaseKeys = require('lowercase-keys'); -const cloneResponse = require('clone-response'); -const Keyv = require('keyv'); - -class CacheableRequest { - constructor(request, cacheAdapter) { - if (typeof request !== 'function') { - throw new TypeError('Parameter `request` must be a function'); - } - - this.cache = new Keyv({ - uri: typeof cacheAdapter === 'string' && cacheAdapter, - store: typeof cacheAdapter !== 'string' && cacheAdapter, - namespace: 'cacheable-request' - }); - - return this.createCacheableRequest(request); - } - - createCacheableRequest(request) { - return (opts, cb) => { - let url; - if (typeof opts === 'string') { - url = normalizeUrlObject(urlLib.parse(opts)); - opts = {}; - } else if (opts instanceof urlLib.URL) { - url = normalizeUrlObject(urlLib.parse(opts.toString())); - opts = {}; - } else { - const [pathname, ...searchParts] = (opts.path || '').split('?'); - const search = searchParts.length > 0 ? - `?${searchParts.join('?')}` : - ''; - url = normalizeUrlObject({ ...opts, pathname, search }); - } - - opts = { - headers: {}, - method: 'GET', - cache: true, - strictTtl: false, - automaticFailover: false, - ...opts, - ...urlObjectToRequestOptions(url) - }; - opts.headers = lowercaseKeys(opts.headers); - - const ee = new EventEmitter(); - const normalizedUrlString = normalizeUrl( - urlLib.format(url), - { - stripWWW: false, - removeTrailingSlash: false, - stripAuthentication: false - } - ); - const key = `${opts.method}:${normalizedUrlString}`; - let revalidate = false; - let madeRequest = false; - - const makeRequest = opts => { - madeRequest = true; - let requestErrored = false; - let requestErrorCallback; - - const requestErrorPromise = new Promise(resolve => { - requestErrorCallback = () => { - if (!requestErrored) { - requestErrored = true; - resolve(); - } - }; - }); - - const handler = response => { - if (revalidate && !opts.forceRefresh) { - response.status = response.statusCode; - const revalidatedPolicy = CachePolicy.fromObject(revalidate.cachePolicy).revalidatedPolicy(opts, response); - if (!revalidatedPolicy.modified) { - const headers = revalidatedPolicy.policy.responseHeaders(); - response = new Response(revalidate.statusCode, headers, revalidate.body, revalidate.url); - response.cachePolicy = revalidatedPolicy.policy; - response.fromCache = true; - } - } - - if (!response.fromCache) { - response.cachePolicy = new CachePolicy(opts, response, opts); - response.fromCache = false; - } - - let clonedResponse; - if (opts.cache && response.cachePolicy.storable()) { - clonedResponse = cloneResponse(response); - - (async () => { - try { - const bodyPromise = getStream.buffer(response); - - await Promise.race([ - requestErrorPromise, - new Promise(resolve => response.once('end', resolve)) - ]); - - if (requestErrored) { - return; - } - - const body = await bodyPromise; - - const value = { - cachePolicy: response.cachePolicy.toObject(), - url: response.url, - statusCode: response.fromCache ? revalidate.statusCode : response.statusCode, - body - }; - - let ttl = opts.strictTtl ? response.cachePolicy.timeToLive() : undefined; - if (opts.maxTtl) { - ttl = ttl ? Math.min(ttl, opts.maxTtl) : opts.maxTtl; - } - - await this.cache.set(key, value, ttl); - } catch (error) { - ee.emit('error', new CacheableRequest.CacheError(error)); - } - })(); - } else if (opts.cache && revalidate) { - (async () => { - try { - await this.cache.delete(key); - } catch (error) { - ee.emit('error', new CacheableRequest.CacheError(error)); - } - })(); - } - - ee.emit('response', clonedResponse || response); - if (typeof cb === 'function') { - cb(clonedResponse || response); - } - }; - - try { - const req = request(opts, handler); - req.once('error', requestErrorCallback); - req.once('abort', requestErrorCallback); - ee.emit('request', req); - } catch (error) { - ee.emit('error', new CacheableRequest.RequestError(error)); - } - }; - - (async () => { - const get = async opts => { - await Promise.resolve(); - - const cacheEntry = opts.cache ? await this.cache.get(key) : undefined; - if (typeof cacheEntry === 'undefined') { - return makeRequest(opts); - } - - const policy = CachePolicy.fromObject(cacheEntry.cachePolicy); - if (policy.satisfiesWithoutRevalidation(opts) && !opts.forceRefresh) { - const headers = policy.responseHeaders(); - const response = new Response(cacheEntry.statusCode, headers, cacheEntry.body, cacheEntry.url); - response.cachePolicy = policy; - response.fromCache = true; - - ee.emit('response', response); - if (typeof cb === 'function') { - cb(response); - } - } else { - revalidate = cacheEntry; - opts.headers = policy.revalidationHeaders(opts); - makeRequest(opts); - } - }; - - const errorHandler = error => ee.emit('error', new CacheableRequest.CacheError(error)); - this.cache.once('error', errorHandler); - ee.on('response', () => this.cache.removeListener('error', errorHandler)); - - try { - await get(opts); - } catch (error) { - if (opts.automaticFailover && !madeRequest) { - makeRequest(opts); - } - - ee.emit('error', new CacheableRequest.CacheError(error)); - } - })(); - - return ee; - }; - } -} - -function urlObjectToRequestOptions(url) { - const options = { ...url }; - options.path = `${url.pathname || '/'}${url.search || ''}`; - delete options.pathname; - delete options.search; - return options; -} - -function normalizeUrlObject(url) { - // If url was parsed by url.parse or new URL: - // - hostname will be set - // - host will be hostname[:port] - // - port will be set if it was explicit in the parsed string - // Otherwise, url was from request options: - // - hostname or host may be set - // - host shall not have port encoded - return { - protocol: url.protocol, - auth: url.auth, - hostname: url.hostname || url.host || 'localhost', - port: url.port, - pathname: url.pathname, - search: url.search - }; -} - -CacheableRequest.RequestError = class extends Error { - constructor(error) { - super(error.message); - this.name = 'RequestError'; - Object.assign(this, error); - } -}; - -CacheableRequest.CacheError = class extends Error { - constructor(error) { - super(error.message); - this.name = 'CacheError'; - Object.assign(this, error); - } -}; - -module.exports = CacheableRequest; diff --git a/views/node_modules/call-bind/.eslintignore b/views/node_modules/call-bind/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/views/node_modules/call-bind/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/views/node_modules/call-bind/.eslintrc b/views/node_modules/call-bind/.eslintrc deleted file mode 100644 index e5d3c9a..0000000 --- a/views/node_modules/call-bind/.eslintrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "func-name-matching": 0, - "id-length": 0, - "new-cap": [2, { - "capIsNewExceptions": [ - "GetIntrinsic", - ], - }], - "no-magic-numbers": 0, - "operator-linebreak": [2, "before"], - }, -} diff --git a/views/node_modules/call-bind/.github/FUNDING.yml b/views/node_modules/call-bind/.github/FUNDING.yml deleted file mode 100644 index c70c2ec..0000000 --- a/views/node_modules/call-bind/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/call-bind -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/views/node_modules/call-bind/.nycrc b/views/node_modules/call-bind/.nycrc deleted file mode 100644 index 1826526..0000000 --- a/views/node_modules/call-bind/.nycrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, - "exclude": [ - "coverage", - "test" - ] -} diff --git a/views/node_modules/call-bind/CHANGELOG.md b/views/node_modules/call-bind/CHANGELOG.md deleted file mode 100644 index 62a3727..0000000 --- a/views/node_modules/call-bind/CHANGELOG.md +++ /dev/null @@ -1,42 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.2](https://github.com/ljharb/call-bind/compare/v1.0.1...v1.0.2) - 2021-01-11 - -### Commits - -- [Fix] properly include the receiver in the bound length [`dbae7bc`](https://github.com/ljharb/call-bind/commit/dbae7bc676c079a0d33c0a43e9ef92cb7b01345d) - -## [v1.0.1](https://github.com/ljharb/call-bind/compare/v1.0.0...v1.0.1) - 2021-01-08 - -### Commits - -- [Tests] migrate tests to Github Actions [`b6db284`](https://github.com/ljharb/call-bind/commit/b6db284c36f8ccd195b88a6764fe84b7223a0da1) -- [meta] do not publish github action workflow files [`ec7fe46`](https://github.com/ljharb/call-bind/commit/ec7fe46e60cfa4764ee943d2755f5e5a366e578e) -- [Fix] preserve original function’s length when possible [`adbceaa`](https://github.com/ljharb/call-bind/commit/adbceaa3cac4b41ea78bb19d7ccdbaaf7e0bdadb) -- [Tests] gather coverage data on every job [`d69e23c`](https://github.com/ljharb/call-bind/commit/d69e23cc65f101ba1d4c19bb07fa8eb0ec624be8) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`2fd3586`](https://github.com/ljharb/call-bind/commit/2fd3586c5d47b335364c14293114c6b625ae1f71) -- [Deps] update `get-intrinsic` [`f23e931`](https://github.com/ljharb/call-bind/commit/f23e9318cc271c2add8bb38cfded85ee7baf8eee) -- [Deps] update `get-intrinsic` [`72d9f44`](https://github.com/ljharb/call-bind/commit/72d9f44e184465ba8dd3fb48260bbcff234985f2) -- [meta] fix FUNDING.yml [`e723573`](https://github.com/ljharb/call-bind/commit/e723573438c5a68dcec31fb5d96ea6b7e4a93be8) -- [eslint] ignore coverage output [`15e76d2`](https://github.com/ljharb/call-bind/commit/15e76d28a5f43e504696401e5b31ebb78ee1b532) -- [meta] add Automatic Rebase and Require Allow Edits workflows [`8fa4dab`](https://github.com/ljharb/call-bind/commit/8fa4dabb23ba3dd7bb92c9571c1241c08b56e4b6) - -## v1.0.0 - 2020-10-30 - -### Commits - -- Initial commit [`306cf98`](https://github.com/ljharb/call-bind/commit/306cf98c7ec9e7ef66b653ec152277ac1381eb50) -- Tests [`e10d0bb`](https://github.com/ljharb/call-bind/commit/e10d0bbdadc7a10ecedc9a1c035112d3e368b8df) -- Implementation [`43852ed`](https://github.com/ljharb/call-bind/commit/43852eda0f187327b7fad2423ca972149a52bd65) -- npm init [`408f860`](https://github.com/ljharb/call-bind/commit/408f860b773a2f610805fd3613d0d71bac1b6249) -- [meta] add Automatic Rebase and Require Allow Edits workflows [`fb349b2`](https://github.com/ljharb/call-bind/commit/fb349b2e48defbec8b5ec8a8395cc8f69f220b13) -- [meta] add `auto-changelog` [`c4001fc`](https://github.com/ljharb/call-bind/commit/c4001fc43031799ef908211c98d3b0fb2b60fde4) -- [meta] add "funding"; create `FUNDING.yml` [`d4d6d29`](https://github.com/ljharb/call-bind/commit/d4d6d2974a14bc2e98830468eda7fe6d6a776717) -- [Tests] add `npm run lint` [`dedfb98`](https://github.com/ljharb/call-bind/commit/dedfb98bd0ecefb08ddb9a94061bd10cde4332af) -- Only apps should have lockfiles [`54ac776`](https://github.com/ljharb/call-bind/commit/54ac77653db45a7361dc153d2f478e743f110650) -- [meta] add `safe-publish-latest` [`9ea8e43`](https://github.com/ljharb/call-bind/commit/9ea8e435b950ce9b705559cd651039f9bf40140f) diff --git a/views/node_modules/call-bind/LICENSE b/views/node_modules/call-bind/LICENSE deleted file mode 100644 index 48f05d0..0000000 --- a/views/node_modules/call-bind/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/views/node_modules/call-bind/README.md b/views/node_modules/call-bind/README.md deleted file mode 100644 index 53649eb..0000000 --- a/views/node_modules/call-bind/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# call-bind -Robustly `.call.bind()` a function. diff --git a/views/node_modules/call-bind/callBound.js b/views/node_modules/call-bind/callBound.js deleted file mode 100644 index 8374adf..0000000 --- a/views/node_modules/call-bind/callBound.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var callBind = require('./'); - -var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); - -module.exports = function callBoundIntrinsic(name, allowMissing) { - var intrinsic = GetIntrinsic(name, !!allowMissing); - if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { - return callBind(intrinsic); - } - return intrinsic; -}; diff --git a/views/node_modules/call-bind/index.js b/views/node_modules/call-bind/index.js deleted file mode 100644 index 6fa3e4a..0000000 --- a/views/node_modules/call-bind/index.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var bind = require('function-bind'); -var GetIntrinsic = require('get-intrinsic'); - -var $apply = GetIntrinsic('%Function.prototype.apply%'); -var $call = GetIntrinsic('%Function.prototype.call%'); -var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); - -var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true); -var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); -var $max = GetIntrinsic('%Math.max%'); - -if ($defineProperty) { - try { - $defineProperty({}, 'a', { value: 1 }); - } catch (e) { - // IE 8 has a broken defineProperty - $defineProperty = null; - } -} - -module.exports = function callBind(originalFunction) { - var func = $reflectApply(bind, $call, arguments); - if ($gOPD && $defineProperty) { - var desc = $gOPD(func, 'length'); - if (desc.configurable) { - // original length, plus the receiver, minus any additional arguments (after the receiver) - $defineProperty( - func, - 'length', - { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) } - ); - } - } - return func; -}; - -var applyBind = function applyBind() { - return $reflectApply(bind, $apply, arguments); -}; - -if ($defineProperty) { - $defineProperty(module.exports, 'apply', { value: applyBind }); -} else { - module.exports.apply = applyBind; -} diff --git a/views/node_modules/call-bind/package.json b/views/node_modules/call-bind/package.json deleted file mode 100644 index 4360556..0000000 --- a/views/node_modules/call-bind/package.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "call-bind", - "version": "1.0.2", - "description": "Robustly `.call.bind()` a function", - "main": "index.js", - "exports": { - ".": [ - { - "default": "./index.js" - }, - "./index.js" - ], - "./callBound": [ - { - "default": "./callBound.js" - }, - "./callBound.js" - ], - "./package.json": "./package.json" - }, - "scripts": { - "prepublish": "safe-publish-latest", - "lint": "eslint --ext=.js,.mjs .", - "pretest": "npm run lint", - "tests-only": "nyc tape 'test/*'", - "test": "npm run tests-only", - "posttest": "aud --production", - "version": "auto-changelog && git add CHANGELOG.md", - "postversion": "auto-changelog && git add CHANGELOG.md && git commit --no-edit --amend && git tag -f \"v$(node -e \"console.log(require('./package.json').version)\")\"" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/ljharb/call-bind.git" - }, - "keywords": [ - "javascript", - "ecmascript", - "es", - "js", - "callbind", - "callbound", - "call", - "bind", - "bound", - "call-bind", - "call-bound", - "function", - "es-abstract" - ], - "author": "Jordan Harband ", - "funding": { - "url": "https://github.com/sponsors/ljharb" - }, - "license": "MIT", - "bugs": { - "url": "https://github.com/ljharb/call-bind/issues" - }, - "homepage": "https://github.com/ljharb/call-bind#readme", - "devDependencies": { - "@ljharb/eslint-config": "^17.3.0", - "aud": "^1.1.3", - "auto-changelog": "^2.2.1", - "eslint": "^7.17.0", - "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.1.1" - }, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "auto-changelog": { - "output": "CHANGELOG.md", - "template": "keepachangelog", - "unreleased": false, - "commitLimit": false, - "backfillLimit": false, - "hideCredit": true - } -} diff --git a/views/node_modules/call-bind/test/callBound.js b/views/node_modules/call-bind/test/callBound.js deleted file mode 100644 index 209ce3c..0000000 --- a/views/node_modules/call-bind/test/callBound.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict'; - -var test = require('tape'); - -var callBound = require('../callBound'); - -test('callBound', function (t) { - // static primitive - t.equal(callBound('Array.length'), Array.length, 'Array.length yields itself'); - t.equal(callBound('%Array.length%'), Array.length, '%Array.length% yields itself'); - - // static non-function object - t.equal(callBound('Array.prototype'), Array.prototype, 'Array.prototype yields itself'); - t.equal(callBound('%Array.prototype%'), Array.prototype, '%Array.prototype% yields itself'); - t.equal(callBound('Array.constructor'), Array.constructor, 'Array.constructor yields itself'); - t.equal(callBound('%Array.constructor%'), Array.constructor, '%Array.constructor% yields itself'); - - // static function - t.equal(callBound('Date.parse'), Date.parse, 'Date.parse yields itself'); - t.equal(callBound('%Date.parse%'), Date.parse, '%Date.parse% yields itself'); - - // prototype primitive - t.equal(callBound('Error.prototype.message'), Error.prototype.message, 'Error.prototype.message yields itself'); - t.equal(callBound('%Error.prototype.message%'), Error.prototype.message, '%Error.prototype.message% yields itself'); - - // prototype function - t.notEqual(callBound('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString does not yield itself'); - t.notEqual(callBound('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% does not yield itself'); - t.equal(callBound('Object.prototype.toString')(true), Object.prototype.toString.call(true), 'call-bound Object.prototype.toString calls into the original'); - t.equal(callBound('%Object.prototype.toString%')(true), Object.prototype.toString.call(true), 'call-bound %Object.prototype.toString% calls into the original'); - - t['throws']( - function () { callBound('does not exist'); }, - SyntaxError, - 'nonexistent intrinsic throws' - ); - t['throws']( - function () { callBound('does not exist', true); }, - SyntaxError, - 'allowMissing arg still throws for unknown intrinsic' - ); - - /* globals WeakRef: false */ - t.test('real but absent intrinsic', { skip: typeof WeakRef !== 'undefined' }, function (st) { - st['throws']( - function () { callBound('WeakRef'); }, - TypeError, - 'real but absent intrinsic throws' - ); - st.equal(callBound('WeakRef', true), undefined, 'allowMissing arg avoids exception'); - st.end(); - }); - - t.end(); -}); diff --git a/views/node_modules/call-bind/test/index.js b/views/node_modules/call-bind/test/index.js deleted file mode 100644 index bf6769c..0000000 --- a/views/node_modules/call-bind/test/index.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -var callBind = require('../'); -var bind = require('function-bind'); - -var test = require('tape'); - -/* - * older engines have length nonconfigurable - * in io.js v3, it is configurable except on bound functions, hence the .bind() - */ -var functionsHaveConfigurableLengths = !!( - Object.getOwnPropertyDescriptor - && Object.getOwnPropertyDescriptor(bind.call(function () {}), 'length').configurable -); - -test('callBind', function (t) { - var sentinel = { sentinel: true }; - var func = function (a, b) { - // eslint-disable-next-line no-invalid-this - return [this, a, b]; - }; - t.equal(func.length, 2, 'original function length is 2'); - t.deepEqual(func(), [undefined, undefined, undefined], 'unbound func with too few args'); - t.deepEqual(func(1, 2), [undefined, 1, 2], 'unbound func with right args'); - t.deepEqual(func(1, 2, 3), [undefined, 1, 2], 'unbound func with too many args'); - - var bound = callBind(func); - t.equal(bound.length, func.length + 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths }); - t.deepEqual(bound(), [undefined, undefined, undefined], 'bound func with too few args'); - t.deepEqual(bound(1, 2), [1, 2, undefined], 'bound func with right args'); - t.deepEqual(bound(1, 2, 3), [1, 2, 3], 'bound func with too many args'); - - var boundR = callBind(func, sentinel); - t.equal(boundR.length, func.length, 'function length is preserved', { skip: !functionsHaveConfigurableLengths }); - t.deepEqual(boundR(), [sentinel, undefined, undefined], 'bound func with receiver, with too few args'); - t.deepEqual(boundR(1, 2), [sentinel, 1, 2], 'bound func with receiver, with right args'); - t.deepEqual(boundR(1, 2, 3), [sentinel, 1, 2], 'bound func with receiver, with too many args'); - - var boundArg = callBind(func, sentinel, 1); - t.equal(boundArg.length, func.length - 1, 'function length is preserved', { skip: !functionsHaveConfigurableLengths }); - t.deepEqual(boundArg(), [sentinel, 1, undefined], 'bound func with receiver and arg, with too few args'); - t.deepEqual(boundArg(2), [sentinel, 1, 2], 'bound func with receiver and arg, with right arg'); - t.deepEqual(boundArg(2, 3), [sentinel, 1, 2], 'bound func with receiver and arg, with too many args'); - - t.test('callBind.apply', function (st) { - var aBound = callBind.apply(func); - st.deepEqual(aBound(sentinel), [sentinel, undefined, undefined], 'apply-bound func with no args'); - st.deepEqual(aBound(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args'); - st.deepEqual(aBound(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args'); - - var aBoundArg = callBind.apply(func); - st.deepEqual(aBoundArg(sentinel, [1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with too many args'); - st.deepEqual(aBoundArg(sentinel, [1, 2], 4), [sentinel, 1, 2], 'apply-bound func with right args'); - st.deepEqual(aBoundArg(sentinel, [1], 4), [sentinel, 1, undefined], 'apply-bound func with too few args'); - - var aBoundR = callBind.apply(func, sentinel); - st.deepEqual(aBoundR([1, 2, 3], 4), [sentinel, 1, 2], 'apply-bound func with receiver and too many args'); - st.deepEqual(aBoundR([1, 2], 4), [sentinel, 1, 2], 'apply-bound func with receiver and right args'); - st.deepEqual(aBoundR([1], 4), [sentinel, 1, undefined], 'apply-bound func with receiver and too few args'); - - st.end(); - }); - - t.end(); -}); diff --git a/views/node_modules/ccash-client-js/README.md b/views/node_modules/ccash-client-js/README.md deleted file mode 100644 index 9d6b345..0000000 --- a/views/node_modules/ccash-client-js/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# ccash-client-js - -TypeScript/JavaScript client library for [CCash](https://github.com/EntireTwix/CCash) HTTP API. - -## Installation - -``` -yarn add ccash-client-js -# or -npm install --save ccash-client-js -``` - -## Usage - -```js -import { CCashClient } from 'ccash-client-js'; - -process.env.CCASH_API_BASE_URL = 'https://your.ccash.api'; - -const client = new CCashClient(); - -console.log(await client.balance('blinkblinko')); -``` - -Set environment variable `DEBUG=CCashClient` to log debug messages. - -## Examples - -- Web (react) example can be found in [`examples/web`](./examples/web) - -- Server (node) example can be found in [`examples/node`](./examples/node) - -Run `yarn start` to run the examples from their corresponding directory. - -## Development - -- Build for production: `yarn build` - -- Build and watch for development: `yarn dev` - -- Format source code w/ prettier: `yarn format` - -- Test source units w/ jest: `yarn test` diff --git a/views/node_modules/ccash-client-js/dist/CCashClient.d.ts b/views/node_modules/ccash-client-js/dist/CCashClient.d.ts deleted file mode 100644 index ec299fa..0000000 --- a/views/node_modules/ccash-client-js/dist/CCashClient.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { AxiosInstance } from 'axios'; -import { ICCashClient } from './CCashClient.types'; -export declare class CCashClient implements ICCashClient { - http: AxiosInstance; - constructor(baseURL?: string | undefined); - balance(user: string): Promise; - log(user: string, password: string): Promise; - sendFunds(user: string, password: string, to: string, amount: number): Promise; - verifyPassword(user: string, password: string): Promise; - changePassword(user: string, password: string, newPassword: string): Promise; - setBalance(user: string, password: string, amount: number): Promise; - help(): Promise; - ping(): Promise<'pong'>; - close(password: string): Promise; - contains(user: string): Promise; - adminVerifyPassword(password: string): Promise; - addUser(user: string, password: string): Promise; - adminAddUser(user: string, password: string, initialPassword: string, initialBalance: number): Promise; - deleteUser(user: string, password: string): Promise; - adminDeleteUser(user: string, password: string): Promise; - private handleResponse; - private handleExceptions; -} diff --git a/views/node_modules/ccash-client-js/dist/CCashClient.exceptions.d.ts b/views/node_modules/ccash-client-js/dist/CCashClient.exceptions.d.ts deleted file mode 100644 index d28cb05..0000000 --- a/views/node_modules/ccash-client-js/dist/CCashClient.exceptions.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Exception } from './Exception'; -export declare class BaseUrlMissingException extends Exception { - constructor(); -} -export declare class UserNotFoundException extends Exception { - constructor(); -} -export declare class WrongPasswordException extends Exception { - constructor(); -} -export declare class InvalidRequestException extends Exception { - constructor(); -} -export declare class NameTooLongException extends Exception { - constructor(); -} -export declare class UserAlreadyExistsException extends Exception { - constructor(); -} -export declare class InsufficientFundsException extends Exception { - constructor(); -} -export declare enum ErrorCodes { - UserNotFound = -1, - WrongPassword = -2, - InvalidRequest = -3, - NameTooLong = -5, - UserAlreadyExists = -6, - InsufficientFunds = -7 -} -export declare const ExceptionMap: { - [-1]: typeof UserNotFoundException; - [-2]: typeof WrongPasswordException; - [-3]: typeof InvalidRequestException; - [-5]: typeof NameTooLongException; - [-6]: typeof UserAlreadyExistsException; - [-7]: typeof InsufficientFundsException; -}; diff --git a/views/node_modules/ccash-client-js/dist/CCashClient.exceptions.js b/views/node_modules/ccash-client-js/dist/CCashClient.exceptions.js deleted file mode 100644 index d4a7c77..0000000 --- a/views/node_modules/ccash-client-js/dist/CCashClient.exceptions.js +++ /dev/null @@ -1,63 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ExceptionMap = exports.ErrorCodes = exports.InsufficientFundsException = exports.UserAlreadyExistsException = exports.NameTooLongException = exports.InvalidRequestException = exports.WrongPasswordException = exports.UserNotFoundException = exports.BaseUrlMissingException = void 0; -const Exception_1 = require("./Exception"); -class BaseUrlMissingException extends Exception_1.Exception { - constructor() { - super('base url missing'); - } -} -exports.BaseUrlMissingException = BaseUrlMissingException; -class UserNotFoundException extends Exception_1.Exception { - constructor() { - super('user not found'); - } -} -exports.UserNotFoundException = UserNotFoundException; -class WrongPasswordException extends Exception_1.Exception { - constructor() { - super('wrong password'); - } -} -exports.WrongPasswordException = WrongPasswordException; -class InvalidRequestException extends Exception_1.Exception { - constructor() { - super('invalid request'); - } -} -exports.InvalidRequestException = InvalidRequestException; -class NameTooLongException extends Exception_1.Exception { - constructor() { - super('name too long'); - } -} -exports.NameTooLongException = NameTooLongException; -class UserAlreadyExistsException extends Exception_1.Exception { - constructor() { - super('user already exists'); - } -} -exports.UserAlreadyExistsException = UserAlreadyExistsException; -class InsufficientFundsException extends Exception_1.Exception { - constructor() { - super('insufficient funds'); - } -} -exports.InsufficientFundsException = InsufficientFundsException; -var ErrorCodes; -(function (ErrorCodes) { - ErrorCodes[ErrorCodes["UserNotFound"] = -1] = "UserNotFound"; - ErrorCodes[ErrorCodes["WrongPassword"] = -2] = "WrongPassword"; - ErrorCodes[ErrorCodes["InvalidRequest"] = -3] = "InvalidRequest"; - ErrorCodes[ErrorCodes["NameTooLong"] = -5] = "NameTooLong"; - ErrorCodes[ErrorCodes["UserAlreadyExists"] = -6] = "UserAlreadyExists"; - ErrorCodes[ErrorCodes["InsufficientFunds"] = -7] = "InsufficientFunds"; -})(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {})); -exports.ExceptionMap = { - [ErrorCodes.UserNotFound]: UserNotFoundException, - [ErrorCodes.WrongPassword]: WrongPasswordException, - [ErrorCodes.InvalidRequest]: InvalidRequestException, - [ErrorCodes.NameTooLong]: NameTooLongException, - [ErrorCodes.UserAlreadyExists]: UserAlreadyExistsException, - [ErrorCodes.InsufficientFunds]: InsufficientFundsException, -}; diff --git a/views/node_modules/ccash-client-js/dist/CCashClient.js b/views/node_modules/ccash-client-js/dist/CCashClient.js deleted file mode 100644 index 7785d3a..0000000 --- a/views/node_modules/ccash-client-js/dist/CCashClient.js +++ /dev/null @@ -1,194 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.CCashClient = void 0; -const axios_1 = require("axios"); -const class_validator_1 = require("class-validator"); -const debug_1 = require("debug"); -const responses_1 = require("./responses"); -const exceptions_1 = require("./exceptions"); -const log = debug_1.default('CCashClient'); -function LogCall(target, propertyKey, descriptor) { - const original = descriptor.value; - descriptor.value = function (...args) { - log(`call ${propertyKey}`); - return original.apply(this, args); - }; -} -class CCashClient { - constructor(baseURL = process.env.CCASH_API_BASE_URL) { - if (!baseURL) { - throw new exceptions_1.BaseUrlMissingException(); - } - this.http = axios_1.default.create({ - baseURL, - }); - } - balance(user) { - return this.http - .get(`/${user}/bal`) - .then((response) => __awaiter(this, void 0, void 0, function* () { return yield this.handleResponse(response); })); - } - log(user, password) { - return this.http - .get(`/${user}/log`, { - headers: { Password: password }, - }) - .then((response) => this.handleResponse(response, responses_1.LogResponseValidator)); - } - sendFunds(user, password, to, amount) { - return this.http - .post(`/${user}/send/${to}`, undefined, { - headers: { Password: password }, - params: { amount: amount }, - }) - .then((response) => this.handleResponse(response)); - } - verifyPassword(user, password) { - return this.http - .get(`/${user}/pass/verify`, { headers: { Password: password } }) - .then((response) => this.handleResponse(response)); - } - changePassword(user, password, newPassword) { - return this.http - .patch(`/${user}/pass/change`, newPassword, { - headers: { Password: password }, - }) - .then((response) => this.handleResponse(response)); - } - setBalance(user, password, amount) { - return this.http - .patch(`/admin/${user}/bal`, undefined, { - headers: { Password: password }, - params: { amount: amount }, - }) - .then((response) => this.handleResponse(response)); - } - help() { - return this.http - .get('/help') - .then((response) => this.handleResponse(response, responses_1.StringResponseValidator)); - } - ping() { - return this.http - .get('/ping') - .then((response) => this.handleResponse(response, responses_1.StringResponseValidator)); - } - close(password) { - return this.http - .post('/close', undefined, { headers: { Password: password } }) - .then((response) => this.handleResponse(response)); - } - contains(user) { - return this.http - .get(`/contains/${user}`) - .then((response) => this.handleResponse(response)); - } - adminVerifyPassword(password) { - return this.http - .get('/admin/verify', { headers: { Password: password } }) - .then((response) => this.handleResponse(response)); - } - addUser(user, password) { - return this.http - .post(`/user/${user}`, undefined, { headers: { Password: password } }) - .then((response) => this.handleResponse(response)); - } - adminAddUser(user, password, initialPassword, initialBalance) { - return this.http - .post(`/admin/user/${user}`, initialPassword, { - headers: { Password: password }, - params: { init_bal: initialBalance }, - }) - .then((response) => this.handleResponse(response)); - } - deleteUser(user, password) { - return this.http - .delete(`/user/${user}`, { headers: { Password: password } }) - .then((response) => this.handleResponse(response)); - } - adminDeleteUser(user, password) { - return this.http - .delete(`/admin/user/${user}`, { headers: { Password: password } }) - .then((response) => this.handleResponse(response)); - } - handleResponse(response, Validator = responses_1.NumberResponseValidator) { - var _a, _b; - return __awaiter(this, void 0, void 0, function* () { - log('response:', response.data); - log('validator:', Validator); - const value = (_b = (_a = response.data) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : response.data; - typeof value === 'number' && this.handleExceptions(value); - const errors = yield class_validator_1.validate(new Validator({ value })); - if (errors.length > 0) { - throw new exceptions_1.InvalidResponseException(errors); - } - return value; - }); - } - handleExceptions(value) { - if (value && Object.values(exceptions_1.ExceptionCodes).includes(value)) { - throw new exceptions_1.ExceptionMap[value](); - } - } -} -__decorate([ - LogCall -], CCashClient.prototype, "balance", null); -__decorate([ - LogCall -], CCashClient.prototype, "log", null); -__decorate([ - LogCall -], CCashClient.prototype, "sendFunds", null); -__decorate([ - LogCall -], CCashClient.prototype, "verifyPassword", null); -__decorate([ - LogCall -], CCashClient.prototype, "changePassword", null); -__decorate([ - LogCall -], CCashClient.prototype, "setBalance", null); -__decorate([ - LogCall -], CCashClient.prototype, "help", null); -__decorate([ - LogCall -], CCashClient.prototype, "ping", null); -__decorate([ - LogCall -], CCashClient.prototype, "close", null); -__decorate([ - LogCall -], CCashClient.prototype, "contains", null); -__decorate([ - LogCall -], CCashClient.prototype, "adminVerifyPassword", null); -__decorate([ - LogCall -], CCashClient.prototype, "addUser", null); -__decorate([ - LogCall -], CCashClient.prototype, "adminAddUser", null); -__decorate([ - LogCall -], CCashClient.prototype, "deleteUser", null); -__decorate([ - LogCall -], CCashClient.prototype, "adminDeleteUser", null); -exports.CCashClient = CCashClient; diff --git a/views/node_modules/ccash-client-js/dist/CCashClient.types.d.ts b/views/node_modules/ccash-client-js/dist/CCashClient.types.d.ts deleted file mode 100644 index 199c32e..0000000 --- a/views/node_modules/ccash-client-js/dist/CCashClient.types.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -export interface ICCashClient { - balance(user: string): Promise; - log(user: string, password: string): Promise; - sendFunds(user: string, password: string, to: string, amount: number): Promise; - verifyPassword(user: string, password: string): Promise; - changePassword(user: string, password: string, newPassword: string): Promise; - setBalance(user: string, password: string, amount: number): Promise; - help(): Promise; - ping(): Promise<'pong'>; - close(password: string): Promise; - contains(user: string): Promise; - adminVerifyPassword(password: string): Promise; - addUser(user: string, password: string): Promise; - adminAddUser(user: string, password: string, initialPassword: string, initialBalance: number): Promise; - deleteUser(user: string, password: string): Promise; - adminDeleteUser(user: string, password: string): Promise; -} -export interface LogItem { - amount: number; - from: string; - to: string; - time: number; -} diff --git a/views/node_modules/ccash-client-js/dist/CCashClient.types.js b/views/node_modules/ccash-client-js/dist/CCashClient.types.js deleted file mode 100644 index c8ad2e5..0000000 --- a/views/node_modules/ccash-client-js/dist/CCashClient.types.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/views/node_modules/ccash-client-js/dist/Exception.d.ts b/views/node_modules/ccash-client-js/dist/Exception.d.ts deleted file mode 100644 index ce81f1a..0000000 --- a/views/node_modules/ccash-client-js/dist/Exception.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare class Exception extends Error { -} diff --git a/views/node_modules/ccash-client-js/dist/Exception.js b/views/node_modules/ccash-client-js/dist/Exception.js deleted file mode 100644 index dbf06e2..0000000 --- a/views/node_modules/ccash-client-js/dist/Exception.js +++ /dev/null @@ -1,6 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Exception = void 0; -class Exception extends Error { -} -exports.Exception = Exception; diff --git a/views/node_modules/ccash-client-js/dist/User.d.ts b/views/node_modules/ccash-client-js/dist/User.d.ts deleted file mode 100644 index 60d0c7a..0000000 --- a/views/node_modules/ccash-client-js/dist/User.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export declare class User { - user: string; -} diff --git a/views/node_modules/ccash-client-js/dist/User.js b/views/node_modules/ccash-client-js/dist/User.js deleted file mode 100644 index d7cfaa8..0000000 --- a/views/node_modules/ccash-client-js/dist/User.js +++ /dev/null @@ -1,19 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.User = void 0; -const class_transformer_1 = require("class-transformer"); -let User = class User { -}; -__decorate([ - class_transformer_1.Expose() -], User.prototype, "user", void 0); -User = __decorate([ - class_transformer_1.Exclude() -], User); -exports.User = User; diff --git a/views/node_modules/ccash-client-js/dist/exceptions.d.ts b/views/node_modules/ccash-client-js/dist/exceptions.d.ts deleted file mode 100644 index c6e9d31..0000000 --- a/views/node_modules/ccash-client-js/dist/exceptions.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ValidationError } from 'class-validator'; -import { Exception } from './Exception'; -export declare class BaseUrlMissingException extends Exception { - constructor(); -} -export declare class InvalidRequestException extends Exception { - constructor(); -} -export declare class InvalidResponseException extends Exception { - readonly errors: ValidationError[]; - constructor(errors: ValidationError[]); -} -export declare enum ErrorCodes { - UserNotFound = -1, - WrongPassword = -2, - NameTooLong = -4, - UserAlreadyExists = -5, - InsufficientFunds = -6 -} -export declare enum ExceptionCodes { - InvalidRequest = -3 -} -export declare const ExceptionMap: { - [-3]: typeof InvalidRequestException; -}; diff --git a/views/node_modules/ccash-client-js/dist/exceptions.js b/views/node_modules/ccash-client-js/dist/exceptions.js deleted file mode 100644 index e59356b..0000000 --- a/views/node_modules/ccash-client-js/dist/exceptions.js +++ /dev/null @@ -1,38 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ExceptionMap = exports.ExceptionCodes = exports.ErrorCodes = exports.InvalidResponseException = exports.InvalidRequestException = exports.BaseUrlMissingException = void 0; -const Exception_1 = require("./Exception"); -class BaseUrlMissingException extends Exception_1.Exception { - constructor() { - super('base url missing'); - } -} -exports.BaseUrlMissingException = BaseUrlMissingException; -class InvalidRequestException extends Exception_1.Exception { - constructor() { - super('invalid request'); - } -} -exports.InvalidRequestException = InvalidRequestException; -class InvalidResponseException extends Exception_1.Exception { - constructor(errors) { - super(`invalid response: ${JSON.stringify(errors, null, 2)}`); - this.errors = errors; - } -} -exports.InvalidResponseException = InvalidResponseException; -var ErrorCodes; -(function (ErrorCodes) { - ErrorCodes[ErrorCodes["UserNotFound"] = -1] = "UserNotFound"; - ErrorCodes[ErrorCodes["WrongPassword"] = -2] = "WrongPassword"; - ErrorCodes[ErrorCodes["NameTooLong"] = -4] = "NameTooLong"; - ErrorCodes[ErrorCodes["UserAlreadyExists"] = -5] = "UserAlreadyExists"; - ErrorCodes[ErrorCodes["InsufficientFunds"] = -6] = "InsufficientFunds"; -})(ErrorCodes = exports.ErrorCodes || (exports.ErrorCodes = {})); -var ExceptionCodes; -(function (ExceptionCodes) { - ExceptionCodes[ExceptionCodes["InvalidRequest"] = -3] = "InvalidRequest"; -})(ExceptionCodes = exports.ExceptionCodes || (exports.ExceptionCodes = {})); -exports.ExceptionMap = { - [ExceptionCodes.InvalidRequest]: InvalidRequestException, -}; diff --git a/views/node_modules/ccash-client-js/dist/index.d.ts b/views/node_modules/ccash-client-js/dist/index.d.ts deleted file mode 100644 index 9afa75d..0000000 --- a/views/node_modules/ccash-client-js/dist/index.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from './CCashClient'; -export * from './CCashClient.types'; -export * from './Exception'; -export * from './exceptions'; diff --git a/views/node_modules/ccash-client-js/dist/index.js b/views/node_modules/ccash-client-js/dist/index.js deleted file mode 100644 index aa2a8fa..0000000 --- a/views/node_modules/ccash-client-js/dist/index.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./CCashClient"), exports); -__exportStar(require("./CCashClient.types"), exports); -__exportStar(require("./Exception"), exports); -__exportStar(require("./exceptions"), exports); diff --git a/views/node_modules/ccash-client-js/dist/responses.d.ts b/views/node_modules/ccash-client-js/dist/responses.d.ts deleted file mode 100644 index 6395f09..0000000 --- a/views/node_modules/ccash-client-js/dist/responses.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { LogItem } from './CCashClient.types'; -export interface ApiResponse { - value: T; -} -export declare type ResponseValidatorConstructor = new (response: ApiResponse) => ApiResponse; -export declare class ResponseValidator { - value: T; - constructor(response: ApiResponse); -} -export declare class NumberResponseValidator extends ResponseValidator { - value: number; -} -export declare class StringResponseValidator extends ResponseValidator { - value: string; -} -export declare class LogItemValidator implements LogItem { - amount: number; - from: string; - to: string; - time: number; -} -export declare class LogResponseValidator extends ResponseValidator { - value: LogItemValidator[]; -} diff --git a/views/node_modules/ccash-client-js/dist/responses.js b/views/node_modules/ccash-client-js/dist/responses.js deleted file mode 100644 index e062231..0000000 --- a/views/node_modules/ccash-client-js/dist/responses.js +++ /dev/null @@ -1,50 +0,0 @@ -"use strict"; -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.LogResponseValidator = exports.LogItemValidator = exports.StringResponseValidator = exports.NumberResponseValidator = exports.ResponseValidator = void 0; -const class_validator_1 = require("class-validator"); -class ResponseValidator { - constructor(response) { - this.value = response.value; - } -} -exports.ResponseValidator = ResponseValidator; -class NumberResponseValidator extends ResponseValidator { -} -__decorate([ - class_validator_1.IsInt() -], NumberResponseValidator.prototype, "value", void 0); -exports.NumberResponseValidator = NumberResponseValidator; -class StringResponseValidator extends ResponseValidator { -} -__decorate([ - class_validator_1.IsString() -], StringResponseValidator.prototype, "value", void 0); -exports.StringResponseValidator = StringResponseValidator; -class LogItemValidator { -} -__decorate([ - class_validator_1.IsInt() -], LogItemValidator.prototype, "amount", void 0); -__decorate([ - class_validator_1.IsString() -], LogItemValidator.prototype, "from", void 0); -__decorate([ - class_validator_1.IsString() -], LogItemValidator.prototype, "to", void 0); -__decorate([ - class_validator_1.IsInt() -], LogItemValidator.prototype, "time", void 0); -exports.LogItemValidator = LogItemValidator; -class LogResponseValidator extends ResponseValidator { -} -__decorate([ - class_validator_1.IsArray(), - class_validator_1.ValidateNested({ each: true }) -], LogResponseValidator.prototype, "value", void 0); -exports.LogResponseValidator = LogResponseValidator; diff --git a/views/node_modules/ccash-client-js/node_modules/debug/LICENSE b/views/node_modules/ccash-client-js/node_modules/debug/LICENSE deleted file mode 100644 index 658c933..0000000 --- a/views/node_modules/ccash-client-js/node_modules/debug/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software -and associated documentation files (the 'Software'), to deal in the Software without restriction, -including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/views/node_modules/ccash-client-js/node_modules/debug/README.md b/views/node_modules/ccash-client-js/node_modules/debug/README.md deleted file mode 100644 index 88dae35..0000000 --- a/views/node_modules/ccash-client-js/node_modules/debug/README.md +++ /dev/null @@ -1,455 +0,0 @@ -# debug -[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) -[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) - - - -A tiny JavaScript debugging utility modelled after Node.js core's debugging -technique. Works in Node.js and web browsers. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - -`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. - -Example [_app.js_](./examples/node/app.js): - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %o', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example [_worker.js_](./examples/node/worker.js): - -```js -var a = require('debug')('worker:a') - , b = require('debug')('worker:b'); - -function work() { - a('doing lots of uninteresting work'); - setTimeout(work, Math.random() * 1000); -} - -work(); - -function workb() { - b('doing some work'); - setTimeout(workb, Math.random() * 2000); -} - -workb(); -``` - -The `DEBUG` environment variable is then used to enable these based on space or -comma-delimited names. - -Here are some examples: - -screen shot 2017-08-08 at 12 53 04 pm -screen shot 2017-08-08 at 12 53 38 pm -screen shot 2017-08-08 at 12 53 25 pm - -#### Windows command prompt notes - -##### CMD - -On Windows the environment variable is set using the `set` command. - -```cmd -set DEBUG=*,-not_this -``` - -Example: - -```cmd -set DEBUG=* & node app.js -``` - -##### PowerShell (VS Code default) - -PowerShell uses different syntax to set environment variables. - -```cmd -$env:DEBUG = "*,-not_this" -``` - -Example: - -```cmd -$env:DEBUG='app';node app.js -``` - -Then, run the program to be debugged as usual. - -npm script example: -```js - "windowsDebug": "@powershell -Command $env:DEBUG='*';node app.js", -``` - -## Namespace Colors - -Every debug instance has a color generated for it based on its namespace name. -This helps when visually parsing the debug output to identify which debug instance -a debug line belongs to. - -#### Node.js - -In Node.js, colors are enabled when stderr is a TTY. You also _should_ install -the [`supports-color`](https://npmjs.org/supports-color) module alongside debug, -otherwise debug will only use a small handful of basic colors. - - - -#### Web Browser - -Colors are also enabled on "Web Inspectors" that understand the `%c` formatting -option. These are WebKit web inspectors, Firefox ([since version -31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) -and the Firebug plugin for Firefox (any version). - - - - -## Millisecond diff - -When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - - -When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below: - - - - -## Conventions - -If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output. - -## Wildcards - -The `*` character may be used as a wildcard. Suppose for example your library has -debuggers named "connect:bodyParser", "connect:compress", "connect:session", -instead of listing all three with -`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do -`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - -You can also exclude specific debuggers by prefixing them with a "-" character. -For example, `DEBUG=*,-connect:*` would include all debuggers except those -starting with "connect:". - -## Environment Variables - -When running through Node.js, you can set a few environment variables that will -change the behavior of the debug logging: - -| Name | Purpose | -|-----------|-------------------------------------------------| -| `DEBUG` | Enables/disables specific debugging namespaces. | -| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). | -| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | -| `DEBUG_DEPTH` | Object inspection depth. | -| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | - - -__Note:__ The environment variables beginning with `DEBUG_` end up being -converted into an Options object that gets used with `%o`/`%O` formatters. -See the Node.js documentation for -[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) -for the complete list. - -## Formatters - -Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. -Below are the officially supported formatters: - -| Formatter | Representation | -|-----------|----------------| -| `%O` | Pretty-print an Object on multiple lines. | -| `%o` | Pretty-print an Object all on a single line. | -| `%s` | String. | -| `%d` | Number (both integer and float). | -| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | -| `%%` | Single percent sign ('%'). This does not consume an argument. | - - -### Custom formatters - -You can add custom formatters by extending the `debug.formatters` object. -For example, if you wanted to add support for rendering a Buffer as hex with -`%h`, you could do something like: - -```js -const createDebug = require('debug') -createDebug.formatters.h = (v) => { - return v.toString('hex') -} - -// …elsewhere -const debug = createDebug('foo') -debug('this is hex: %h', new Buffer('hello world')) -// foo this is hex: 68656c6c6f20776f726c6421 +0ms -``` - - -## Browser Support - -You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), -or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), -if you don't want to build it yourself. - -Debug's enable state is currently persisted by `localStorage`. -Consider the situation shown below where you have `worker:a` and `worker:b`, -and wish to debug both. You can enable this using `localStorage.debug`: - -```js -localStorage.debug = 'worker:*' -``` - -And then refresh the page. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - - -## Output streams - - By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: - -Example [_stdout.js_](./examples/node/stdout.js): - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -## Extend -You can simply extend debugger -```js -const log = require('debug')('auth'); - -//creates new debug instance with extended namespace -const logSign = log.extend('sign'); -const logLogin = log.extend('login'); - -log('hello'); // auth hello -logSign('hello'); //auth:sign hello -logLogin('hello'); //auth:login hello -``` - -## Set dynamically - -You can also enable debug dynamically by calling the `enable()` method : - -```js -let debug = require('debug'); - -console.log(1, debug.enabled('test')); - -debug.enable('test'); -console.log(2, debug.enabled('test')); - -debug.disable(); -console.log(3, debug.enabled('test')); - -``` - -print : -``` -1 false -2 true -3 false -``` - -Usage : -`enable(namespaces)` -`namespaces` can include modes separated by a colon and wildcards. - -Note that calling `enable()` completely overrides previously set DEBUG variable : - -``` -$ DEBUG=foo node -e 'var dbg = require("debug"); dbg.enable("bar"); console.log(dbg.enabled("foo"))' -=> false -``` - -`disable()` - -Will disable all namespaces. The functions returns the namespaces currently -enabled (and skipped). This can be useful if you want to disable debugging -temporarily without knowing what was enabled to begin with. - -For example: - -```js -let debug = require('debug'); -debug.enable('foo:*,-foo:bar'); -let namespaces = debug.disable(); -debug.enable(namespaces); -``` - -Note: There is no guarantee that the string will be identical to the initial -enable string, but semantically they will be identical. - -## Checking whether a debug target is enabled - -After you've created a debug instance, you can determine whether or not it is -enabled by checking the `enabled` property: - -```javascript -const debug = require('debug')('http'); - -if (debug.enabled) { - // do stuff... -} -``` - -You can also manually toggle this property to force the debug instance to be -enabled or disabled. - - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - - Andrew Rhyne - -## Backers - -Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## Sponsors - -Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## License - -(The MIT License) - -Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/views/node_modules/ccash-client-js/node_modules/debug/package.json b/views/node_modules/ccash-client-js/node_modules/debug/package.json deleted file mode 100644 index da809d2..0000000 --- a/views/node_modules/ccash-client-js/node_modules/debug/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "debug", - "version": "4.3.1", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" - ], - "files": [ - "src", - "LICENSE", - "README.md" - ], - "author": "TJ Holowaychuk ", - "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne ", - "Josh Junon " - ], - "license": "MIT", - "scripts": { - "lint": "xo", - "test": "npm run test:node && npm run test:browser && npm run lint", - "test:node": "istanbul cover _mocha -- test.js", - "test:browser": "karma start --single-run", - "test:coverage": "cat ./coverage/lcov.info | coveralls" - }, - "dependencies": { - "ms": "2.1.2" - }, - "devDependencies": { - "brfs": "^2.0.1", - "browserify": "^16.2.3", - "coveralls": "^3.0.2", - "istanbul": "^0.4.5", - "karma": "^3.1.4", - "karma-browserify": "^6.0.0", - "karma-chrome-launcher": "^2.2.0", - "karma-mocha": "^1.3.0", - "mocha": "^5.2.0", - "mocha-lcov-reporter": "^1.2.0", - "xo": "^0.23.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - }, - "main": "./src/index.js", - "browser": "./src/browser.js", - "engines": { - "node": ">=6.0" - } -} diff --git a/views/node_modules/ccash-client-js/node_modules/debug/src/browser.js b/views/node_modules/ccash-client-js/node_modules/debug/src/browser.js deleted file mode 100644 index cd0fc35..0000000 --- a/views/node_modules/ccash-client-js/node_modules/debug/src/browser.js +++ /dev/null @@ -1,269 +0,0 @@ -/* eslint-env browser */ - -/** - * This is the web browser implementation of `debug()`. - */ - -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = localstorage(); -exports.destroy = (() => { - let warned = false; - - return () => { - if (!warned) { - warned = true; - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - }; -})(); - -/** - * Colors. - */ - -exports.colors = [ - '#0000CC', - '#0000FF', - '#0033CC', - '#0033FF', - '#0066CC', - '#0066FF', - '#0099CC', - '#0099FF', - '#00CC00', - '#00CC33', - '#00CC66', - '#00CC99', - '#00CCCC', - '#00CCFF', - '#3300CC', - '#3300FF', - '#3333CC', - '#3333FF', - '#3366CC', - '#3366FF', - '#3399CC', - '#3399FF', - '#33CC00', - '#33CC33', - '#33CC66', - '#33CC99', - '#33CCCC', - '#33CCFF', - '#6600CC', - '#6600FF', - '#6633CC', - '#6633FF', - '#66CC00', - '#66CC33', - '#9900CC', - '#9900FF', - '#9933CC', - '#9933FF', - '#99CC00', - '#99CC33', - '#CC0000', - '#CC0033', - '#CC0066', - '#CC0099', - '#CC00CC', - '#CC00FF', - '#CC3300', - '#CC3333', - '#CC3366', - '#CC3399', - '#CC33CC', - '#CC33FF', - '#CC6600', - '#CC6633', - '#CC9900', - '#CC9933', - '#CCCC00', - '#CCCC33', - '#FF0000', - '#FF0033', - '#FF0066', - '#FF0099', - '#FF00CC', - '#FF00FF', - '#FF3300', - '#FF3333', - '#FF3366', - '#FF3399', - '#FF33CC', - '#FF33FF', - '#FF6600', - '#FF6633', - '#FF9900', - '#FF9933', - '#FFCC00', - '#FFCC33' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -// eslint-disable-next-line complexity -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { - return true; - } - - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } - - // Is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // Is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // Is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || - // Double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + - this.namespace + - (this.useColors ? ' %c' : ' ') + - args[0] + - (this.useColors ? '%c ' : ' ') + - '+' + module.exports.humanize(this.diff); - - if (!this.useColors) { - return; - } - - const c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); - - // The final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - let index = 0; - let lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, match => { - if (match === '%%') { - return; - } - index++; - if (match === '%c') { - // We only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); -} - -/** - * Invokes `console.debug()` when available. - * No-op when `console.debug` is not a "function". - * If `console.debug` is not available, falls back - * to `console.log`. - * - * @api public - */ -exports.log = console.debug || console.log || (() => {}); - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem('debug', namespaces); - } else { - exports.storage.removeItem('debug'); - } - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ -function load() { - let r; - try { - r = exports.storage.getItem('debug'); - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } - - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } - - return r; -} - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage() { - try { - // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context - // The Browser also has localStorage in the global context. - return localStorage; - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} - -module.exports = require('./common')(exports); - -const {formatters} = module.exports; - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } -}; diff --git a/views/node_modules/ccash-client-js/node_modules/debug/src/common.js b/views/node_modules/ccash-client-js/node_modules/debug/src/common.js deleted file mode 100644 index 392a8e0..0000000 --- a/views/node_modules/ccash-client-js/node_modules/debug/src/common.js +++ /dev/null @@ -1,261 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - */ - -function setup(env) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = require('ms'); - createDebug.destroy = destroy; - - Object.keys(env).forEach(key => { - createDebug[key] = env[key]; - }); - - /** - * The currently active debug mode names, and names to skip. - */ - - createDebug.names = []; - createDebug.skips = []; - - /** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - createDebug.formatters = {}; - - /** - * Selects a color for a debug namespace - * @param {String} namespace The namespace string for the for the debug instance to be colored - * @return {Number|String} An ANSI color code for the given namespace - * @api private - */ - function selectColor(namespace) { - let hash = 0; - - for (let i = 0; i < namespace.length; i++) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; - - /** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - function createDebug(namespace) { - let prevTime; - let enableOverride = null; - - function debug(...args) { - // Disabled? - if (!debug.enabled) { - return; - } - - const self = debug; - - // Set `diff` timestamp - const curr = Number(new Date()); - const ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - args[0] = createDebug.coerce(args[0]); - - if (typeof args[0] !== 'string') { - // Anything else let's inspect with %O - args.unshift('%O'); - } - - // Apply any `formatters` transformations - let index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { - // If we encounter an escaped % then don't increase the array index - if (match === '%%') { - return '%'; - } - index++; - const formatter = createDebug.formatters[format]; - if (typeof formatter === 'function') { - const val = args[index]; - match = formatter.call(self, val); - - // Now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // Apply env-specific formatting (colors, etc.) - createDebug.formatArgs.call(self, args); - - const logFn = self.log || createDebug.log; - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. - - Object.defineProperty(debug, 'enabled', { - enumerable: true, - configurable: false, - get: () => enableOverride === null ? createDebug.enabled(namespace) : enableOverride, - set: v => { - enableOverride = v; - } - }); - - // Env-specific initialization logic for debug instances - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } - - return debug; - } - - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } - - /** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - function enable(namespaces) { - createDebug.save(namespaces); - - createDebug.names = []; - createDebug.skips = []; - - let i; - const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - const len = split.length; - - for (i = 0; i < len; i++) { - if (!split[i]) { - // ignore empty strings - continue; - } - - namespaces = split[i].replace(/\*/g, '.*?'); - - if (namespaces[0] === '-') { - createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - createDebug.names.push(new RegExp('^' + namespaces + '$')); - } - } - } - - /** - * Disable debug output. - * - * @return {String} namespaces - * @api public - */ - function disable() { - const namespaces = [ - ...createDebug.names.map(toNamespace), - ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) - ].join(','); - createDebug.enable(''); - return namespaces; - } - - /** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - function enabled(name) { - if (name[name.length - 1] === '*') { - return true; - } - - let i; - let len; - - for (i = 0, len = createDebug.skips.length; i < len; i++) { - if (createDebug.skips[i].test(name)) { - return false; - } - } - - for (i = 0, len = createDebug.names.length; i < len; i++) { - if (createDebug.names[i].test(name)) { - return true; - } - } - - return false; - } - - /** - * Convert regexp to namespace - * - * @param {RegExp} regxep - * @return {String} namespace - * @api private - */ - function toNamespace(regexp) { - return regexp.toString() - .substring(2, regexp.toString().length - 2) - .replace(/\.\*\?$/, '*'); - } - - /** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } - - /** - * XXX DO NOT USE. This is a temporary stub function. - * XXX It WILL be removed in the next major release. - */ - function destroy() { - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - - createDebug.enable(createDebug.load()); - - return createDebug; -} - -module.exports = setup; diff --git a/views/node_modules/ccash-client-js/node_modules/debug/src/index.js b/views/node_modules/ccash-client-js/node_modules/debug/src/index.js deleted file mode 100644 index bf4c57f..0000000 --- a/views/node_modules/ccash-client-js/node_modules/debug/src/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Detect Electron renderer / nwjs process, which is node, but we should - * treat as a browser. - */ - -if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { - module.exports = require('./browser.js'); -} else { - module.exports = require('./node.js'); -} diff --git a/views/node_modules/ccash-client-js/node_modules/debug/src/node.js b/views/node_modules/ccash-client-js/node_modules/debug/src/node.js deleted file mode 100644 index 79bc085..0000000 --- a/views/node_modules/ccash-client-js/node_modules/debug/src/node.js +++ /dev/null @@ -1,263 +0,0 @@ -/** - * Module dependencies. - */ - -const tty = require('tty'); -const util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - */ - -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.destroy = util.deprecate( - () => {}, - 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' -); - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -try { - // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) - // eslint-disable-next-line import/no-extraneous-dependencies - const supportsColor = require('supports-color'); - - if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { - exports.colors = [ - 20, - 21, - 26, - 27, - 32, - 33, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 56, - 57, - 62, - 63, - 68, - 69, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 92, - 93, - 98, - 99, - 112, - 113, - 128, - 129, - 134, - 135, - 148, - 149, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 178, - 179, - 184, - 185, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 214, - 215, - 220, - 221 - ]; - } -} catch (error) { - // Swallow - we only care if `supports-color` is available; it doesn't have to be. -} - -/** - * Build up the default `inspectOpts` object from the environment variables. - * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js - */ - -exports.inspectOpts = Object.keys(process.env).filter(key => { - return /^debug_/i.test(key); -}).reduce((obj, key) => { - // Camel-case - const prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, (_, k) => { - return k.toUpperCase(); - }); - - // Coerce string value into JS value - let val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === 'null') { - val = null; - } else { - val = Number(val); - } - - obj[prop] = val; - return obj; -}, {}); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - return 'colors' in exports.inspectOpts ? - Boolean(exports.inspectOpts.colors) : - tty.isatty(process.stderr.fd); -} - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs(args) { - const {namespace: name, useColors} = this; - - if (useColors) { - const c = this.color; - const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); - const prefix = ` ${colorCode};1m${name} \u001B[0m`; - - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); - } else { - args[0] = getDate() + name + ' ' + args[0]; - } -} - -function getDate() { - if (exports.inspectOpts.hideDate) { - return ''; - } - return new Date().toISOString() + ' '; -} - -/** - * Invokes `util.format()` with the specified arguments and writes to stderr. - */ - -function log(...args) { - return process.stderr.write(util.format(...args) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; - } else { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Init logic for `debug` instances. - * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. - */ - -function init(debug) { - debug.inspectOpts = {}; - - const keys = Object.keys(exports.inspectOpts); - for (let i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} - -module.exports = require('./common')(exports); - -const {formatters} = module.exports; - -/** - * Map %o to `util.inspect()`, all on a single line. - */ - -formatters.o = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .split('\n') - .map(str => str.trim()) - .join(' '); -}; - -/** - * Map %O to `util.inspect()`, allowing multiple lines if needed. - */ - -formatters.O = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); -}; diff --git a/views/node_modules/ccash-client-js/node_modules/ms/index.js b/views/node_modules/ccash-client-js/node_modules/ms/index.js deleted file mode 100644 index c4498bc..0000000 --- a/views/node_modules/ccash-client-js/node_modules/ms/index.js +++ /dev/null @@ -1,162 +0,0 @@ -/** - * Helpers. - */ - -var s = 1000; -var m = s * 60; -var h = m * 60; -var d = h * 24; -var w = d * 7; -var y = d * 365.25; - -/** - * Parse or format the given `val`. - * - * Options: - * - * - `long` verbose formatting [false] - * - * @param {String|Number} val - * @param {Object} [options] - * @throws {Error} throw an error if val is not a non-empty string or a number - * @return {String|Number} - * @api public - */ - -module.exports = function(val, options) { - options = options || {}; - var type = typeof val; - if (type === 'string' && val.length > 0) { - return parse(val); - } else if (type === 'number' && isFinite(val)) { - return options.long ? fmtLong(val) : fmtShort(val); - } - throw new Error( - 'val is not a non-empty string or a valid number. val=' + - JSON.stringify(val) - ); -}; - -/** - * Parse the given `str` and return milliseconds. - * - * @param {String} str - * @return {Number} - * @api private - */ - -function parse(str) { - str = String(str); - if (str.length > 100) { - return; - } - var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( - str - ); - if (!match) { - return; - } - var n = parseFloat(match[1]); - var type = (match[2] || 'ms').toLowerCase(); - switch (type) { - case 'years': - case 'year': - case 'yrs': - case 'yr': - case 'y': - return n * y; - case 'weeks': - case 'week': - case 'w': - return n * w; - case 'days': - case 'day': - case 'd': - return n * d; - case 'hours': - case 'hour': - case 'hrs': - case 'hr': - case 'h': - return n * h; - case 'minutes': - case 'minute': - case 'mins': - case 'min': - case 'm': - return n * m; - case 'seconds': - case 'second': - case 'secs': - case 'sec': - case 's': - return n * s; - case 'milliseconds': - case 'millisecond': - case 'msecs': - case 'msec': - case 'ms': - return n; - default: - return undefined; - } -} - -/** - * Short format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtShort(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return Math.round(ms / d) + 'd'; - } - if (msAbs >= h) { - return Math.round(ms / h) + 'h'; - } - if (msAbs >= m) { - return Math.round(ms / m) + 'm'; - } - if (msAbs >= s) { - return Math.round(ms / s) + 's'; - } - return ms + 'ms'; -} - -/** - * Long format for `ms`. - * - * @param {Number} ms - * @return {String} - * @api private - */ - -function fmtLong(ms) { - var msAbs = Math.abs(ms); - if (msAbs >= d) { - return plural(ms, msAbs, d, 'day'); - } - if (msAbs >= h) { - return plural(ms, msAbs, h, 'hour'); - } - if (msAbs >= m) { - return plural(ms, msAbs, m, 'minute'); - } - if (msAbs >= s) { - return plural(ms, msAbs, s, 'second'); - } - return ms + ' ms'; -} - -/** - * Pluralization helper. - */ - -function plural(ms, msAbs, n, name) { - var isPlural = msAbs >= n * 1.5; - return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); -} diff --git a/views/node_modules/ccash-client-js/node_modules/ms/license.md b/views/node_modules/ccash-client-js/node_modules/ms/license.md deleted file mode 100644 index 69b6125..0000000 --- a/views/node_modules/ccash-client-js/node_modules/ms/license.md +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2016 Zeit, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/views/node_modules/ccash-client-js/node_modules/ms/package.json b/views/node_modules/ccash-client-js/node_modules/ms/package.json deleted file mode 100644 index eea666e..0000000 --- a/views/node_modules/ccash-client-js/node_modules/ms/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "ms", - "version": "2.1.2", - "description": "Tiny millisecond conversion utility", - "repository": "zeit/ms", - "main": "./index", - "files": [ - "index.js" - ], - "scripts": { - "precommit": "lint-staged", - "lint": "eslint lib/* bin/*", - "test": "mocha tests.js" - }, - "eslintConfig": { - "extends": "eslint:recommended", - "env": { - "node": true, - "es6": true - } - }, - "lint-staged": { - "*.js": [ - "npm run lint", - "prettier --single-quote --write", - "git add" - ] - }, - "license": "MIT", - "devDependencies": { - "eslint": "4.12.1", - "expect.js": "0.3.1", - "husky": "0.14.3", - "lint-staged": "5.0.0", - "mocha": "4.0.1" - } -} diff --git a/views/node_modules/ccash-client-js/node_modules/ms/readme.md b/views/node_modules/ccash-client-js/node_modules/ms/readme.md deleted file mode 100644 index 9a1996b..0000000 --- a/views/node_modules/ccash-client-js/node_modules/ms/readme.md +++ /dev/null @@ -1,60 +0,0 @@ -# ms - -[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms) -[![Join the community on Spectrum](https://withspectrum.github.io/badge/badge.svg)](https://spectrum.chat/zeit) - -Use this package to easily convert various time formats to milliseconds. - -## Examples - -```js -ms('2 days') // 172800000 -ms('1d') // 86400000 -ms('10h') // 36000000 -ms('2.5 hrs') // 9000000 -ms('2h') // 7200000 -ms('1m') // 60000 -ms('5s') // 5000 -ms('1y') // 31557600000 -ms('100') // 100 -ms('-3 days') // -259200000 -ms('-1h') // -3600000 -ms('-200') // -200 -``` - -### Convert from Milliseconds - -```js -ms(60000) // "1m" -ms(2 * 60000) // "2m" -ms(-3 * 60000) // "-3m" -ms(ms('10 hours')) // "10h" -``` - -### Time Format Written-Out - -```js -ms(60000, { long: true }) // "1 minute" -ms(2 * 60000, { long: true }) // "2 minutes" -ms(-3 * 60000, { long: true }) // "-3 minutes" -ms(ms('10 hours'), { long: true }) // "10 hours" -``` - -## Features - -- Works both in [Node.js](https://nodejs.org) and in the browser -- If a number is supplied to `ms`, a string with a unit is returned -- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) -- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned - -## Related Packages - -- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. - -## Caught a Bug? - -1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device -2. Link the package to the global module directory: `npm link` -3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! - -As always, you can run the tests using: `npm test` diff --git a/views/node_modules/ccash-client-js/package.json b/views/node_modules/ccash-client-js/package.json deleted file mode 100644 index c16b417..0000000 --- a/views/node_modules/ccash-client-js/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "ccash-client-js", - "version": "1.6.3", - "description": "JS HTTP client for CCash", - "main": "./dist", - "publishConfig": { - "registry": "https://registry.npmjs.org/" - }, - "files": [ - "dist" - ], - "repository": "https://github.com/LukeeeeBennett/ccash-client-js", - "author": "Luke Bennett ", - "license": "MIT", - "private": false, - "scripts": { - "prepare": "husky install", - "clean": "rm -rf dist", - "build": "npm run clean && tsc", - "dev": "npm run clean && npm run build -- --watch", - "format": "prettier --write 'src/**/*'", - "test": "jest", - "release": "semantic-release" - }, - "dependencies": { - "axios": "^0.21.1", - "class-validator": "^0.13.1", - "debug": "^4.3.1" - }, - "devDependencies": { - "@babel/core": "^7.14.5", - "@babel/preset-env": "^7.14.5", - "@babel/preset-typescript": "^7.14.5", - "@commitlint/cli": "^12.1.4", - "@commitlint/config-conventional": "^12.1.4", - "@semantic-release/changelog": "^5.0.1", - "@semantic-release/git": "^9.0.0", - "@types/debug": "^4.1.5", - "@types/jest": "^26.0.23", - "babel-jest": "^27.0.2", - "husky": "^6.0.0", - "jest": "^27.0.4", - "prettier": "^2.3.1", - "semantic-release": "^17.4.3", - "ts-loader": "^9.2.3", - "ts-node": "^10.0.0", - "typescript": "^4.3.2" - } -} diff --git a/views/node_modules/character-parser/.npmignore b/views/node_modules/character-parser/.npmignore deleted file mode 100644 index cefaa67..0000000 --- a/views/node_modules/character-parser/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -test/ -.travis.yml \ No newline at end of file diff --git a/views/node_modules/character-parser/LICENSE b/views/node_modules/character-parser/LICENSE deleted file mode 100644 index e1b32ec..0000000 --- a/views/node_modules/character-parser/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2013 Forbes Lindesay - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/views/node_modules/character-parser/README.md b/views/node_modules/character-parser/README.md deleted file mode 100644 index 682a833..0000000 --- a/views/node_modules/character-parser/README.md +++ /dev/null @@ -1,177 +0,0 @@ -# character-parser - -Parse JavaScript one character at a time to look for snippets in Templates. This is not a validator, it's just designed to allow you to have sections of JavaScript delimited by brackets robustly. - -[![Build Status](https://img.shields.io/travis/ForbesLindesay/character-parser/master.svg)](https://travis-ci.org/ForbesLindesay/character-parser) - -## Installation - - npm install character-parser - -## Usage - -### Parsing - -Work out how much depth changes: - -```js -var state = parse('foo(arg1, arg2, {\n foo: [a, b\n'); -assert.deepEqual(state.stack, [')', '}', ']']); - -parse(' c, d]\n })', state); -assert.deepEqual(state.stack, []); -``` - -### Custom Delimited Expressions - -Find code up to a custom delimiter: - -```js -// EJS-style -var section = parser.parseUntil('foo.bar("%>").baz%> bing bong', '%>'); -assert(section.start === 0); -assert(section.end === 17); // exclusive end of string -assert(section.src = 'foo.bar("%>").baz'); - -var section = parser.parseUntil('<%foo.bar("%>").baz%> bing bong', '%>', {start: 2}); -assert(section.start === 2); -assert(section.end === 19); // exclusive end of string -assert(section.src = 'foo.bar("%>").baz'); - -// Jade-style -var section = parser.parseUntil('#[p= [1, 2][i]]', ']', {start: 2}) -assert(section.start === 2); -assert(section.end === 14); // exclusive end of string -assert(section.src === 'p= [1, 2][i]') - -// Dumb parsing -// Stop at first delimiter encountered, doesn't matter if it's nested or not -// This is the character-parser@1 default behavior. -var section = parser.parseUntil('#[p= [1, 2][i]]', '}', {start: 2, ignoreNesting: true}) -assert(section.start === 2); -assert(section.end === 10); // exclusive end of string -assert(section.src === 'p= [1, 2') -'' -``` - -Delimiters are ignored if they are inside strings or comments. - -## API - -All methods may throw an exception in the case of syntax errors. The exception contains an additional `code` property that always starts with `CHARACTER_PARSER:` that is unique for the error. - -### parse(str, state = defaultState(), options = {start: 0, end: src.length}) - -Parse a string starting at the index start, and return the state after parsing that string. - -If you want to parse one string in multiple sections you should keep passing the resulting state to the next parse operation. - -Returns a `State` object. - -### parseUntil(src, delimiter, options = {start: 0, ignoreLineComment: false, ignoreNesting: false}) - -Parses the source until the first occurence of `delimiter` which is not in a string or a comment. - -If `ignoreLineComment` is `true`, it will still count if the delimiter occurs in a line comment. - -If `ignoreNesting` is `true`, it will stop at the first bracket, not taking into account if the bracket part of nesting or not. See example above. - -It returns an object with the structure: - -```js -{ - start: 0,//index of first character of string - end: 13,//index of first character after the end of string - src: 'source string' -} -``` - -### parseChar(character, state = defaultState()) - -Parses the single character and returns the state. See `parse` for the structure of the returned state object. N.B. character must be a single character not a multi character string. - -### defaultState() - -Get a default starting state. - -### isPunctuator(character) - -Returns `true` if `character` represents punctuation in JavaScript. - -### isKeyword(name) - -Returns `true` if `name` is a keyword in JavaScript. - -### TOKEN_TYPES & BRACKETS - -Objects whose values can be a frame in the `stack` property of a State (documented below). - -## State - -A state is an object with the following structure - -```js -{ - stack: [], // stack of detected brackets; the outermost is [0] - regexpStart: false, // true if a slash is just encountered and a REGEXP state has just been added to the stack - - escaped: false, // true if in a string and the last character was an escape character - hasDollar: false, // true if in a template string and the last character was a dollar sign - - src: '', // the concatenated source string - history: '', // reversed `src` - lastChar: '' // last parsed character -} -``` - -`stack` property can contain any of the following: - -- Any of the property values of `characterParser.TOKEN_TYPES` -- Any of the property values of `characterParser.BRACKETS` (the end bracket, not the starting bracket) - -It also has the following useful methods: - -- `.current()` returns the innermost bracket (i.e. the last stack frame). -- `.isString()` returns `true` if the current location is inside a string. -- `.isComment()` returns `true` if the current location is inside a comment. -- `.isNesting([opts])` returns `true` if the current location is not at the top level, i.e. if the stack is not empty. If `opts.ignoreLineComment` is `true`, line comments are not counted as a level, so for `// a` it will still return false. - -### Errors - -All errors thrown by character-parser has a `code` property attached to it that allows one to identify what sort of error is thrown. For errors thrown from `parse` and `parseUntil`, an additional `index` property is available. - -## Transition from v1 - -In character-parser@2, we have changed the APIs quite a bit. These are some notes that will help you transition to the new version. - -### State Object Changes - -Instead of keeping depths of different brackets, we are now keeping a stack. We also removed some properties: - -```js -state.lineComment → state.current() === parser.TOKEN_TYPES.LINE_COMMENT -state.blockComment → state.current() === parser.TOKEN_TYPES.BLOCK_COMMENT -state.singleQuote → state.current() === parser.TOKEN_TYPES.SINGLE_QUOTE -state.doubleQuote → state.current() === parser.TOKEN_TYPES.DOUBLE_QUOTE -state.regexp → state.current() === parser.TOKEN_TYPES.REGEXP -``` - -### `parseMax` - -This function has been removed since the usefulness of this function has been questioned. You should find that `parseUntil` is a better choice for your task. - -### `parseUntil` - -The default behavior when the delimiter is a bracket has been changed so that nesting is taken into account to determine if the end is reached. - -To preserve the original behavior, pass `ignoreNesting: true` as an option. - -To see the difference between the new and old behaviors, see the "Usage" section earlier. - -### `parseMaxBracket` - -This function has been merged into `parseUntil`. You can directly rename the function call without any repercussions. - -## License - -MIT diff --git a/views/node_modules/character-parser/index.js b/views/node_modules/character-parser/index.js deleted file mode 100644 index 3623aab..0000000 --- a/views/node_modules/character-parser/index.js +++ /dev/null @@ -1,296 +0,0 @@ -'use strict'; - -var objIsRegex = require('is-regex'); - -exports = (module.exports = parse); - -var TOKEN_TYPES = exports.TOKEN_TYPES = { - LINE_COMMENT: '//', - BLOCK_COMMENT: '/**/', - SINGLE_QUOTE: '\'', - DOUBLE_QUOTE: '"', - TEMPLATE_QUOTE: '`', - REGEXP: '//g' -} - -var BRACKETS = exports.BRACKETS = { - '(': ')', - '{': '}', - '[': ']' -}; -var BRACKETS_REVERSED = { - ')': '(', - '}': '{', - ']': '[' -}; - -exports.parse = parse; -function parse(src, state, options) { - options = options || {}; - state = state || exports.defaultState(); - var start = options.start || 0; - var end = options.end || src.length; - var index = start; - while (index < end) { - try { - parseChar(src[index], state); - } catch (ex) { - ex.index = index; - throw ex; - } - index++; - } - return state; -} - -exports.parseUntil = parseUntil; -function parseUntil(src, delimiter, options) { - options = options || {}; - var start = options.start || 0; - var index = start; - var state = exports.defaultState(); - while (index < src.length) { - if ((options.ignoreNesting || !state.isNesting(options)) && matches(src, delimiter, index)) { - var end = index; - return { - start: start, - end: end, - src: src.substring(start, end) - }; - } - try { - parseChar(src[index], state); - } catch (ex) { - ex.index = index; - throw ex; - } - index++; - } - var err = new Error('The end of the string was reached with no closing bracket found.'); - err.code = 'CHARACTER_PARSER:END_OF_STRING_REACHED'; - err.index = index; - throw err; -} - -exports.parseChar = parseChar; -function parseChar(character, state) { - if (character.length !== 1) { - var err = new Error('Character must be a string of length 1'); - err.name = 'InvalidArgumentError'; - err.code = 'CHARACTER_PARSER:CHAR_LENGTH_NOT_ONE'; - throw err; - } - state = state || exports.defaultState(); - state.src += character; - var wasComment = state.isComment(); - var lastChar = state.history ? state.history[0] : ''; - - - if (state.regexpStart) { - if (character === '/' || character == '*') { - state.stack.pop(); - } - state.regexpStart = false; - } - switch (state.current()) { - case TOKEN_TYPES.LINE_COMMENT: - if (character === '\n') { - state.stack.pop(); - } - break; - case TOKEN_TYPES.BLOCK_COMMENT: - if (state.lastChar === '*' && character === '/') { - state.stack.pop(); - } - break; - case TOKEN_TYPES.SINGLE_QUOTE: - if (character === '\'' && !state.escaped) { - state.stack.pop(); - } else if (character === '\\' && !state.escaped) { - state.escaped = true; - } else { - state.escaped = false; - } - break; - case TOKEN_TYPES.DOUBLE_QUOTE: - if (character === '"' && !state.escaped) { - state.stack.pop(); - } else if (character === '\\' && !state.escaped) { - state.escaped = true; - } else { - state.escaped = false; - } - break; - case TOKEN_TYPES.TEMPLATE_QUOTE: - if (character === '`' && !state.escaped) { - state.stack.pop(); - state.hasDollar = false; - } else if (character === '\\' && !state.escaped) { - state.escaped = true; - state.hasDollar = false; - } else if (character === '$' && !state.escaped) { - state.hasDollar = true; - } else if (character === '{' && state.hasDollar) { - state.stack.push(BRACKETS[character]); - } else { - state.escaped = false; - state.hasDollar = false; - } - break; - case TOKEN_TYPES.REGEXP: - if (character === '/' && !state.escaped) { - state.stack.pop(); - } else if (character === '\\' && !state.escaped) { - state.escaped = true; - } else { - state.escaped = false; - } - break; - default: - if (character in BRACKETS) { - state.stack.push(BRACKETS[character]); - } else if (character in BRACKETS_REVERSED) { - if (state.current() !== character) { - var err = new SyntaxError('Mismatched Bracket: ' + character); - err.code = 'CHARACTER_PARSER:MISMATCHED_BRACKET'; - throw err; - }; - state.stack.pop(); - } else if (lastChar === '/' && character === '/') { - // Don't include comments in history - state.history = state.history.substr(1); - state.stack.push(TOKEN_TYPES.LINE_COMMENT); - } else if (lastChar === '/' && character === '*') { - // Don't include comment in history - state.history = state.history.substr(1); - state.stack.push(TOKEN_TYPES.BLOCK_COMMENT); - } else if (character === '/' && isRegexp(state.history)) { - state.stack.push(TOKEN_TYPES.REGEXP); - // N.B. if the next character turns out to be a `*` or a `/` - // then this isn't actually a regexp - state.regexpStart = true; - } else if (character === '\'') { - state.stack.push(TOKEN_TYPES.SINGLE_QUOTE); - } else if (character === '"') { - state.stack.push(TOKEN_TYPES.DOUBLE_QUOTE); - } else if (character === '`') { - state.stack.push(TOKEN_TYPES.TEMPLATE_QUOTE); - } - break; - } - if (!state.isComment() && !wasComment) { - state.history = character + state.history; - } - state.lastChar = character; // store last character for ending block comments - return state; -} - -exports.defaultState = function () { return new State() }; -function State() { - this.stack = []; - - this.regexpStart = false; - this.escaped = false; - this.hasDollar = false; - - this.src = ''; - this.history = '' - this.lastChar = '' -} -State.prototype.current = function () { - return this.stack[this.stack.length - 1]; -}; -State.prototype.isString = function () { - return ( - this.current() === TOKEN_TYPES.SINGLE_QUOTE || - this.current() === TOKEN_TYPES.DOUBLE_QUOTE || - this.current() === TOKEN_TYPES.TEMPLATE_QUOTE - ); -} -State.prototype.isComment = function () { - return this.current() === TOKEN_TYPES.LINE_COMMENT || this.current() === TOKEN_TYPES.BLOCK_COMMENT; -} -State.prototype.isNesting = function (opts) { - if ( - opts && opts.ignoreLineComment && - this.stack.length === 1 && this.stack[0] === TOKEN_TYPES.LINE_COMMENT - ) { - // if we are only inside a line comment, and line comments are ignored - // don't count it as nesting - return false; - } - return !!this.stack.length; -} - -function matches(str, matcher, i) { - if (objIsRegex(matcher)) { - return matcher.test(str.substr(i || 0)); - } else { - return str.substr(i || 0, matcher.length) === matcher; - } -} - -exports.isPunctuator = isPunctuator -function isPunctuator(c) { - if (!c) return true; // the start of a string is a punctuator - var code = c.charCodeAt(0) - - switch (code) { - case 46: // . dot - case 40: // ( open bracket - case 41: // ) close bracket - case 59: // ; semicolon - case 44: // , comma - case 123: // { open curly brace - case 125: // } close curly brace - case 91: // [ - case 93: // ] - case 58: // : - case 63: // ? - case 126: // ~ - case 37: // % - case 38: // & - case 42: // *: - case 43: // + - case 45: // - - case 47: // / - case 60: // < - case 62: // > - case 94: // ^ - case 124: // | - case 33: // ! - case 61: // = - return true; - default: - return false; - } -} - -exports.isKeyword = isKeyword -function isKeyword(id) { - return (id === 'if') || (id === 'in') || (id === 'do') || (id === 'var') || (id === 'for') || (id === 'new') || - (id === 'try') || (id === 'let') || (id === 'this') || (id === 'else') || (id === 'case') || - (id === 'void') || (id === 'with') || (id === 'enum') || (id === 'while') || (id === 'break') || (id === 'catch') || - (id === 'throw') || (id === 'const') || (id === 'yield') || (id === 'class') || (id === 'super') || - (id === 'return') || (id === 'typeof') || (id === 'delete') || (id === 'switch') || (id === 'export') || - (id === 'import') || (id === 'default') || (id === 'finally') || (id === 'extends') || (id === 'function') || - (id === 'continue') || (id === 'debugger') || (id === 'package') || (id === 'private') || (id === 'interface') || - (id === 'instanceof') || (id === 'implements') || (id === 'protected') || (id === 'public') || (id === 'static'); -} - -function isRegexp(history) { - //could be start of regexp or divide sign - - history = history.replace(/^\s*/, ''); - - //unless its an `if`, `while`, `for` or `with` it's a divide, so we assume it's a divide - if (history[0] === ')') return false; - //unless it's a function expression, it's a regexp, so we assume it's a regexp - if (history[0] === '}') return true; - //any punctuation means it's a regexp - if (isPunctuator(history[0])) return true; - //if the last thing was a keyword then it must be a regexp (e.g. `typeof /foo/`) - if (/^\w+\b/.test(history) && isKeyword(/^\w+\b/.exec(history)[0].split('').reverse().join(''))) return true; - - return false; -} diff --git a/views/node_modules/character-parser/package.json b/views/node_modules/character-parser/package.json deleted file mode 100644 index 9fd14f0..0000000 --- a/views/node_modules/character-parser/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "character-parser", - "version": "2.2.0", - "description": "Parse JavaScript one character at a time to look for snippets in Templates. This is not a validator, it's just designed to allow you to have sections of JavaScript delimited by brackets robustly.", - "main": "index.js", - "scripts": { - "coverage": "istanbul cover test/index.js", - "test": "node test/index.js" - }, - "repository": { - "type": "git", - "url": "https://github.com/ForbesLindesay/character-parser.git" - }, - "keywords": [ - "parser", - "JavaScript", - "bracket", - "nesting", - "comment", - "string", - "escape", - "escaping" - ], - "author": "ForbesLindesay", - "license": "MIT", - "devDependencies": { - "istanbul": "~0.3.22", - "testit": "~2.0.2" - }, - "dependencies": { - "is-regex": "^1.0.3" - } -} \ No newline at end of file diff --git a/views/node_modules/class-transformer/LICENSE b/views/node_modules/class-transformer/LICENSE deleted file mode 100644 index 462148e..0000000 --- a/views/node_modules/class-transformer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License - -Copyright (c) 2015-2020 TypeStack - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/views/node_modules/class-transformer/README.md b/views/node_modules/class-transformer/README.md deleted file mode 100644 index fd80da7..0000000 --- a/views/node_modules/class-transformer/README.md +++ /dev/null @@ -1,903 +0,0 @@ -# class-transformer - -![Build Status](https://github.com/typestack/class-transformer/workflows/CI/badge.svg) -[![codecov](https://codecov.io/gh/typestack/class-transformer/branch/develop/graph/badge.svg)](https://codecov.io/gh/typestack/class-transformer) -[![npm version](https://badge.fury.io/js/class-transformer.svg)](https://badge.fury.io/js/class-transformer) - -Its ES6 and Typescript era. Nowadays you are working with classes and constructor objects more than ever. -Class-transformer allows you to transform plain object to some instance of class and versa. -Also it allows to serialize / deserialize object based on criteria. -This tool is super useful on both frontend and backend. - -Example how to use with angular 2 in [plunker](http://plnkr.co/edit/Mja1ZYAjVySWASMHVB9R). -Source code is available [here](https://github.com/pleerock/class-transformer-demo). - -## Table of contents - -- [What is class-transformer](#what-is-class-transformer) -- [Installation](#installation) - - [Node.js](#nodejs) - - [Browser](#browser) -- [Methods](#methods) - - [plainToClass](#plaintoclass) - - [plainToClassFromExist](#plaintoclassfromexist) - - [classToPlain](#classtoplain) - - [classToClass](#classtoclass) - - [serialize](#serialize) - - [deserialize and deserializeArray](#deserialize-and-deserializearray) -- [Enforcing type-safe instance](#enforcing-type-safe-instance) -- [Working with nested objects](#working-with-nested-objects) - - [Providing more than one type option](#providing-more-than-one-type-option) -- [Exposing getters and method return values](#exposing-getters-and-method-return-values) -- [Exposing properties with different names](#exposing-properties-with-different-names) -- [Skipping specific properties](#skipping-specific-properties) -- [Skipping depend of operation](#skipping-depend-of-operation) -- [Skipping all properties of the class](#skipping-all-properties-of-the-class) -- [Skipping private properties, or some prefixed properties](#skipping-private-properties-or-some-prefixed-properties) -- [Using groups to control excluded properties](#using-groups-to-control-excluded-properties) -- [Using versioning to control exposed and excluded properties](#using-versioning-to-control-exposed-and-excluded-properties) -- [Сonverting date strings into Date objects](#сonverting-date-strings-into-date-objects) -- [Working with arrays](#working-with-arrays) -- [Additional data transformation](#additional-data-transformation) - - [Basic usage](#basic-usage) - - [Advanced usage](#advanced-usage) -- [Other decorators](#other-decorators) -- [Working with generics](#working-with-generics) -- [Implicit type conversion](#implicit-type-conversion) -- [How does it handle circular references?](#how-does-it-handle-circular-references) -- [Example with Angular2](#example-with-angular2) -- [Samples](#samples) -- [Release notes](#release-notes) - -## What is class-transformer[⬆](#table-of-contents) - -In JavaScript there are two types of objects: - -- plain (literal) objects -- class (constructor) objects - -Plain objects are objects that are instances of `Object` class. -Sometimes they are called **literal** objects, when created via `{}` notation. -Class objects are instances of classes with own defined constructor, properties and methods. -Usually you define them via `class` notation. - -So, what is the problem? - -Sometimes you want to transform plain javascript object to the ES6 **classes** you have. -For example, if you are loading a json from your backend, some api or from a json file, -and after you `JSON.parse` it you have a plain javascript object, not instance of class you have. - -For example you have a list of users in your `users.json` that you are loading: - -```json -[ - { - "id": 1, - "firstName": "Johny", - "lastName": "Cage", - "age": 27 - }, - { - "id": 2, - "firstName": "Ismoil", - "lastName": "Somoni", - "age": 50 - }, - { - "id": 3, - "firstName": "Luke", - "lastName": "Dacascos", - "age": 12 - } -] -``` - -And you have a `User` class: - -```typescript -export class User { - id: number; - firstName: string; - lastName: string; - age: number; - - getName() { - return this.firstName + ' ' + this.lastName; - } - - isAdult() { - return this.age > 36 && this.age < 60; - } -} -``` - -You are assuming that you are downloading users of type `User` from `users.json` file and may want to write -following code: - -```typescript -fetch('users.json').then((users: User[]) => { - // you can use users here, and type hinting also will be available to you, - // but users are not actually instances of User class - // this means that you can't use methods of User class -}); -``` - -In this code you can use `users[0].id`, you can also use `users[0].firstName` and `users[0].lastName`. -However you cannot use `users[0].getName()` or `users[0].isAdult()` because "users" actually is -array of plain javascript objects, not instances of User object. -You actually lied to compiler when you said that its `users: User[]`. - -So what to do? How to make a `users` array of instances of `User` objects instead of plain javascript objects? -Solution is to create new instances of User object and manually copy all properties to new objects. -But things may go wrong very fast once you have a more complex object hierarchy. - -Alternatives? Yes, you can use class-transformer. Purpose of this library is to help you to map your plain javascript -objects to the instances of classes you have. - -This library also great for models exposed in your APIs, -because it provides a great tooling to control what your models are exposing in your API. -Here is an example how it will look like: - -```typescript -fetch('users.json').then((users: Object[]) => { - const realUsers = plainToClass(User, users); - // now each user in realUsers is an instance of User class -}); -``` - -Now you can use `users[0].getName()` and `users[0].isAdult()` methods. - -## Installation[⬆](#table-of-contents) - -### Node.js[⬆](#table-of-contents) - -1. Install module: - - `npm install class-transformer --save` - -2. `reflect-metadata` shim is required, install it too: - - `npm install reflect-metadata --save` - - and make sure to import it in a global place, like app.ts: - - ```typescript - import 'reflect-metadata'; - ``` - -3. ES6 features are used, if you are using old version of node.js you may need to install es6-shim: - - `npm install es6-shim --save` - - and import it in a global place like app.ts: - - ```typescript - import 'es6-shim'; - ``` - -### Browser[⬆](#table-of-contents) - -1. Install module: - - `npm install class-transformer --save` - -2. `reflect-metadata` shim is required, install it too: - - `npm install reflect-metadata --save` - - add ` - - - - ``` - - If you are using angular 2 you should already have this shim installed. - -3. If you are using system.js you may want to add this into `map` and `package` config: - - ```json - { - "map": { - "class-transformer": "node_modules/class-transformer" - }, - "packages": { - "class-transformer": { "main": "index.js", "defaultExtension": "js" } - } - } - ``` - -## Methods[⬆](#table-of-contents) - -### plainToClass[⬆](#table-of-contents) - -This method transforms a plain javascript object to instance of specific class. - -```typescript -import { plainToClass } from 'class-transformer'; - -let users = plainToClass(User, userJson); // to convert user plain object a single user. also supports arrays -``` - -### plainToClassFromExist[⬆](#table-of-contents) - -This method transforms a plain object into an instance using an already filled Object which is an instance of the target class. - -```typescript -const defaultUser = new User(); -defaultUser.role = 'user'; - -let mixedUser = plainToClassFromExist(defaultUser, user); // mixed user should have the value role = user when no value is set otherwise. -``` - -### classToPlain[⬆](#table-of-contents) - -This method transforms your class object back to plain javascript object, that can be `JSON.stringify` later. - -```typescript -import { classToPlain } from 'class-transformer'; -let photo = classToPlain(photo); -``` - -### classToClass[⬆](#table-of-contents) - -This method transforms your class object into a new instance of the class object. -This may be treated as deep clone of your objects. - -```typescript -import { classToClass } from 'class-transformer'; -let photo = classToClass(photo); -``` - -You can also use an `ignoreDecorators` option in transformation options to ignore all decorators you classes is using. - -### serialize[⬆](#table-of-contents) - -You can serialize your model right to json using `serialize` method: - -```typescript -import { serialize } from 'class-transformer'; -let photo = serialize(photo); -``` - -`serialize` works with both arrays and non-arrays. - -### deserialize and deserializeArray[⬆](#table-of-contents) - -You can deserialize your model from json using the `deserialize` method: - -```typescript -import { deserialize } from 'class-transformer'; -let photo = deserialize(Photo, photo); -``` - -To make deserialization work with arrays, use the `deserializeArray` method: - -```typescript -import { deserializeArray } from 'class-transformer'; -let photos = deserializeArray(Photo, photos); -``` - -## Enforcing type-safe instance[⬆](#table-of-contents) - -The default behaviour of the `plainToClass` method is to set _all_ properties from the plain object, -even those which are not specified in the class. - -```typescript -import { plainToClass } from 'class-transformer'; - -class User { - id: number; - firstName: string; - lastName: string; -} - -const fromPlainUser = { - unkownProp: 'hello there', - firstName: 'Umed', - lastName: 'Khudoiberdiev', -}; - -console.log(plainToClass(User, fromPlainUser)); - -// User { -// unkownProp: 'hello there', -// firstName: 'Umed', -// lastName: 'Khudoiberdiev', -// } -``` - -If this behaviour does not suit your needs, you can use the `excludeExtraneousValues` option -in the `plainToClass` method while _exposing all your class properties_ as a requirement. - -```typescript -import { Expose, plainToClass } from 'class-transformer'; - -class User { - @Expose() id: number; - @Expose() firstName: string; - @Expose() lastName: string; -} - -const fromPlainUser = { - unkownProp: 'hello there', - firstName: 'Umed', - lastName: 'Khudoiberdiev', -}; - -console.log(plainToClass(User, fromPlainUser, { excludeExtraneousValues: true })); - -// User { -// id: undefined, -// firstName: 'Umed', -// lastName: 'Khudoiberdiev' -// } -``` - -## Working with nested objects[⬆](#table-of-contents) - -When you are trying to transform objects that have nested objects, -it's required to known what type of object you are trying to transform. -Since Typescript does not have good reflection abilities yet, -we should implicitly specify what type of object each property contain. -This is done using `@Type` decorator. - -Lets say we have an album with photos. -And we are trying to convert album plain object to class object: - -```typescript -import { Type, plainToClass } from 'class-transformer'; - -export class Album { - id: number; - - name: string; - - @Type(() => Photo) - photos: Photo[]; -} - -export class Photo { - id: number; - filename: string; -} - -let album = plainToClass(Album, albumJson); -// now album is Album object with Photo objects inside -``` - -### Providing more than one type option[⬆](#table-of-contents) - -In case the nested object can be of different types, you can provide an additional options object, -that specifies a discriminator. The discriminator option must define a `property` that holds the subtype -name for the object and the possible `subTypes` that the nested object can converted to. A sub type -has a `value`, that holds the constructor of the Type and the `name`, that can match with the `property` -of the discriminator. - -Lets say we have an album that has a top photo. But this photo can be of certain different types. -And we are trying to convert album plain object to class object. The plain object input has to define -the additional property `__type`. This property is removed during transformation by default: - -**JSON input**: - -```json -{ - "id": 1, - "name": "foo", - "topPhoto": { - "id": 9, - "filename": "cool_wale.jpg", - "depth": 1245, - "__type": "underwater" - } -} -``` - -```typescript -import { Type, plainToClass } from 'class-transformer'; - -export abstract class Photo { - id: number; - filename: string; -} - -export class Landscape extends Photo { - panorama: boolean; -} - -export class Portrait extends Photo { - person: Person; -} - -export class UnderWater extends Photo { - depth: number; -} - -export class Album { - id: number; - name: string; - - @Type(() => Photo, { - discriminator: { - property: '__type', - subTypes: [ - { value: Landscape, name: 'landscape' }, - { value: Portrait, name: 'portrait' }, - { value: UnderWater, name: 'underwater' }, - ], - }, - }) - topPhoto: Landscape | Portrait | UnderWater; -} - -let album = plainToClass(Album, albumJson); -// now album is Album object with a UnderWater object without `__type` property. -``` - -Hint: The same applies for arrays with different sub types. Moreover you can specify `keepDiscriminatorProperty: true` -in the options to keep the discriminator property also inside your resulting class. - -## Exposing getters and method return values[⬆](#table-of-contents) - -You can expose what your getter or method return by setting an `@Expose()` decorator to those getters or methods: - -```typescript -import { Expose } from 'class-transformer'; - -export class User { - id: number; - firstName: string; - lastName: string; - password: string; - - @Expose() - get name() { - return this.firstName + ' ' + this.lastName; - } - - @Expose() - getFullName() { - return this.firstName + ' ' + this.lastName; - } -} -``` - -## Exposing properties with different names[⬆](#table-of-contents) - -If you want to expose some of the properties with a different name, -you can do that by specifying a `name` option to `@Expose` decorator: - -```typescript -import { Expose } from 'class-transformer'; - -export class User { - @Expose({ name: 'uid' }) - id: number; - - firstName: string; - - lastName: string; - - @Expose({ name: 'secretKey' }) - password: string; - - @Expose({ name: 'fullName' }) - getFullName() { - return this.firstName + ' ' + this.lastName; - } -} -``` - -## Skipping specific properties[⬆](#table-of-contents) - -Sometimes you want to skip some properties during transformation. -This can be done using `@Exclude` decorator: - -```typescript -import { Exclude } from 'class-transformer'; - -export class User { - id: number; - - email: string; - - @Exclude() - password: string; -} -``` - -Now when you transform a User, the `password` property will be skipped and not be included in the transformed result. - -## Skipping depend of operation[⬆](#table-of-contents) - -You can control on what operation you will exclude a property. Use `toClassOnly` or `toPlainOnly` options: - -```typescript -import { Exclude } from 'class-transformer'; - -export class User { - id: number; - - email: string; - - @Exclude({ toPlainOnly: true }) - password: string; -} -``` - -Now `password` property will be excluded only during `classToPlain` operation. Vice versa, use the `toClassOnly` option. - -## Skipping all properties of the class[⬆](#table-of-contents) - -You can skip all properties of the class, and expose only those are needed explicitly: - -```typescript -import { Exclude, Expose } from 'class-transformer'; - -@Exclude() -export class User { - @Expose() - id: number; - - @Expose() - email: string; - - password: string; -} -``` - -Now `id` and `email` will be exposed, and password will be excluded during transformation. -Alternatively, you can set exclusion strategy during transformation: - -```typescript -import { classToPlain } from 'class-transformer'; -let photo = classToPlain(photo, { strategy: 'excludeAll' }); -``` - -In this case you don't need to `@Exclude()` a whole class. - -## Skipping private properties, or some prefixed properties[⬆](#table-of-contents) - -If you name your private properties with a prefix, lets say with `_`, -then you can exclude such properties from transformation too: - -```typescript -import { classToPlain } from 'class-transformer'; -let photo = classToPlain(photo, { excludePrefixes: ['_'] }); -``` - -This will skip all properties that start with `_` prefix. -You can pass any number of prefixes and all properties that begin with these prefixes will be ignored. -For example: - -```typescript -import { Expose, classToPlain } from 'class-transformer'; - -export class User { - id: number; - private _firstName: string; - private _lastName: string; - _password: string; - - setName(firstName: string, lastName: string) { - this._firstName = firstName; - this._lastName = lastName; - } - - @Expose() - get name() { - return this._firstName + ' ' + this._lastName; - } -} - -const user = new User(); -user.id = 1; -user.setName('Johny', 'Cage'); -user._password = '123'; - -const plainUser = classToPlain(user, { excludePrefixes: ['_'] }); -// here plainUser will be equal to -// { id: 1, name: "Johny Cage" } -``` - -## Using groups to control excluded properties[⬆](#table-of-contents) - -You can use groups to control what data will be exposed and what will not be: - -```typescript -import { Exclude, Expose, classToPlain } from 'class-transformer'; - -export class User { - id: number; - - name: string; - - @Expose({ groups: ['user', 'admin'] }) // this means that this data will be exposed only to users and admins - email: string; - - @Expose({ groups: ['user'] }) // this means that this data will be exposed only to users - password: string; -} - -let user1 = classToPlain(user, { groups: ['user'] }); // will contain id, name, email and password -let user2 = classToPlain(user, { groups: ['admin'] }); // will contain id, name and email -``` - -## Using versioning to control exposed and excluded properties[⬆](#table-of-contents) - -If you are building an API that has different versions, class-transformer has extremely useful tools for that. -You can control which properties of your model should be exposed or excluded in what version. Example: - -```typescript -import { Exclude, Expose, classToPlain } from 'class-transformer'; - -export class User { - id: number; - - name: string; - - @Expose({ since: 0.7, until: 1 }) // this means that this property will be exposed for version starting from 0.7 until 1 - email: string; - - @Expose({ since: 2.1 }) // this means that this property will be exposed for version starting from 2.1 - password: string; -} - -let user1 = classToPlain(user, { version: 0.5 }); // will contain id and name -let user2 = classToPlain(user, { version: 0.7 }); // will contain id, name and email -let user3 = classToPlain(user, { version: 1 }); // will contain id and name -let user4 = classToPlain(user, { version: 2 }); // will contain id and name -let user5 = classToPlain(user, { version: 2.1 }); // will contain id, name and password -``` - -## Сonverting date strings into Date objects[⬆](#table-of-contents) - -Sometimes you have a Date in your plain javascript object received in a string format. -And you want to create a real javascript Date object from it. -You can do it simply by passing a Date object to the `@Type` decorator: - -```typescript -import { Type } from 'class-transformer'; - -export class User { - id: number; - - email: string; - - password: string; - - @Type(() => Date) - registrationDate: Date; -} -``` - -Note, that dates will be converted to strings when you'll try to convert class object to plain object. - -Same technique can be used with `Number`, `String`, `Boolean` -primitive types when you want to convert your values into these types. - -## Working with arrays[⬆](#table-of-contents) - -When you are using arrays you must provide a type of the object that array contains. -This type, you specify in a `@Type()` decorator: - -```typescript -import { Type } from 'class-transformer'; - -export class Photo { - id: number; - - name: string; - - @Type(() => Album) - albums: Album[]; -} -``` - -You can also use custom array types: - -```typescript -import { Type } from 'class-transformer'; - -export class AlbumCollection extends Array { - // custom array functions ... -} - -export class Photo { - id: number; - - name: string; - - @Type(() => Album) - albums: AlbumCollection; -} -``` - -Library will handle proper transformation automatically. - -ES6 collections `Set` and `Map` also require the `@Type` decorator: - -```typescript -export class Skill { - name: string; -} - -export class Weapon { - name: string; - range: number; -} - -export class Player { - name: string; - - @Type(() => Skill) - skills: Set; - - @Type(() => Weapon) - weapons: Map; -} -``` - -## Additional data transformation[⬆](#table-of-contents) - -### Basic usage[⬆](#table-of-contents) - -You can perform additional data transformation using `@Transform` decorator. -For example, you want to make your `Date` object to be a `moment` object when you are -transforming object from plain to class: - -```typescript -import { Transform } from 'class-transformer'; -import * as moment from 'moment'; -import { Moment } from 'moment'; - -export class Photo { - id: number; - - @Type(() => Date) - @Transform(({ value }) => moment(value), { toClassOnly: true }) - date: Moment; -} -``` - -Now when you call `plainToClass` and send a plain representation of the Photo object, -it will convert a date value in your photo object to moment date. -`@Transform` decorator also supports groups and versioning. - -### Advanced usage[⬆](#table-of-contents) - -The `@Transform` decorator is given more arguments to let you configure how you want the transformation to be done. - -```ts -@Transform(({ value, key, obj, type }) => value) -``` - -| Argument | Description | -| --------- | ------------------------------------------------------- | -| `value` | The property value before the transformation. | -| `key` | The name of the transformed property. | -| `obj` | The transformation source object. | -| `type` | The transformation type. | -| `options` | The options object passed to the transformation method. | - -## Other decorators[⬆](#table-of-contents) - -| Signature | Example | Description | -| ------------------------ | ---------------------------------------------------- | ------------------------------------------------------------------------------------- | -| `@TransformClassToPlain` | `@TransformClassToPlain({ groups: ["user"] })` | Transform the method return with classToPlain and expose the properties on the class. | -| `@TransformClassToClass` | `@TransformClassToClass({ groups: ["user"] })` | Transform the method return with classToClass and expose the properties on the class. | -| `@TransformPlainToClass` | `@TransformPlainToClass(User, { groups: ["user"] })` | Transform the method return with plainToClass and expose the properties on the class. | - -The above decorators accept one optional argument: -ClassTransformOptions - The transform options like groups, version, name - -An example: - -```typescript -@Exclude() -class User { - id: number; - - @Expose() - firstName: string; - - @Expose() - lastName: string; - - @Expose({ groups: ['user.email'] }) - email: string; - - password: string; -} - -class UserController { - @TransformClassToPlain({ groups: ['user.email'] }) - getUser() { - const user = new User(); - user.firstName = 'Snir'; - user.lastName = 'Segal'; - user.password = 'imnosuperman'; - - return user; - } -} - -const controller = new UserController(); -const user = controller.getUser(); -``` - -the `user` variable will contain only firstName,lastName, email properties because they are -the exposed variables. email property is also exposed because we metioned the group "user.email". - -## Working with generics[⬆](#table-of-contents) - -Generics are not supported because TypeScript does not have good reflection abilities yet. -Once TypeScript team provide us better runtime type reflection tools, generics will be implemented. -There are some tweaks however you can use, that maybe can solve your problem. -[Checkout this example.](https://github.com/pleerock/class-transformer/tree/master/sample/sample4-generics) - -## Implicit type conversion[⬆](#table-of-contents) - -> **NOTE** If you use class-validator together with class-transformer you propably DON'T want to enable this function. - -Enables automatic conversion between built-in types based on type information provided by Typescript. Disabled by default. - -```ts -import { IsString } from 'class-validator'; - -class MyPayload { - @IsString() - prop: string; -} - -const result1 = plainToClass(MyPayload, { prop: 1234 }, { enableImplicitConversion: true }); -const result2 = plainToClass(MyPayload, { prop: 1234 }, { enableImplicitConversion: false }); - -/** - * result1 will be `{ prop: "1234" }` - notice how the prop value has been converted to string. - * result2 will be `{ prop: 1234 }` - default behaviour - */ -``` - -## How does it handle circular references?[⬆](#table-of-contents) - -Circular references are ignored. -For example, if you are transforming class `User` that contains property `photos` with type of `Photo`, -and `Photo` contains link `user` to its parent `User`, then `user` will be ignored during transformation. -Circular references are not ignored only during `classToClass` operation. - -## Example with Angular2[⬆](#table-of-contents) - -Lets say you want to download users and want them automatically to be mapped to the instances of `User` class. - -```typescript -import { plainToClass } from 'class-transformer'; - -this.http - .get('users.json') - .map(res => res.json()) - .map(res => plainToClass(User, res as Object[])) - .subscribe(users => { - // now "users" is type of User[] and each user has getName() and isAdult() methods available - console.log(users); - }); -``` - -You can also inject a class `ClassTransformer` as a service in `providers`, and use its methods. - -Example how to use with angular 2 in [plunker](http://plnkr.co/edit/Mja1ZYAjVySWASMHVB9R). -Source code is [here](https://github.com/pleerock/class-transformer-demo). - -## Samples[⬆](#table-of-contents) - -Take a look on samples in [./sample](https://github.com/pleerock/class-transformer/tree/master/sample) for more examples of -usages. - -## Release notes[⬆](#table-of-contents) - -See information about breaking changes and release notes [here](https://github.com/typestack/class-transformer/blob/master/CHANGELOG.md). diff --git a/views/node_modules/class-transformer/bundles/class-transformer.umd.js b/views/node_modules/class-transformer/bundles/class-transformer.umd.js deleted file mode 100644 index 4360a4a..0000000 --- a/views/node_modules/class-transformer/bundles/class-transformer.umd.js +++ /dev/null @@ -1,1002 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ClassTransformer = {})); -}(this, (function (exports) { 'use strict'; - - exports.TransformationType = void 0; - (function (TransformationType) { - TransformationType[TransformationType["PLAIN_TO_CLASS"] = 0] = "PLAIN_TO_CLASS"; - TransformationType[TransformationType["CLASS_TO_PLAIN"] = 1] = "CLASS_TO_PLAIN"; - TransformationType[TransformationType["CLASS_TO_CLASS"] = 2] = "CLASS_TO_CLASS"; - })(exports.TransformationType || (exports.TransformationType = {})); - - /** - * Storage all library metadata. - */ - var MetadataStorage = /** @class */ (function () { - function MetadataStorage() { - // ------------------------------------------------------------------------- - // Properties - // ------------------------------------------------------------------------- - this._typeMetadatas = new Map(); - this._transformMetadatas = new Map(); - this._exposeMetadatas = new Map(); - this._excludeMetadatas = new Map(); - this._ancestorsMap = new Map(); - } - // ------------------------------------------------------------------------- - // Adder Methods - // ------------------------------------------------------------------------- - MetadataStorage.prototype.addTypeMetadata = function (metadata) { - if (!this._typeMetadatas.has(metadata.target)) { - this._typeMetadatas.set(metadata.target, new Map()); - } - this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - }; - MetadataStorage.prototype.addTransformMetadata = function (metadata) { - if (!this._transformMetadatas.has(metadata.target)) { - this._transformMetadatas.set(metadata.target, new Map()); - } - if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) { - this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []); - } - this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata); - }; - MetadataStorage.prototype.addExposeMetadata = function (metadata) { - if (!this._exposeMetadatas.has(metadata.target)) { - this._exposeMetadatas.set(metadata.target, new Map()); - } - this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - }; - MetadataStorage.prototype.addExcludeMetadata = function (metadata) { - if (!this._excludeMetadatas.has(metadata.target)) { - this._excludeMetadatas.set(metadata.target, new Map()); - } - this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - }; - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - MetadataStorage.prototype.findTransformMetadatas = function (target, propertyName, transformationType) { - return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(function (metadata) { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === exports.TransformationType.CLASS_TO_CLASS || - transformationType === exports.TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === exports.TransformationType.CLASS_TO_PLAIN; - } - return true; - }); - }; - MetadataStorage.prototype.findExcludeMetadata = function (target, propertyName) { - return this.findMetadata(this._excludeMetadatas, target, propertyName); - }; - MetadataStorage.prototype.findExposeMetadata = function (target, propertyName) { - return this.findMetadata(this._exposeMetadatas, target, propertyName); - }; - MetadataStorage.prototype.findExposeMetadataByCustomName = function (target, name) { - return this.getExposedMetadatas(target).find(function (metadata) { - return metadata.options && metadata.options.name === name; - }); - }; - MetadataStorage.prototype.findTypeMetadata = function (target, propertyName) { - return this.findMetadata(this._typeMetadatas, target, propertyName); - }; - MetadataStorage.prototype.getStrategy = function (target) { - var excludeMap = this._excludeMetadatas.get(target); - var exclude = excludeMap && excludeMap.get(undefined); - var exposeMap = this._exposeMetadatas.get(target); - var expose = exposeMap && exposeMap.get(undefined); - if ((exclude && expose) || (!exclude && !expose)) - return 'none'; - return exclude ? 'excludeAll' : 'exposeAll'; - }; - MetadataStorage.prototype.getExposedMetadatas = function (target) { - return this.getMetadata(this._exposeMetadatas, target); - }; - MetadataStorage.prototype.getExcludedMetadatas = function (target) { - return this.getMetadata(this._excludeMetadatas, target); - }; - MetadataStorage.prototype.getExposedProperties = function (target, transformationType) { - return this.getExposedMetadatas(target) - .filter(function (metadata) { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === exports.TransformationType.CLASS_TO_CLASS || - transformationType === exports.TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === exports.TransformationType.CLASS_TO_PLAIN; - } - return true; - }) - .map(function (metadata) { return metadata.propertyName; }); - }; - MetadataStorage.prototype.getExcludedProperties = function (target, transformationType) { - return this.getExcludedMetadatas(target) - .filter(function (metadata) { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === exports.TransformationType.CLASS_TO_CLASS || - transformationType === exports.TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === exports.TransformationType.CLASS_TO_PLAIN; - } - return true; - }) - .map(function (metadata) { return metadata.propertyName; }); - }; - MetadataStorage.prototype.clear = function () { - this._typeMetadatas.clear(); - this._exposeMetadatas.clear(); - this._excludeMetadatas.clear(); - this._ancestorsMap.clear(); - }; - // ------------------------------------------------------------------------- - // Private Methods - // ------------------------------------------------------------------------- - MetadataStorage.prototype.getMetadata = function (metadatas, target) { - var metadataFromTargetMap = metadatas.get(target); - var metadataFromTarget; - if (metadataFromTargetMap) { - metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(function (meta) { return meta.propertyName !== undefined; }); - } - var metadataFromAncestors = []; - for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) { - var ancestor = _a[_i]; - var ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - var metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(function (meta) { return meta.propertyName !== undefined; }); - metadataFromAncestors.push.apply(metadataFromAncestors, metadataFromAncestor); - } - } - return metadataFromAncestors.concat(metadataFromTarget || []); - }; - MetadataStorage.prototype.findMetadata = function (metadatas, target, propertyName) { - var metadataFromTargetMap = metadatas.get(target); - if (metadataFromTargetMap) { - var metadataFromTarget = metadataFromTargetMap.get(propertyName); - if (metadataFromTarget) { - return metadataFromTarget; - } - } - for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) { - var ancestor = _a[_i]; - var ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - var ancestorResult = ancestorMetadataMap.get(propertyName); - if (ancestorResult) { - return ancestorResult; - } - } - } - return undefined; - }; - MetadataStorage.prototype.findMetadatas = function (metadatas, target, propertyName) { - var metadataFromTargetMap = metadatas.get(target); - var metadataFromTarget; - if (metadataFromTargetMap) { - metadataFromTarget = metadataFromTargetMap.get(propertyName); - } - var metadataFromAncestorsTarget = []; - for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) { - var ancestor = _a[_i]; - var ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - if (ancestorMetadataMap.has(propertyName)) { - metadataFromAncestorsTarget.push.apply(metadataFromAncestorsTarget, ancestorMetadataMap.get(propertyName)); - } - } - } - return metadataFromAncestorsTarget - .slice() - .reverse() - .concat((metadataFromTarget || []).slice().reverse()); - }; - MetadataStorage.prototype.getAncestors = function (target) { - if (!target) - return []; - if (!this._ancestorsMap.has(target)) { - var ancestors = []; - for (var baseClass = Object.getPrototypeOf(target.prototype.constructor); typeof baseClass.prototype !== 'undefined'; baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)) { - ancestors.push(baseClass); - } - this._ancestorsMap.set(target, ancestors); - } - return this._ancestorsMap.get(target); - }; - return MetadataStorage; - }()); - - /** - * Default metadata storage is used as singleton and can be used to storage all metadatas. - */ - var defaultMetadataStorage = new MetadataStorage(); - - /** - * This function returns the global object across Node and browsers. - * - * Note: `globalThis` is the standardized approach however it has been added to - * Node.js in version 12. We need to include this snippet until Node 12 EOL. - */ - function getGlobal() { - if (typeof globalThis !== 'undefined') { - return globalThis; - } - if (typeof global !== 'undefined') { - return global; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - if (typeof window !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - return window; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - if (typeof self !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - return self; - } - } - - function isPromise(p) { - return p !== null && typeof p === 'object' && typeof p.then === 'function'; - } - - function instantiateArrayType(arrayType) { - var array = new arrayType(); - if (!(array instanceof Set) && !('push' in array)) { - return []; - } - return array; - } - var TransformOperationExecutor = /** @class */ (function () { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - function TransformOperationExecutor(transformationType, options) { - this.transformationType = transformationType; - this.options = options; - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - this.recursionStack = new Set(); - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - TransformOperationExecutor.prototype.transform = function (source, value, targetType, arrayType, isMap, level) { - var _this = this; - if (level === void 0) { level = 0; } - if (Array.isArray(value) || value instanceof Set) { - var newValue_1 = arrayType && this.transformationType === exports.TransformationType.PLAIN_TO_CLASS - ? instantiateArrayType(arrayType) - : []; - value.forEach(function (subValue, index) { - var subSource = source ? source[index] : undefined; - if (!_this.options.enableCircularCheck || !_this.isCircular(subValue)) { - var realTargetType = void 0; - if (typeof targetType !== 'function' && - targetType && - targetType.options && - targetType.options.discriminator && - targetType.options.discriminator.property && - targetType.options.discriminator.subTypes) { - if (_this.transformationType === exports.TransformationType.PLAIN_TO_CLASS) { - realTargetType = targetType.options.discriminator.subTypes.find(function (subType) { - return subType.name === subValue[targetType.options.discriminator.property]; - }); - var options = { newObject: newValue_1, object: subValue, property: undefined }; - var newType = targetType.typeFunction(options); - realTargetType === undefined ? (realTargetType = newType) : (realTargetType = realTargetType.value); - if (!targetType.options.keepDiscriminatorProperty) - delete subValue[targetType.options.discriminator.property]; - } - if (_this.transformationType === exports.TransformationType.CLASS_TO_CLASS) { - realTargetType = subValue.constructor; - } - if (_this.transformationType === exports.TransformationType.CLASS_TO_PLAIN) { - subValue[targetType.options.discriminator.property] = targetType.options.discriminator.subTypes.find(function (subType) { return subType.value === subValue.constructor; }).name; - } - } - else { - realTargetType = targetType; - } - var value_1 = _this.transform(subSource, subValue, realTargetType, undefined, subValue instanceof Map, level + 1); - if (newValue_1 instanceof Set) { - newValue_1.add(value_1); - } - else { - newValue_1.push(value_1); - } - } - else if (_this.transformationType === exports.TransformationType.CLASS_TO_CLASS) { - if (newValue_1 instanceof Set) { - newValue_1.add(subValue); - } - else { - newValue_1.push(subValue); - } - } - }); - return newValue_1; - } - else if (targetType === String && !isMap) { - if (value === null || value === undefined) - return value; - return String(value); - } - else if (targetType === Number && !isMap) { - if (value === null || value === undefined) - return value; - return Number(value); - } - else if (targetType === Boolean && !isMap) { - if (value === null || value === undefined) - return value; - return Boolean(value); - } - else if ((targetType === Date || value instanceof Date) && !isMap) { - if (value instanceof Date) { - return new Date(value.valueOf()); - } - if (value === null || value === undefined) - return value; - return new Date(value); - } - else if (!!getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) { - if (value === null || value === undefined) - return value; - return Buffer.from(value); - } - else if (isPromise(value) && !isMap) { - return new Promise(function (resolve, reject) { - value.then(function (data) { return resolve(_this.transform(undefined, data, targetType, undefined, undefined, level + 1)); }, reject); - }); - } - else if (!isMap && value !== null && typeof value === 'object' && typeof value.then === 'function') { - // Note: We should not enter this, as promise has been handled above - // This option simply returns the Promise preventing a JS error from happening and should be an inaccessible path. - return value; // skip promise transformation - } - else if (typeof value === 'object' && value !== null) { - // try to guess the type - if (!targetType && value.constructor !== Object /* && TransformationType === TransformationType.CLASS_TO_PLAIN*/) - targetType = value.constructor; - if (!targetType && source) - targetType = source.constructor; - if (this.options.enableCircularCheck) { - // add transformed type to prevent circular references - this.recursionStack.add(value); - } - var keys = this.getKeys(targetType, value, isMap); - var newValue = source ? source : {}; - if (!source && - (this.transformationType === exports.TransformationType.PLAIN_TO_CLASS || - this.transformationType === exports.TransformationType.CLASS_TO_CLASS)) { - if (isMap) { - newValue = new Map(); - } - else if (targetType) { - newValue = new targetType(); - } - else { - newValue = {}; - } - } - var _loop_1 = function (key) { - if (key === '__proto__' || key === 'constructor') { - return "continue"; - } - var valueKey = key; - var newValueKey = key, propertyName = key; - if (!this_1.options.ignoreDecorators && targetType) { - if (this_1.transformationType === exports.TransformationType.PLAIN_TO_CLASS) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadataByCustomName(targetType, key); - if (exposeMetadata) { - propertyName = exposeMetadata.propertyName; - newValueKey = exposeMetadata.propertyName; - } - } - else if (this_1.transformationType === exports.TransformationType.CLASS_TO_PLAIN || - this_1.transformationType === exports.TransformationType.CLASS_TO_CLASS) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadata(targetType, key); - if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) { - newValueKey = exposeMetadata.options.name; - } - } - } - // get a subvalue - var subValue = undefined; - if (value instanceof Map) { - subValue = value.get(valueKey); - } - else if (value[valueKey] instanceof Function) { - subValue = value[valueKey](); - } - else { - subValue = value[valueKey]; - } - // determine a type - var type = undefined, isSubValueMap = subValue instanceof Map; - if (targetType && isMap) { - type = targetType; - } - else if (targetType) { - var metadata_1 = defaultMetadataStorage.findTypeMetadata(targetType, propertyName); - if (metadata_1) { - var options = { newObject: newValue, object: value, property: propertyName }; - var newType = metadata_1.typeFunction ? metadata_1.typeFunction(options) : metadata_1.reflectedType; - if (metadata_1.options && - metadata_1.options.discriminator && - metadata_1.options.discriminator.property && - metadata_1.options.discriminator.subTypes) { - if (!(value[valueKey] instanceof Array)) { - if (this_1.transformationType === exports.TransformationType.PLAIN_TO_CLASS) { - type = metadata_1.options.discriminator.subTypes.find(function (subType) { - if (subValue && subValue instanceof Object && metadata_1.options.discriminator.property in subValue) { - return subType.name === subValue[metadata_1.options.discriminator.property]; - } - }); - type === undefined ? (type = newType) : (type = type.value); - if (!metadata_1.options.keepDiscriminatorProperty) { - if (subValue && subValue instanceof Object && metadata_1.options.discriminator.property in subValue) { - delete subValue[metadata_1.options.discriminator.property]; - } - } - } - if (this_1.transformationType === exports.TransformationType.CLASS_TO_CLASS) { - type = subValue.constructor; - } - if (this_1.transformationType === exports.TransformationType.CLASS_TO_PLAIN) { - subValue[metadata_1.options.discriminator.property] = metadata_1.options.discriminator.subTypes.find(function (subType) { return subType.value === subValue.constructor; }).name; - } - } - else { - type = metadata_1; - } - } - else { - type = newType; - } - isSubValueMap = isSubValueMap || metadata_1.reflectedType === Map; - } - else if (this_1.options.targetMaps) { - // try to find a type in target maps - this_1.options.targetMaps - .filter(function (map) { return map.target === targetType && !!map.properties[propertyName]; }) - .forEach(function (map) { return (type = map.properties[propertyName]); }); - } - else if (this_1.options.enableImplicitConversion && - this_1.transformationType === exports.TransformationType.PLAIN_TO_CLASS) { - // if we have no registererd type via the @Type() decorator then we check if we have any - // type declarations in reflect-metadata (type declaration is emited only if some decorator is added to the property.) - var reflectedType = Reflect.getMetadata('design:type', targetType.prototype, propertyName); - if (reflectedType) { - type = reflectedType; - } - } - } - // if value is an array try to get its custom array type - var arrayType_1 = Array.isArray(value[valueKey]) - ? this_1.getReflectedType(targetType, propertyName) - : undefined; - // const subValueKey = TransformationType === TransformationType.PLAIN_TO_CLASS && newKeyName ? newKeyName : key; - var subSource = source ? source[valueKey] : undefined; - // if its deserialization then type if required - // if we uncomment this types like string[] will not work - // if (this.transformationType === TransformationType.PLAIN_TO_CLASS && !type && subValue instanceof Object && !(subValue instanceof Date)) - // throw new Error(`Cannot determine type for ${(targetType as any).name }.${propertyName}, did you forget to specify a @Type?`); - // if newValue is a source object that has method that match newKeyName then skip it - if (newValue.constructor.prototype) { - var descriptor = Object.getOwnPropertyDescriptor(newValue.constructor.prototype, newValueKey); - if ((this_1.transformationType === exports.TransformationType.PLAIN_TO_CLASS || - this_1.transformationType === exports.TransformationType.CLASS_TO_CLASS) && - // eslint-disable-next-line @typescript-eslint/unbound-method - ((descriptor && !descriptor.set) || newValue[newValueKey] instanceof Function)) - return "continue"; - } - if (!this_1.options.enableCircularCheck || !this_1.isCircular(subValue)) { - var transformKey = this_1.transformationType === exports.TransformationType.PLAIN_TO_CLASS ? newValueKey : key; - var finalValue = void 0; - if (this_1.transformationType === exports.TransformationType.CLASS_TO_PLAIN) { - // Get original value - finalValue = value[transformKey]; - // Apply custom transformation - finalValue = this_1.applyCustomTransformations(finalValue, targetType, transformKey, value, this_1.transformationType); - // If nothing change, it means no custom transformation was applied, so use the subValue. - finalValue = value[transformKey] === finalValue ? subValue : finalValue; - // Apply the default transformation - finalValue = this_1.transform(subSource, finalValue, type, arrayType_1, isSubValueMap, level + 1); - } - else { - if (subValue === undefined && this_1.options.exposeDefaultValues) { - // Set default value if nothing provided - finalValue = newValue[newValueKey]; - } - else { - finalValue = this_1.transform(subSource, subValue, type, arrayType_1, isSubValueMap, level + 1); - finalValue = this_1.applyCustomTransformations(finalValue, targetType, transformKey, value, this_1.transformationType); - } - } - if (finalValue !== undefined || this_1.options.exposeUnsetFields) { - if (newValue instanceof Map) { - newValue.set(newValueKey, finalValue); - } - else { - newValue[newValueKey] = finalValue; - } - } - } - else if (this_1.transformationType === exports.TransformationType.CLASS_TO_CLASS) { - var finalValue = subValue; - finalValue = this_1.applyCustomTransformations(finalValue, targetType, key, value, this_1.transformationType); - if (finalValue !== undefined || this_1.options.exposeUnsetFields) { - if (newValue instanceof Map) { - newValue.set(newValueKey, finalValue); - } - else { - newValue[newValueKey] = finalValue; - } - } - } - }; - var this_1 = this; - // traverse over keys - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - _loop_1(key); - } - if (this.options.enableCircularCheck) { - this.recursionStack.delete(value); - } - return newValue; - } - else { - return value; - } - }; - TransformOperationExecutor.prototype.applyCustomTransformations = function (value, target, key, obj, transformationType) { - var _this = this; - var metadatas = defaultMetadataStorage.findTransformMetadatas(target, key, this.transformationType); - // apply versioning options - if (this.options.version !== undefined) { - metadatas = metadatas.filter(function (metadata) { - if (!metadata.options) - return true; - return _this.checkVersion(metadata.options.since, metadata.options.until); - }); - } - // apply grouping options - if (this.options.groups && this.options.groups.length) { - metadatas = metadatas.filter(function (metadata) { - if (!metadata.options) - return true; - return _this.checkGroups(metadata.options.groups); - }); - } - else { - metadatas = metadatas.filter(function (metadata) { - return !metadata.options || !metadata.options.groups || !metadata.options.groups.length; - }); - } - metadatas.forEach(function (metadata) { - value = metadata.transformFn({ value: value, key: key, obj: obj, type: transformationType, options: _this.options }); - }); - return value; - }; - // preventing circular references - TransformOperationExecutor.prototype.isCircular = function (object) { - return this.recursionStack.has(object); - }; - TransformOperationExecutor.prototype.getReflectedType = function (target, propertyName) { - if (!target) - return undefined; - var meta = defaultMetadataStorage.findTypeMetadata(target, propertyName); - return meta ? meta.reflectedType : undefined; - }; - TransformOperationExecutor.prototype.getKeys = function (target, object, isMap) { - var _this = this; - // determine exclusion strategy - var strategy = defaultMetadataStorage.getStrategy(target); - if (strategy === 'none') - strategy = this.options.strategy || 'exposeAll'; // exposeAll is default strategy - // get all keys that need to expose - var keys = []; - if (strategy === 'exposeAll' || isMap) { - if (object instanceof Map) { - keys = Array.from(object.keys()); - } - else { - keys = Object.keys(object); - } - } - if (isMap) { - // expose & exclude do not apply for map keys only to fields - return keys; - } - if (!this.options.ignoreDecorators && target) { - // add all exposed to list of keys - var exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType); - if (this.transformationType === exports.TransformationType.PLAIN_TO_CLASS) { - exposedProperties = exposedProperties.map(function (key) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) { - return exposeMetadata.options.name; - } - return key; - }); - } - if (this.options.excludeExtraneousValues) { - keys = exposedProperties; - } - else { - keys = keys.concat(exposedProperties); - } - // exclude excluded properties - var excludedProperties_1 = defaultMetadataStorage.getExcludedProperties(target, this.transformationType); - if (excludedProperties_1.length > 0) { - keys = keys.filter(function (key) { - return !excludedProperties_1.includes(key); - }); - } - // apply versioning options - if (this.options.version !== undefined) { - keys = keys.filter(function (key) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - if (!exposeMetadata || !exposeMetadata.options) - return true; - return _this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until); - }); - } - // apply grouping options - if (this.options.groups && this.options.groups.length) { - keys = keys.filter(function (key) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - if (!exposeMetadata || !exposeMetadata.options) - return true; - return _this.checkGroups(exposeMetadata.options.groups); - }); - } - else { - keys = keys.filter(function (key) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - return (!exposeMetadata || - !exposeMetadata.options || - !exposeMetadata.options.groups || - !exposeMetadata.options.groups.length); - }); - } - } - // exclude prefixed properties - if (this.options.excludePrefixes && this.options.excludePrefixes.length) { - keys = keys.filter(function (key) { - return _this.options.excludePrefixes.every(function (prefix) { - return key.substr(0, prefix.length) !== prefix; - }); - }); - } - // make sure we have unique keys - keys = keys.filter(function (key, index, self) { - return self.indexOf(key) === index; - }); - return keys; - }; - TransformOperationExecutor.prototype.checkVersion = function (since, until) { - var decision = true; - if (decision && since) - decision = this.options.version >= since; - if (decision && until) - decision = this.options.version < until; - return decision; - }; - TransformOperationExecutor.prototype.checkGroups = function (groups) { - if (!groups) - return true; - return this.options.groups.some(function (optionGroup) { return groups.includes(optionGroup); }); - }; - return TransformOperationExecutor; - }()); - - /** - * These are the default options used by any transformation operation. - */ - var defaultOptions = { - enableCircularCheck: false, - enableImplicitConversion: false, - excludeExtraneousValues: false, - excludePrefixes: undefined, - exposeDefaultValues: false, - exposeUnsetFields: true, - groups: undefined, - ignoreDecorators: false, - strategy: undefined, - targetMaps: undefined, - version: undefined, - }; - - var __assign = (undefined && undefined.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - var ClassTransformer = /** @class */ (function () { - function ClassTransformer() { - } - ClassTransformer.prototype.classToPlain = function (object, options) { - var executor = new TransformOperationExecutor(exports.TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options)); - return executor.transform(undefined, object, undefined, undefined, undefined, undefined); - }; - ClassTransformer.prototype.classToPlainFromExist = function (object, plainObject, options) { - var executor = new TransformOperationExecutor(exports.TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options)); - return executor.transform(plainObject, object, undefined, undefined, undefined, undefined); - }; - ClassTransformer.prototype.plainToClass = function (cls, plain, options) { - var executor = new TransformOperationExecutor(exports.TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options)); - return executor.transform(undefined, plain, cls, undefined, undefined, undefined); - }; - ClassTransformer.prototype.plainToClassFromExist = function (clsObject, plain, options) { - var executor = new TransformOperationExecutor(exports.TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options)); - return executor.transform(clsObject, plain, undefined, undefined, undefined, undefined); - }; - ClassTransformer.prototype.classToClass = function (object, options) { - var executor = new TransformOperationExecutor(exports.TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options)); - return executor.transform(undefined, object, undefined, undefined, undefined, undefined); - }; - ClassTransformer.prototype.classToClassFromExist = function (object, fromObject, options) { - var executor = new TransformOperationExecutor(exports.TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options)); - return executor.transform(fromObject, object, undefined, undefined, undefined, undefined); - }; - ClassTransformer.prototype.serialize = function (object, options) { - return JSON.stringify(this.classToPlain(object, options)); - }; - /** - * Deserializes given JSON string to a object of the given class. - */ - ClassTransformer.prototype.deserialize = function (cls, json, options) { - var jsonObject = JSON.parse(json); - return this.plainToClass(cls, jsonObject, options); - }; - /** - * Deserializes given JSON string to an array of objects of the given class. - */ - ClassTransformer.prototype.deserializeArray = function (cls, json, options) { - var jsonObject = JSON.parse(json); - return this.plainToClass(cls, jsonObject, options); - }; - return ClassTransformer; - }()); - - /** - * Marks the given class or property as excluded. By default the property is excluded in both - * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction - * via using the `toPlainOnly` or `toClassOnly` option. - * - * Can be applied to class definitions and properties. - */ - function Exclude(options) { - if (options === void 0) { options = {}; } - /** - * NOTE: The `propertyName` property must be marked as optional because - * this decorator used both as a class and a property decorator and the - * Typescript compiler will freak out if we make it mandatory as a class - * decorator only receives one parameter. - */ - return function (object, propertyName) { - defaultMetadataStorage.addExcludeMetadata({ - target: object instanceof Function ? object : object.constructor, - propertyName: propertyName, - options: options, - }); - }; - } - - /** - * Marks the given class or property as included. By default the property is included in both - * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction - * via using the `toPlainOnly` or `toClassOnly` option. - * - * Can be applied to class definitions and properties. - */ - function Expose(options) { - if (options === void 0) { options = {}; } - /** - * NOTE: The `propertyName` property must be marked as optional because - * this decorator used both as a class and a property decorator and the - * Typescript compiler will freak out if we make it mandatory as a class - * decorator only receives one parameter. - */ - return function (object, propertyName) { - defaultMetadataStorage.addExposeMetadata({ - target: object instanceof Function ? object : object.constructor, - propertyName: propertyName, - options: options, - }); - }; - } - - /** - * Return the class instance only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ - function TransformClassToClass(params) { - return function (target, propertyKey, descriptor) { - var classTransformer = new ClassTransformer(); - var originalMethod = descriptor.value; - descriptor.value = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var result = originalMethod.apply(this, args); - var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then(function (data) { return classTransformer.classToClass(data, params); }) - : classTransformer.classToClass(result, params); - }; - }; - } - - /** - * Transform the object from class to plain object and return only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ - function TransformClassToPlain(params) { - return function (target, propertyKey, descriptor) { - var classTransformer = new ClassTransformer(); - var originalMethod = descriptor.value; - descriptor.value = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var result = originalMethod.apply(this, args); - var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then(function (data) { return classTransformer.classToPlain(data, params); }) - : classTransformer.classToPlain(result, params); - }; - }; - } - - /** - * Return the class instance only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ - function TransformPlainToClass(classType, params) { - return function (target, propertyKey, descriptor) { - var classTransformer = new ClassTransformer(); - var originalMethod = descriptor.value; - descriptor.value = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var result = originalMethod.apply(this, args); - var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then(function (data) { return classTransformer.plainToClass(classType, data, params); }) - : classTransformer.plainToClass(classType, result, params); - }; - }; - } - - /** - * Defines a custom logic for value transformation. - * - * Can be applied to properties only. - */ - function Transform(transformFn, options) { - if (options === void 0) { options = {}; } - return function (target, propertyName) { - defaultMetadataStorage.addTransformMetadata({ - target: target.constructor, - propertyName: propertyName, - transformFn: transformFn, - options: options, - }); - }; - } - - /** - * Specifies a type of the property. - * The given TypeFunction can return a constructor. A discriminator can be given in the options. - * - * Can be applied to properties only. - */ - function Type(typeFunction, options) { - if (options === void 0) { options = {}; } - return function (target, propertyName) { - var reflectedType = Reflect.getMetadata('design:type', target, propertyName); - defaultMetadataStorage.addTypeMetadata({ - target: target.constructor, - propertyName: propertyName, - reflectedType: reflectedType, - typeFunction: typeFunction, - options: options, - }); - }; - } - - var classTransformer = new ClassTransformer(); - function classToPlain(object, options) { - return classTransformer.classToPlain(object, options); - } - function classToPlainFromExist(object, plainObject, options) { - return classTransformer.classToPlainFromExist(object, plainObject, options); - } - function plainToClass(cls, plain, options) { - return classTransformer.plainToClass(cls, plain, options); - } - function plainToClassFromExist(clsObject, plain, options) { - return classTransformer.plainToClassFromExist(clsObject, plain, options); - } - function classToClass(object, options) { - return classTransformer.classToClass(object, options); - } - function classToClassFromExist(object, fromObject, options) { - return classTransformer.classToClassFromExist(object, fromObject, options); - } - function serialize(object, options) { - return classTransformer.serialize(object, options); - } - /** - * Deserializes given JSON string to a object of the given class. - */ - function deserialize(cls, json, options) { - return classTransformer.deserialize(cls, json, options); - } - /** - * Deserializes given JSON string to an array of objects of the given class. - */ - function deserializeArray(cls, json, options) { - return classTransformer.deserializeArray(cls, json, options); - } - - exports.ClassTransformer = ClassTransformer; - exports.Exclude = Exclude; - exports.Expose = Expose; - exports.Transform = Transform; - exports.TransformClassToClass = TransformClassToClass; - exports.TransformClassToPlain = TransformClassToPlain; - exports.TransformPlainToClass = TransformPlainToClass; - exports.Type = Type; - exports.classToClass = classToClass; - exports.classToClassFromExist = classToClassFromExist; - exports.classToPlain = classToPlain; - exports.classToPlainFromExist = classToPlainFromExist; - exports.deserialize = deserialize; - exports.deserializeArray = deserializeArray; - exports.plainToClass = plainToClass; - exports.plainToClassFromExist = plainToClassFromExist; - exports.serialize = serialize; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); -//# sourceMappingURL=class-transformer.umd.js.map diff --git a/views/node_modules/class-transformer/bundles/class-transformer.umd.js.map b/views/node_modules/class-transformer/bundles/class-transformer.umd.js.map deleted file mode 100644 index 95defd4..0000000 --- a/views/node_modules/class-transformer/bundles/class-transformer.umd.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"class-transformer.umd.js","sources":["../esm5/enums/transformation-type.enum.js","../esm5/MetadataStorage.js","../esm5/storage.js","../esm5/utils/get-global.util.js","../esm5/utils/is-promise.util.js","../esm5/TransformOperationExecutor.js","../esm5/constants/default-options.constant.js","../esm5/ClassTransformer.js","../esm5/decorators/exclude.decorator.js","../esm5/decorators/expose.decorator.js","../esm5/decorators/transform-class-to-class.decorator.js","../esm5/decorators/transform-class-to-plain.decorator.js","../esm5/decorators/transform-plain-to-class.decorator.js","../esm5/decorators/transform.decorator.js","../esm5/decorators/type.decorator.js","../esm5/index.js"],"sourcesContent":["export var TransformationType;\n(function (TransformationType) {\n TransformationType[TransformationType[\"PLAIN_TO_CLASS\"] = 0] = \"PLAIN_TO_CLASS\";\n TransformationType[TransformationType[\"CLASS_TO_PLAIN\"] = 1] = \"CLASS_TO_PLAIN\";\n TransformationType[TransformationType[\"CLASS_TO_CLASS\"] = 2] = \"CLASS_TO_CLASS\";\n})(TransformationType || (TransformationType = {}));\n//# sourceMappingURL=transformation-type.enum.js.map","import { TransformationType } from './enums';\n/**\n * Storage all library metadata.\n */\nvar MetadataStorage = /** @class */ (function () {\n function MetadataStorage() {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n this._typeMetadatas = new Map();\n this._transformMetadatas = new Map();\n this._exposeMetadatas = new Map();\n this._excludeMetadatas = new Map();\n this._ancestorsMap = new Map();\n }\n // -------------------------------------------------------------------------\n // Adder Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.addTypeMetadata = function (metadata) {\n if (!this._typeMetadatas.has(metadata.target)) {\n this._typeMetadatas.set(metadata.target, new Map());\n }\n this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n MetadataStorage.prototype.addTransformMetadata = function (metadata) {\n if (!this._transformMetadatas.has(metadata.target)) {\n this._transformMetadatas.set(metadata.target, new Map());\n }\n if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) {\n this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []);\n }\n this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata);\n };\n MetadataStorage.prototype.addExposeMetadata = function (metadata) {\n if (!this._exposeMetadatas.has(metadata.target)) {\n this._exposeMetadatas.set(metadata.target, new Map());\n }\n this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n MetadataStorage.prototype.addExcludeMetadata = function (metadata) {\n if (!this._excludeMetadatas.has(metadata.target)) {\n this._excludeMetadatas.set(metadata.target, new Map());\n }\n this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.findTransformMetadatas = function (target, propertyName, transformationType) {\n return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n });\n };\n MetadataStorage.prototype.findExcludeMetadata = function (target, propertyName) {\n return this.findMetadata(this._excludeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.findExposeMetadata = function (target, propertyName) {\n return this.findMetadata(this._exposeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.findExposeMetadataByCustomName = function (target, name) {\n return this.getExposedMetadatas(target).find(function (metadata) {\n return metadata.options && metadata.options.name === name;\n });\n };\n MetadataStorage.prototype.findTypeMetadata = function (target, propertyName) {\n return this.findMetadata(this._typeMetadatas, target, propertyName);\n };\n MetadataStorage.prototype.getStrategy = function (target) {\n var excludeMap = this._excludeMetadatas.get(target);\n var exclude = excludeMap && excludeMap.get(undefined);\n var exposeMap = this._exposeMetadatas.get(target);\n var expose = exposeMap && exposeMap.get(undefined);\n if ((exclude && expose) || (!exclude && !expose))\n return 'none';\n return exclude ? 'excludeAll' : 'exposeAll';\n };\n MetadataStorage.prototype.getExposedMetadatas = function (target) {\n return this.getMetadata(this._exposeMetadatas, target);\n };\n MetadataStorage.prototype.getExcludedMetadatas = function (target) {\n return this.getMetadata(this._excludeMetadatas, target);\n };\n MetadataStorage.prototype.getExposedProperties = function (target, transformationType) {\n return this.getExposedMetadatas(target)\n .filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n })\n .map(function (metadata) { return metadata.propertyName; });\n };\n MetadataStorage.prototype.getExcludedProperties = function (target, transformationType) {\n return this.getExcludedMetadatas(target)\n .filter(function (metadata) {\n if (!metadata.options)\n return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true)\n return true;\n if (metadata.options.toClassOnly === true) {\n return (transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS);\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n return true;\n })\n .map(function (metadata) { return metadata.propertyName; });\n };\n MetadataStorage.prototype.clear = function () {\n this._typeMetadatas.clear();\n this._exposeMetadatas.clear();\n this._excludeMetadatas.clear();\n this._ancestorsMap.clear();\n };\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n MetadataStorage.prototype.getMetadata = function (metadatas, target) {\n var metadataFromTargetMap = metadatas.get(target);\n var metadataFromTarget;\n if (metadataFromTargetMap) {\n metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(function (meta) { return meta.propertyName !== undefined; });\n }\n var metadataFromAncestors = [];\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n var metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(function (meta) { return meta.propertyName !== undefined; });\n metadataFromAncestors.push.apply(metadataFromAncestors, metadataFromAncestor);\n }\n }\n return metadataFromAncestors.concat(metadataFromTarget || []);\n };\n MetadataStorage.prototype.findMetadata = function (metadatas, target, propertyName) {\n var metadataFromTargetMap = metadatas.get(target);\n if (metadataFromTargetMap) {\n var metadataFromTarget = metadataFromTargetMap.get(propertyName);\n if (metadataFromTarget) {\n return metadataFromTarget;\n }\n }\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n var ancestorResult = ancestorMetadataMap.get(propertyName);\n if (ancestorResult) {\n return ancestorResult;\n }\n }\n }\n return undefined;\n };\n MetadataStorage.prototype.findMetadatas = function (metadatas, target, propertyName) {\n var metadataFromTargetMap = metadatas.get(target);\n var metadataFromTarget;\n if (metadataFromTargetMap) {\n metadataFromTarget = metadataFromTargetMap.get(propertyName);\n }\n var metadataFromAncestorsTarget = [];\n for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) {\n var ancestor = _a[_i];\n var ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n if (ancestorMetadataMap.has(propertyName)) {\n metadataFromAncestorsTarget.push.apply(metadataFromAncestorsTarget, ancestorMetadataMap.get(propertyName));\n }\n }\n }\n return metadataFromAncestorsTarget\n .slice()\n .reverse()\n .concat((metadataFromTarget || []).slice().reverse());\n };\n MetadataStorage.prototype.getAncestors = function (target) {\n if (!target)\n return [];\n if (!this._ancestorsMap.has(target)) {\n var ancestors = [];\n for (var baseClass = Object.getPrototypeOf(target.prototype.constructor); typeof baseClass.prototype !== 'undefined'; baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)) {\n ancestors.push(baseClass);\n }\n this._ancestorsMap.set(target, ancestors);\n }\n return this._ancestorsMap.get(target);\n };\n return MetadataStorage;\n}());\nexport { MetadataStorage };\n//# sourceMappingURL=MetadataStorage.js.map","import { MetadataStorage } from './MetadataStorage';\n/**\n * Default metadata storage is used as singleton and can be used to storage all metadatas.\n */\nexport var defaultMetadataStorage = new MetadataStorage();\n//# sourceMappingURL=storage.js.map","/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n//# sourceMappingURL=get-global.util.js.map","export function isPromise(p) {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n//# sourceMappingURL=is-promise.util.js.map","import { defaultMetadataStorage } from './storage';\nimport { TransformationType } from './enums';\nimport { getGlobal, isPromise } from './utils';\nfunction instantiateArrayType(arrayType) {\n var array = new arrayType();\n if (!(array instanceof Set) && !('push' in array)) {\n return [];\n }\n return array;\n}\nvar TransformOperationExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function TransformOperationExecutor(transformationType, options) {\n this.transformationType = transformationType;\n this.options = options;\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n this.recursionStack = new Set();\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n TransformOperationExecutor.prototype.transform = function (source, value, targetType, arrayType, isMap, level) {\n var _this = this;\n if (level === void 0) { level = 0; }\n if (Array.isArray(value) || value instanceof Set) {\n var newValue_1 = arrayType && this.transformationType === TransformationType.PLAIN_TO_CLASS\n ? instantiateArrayType(arrayType)\n : [];\n value.forEach(function (subValue, index) {\n var subSource = source ? source[index] : undefined;\n if (!_this.options.enableCircularCheck || !_this.isCircular(subValue)) {\n var realTargetType = void 0;\n if (typeof targetType !== 'function' &&\n targetType &&\n targetType.options &&\n targetType.options.discriminator &&\n targetType.options.discriminator.property &&\n targetType.options.discriminator.subTypes) {\n if (_this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n realTargetType = targetType.options.discriminator.subTypes.find(function (subType) {\n return subType.name === subValue[targetType.options.discriminator.property];\n });\n var options = { newObject: newValue_1, object: subValue, property: undefined };\n var newType = targetType.typeFunction(options);\n realTargetType === undefined ? (realTargetType = newType) : (realTargetType = realTargetType.value);\n if (!targetType.options.keepDiscriminatorProperty)\n delete subValue[targetType.options.discriminator.property];\n }\n if (_this.transformationType === TransformationType.CLASS_TO_CLASS) {\n realTargetType = subValue.constructor;\n }\n if (_this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n subValue[targetType.options.discriminator.property] = targetType.options.discriminator.subTypes.find(function (subType) { return subType.value === subValue.constructor; }).name;\n }\n }\n else {\n realTargetType = targetType;\n }\n var value_1 = _this.transform(subSource, subValue, realTargetType, undefined, subValue instanceof Map, level + 1);\n if (newValue_1 instanceof Set) {\n newValue_1.add(value_1);\n }\n else {\n newValue_1.push(value_1);\n }\n }\n else if (_this.transformationType === TransformationType.CLASS_TO_CLASS) {\n if (newValue_1 instanceof Set) {\n newValue_1.add(subValue);\n }\n else {\n newValue_1.push(subValue);\n }\n }\n });\n return newValue_1;\n }\n else if (targetType === String && !isMap) {\n if (value === null || value === undefined)\n return value;\n return String(value);\n }\n else if (targetType === Number && !isMap) {\n if (value === null || value === undefined)\n return value;\n return Number(value);\n }\n else if (targetType === Boolean && !isMap) {\n if (value === null || value === undefined)\n return value;\n return Boolean(value);\n }\n else if ((targetType === Date || value instanceof Date) && !isMap) {\n if (value instanceof Date) {\n return new Date(value.valueOf());\n }\n if (value === null || value === undefined)\n return value;\n return new Date(value);\n }\n else if (!!getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) {\n if (value === null || value === undefined)\n return value;\n return Buffer.from(value);\n }\n else if (isPromise(value) && !isMap) {\n return new Promise(function (resolve, reject) {\n value.then(function (data) { return resolve(_this.transform(undefined, data, targetType, undefined, undefined, level + 1)); }, reject);\n });\n }\n else if (!isMap && value !== null && typeof value === 'object' && typeof value.then === 'function') {\n // Note: We should not enter this, as promise has been handled above\n // This option simply returns the Promise preventing a JS error from happening and should be an inaccessible path.\n return value; // skip promise transformation\n }\n else if (typeof value === 'object' && value !== null) {\n // try to guess the type\n if (!targetType && value.constructor !== Object /* && TransformationType === TransformationType.CLASS_TO_PLAIN*/)\n targetType = value.constructor;\n if (!targetType && source)\n targetType = source.constructor;\n if (this.options.enableCircularCheck) {\n // add transformed type to prevent circular references\n this.recursionStack.add(value);\n }\n var keys = this.getKeys(targetType, value, isMap);\n var newValue = source ? source : {};\n if (!source &&\n (this.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this.transformationType === TransformationType.CLASS_TO_CLASS)) {\n if (isMap) {\n newValue = new Map();\n }\n else if (targetType) {\n newValue = new targetType();\n }\n else {\n newValue = {};\n }\n }\n var _loop_1 = function (key) {\n if (key === '__proto__' || key === 'constructor') {\n return \"continue\";\n }\n var valueKey = key;\n var newValueKey = key, propertyName = key;\n if (!this_1.options.ignoreDecorators && targetType) {\n if (this_1.transformationType === TransformationType.PLAIN_TO_CLASS) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadataByCustomName(targetType, key);\n if (exposeMetadata) {\n propertyName = exposeMetadata.propertyName;\n newValueKey = exposeMetadata.propertyName;\n }\n }\n else if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN ||\n this_1.transformationType === TransformationType.CLASS_TO_CLASS) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(targetType, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n newValueKey = exposeMetadata.options.name;\n }\n }\n }\n // get a subvalue\n var subValue = undefined;\n if (value instanceof Map) {\n subValue = value.get(valueKey);\n }\n else if (value[valueKey] instanceof Function) {\n subValue = value[valueKey]();\n }\n else {\n subValue = value[valueKey];\n }\n // determine a type\n var type = undefined, isSubValueMap = subValue instanceof Map;\n if (targetType && isMap) {\n type = targetType;\n }\n else if (targetType) {\n var metadata_1 = defaultMetadataStorage.findTypeMetadata(targetType, propertyName);\n if (metadata_1) {\n var options = { newObject: newValue, object: value, property: propertyName };\n var newType = metadata_1.typeFunction ? metadata_1.typeFunction(options) : metadata_1.reflectedType;\n if (metadata_1.options &&\n metadata_1.options.discriminator &&\n metadata_1.options.discriminator.property &&\n metadata_1.options.discriminator.subTypes) {\n if (!(value[valueKey] instanceof Array)) {\n if (this_1.transformationType === TransformationType.PLAIN_TO_CLASS) {\n type = metadata_1.options.discriminator.subTypes.find(function (subType) {\n if (subValue && subValue instanceof Object && metadata_1.options.discriminator.property in subValue) {\n return subType.name === subValue[metadata_1.options.discriminator.property];\n }\n });\n type === undefined ? (type = newType) : (type = type.value);\n if (!metadata_1.options.keepDiscriminatorProperty) {\n if (subValue && subValue instanceof Object && metadata_1.options.discriminator.property in subValue) {\n delete subValue[metadata_1.options.discriminator.property];\n }\n }\n }\n if (this_1.transformationType === TransformationType.CLASS_TO_CLASS) {\n type = subValue.constructor;\n }\n if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN) {\n subValue[metadata_1.options.discriminator.property] = metadata_1.options.discriminator.subTypes.find(function (subType) { return subType.value === subValue.constructor; }).name;\n }\n }\n else {\n type = metadata_1;\n }\n }\n else {\n type = newType;\n }\n isSubValueMap = isSubValueMap || metadata_1.reflectedType === Map;\n }\n else if (this_1.options.targetMaps) {\n // try to find a type in target maps\n this_1.options.targetMaps\n .filter(function (map) { return map.target === targetType && !!map.properties[propertyName]; })\n .forEach(function (map) { return (type = map.properties[propertyName]); });\n }\n else if (this_1.options.enableImplicitConversion &&\n this_1.transformationType === TransformationType.PLAIN_TO_CLASS) {\n // if we have no registererd type via the @Type() decorator then we check if we have any\n // type declarations in reflect-metadata (type declaration is emited only if some decorator is added to the property.)\n var reflectedType = Reflect.getMetadata('design:type', targetType.prototype, propertyName);\n if (reflectedType) {\n type = reflectedType;\n }\n }\n }\n // if value is an array try to get its custom array type\n var arrayType_1 = Array.isArray(value[valueKey])\n ? this_1.getReflectedType(targetType, propertyName)\n : undefined;\n // const subValueKey = TransformationType === TransformationType.PLAIN_TO_CLASS && newKeyName ? newKeyName : key;\n var subSource = source ? source[valueKey] : undefined;\n // if its deserialization then type if required\n // if we uncomment this types like string[] will not work\n // if (this.transformationType === TransformationType.PLAIN_TO_CLASS && !type && subValue instanceof Object && !(subValue instanceof Date))\n // throw new Error(`Cannot determine type for ${(targetType as any).name }.${propertyName}, did you forget to specify a @Type?`);\n // if newValue is a source object that has method that match newKeyName then skip it\n if (newValue.constructor.prototype) {\n var descriptor = Object.getOwnPropertyDescriptor(newValue.constructor.prototype, newValueKey);\n if ((this_1.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this_1.transformationType === TransformationType.CLASS_TO_CLASS) &&\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ((descriptor && !descriptor.set) || newValue[newValueKey] instanceof Function))\n return \"continue\";\n }\n if (!this_1.options.enableCircularCheck || !this_1.isCircular(subValue)) {\n var transformKey = this_1.transformationType === TransformationType.PLAIN_TO_CLASS ? newValueKey : key;\n var finalValue = void 0;\n if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN) {\n // Get original value\n finalValue = value[transformKey];\n // Apply custom transformation\n finalValue = this_1.applyCustomTransformations(finalValue, targetType, transformKey, value, this_1.transformationType);\n // If nothing change, it means no custom transformation was applied, so use the subValue.\n finalValue = value[transformKey] === finalValue ? subValue : finalValue;\n // Apply the default transformation\n finalValue = this_1.transform(subSource, finalValue, type, arrayType_1, isSubValueMap, level + 1);\n }\n else {\n if (subValue === undefined && this_1.options.exposeDefaultValues) {\n // Set default value if nothing provided\n finalValue = newValue[newValueKey];\n }\n else {\n finalValue = this_1.transform(subSource, subValue, type, arrayType_1, isSubValueMap, level + 1);\n finalValue = this_1.applyCustomTransformations(finalValue, targetType, transformKey, value, this_1.transformationType);\n }\n }\n if (finalValue !== undefined || this_1.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n }\n else {\n newValue[newValueKey] = finalValue;\n }\n }\n }\n else if (this_1.transformationType === TransformationType.CLASS_TO_CLASS) {\n var finalValue = subValue;\n finalValue = this_1.applyCustomTransformations(finalValue, targetType, key, value, this_1.transformationType);\n if (finalValue !== undefined || this_1.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n }\n else {\n newValue[newValueKey] = finalValue;\n }\n }\n }\n };\n var this_1 = this;\n // traverse over keys\n for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {\n var key = keys_1[_i];\n _loop_1(key);\n }\n if (this.options.enableCircularCheck) {\n this.recursionStack.delete(value);\n }\n return newValue;\n }\n else {\n return value;\n }\n };\n TransformOperationExecutor.prototype.applyCustomTransformations = function (value, target, key, obj, transformationType) {\n var _this = this;\n var metadatas = defaultMetadataStorage.findTransformMetadatas(target, key, this.transformationType);\n // apply versioning options\n if (this.options.version !== undefined) {\n metadatas = metadatas.filter(function (metadata) {\n if (!metadata.options)\n return true;\n return _this.checkVersion(metadata.options.since, metadata.options.until);\n });\n }\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n metadatas = metadatas.filter(function (metadata) {\n if (!metadata.options)\n return true;\n return _this.checkGroups(metadata.options.groups);\n });\n }\n else {\n metadatas = metadatas.filter(function (metadata) {\n return !metadata.options || !metadata.options.groups || !metadata.options.groups.length;\n });\n }\n metadatas.forEach(function (metadata) {\n value = metadata.transformFn({ value: value, key: key, obj: obj, type: transformationType, options: _this.options });\n });\n return value;\n };\n // preventing circular references\n TransformOperationExecutor.prototype.isCircular = function (object) {\n return this.recursionStack.has(object);\n };\n TransformOperationExecutor.prototype.getReflectedType = function (target, propertyName) {\n if (!target)\n return undefined;\n var meta = defaultMetadataStorage.findTypeMetadata(target, propertyName);\n return meta ? meta.reflectedType : undefined;\n };\n TransformOperationExecutor.prototype.getKeys = function (target, object, isMap) {\n var _this = this;\n // determine exclusion strategy\n var strategy = defaultMetadataStorage.getStrategy(target);\n if (strategy === 'none')\n strategy = this.options.strategy || 'exposeAll'; // exposeAll is default strategy\n // get all keys that need to expose\n var keys = [];\n if (strategy === 'exposeAll' || isMap) {\n if (object instanceof Map) {\n keys = Array.from(object.keys());\n }\n else {\n keys = Object.keys(object);\n }\n }\n if (isMap) {\n // expose & exclude do not apply for map keys only to fields\n return keys;\n }\n if (!this.options.ignoreDecorators && target) {\n // add all exposed to list of keys\n var exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType);\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n exposedProperties = exposedProperties.map(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n return exposeMetadata.options.name;\n }\n return key;\n });\n }\n if (this.options.excludeExtraneousValues) {\n keys = exposedProperties;\n }\n else {\n keys = keys.concat(exposedProperties);\n }\n // exclude excluded properties\n var excludedProperties_1 = defaultMetadataStorage.getExcludedProperties(target, this.transformationType);\n if (excludedProperties_1.length > 0) {\n keys = keys.filter(function (key) {\n return !excludedProperties_1.includes(key);\n });\n }\n // apply versioning options\n if (this.options.version !== undefined) {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options)\n return true;\n return _this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until);\n });\n }\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options)\n return true;\n return _this.checkGroups(exposeMetadata.options.groups);\n });\n }\n else {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n return (!exposeMetadata ||\n !exposeMetadata.options ||\n !exposeMetadata.options.groups ||\n !exposeMetadata.options.groups.length);\n });\n }\n }\n // exclude prefixed properties\n if (this.options.excludePrefixes && this.options.excludePrefixes.length) {\n keys = keys.filter(function (key) {\n return _this.options.excludePrefixes.every(function (prefix) {\n return key.substr(0, prefix.length) !== prefix;\n });\n });\n }\n // make sure we have unique keys\n keys = keys.filter(function (key, index, self) {\n return self.indexOf(key) === index;\n });\n return keys;\n };\n TransformOperationExecutor.prototype.checkVersion = function (since, until) {\n var decision = true;\n if (decision && since)\n decision = this.options.version >= since;\n if (decision && until)\n decision = this.options.version < until;\n return decision;\n };\n TransformOperationExecutor.prototype.checkGroups = function (groups) {\n if (!groups)\n return true;\n return this.options.groups.some(function (optionGroup) { return groups.includes(optionGroup); });\n };\n return TransformOperationExecutor;\n}());\nexport { TransformOperationExecutor };\n//# sourceMappingURL=TransformOperationExecutor.js.map","/**\n * These are the default options used by any transformation operation.\n */\nexport var defaultOptions = {\n enableCircularCheck: false,\n enableImplicitConversion: false,\n excludeExtraneousValues: false,\n excludePrefixes: undefined,\n exposeDefaultValues: false,\n exposeUnsetFields: true,\n groups: undefined,\n ignoreDecorators: false,\n strategy: undefined,\n targetMaps: undefined,\n version: undefined,\n};\n//# sourceMappingURL=default-options.constant.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { TransformOperationExecutor } from './TransformOperationExecutor';\nimport { TransformationType } from './enums';\nimport { defaultOptions } from './constants/default-options.constant';\nvar ClassTransformer = /** @class */ (function () {\n function ClassTransformer() {\n }\n ClassTransformer.prototype.classToPlain = function (object, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.classToPlainFromExist = function (object, plainObject, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options));\n return executor.transform(plainObject, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.plainToClass = function (cls, plain, options) {\n var executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, plain, cls, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.plainToClassFromExist = function (clsObject, plain, options) {\n var executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(clsObject, plain, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.classToClass = function (object, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.classToClassFromExist = function (object, fromObject, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(fromObject, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.serialize = function (object, options) {\n return JSON.stringify(this.classToPlain(object, options));\n };\n /**\n * Deserializes given JSON string to a object of the given class.\n */\n ClassTransformer.prototype.deserialize = function (cls, json, options) {\n var jsonObject = JSON.parse(json);\n return this.plainToClass(cls, jsonObject, options);\n };\n /**\n * Deserializes given JSON string to an array of objects of the given class.\n */\n ClassTransformer.prototype.deserializeArray = function (cls, json, options) {\n var jsonObject = JSON.parse(json);\n return this.plainToClass(cls, jsonObject, options);\n };\n return ClassTransformer;\n}());\nexport { ClassTransformer };\n//# sourceMappingURL=ClassTransformer.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Marks the given class or property as excluded. By default the property is excluded in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Exclude(options) {\n if (options === void 0) { options = {}; }\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object, propertyName) {\n defaultMetadataStorage.addExcludeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName,\n options: options,\n });\n };\n}\n//# sourceMappingURL=exclude.decorator.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Marks the given class or property as included. By default the property is included in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Expose(options) {\n if (options === void 0) { options = {}; }\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object, propertyName) {\n defaultMetadataStorage.addExposeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName,\n options: options,\n });\n };\n}\n//# sourceMappingURL=expose.decorator.js.map","import { ClassTransformer } from '../ClassTransformer';\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformClassToClass(params) {\n return function (target, propertyKey, descriptor) {\n var classTransformer = new ClassTransformer();\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = originalMethod.apply(this, args);\n var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then(function (data) { return classTransformer.classToClass(data, params); })\n : classTransformer.classToClass(result, params);\n };\n };\n}\n//# sourceMappingURL=transform-class-to-class.decorator.js.map","import { ClassTransformer } from '../ClassTransformer';\n/**\n * Transform the object from class to plain object and return only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformClassToPlain(params) {\n return function (target, propertyKey, descriptor) {\n var classTransformer = new ClassTransformer();\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = originalMethod.apply(this, args);\n var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then(function (data) { return classTransformer.classToPlain(data, params); })\n : classTransformer.classToPlain(result, params);\n };\n };\n}\n//# sourceMappingURL=transform-class-to-plain.decorator.js.map","import { ClassTransformer } from '../ClassTransformer';\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformPlainToClass(classType, params) {\n return function (target, propertyKey, descriptor) {\n var classTransformer = new ClassTransformer();\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = originalMethod.apply(this, args);\n var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then(function (data) { return classTransformer.plainToClass(classType, data, params); })\n : classTransformer.plainToClass(classType, result, params);\n };\n };\n}\n//# sourceMappingURL=transform-plain-to-class.decorator.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Defines a custom logic for value transformation.\n *\n * Can be applied to properties only.\n */\nexport function Transform(transformFn, options) {\n if (options === void 0) { options = {}; }\n return function (target, propertyName) {\n defaultMetadataStorage.addTransformMetadata({\n target: target.constructor,\n propertyName: propertyName,\n transformFn: transformFn,\n options: options,\n });\n };\n}\n//# sourceMappingURL=transform.decorator.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Specifies a type of the property.\n * The given TypeFunction can return a constructor. A discriminator can be given in the options.\n *\n * Can be applied to properties only.\n */\nexport function Type(typeFunction, options) {\n if (options === void 0) { options = {}; }\n return function (target, propertyName) {\n var reflectedType = Reflect.getMetadata('design:type', target, propertyName);\n defaultMetadataStorage.addTypeMetadata({\n target: target.constructor,\n propertyName: propertyName,\n reflectedType: reflectedType,\n typeFunction: typeFunction,\n options: options,\n });\n };\n}\n//# sourceMappingURL=type.decorator.js.map","import { ClassTransformer } from './ClassTransformer';\nexport { ClassTransformer } from './ClassTransformer';\nexport * from './decorators';\nexport * from './interfaces';\nexport * from './enums';\nvar classTransformer = new ClassTransformer();\nexport function classToPlain(object, options) {\n return classTransformer.classToPlain(object, options);\n}\nexport function classToPlainFromExist(object, plainObject, options) {\n return classTransformer.classToPlainFromExist(object, plainObject, options);\n}\nexport function plainToClass(cls, plain, options) {\n return classTransformer.plainToClass(cls, plain, options);\n}\nexport function plainToClassFromExist(clsObject, plain, options) {\n return classTransformer.plainToClassFromExist(clsObject, plain, options);\n}\nexport function classToClass(object, options) {\n return classTransformer.classToClass(object, options);\n}\nexport function classToClassFromExist(object, fromObject, options) {\n return classTransformer.classToClassFromExist(object, fromObject, options);\n}\nexport function serialize(object, options) {\n return classTransformer.serialize(object, options);\n}\n/**\n * Deserializes given JSON string to a object of the given class.\n */\nexport function deserialize(cls, json, options) {\n return classTransformer.deserialize(cls, json, options);\n}\n/**\n * Deserializes given JSON string to an array of objects of the given class.\n */\nexport function deserializeArray(cls, json, options) {\n return classTransformer.deserializeArray(cls, json, options);\n}\n//# sourceMappingURL=index.js.map"],"names":["TransformationType","this"],"mappings":"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"} \ No newline at end of file diff --git a/views/node_modules/class-transformer/bundles/class-transformer.umd.min.js b/views/node_modules/class-transformer/bundles/class-transformer.umd.min.js deleted file mode 100644 index 0f273de..0000000 --- a/views/node_modules/class-transformer/bundles/class-transformer.umd.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(t,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o((t="undefined"!=typeof globalThis?globalThis:t||self).ClassTransformer={})}(this,(function(t){"use strict";var o;t.TransformationType=void 0,(o=t.TransformationType||(t.TransformationType={}))[o.PLAIN_TO_CLASS=0]="PLAIN_TO_CLASS",o[o.CLASS_TO_PLAIN=1]="CLASS_TO_PLAIN",o[o.CLASS_TO_CLASS=2]="CLASS_TO_CLASS";var e=new(function(){function o(){this._typeMetadatas=new Map,this._transformMetadatas=new Map,this._exposeMetadatas=new Map,this._excludeMetadatas=new Map,this._ancestorsMap=new Map}return o.prototype.addTypeMetadata=function(t){this._typeMetadatas.has(t.target)||this._typeMetadatas.set(t.target,new Map),this._typeMetadatas.get(t.target).set(t.propertyName,t)},o.prototype.addTransformMetadata=function(t){this._transformMetadatas.has(t.target)||this._transformMetadatas.set(t.target,new Map),this._transformMetadatas.get(t.target).has(t.propertyName)||this._transformMetadatas.get(t.target).set(t.propertyName,[]),this._transformMetadatas.get(t.target).get(t.propertyName).push(t)},o.prototype.addExposeMetadata=function(t){this._exposeMetadatas.has(t.target)||this._exposeMetadatas.set(t.target,new Map),this._exposeMetadatas.get(t.target).set(t.propertyName,t)},o.prototype.addExcludeMetadata=function(t){this._excludeMetadatas.has(t.target)||this._excludeMetadatas.set(t.target,new Map),this._excludeMetadatas.get(t.target).set(t.propertyName,t)},o.prototype.findTransformMetadatas=function(o,e,n){return this.findMetadatas(this._transformMetadatas,o,e).filter((function(o){return!o.options||(!0===o.options.toClassOnly&&!0===o.options.toPlainOnly||(!0===o.options.toClassOnly?n===t.TransformationType.CLASS_TO_CLASS||n===t.TransformationType.PLAIN_TO_CLASS:!0!==o.options.toPlainOnly||n===t.TransformationType.CLASS_TO_PLAIN))}))},o.prototype.findExcludeMetadata=function(t,o){return this.findMetadata(this._excludeMetadatas,t,o)},o.prototype.findExposeMetadata=function(t,o){return this.findMetadata(this._exposeMetadatas,t,o)},o.prototype.findExposeMetadataByCustomName=function(t,o){return this.getExposedMetadatas(t).find((function(t){return t.options&&t.options.name===o}))},o.prototype.findTypeMetadata=function(t,o){return this.findMetadata(this._typeMetadatas,t,o)},o.prototype.getStrategy=function(t){var o=this._excludeMetadatas.get(t),e=o&&o.get(void 0),n=this._exposeMetadatas.get(t),r=n&&n.get(void 0);return e&&r||!e&&!r?"none":e?"excludeAll":"exposeAll"},o.prototype.getExposedMetadatas=function(t){return this.getMetadata(this._exposeMetadatas,t)},o.prototype.getExcludedMetadatas=function(t){return this.getMetadata(this._excludeMetadatas,t)},o.prototype.getExposedProperties=function(o,e){return this.getExposedMetadatas(o).filter((function(o){return!o.options||(!0===o.options.toClassOnly&&!0===o.options.toPlainOnly||(!0===o.options.toClassOnly?e===t.TransformationType.CLASS_TO_CLASS||e===t.TransformationType.PLAIN_TO_CLASS:!0!==o.options.toPlainOnly||e===t.TransformationType.CLASS_TO_PLAIN))})).map((function(t){return t.propertyName}))},o.prototype.getExcludedProperties=function(o,e){return this.getExcludedMetadatas(o).filter((function(o){return!o.options||(!0===o.options.toClassOnly&&!0===o.options.toPlainOnly||(!0===o.options.toClassOnly?e===t.TransformationType.CLASS_TO_CLASS||e===t.TransformationType.PLAIN_TO_CLASS:!0!==o.options.toPlainOnly||e===t.TransformationType.CLASS_TO_PLAIN))})).map((function(t){return t.propertyName}))},o.prototype.clear=function(){this._typeMetadatas.clear(),this._exposeMetadatas.clear(),this._excludeMetadatas.clear(),this._ancestorsMap.clear()},o.prototype.getMetadata=function(t,o){var e,n=t.get(o);n&&(e=Array.from(n.values()).filter((function(t){return void 0!==t.propertyName})));for(var r=[],a=0,i=this.getAncestors(o);a0&&(s=s.filter((function(t){return!f.includes(t)}))),void 0!==this.options.version&&(s=s.filter((function(t){var n=e.findExposeMetadata(o,t);return!n||!n.options||a.checkVersion(n.options.since,n.options.until)}))),s=this.options.groups&&this.options.groups.length?s.filter((function(t){var n=e.findExposeMetadata(o,t);return!n||!n.options||a.checkGroups(n.options.groups)})):s.filter((function(t){var n=e.findExposeMetadata(o,t);return!(n&&n.options&&n.options.groups&&n.options.groups.length)}))}return this.options.excludePrefixes&&this.options.excludePrefixes.length&&(s=s.filter((function(t){return a.options.excludePrefixes.every((function(o){return t.substr(0,o.length)!==o}))}))),s=s.filter((function(t,o,e){return e.indexOf(t)===o}))},o.prototype.checkVersion=function(t,o){var e=!0;return e&&t&&(e=this.options.version>=t),e&&o&&(e=this.options.version 0) {\n keys = keys.filter(function (key) {\n return !excludedProperties_1.includes(key);\n });\n }\n // apply versioning options\n if (this.options.version !== undefined) {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options)\n return true;\n return _this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until);\n });\n }\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options)\n return true;\n return _this.checkGroups(exposeMetadata.options.groups);\n });\n }\n else {\n keys = keys.filter(function (key) {\n var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n return (!exposeMetadata ||\n !exposeMetadata.options ||\n !exposeMetadata.options.groups ||\n !exposeMetadata.options.groups.length);\n });\n }\n }\n // exclude prefixed properties\n if (this.options.excludePrefixes && this.options.excludePrefixes.length) {\n keys = keys.filter(function (key) {\n return _this.options.excludePrefixes.every(function (prefix) {\n return key.substr(0, prefix.length) !== prefix;\n });\n });\n }\n // make sure we have unique keys\n keys = keys.filter(function (key, index, self) {\n return self.indexOf(key) === index;\n });\n return keys;\n };\n TransformOperationExecutor.prototype.checkVersion = function (since, until) {\n var decision = true;\n if (decision && since)\n decision = this.options.version >= since;\n if (decision && until)\n decision = this.options.version < until;\n return decision;\n };\n TransformOperationExecutor.prototype.checkGroups = function (groups) {\n if (!groups)\n return true;\n return this.options.groups.some(function (optionGroup) { return groups.includes(optionGroup); });\n };\n return TransformOperationExecutor;\n}());\nexport { TransformOperationExecutor };\n//# sourceMappingURL=TransformOperationExecutor.js.map","export function isPromise(p) {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n//# sourceMappingURL=is-promise.util.js.map","/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n//# sourceMappingURL=get-global.util.js.map","/**\n * These are the default options used by any transformation operation.\n */\nexport var defaultOptions = {\n enableCircularCheck: false,\n enableImplicitConversion: false,\n excludeExtraneousValues: false,\n excludePrefixes: undefined,\n exposeDefaultValues: false,\n exposeUnsetFields: true,\n groups: undefined,\n ignoreDecorators: false,\n strategy: undefined,\n targetMaps: undefined,\n version: undefined,\n};\n//# sourceMappingURL=default-options.constant.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { TransformOperationExecutor } from './TransformOperationExecutor';\nimport { TransformationType } from './enums';\nimport { defaultOptions } from './constants/default-options.constant';\nvar ClassTransformer = /** @class */ (function () {\n function ClassTransformer() {\n }\n ClassTransformer.prototype.classToPlain = function (object, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.classToPlainFromExist = function (object, plainObject, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options));\n return executor.transform(plainObject, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.plainToClass = function (cls, plain, options) {\n var executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, plain, cls, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.plainToClassFromExist = function (clsObject, plain, options) {\n var executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(clsObject, plain, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.classToClass = function (object, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.classToClassFromExist = function (object, fromObject, options) {\n var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options));\n return executor.transform(fromObject, object, undefined, undefined, undefined, undefined);\n };\n ClassTransformer.prototype.serialize = function (object, options) {\n return JSON.stringify(this.classToPlain(object, options));\n };\n /**\n * Deserializes given JSON string to a object of the given class.\n */\n ClassTransformer.prototype.deserialize = function (cls, json, options) {\n var jsonObject = JSON.parse(json);\n return this.plainToClass(cls, jsonObject, options);\n };\n /**\n * Deserializes given JSON string to an array of objects of the given class.\n */\n ClassTransformer.prototype.deserializeArray = function (cls, json, options) {\n var jsonObject = JSON.parse(json);\n return this.plainToClass(cls, jsonObject, options);\n };\n return ClassTransformer;\n}());\nexport { ClassTransformer };\n//# sourceMappingURL=ClassTransformer.js.map","import { ClassTransformer } from './ClassTransformer';\nexport { ClassTransformer } from './ClassTransformer';\nexport * from './decorators';\nexport * from './interfaces';\nexport * from './enums';\nvar classTransformer = new ClassTransformer();\nexport function classToPlain(object, options) {\n return classTransformer.classToPlain(object, options);\n}\nexport function classToPlainFromExist(object, plainObject, options) {\n return classTransformer.classToPlainFromExist(object, plainObject, options);\n}\nexport function plainToClass(cls, plain, options) {\n return classTransformer.plainToClass(cls, plain, options);\n}\nexport function plainToClassFromExist(clsObject, plain, options) {\n return classTransformer.plainToClassFromExist(clsObject, plain, options);\n}\nexport function classToClass(object, options) {\n return classTransformer.classToClass(object, options);\n}\nexport function classToClassFromExist(object, fromObject, options) {\n return classTransformer.classToClassFromExist(object, fromObject, options);\n}\nexport function serialize(object, options) {\n return classTransformer.serialize(object, options);\n}\n/**\n * Deserializes given JSON string to a object of the given class.\n */\nexport function deserialize(cls, json, options) {\n return classTransformer.deserialize(cls, json, options);\n}\n/**\n * Deserializes given JSON string to an array of objects of the given class.\n */\nexport function deserializeArray(cls, json, options) {\n return classTransformer.deserializeArray(cls, json, options);\n}\n//# sourceMappingURL=index.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Marks the given class or property as excluded. By default the property is excluded in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Exclude(options) {\n if (options === void 0) { options = {}; }\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object, propertyName) {\n defaultMetadataStorage.addExcludeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName,\n options: options,\n });\n };\n}\n//# sourceMappingURL=exclude.decorator.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Marks the given class or property as included. By default the property is included in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Expose(options) {\n if (options === void 0) { options = {}; }\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object, propertyName) {\n defaultMetadataStorage.addExposeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName,\n options: options,\n });\n };\n}\n//# sourceMappingURL=expose.decorator.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Defines a custom logic for value transformation.\n *\n * Can be applied to properties only.\n */\nexport function Transform(transformFn, options) {\n if (options === void 0) { options = {}; }\n return function (target, propertyName) {\n defaultMetadataStorage.addTransformMetadata({\n target: target.constructor,\n propertyName: propertyName,\n transformFn: transformFn,\n options: options,\n });\n };\n}\n//# sourceMappingURL=transform.decorator.js.map","import { ClassTransformer } from '../ClassTransformer';\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformClassToClass(params) {\n return function (target, propertyKey, descriptor) {\n var classTransformer = new ClassTransformer();\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = originalMethod.apply(this, args);\n var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then(function (data) { return classTransformer.classToClass(data, params); })\n : classTransformer.classToClass(result, params);\n };\n };\n}\n//# sourceMappingURL=transform-class-to-class.decorator.js.map","import { ClassTransformer } from '../ClassTransformer';\n/**\n * Transform the object from class to plain object and return only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformClassToPlain(params) {\n return function (target, propertyKey, descriptor) {\n var classTransformer = new ClassTransformer();\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = originalMethod.apply(this, args);\n var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then(function (data) { return classTransformer.classToPlain(data, params); })\n : classTransformer.classToPlain(result, params);\n };\n };\n}\n//# sourceMappingURL=transform-class-to-plain.decorator.js.map","import { ClassTransformer } from '../ClassTransformer';\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformPlainToClass(classType, params) {\n return function (target, propertyKey, descriptor) {\n var classTransformer = new ClassTransformer();\n var originalMethod = descriptor.value;\n descriptor.value = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = originalMethod.apply(this, args);\n var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then(function (data) { return classTransformer.plainToClass(classType, data, params); })\n : classTransformer.plainToClass(classType, result, params);\n };\n };\n}\n//# sourceMappingURL=transform-plain-to-class.decorator.js.map","import { defaultMetadataStorage } from '../storage';\n/**\n * Specifies a type of the property.\n * The given TypeFunction can return a constructor. A discriminator can be given in the options.\n *\n * Can be applied to properties only.\n */\nexport function Type(typeFunction, options) {\n if (options === void 0) { options = {}; }\n return function (target, propertyName) {\n var reflectedType = Reflect.getMetadata('design:type', target, propertyName);\n defaultMetadataStorage.addTypeMetadata({\n target: target.constructor,\n propertyName: propertyName,\n reflectedType: reflectedType,\n typeFunction: typeFunction,\n options: options,\n });\n };\n}\n//# sourceMappingURL=type.decorator.js.map"],"names":["TransformationType","defaultMetadataStorage","MetadataStorage","this","_typeMetadatas","Map","_transformMetadatas","_exposeMetadatas","_excludeMetadatas","_ancestorsMap","prototype","addTypeMetadata","metadata","has","target","set","get","propertyName","addTransformMetadata","push","addExposeMetadata","addExcludeMetadata","findTransformMetadatas","transformationType","findMetadatas","filter","options","toClassOnly","toPlainOnly","CLASS_TO_CLASS","PLAIN_TO_CLASS","CLASS_TO_PLAIN","findExcludeMetadata","findMetadata","findExposeMetadata","findExposeMetadataByCustomName","name","getExposedMetadatas","find","findTypeMetadata","getStrategy","excludeMap","exclude","undefined","exposeMap","expose","getMetadata","getExcludedMetadatas","getExposedProperties","map","getExcludedProperties","clear","metadatas","metadataFromTarget","metadataFromTargetMap","Array","from","values","meta","metadataFromAncestors","_i","_a","getAncestors","length","ancestor","ancestorMetadataMap","metadataFromAncestor","apply","concat","ancestorResult","metadataFromAncestorsTarget","slice","reverse","ancestors","baseClass","Object","getPrototypeOf","constructor","TransformOperationExecutor","recursionStack","Set","transform","source","value","targetType","arrayType","isMap","level","p","_this","isArray","newValue_1","array","instantiateArrayType","forEach","subValue","index","subSource","enableCircularCheck","isCircular","add","realTargetType","discriminator","property","subTypes","subType","newObject","object","newType","typeFunction","keepDiscriminatorProperty","value_1","String","Number","Boolean","Date","valueOf","globalThis","global","window","self","Buffer","then","keys","getKeys","newValue","_loop_1","key","valueKey","newValueKey","this_1","ignoreDecorators","exposeMetadata","Function","type","isSubValueMap","metadata_1","reflectedType","targetMaps","properties","enableImplicitConversion","Reflect","arrayType_1","getReflectedType","descriptor","getOwnPropertyDescriptor","finalValue","applyCustomTransformations","exposeUnsetFields","transformKey","exposeDefaultValues","keys_1","delete","Promise","resolve","reject","data","obj","version","checkVersion","since","until","groups","checkGroups","transformFn","strategy","exposedProperties","excludeExtraneousValues","excludedProperties_1","includes","excludePrefixes","every","prefix","substr","indexOf","decision","some","optionGroup","defaultOptions","__assign","assign","t","s","i","n","arguments","hasOwnProperty","call","ClassTransformer","classToPlain","classToPlainFromExist","plainObject","plainToClass","cls","plain","plainToClassFromExist","clsObject","classToClass","classToClassFromExist","fromObject","serialize","JSON","stringify","deserialize","json","jsonObject","parse","deserializeArray","classTransformer","params","propertyKey","originalMethod","args","result","isPromise","classType"],"mappings":"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"} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/ClassTransformer.js b/views/node_modules/class-transformer/cjs/ClassTransformer.js deleted file mode 100644 index 23cbcb2..0000000 --- a/views/node_modules/class-transformer/cjs/ClassTransformer.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ClassTransformer = void 0; -const TransformOperationExecutor_1 = require("./TransformOperationExecutor"); -const enums_1 = require("./enums"); -const default_options_constant_1 = require("./constants/default-options.constant"); -class ClassTransformer { - classToPlain(object, options) { - const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.CLASS_TO_PLAIN, { - ...default_options_constant_1.defaultOptions, - ...options, - }); - return executor.transform(undefined, object, undefined, undefined, undefined, undefined); - } - classToPlainFromExist(object, plainObject, options) { - const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.CLASS_TO_PLAIN, { - ...default_options_constant_1.defaultOptions, - ...options, - }); - return executor.transform(plainObject, object, undefined, undefined, undefined, undefined); - } - plainToClass(cls, plain, options) { - const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.PLAIN_TO_CLASS, { - ...default_options_constant_1.defaultOptions, - ...options, - }); - return executor.transform(undefined, plain, cls, undefined, undefined, undefined); - } - plainToClassFromExist(clsObject, plain, options) { - const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.PLAIN_TO_CLASS, { - ...default_options_constant_1.defaultOptions, - ...options, - }); - return executor.transform(clsObject, plain, undefined, undefined, undefined, undefined); - } - classToClass(object, options) { - const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.CLASS_TO_CLASS, { - ...default_options_constant_1.defaultOptions, - ...options, - }); - return executor.transform(undefined, object, undefined, undefined, undefined, undefined); - } - classToClassFromExist(object, fromObject, options) { - const executor = new TransformOperationExecutor_1.TransformOperationExecutor(enums_1.TransformationType.CLASS_TO_CLASS, { - ...default_options_constant_1.defaultOptions, - ...options, - }); - return executor.transform(fromObject, object, undefined, undefined, undefined, undefined); - } - serialize(object, options) { - return JSON.stringify(this.classToPlain(object, options)); - } - /** - * Deserializes given JSON string to a object of the given class. - */ - deserialize(cls, json, options) { - const jsonObject = JSON.parse(json); - return this.plainToClass(cls, jsonObject, options); - } - /** - * Deserializes given JSON string to an array of objects of the given class. - */ - deserializeArray(cls, json, options) { - const jsonObject = JSON.parse(json); - return this.plainToClass(cls, jsonObject, options); - } -} -exports.ClassTransformer = ClassTransformer; -//# sourceMappingURL=ClassTransformer.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/ClassTransformer.js.map b/views/node_modules/class-transformer/cjs/ClassTransformer.js.map deleted file mode 100644 index 9f940d8..0000000 --- a/views/node_modules/class-transformer/cjs/ClassTransformer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ClassTransformer.js","sourceRoot":"","sources":["../../src/ClassTransformer.ts"],"names":[],"mappings":"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","sourcesContent":["import { ClassTransformOptions } from './interfaces';\nimport { TransformOperationExecutor } from './TransformOperationExecutor';\nimport { TransformationType } from './enums';\nimport { ClassConstructor } from './interfaces';\nimport { defaultOptions } from './constants/default-options.constant';\n\nexport class ClassTransformer {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Converts class (constructor) object to plain (literal) object. Also works with arrays.\n */\n classToPlain>(object: T, options?: ClassTransformOptions): Record;\n classToPlain>(object: T[], options?: ClassTransformOptions): Record[];\n classToPlain>(\n object: T | T[],\n options?: ClassTransformOptions\n ): Record | Record[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\n classToPlainFromExist, P>(\n object: T,\n plainObject: P,\n options?: ClassTransformOptions\n ): T;\n classToPlainFromExist, P>(\n object: T,\n plainObjects: P[],\n options?: ClassTransformOptions\n ): T[];\n classToPlainFromExist, P>(\n object: T,\n plainObject: P | P[],\n options?: ClassTransformOptions\n ): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(plainObject, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts plain (literal) object to class (constructor) object. Also works with arrays.\n */\n plainToClass, V extends Array>(\n cls: ClassConstructor,\n plain: V,\n options?: ClassTransformOptions\n ): T[];\n plainToClass, V>(\n cls: ClassConstructor,\n plain: V,\n options?: ClassTransformOptions\n ): T;\n plainToClass, V>(\n cls: ClassConstructor,\n plain: V | V[],\n options?: ClassTransformOptions\n ): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(undefined, plain, cls, undefined, undefined, undefined);\n }\n\n /**\n * Converts plain (literal) object to class (constructor) object.\n * Uses given object as source object (it means fills given object with data from plain object).\n * Also works with arrays.\n */\n plainToClassFromExist, V extends Array>(\n clsObject: T,\n plain: V,\n options?: ClassTransformOptions\n ): T;\n plainToClassFromExist, V>(clsObject: T, plain: V, options?: ClassTransformOptions): T[];\n plainToClassFromExist, V>(\n clsObject: T,\n plain: V | V[],\n options?: ClassTransformOptions\n ): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(clsObject, plain, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts class (constructor) object to new class (constructor) object. Also works with arrays.\n */\n classToClass(object: T, options?: ClassTransformOptions): T;\n classToClass(object: T[], options?: ClassTransformOptions): T[];\n classToClass(object: T | T[], options?: ClassTransformOptions): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\n classToClassFromExist(object: T, fromObject: T, options?: ClassTransformOptions): T;\n classToClassFromExist(object: T, fromObjects: T[], options?: ClassTransformOptions): T[];\n classToClassFromExist(object: T, fromObject: T | T[], options?: ClassTransformOptions): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(fromObject, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Serializes given object to a JSON string.\n */\n serialize(object: T, options?: ClassTransformOptions): string;\n serialize(object: T[], options?: ClassTransformOptions): string;\n serialize(object: T | T[], options?: ClassTransformOptions): string {\n return JSON.stringify(this.classToPlain(object, options));\n }\n\n /**\n * Deserializes given JSON string to a object of the given class.\n */\n deserialize(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T {\n const jsonObject: T = JSON.parse(json);\n return this.plainToClass(cls, jsonObject, options);\n }\n\n /**\n * Deserializes given JSON string to an array of objects of the given class.\n */\n deserializeArray(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T[] {\n const jsonObject: any[] = JSON.parse(json);\n return this.plainToClass(cls, jsonObject, options);\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/MetadataStorage.js b/views/node_modules/class-transformer/cjs/MetadataStorage.js deleted file mode 100644 index c428cd1..0000000 --- a/views/node_modules/class-transformer/cjs/MetadataStorage.js +++ /dev/null @@ -1,211 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MetadataStorage = void 0; -const enums_1 = require("./enums"); -/** - * Storage all library metadata. - */ -class MetadataStorage { - constructor() { - // ------------------------------------------------------------------------- - // Properties - // ------------------------------------------------------------------------- - this._typeMetadatas = new Map(); - this._transformMetadatas = new Map(); - this._exposeMetadatas = new Map(); - this._excludeMetadatas = new Map(); - this._ancestorsMap = new Map(); - } - // ------------------------------------------------------------------------- - // Adder Methods - // ------------------------------------------------------------------------- - addTypeMetadata(metadata) { - if (!this._typeMetadatas.has(metadata.target)) { - this._typeMetadatas.set(metadata.target, new Map()); - } - this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - } - addTransformMetadata(metadata) { - if (!this._transformMetadatas.has(metadata.target)) { - this._transformMetadatas.set(metadata.target, new Map()); - } - if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) { - this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []); - } - this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata); - } - addExposeMetadata(metadata) { - if (!this._exposeMetadatas.has(metadata.target)) { - this._exposeMetadatas.set(metadata.target, new Map()); - } - this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - } - addExcludeMetadata(metadata) { - if (!this._excludeMetadatas.has(metadata.target)) { - this._excludeMetadatas.set(metadata.target, new Map()); - } - this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - findTransformMetadatas(target, propertyName, transformationType) { - return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(metadata => { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === enums_1.TransformationType.CLASS_TO_CLASS || - transformationType === enums_1.TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === enums_1.TransformationType.CLASS_TO_PLAIN; - } - return true; - }); - } - findExcludeMetadata(target, propertyName) { - return this.findMetadata(this._excludeMetadatas, target, propertyName); - } - findExposeMetadata(target, propertyName) { - return this.findMetadata(this._exposeMetadatas, target, propertyName); - } - findExposeMetadataByCustomName(target, name) { - return this.getExposedMetadatas(target).find(metadata => { - return metadata.options && metadata.options.name === name; - }); - } - findTypeMetadata(target, propertyName) { - return this.findMetadata(this._typeMetadatas, target, propertyName); - } - getStrategy(target) { - const excludeMap = this._excludeMetadatas.get(target); - const exclude = excludeMap && excludeMap.get(undefined); - const exposeMap = this._exposeMetadatas.get(target); - const expose = exposeMap && exposeMap.get(undefined); - if ((exclude && expose) || (!exclude && !expose)) - return 'none'; - return exclude ? 'excludeAll' : 'exposeAll'; - } - getExposedMetadatas(target) { - return this.getMetadata(this._exposeMetadatas, target); - } - getExcludedMetadatas(target) { - return this.getMetadata(this._excludeMetadatas, target); - } - getExposedProperties(target, transformationType) { - return this.getExposedMetadatas(target) - .filter(metadata => { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === enums_1.TransformationType.CLASS_TO_CLASS || - transformationType === enums_1.TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === enums_1.TransformationType.CLASS_TO_PLAIN; - } - return true; - }) - .map(metadata => metadata.propertyName); - } - getExcludedProperties(target, transformationType) { - return this.getExcludedMetadatas(target) - .filter(metadata => { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === enums_1.TransformationType.CLASS_TO_CLASS || - transformationType === enums_1.TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === enums_1.TransformationType.CLASS_TO_PLAIN; - } - return true; - }) - .map(metadata => metadata.propertyName); - } - clear() { - this._typeMetadatas.clear(); - this._exposeMetadatas.clear(); - this._excludeMetadatas.clear(); - this._ancestorsMap.clear(); - } - // ------------------------------------------------------------------------- - // Private Methods - // ------------------------------------------------------------------------- - getMetadata(metadatas, target) { - const metadataFromTargetMap = metadatas.get(target); - let metadataFromTarget; - if (metadataFromTargetMap) { - metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(meta => meta.propertyName !== undefined); - } - const metadataFromAncestors = []; - for (const ancestor of this.getAncestors(target)) { - const ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - const metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(meta => meta.propertyName !== undefined); - metadataFromAncestors.push(...metadataFromAncestor); - } - } - return metadataFromAncestors.concat(metadataFromTarget || []); - } - findMetadata(metadatas, target, propertyName) { - const metadataFromTargetMap = metadatas.get(target); - if (metadataFromTargetMap) { - const metadataFromTarget = metadataFromTargetMap.get(propertyName); - if (metadataFromTarget) { - return metadataFromTarget; - } - } - for (const ancestor of this.getAncestors(target)) { - const ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - const ancestorResult = ancestorMetadataMap.get(propertyName); - if (ancestorResult) { - return ancestorResult; - } - } - } - return undefined; - } - findMetadatas(metadatas, target, propertyName) { - const metadataFromTargetMap = metadatas.get(target); - let metadataFromTarget; - if (metadataFromTargetMap) { - metadataFromTarget = metadataFromTargetMap.get(propertyName); - } - const metadataFromAncestorsTarget = []; - for (const ancestor of this.getAncestors(target)) { - const ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - if (ancestorMetadataMap.has(propertyName)) { - metadataFromAncestorsTarget.push(...ancestorMetadataMap.get(propertyName)); - } - } - } - return metadataFromAncestorsTarget - .slice() - .reverse() - .concat((metadataFromTarget || []).slice().reverse()); - } - getAncestors(target) { - if (!target) - return []; - if (!this._ancestorsMap.has(target)) { - const ancestors = []; - for (let baseClass = Object.getPrototypeOf(target.prototype.constructor); typeof baseClass.prototype !== 'undefined'; baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)) { - ancestors.push(baseClass); - } - this._ancestorsMap.set(target, ancestors); - } - return this._ancestorsMap.get(target); - } -} -exports.MetadataStorage = MetadataStorage; -//# sourceMappingURL=MetadataStorage.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/MetadataStorage.js.map b/views/node_modules/class-transformer/cjs/MetadataStorage.js.map deleted file mode 100644 index 33ca374..0000000 --- a/views/node_modules/class-transformer/cjs/MetadataStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MetadataStorage.js","sourceRoot":"","sources":["../../src/MetadataStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import { TypeMetadata, ExposeMetadata, ExcludeMetadata, TransformMetadata } from './interfaces';\nimport { TransformationType } from './enums';\n\n/**\n * Storage all library metadata.\n */\nexport class MetadataStorage {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n private _typeMetadatas = new Map>();\n private _transformMetadatas = new Map>();\n private _exposeMetadatas = new Map>();\n private _excludeMetadatas = new Map>();\n private _ancestorsMap = new Map();\n\n // -------------------------------------------------------------------------\n // Adder Methods\n // -------------------------------------------------------------------------\n\n addTypeMetadata(metadata: TypeMetadata): void {\n if (!this._typeMetadatas.has(metadata.target)) {\n this._typeMetadatas.set(metadata.target, new Map());\n }\n this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n }\n\n addTransformMetadata(metadata: TransformMetadata): void {\n if (!this._transformMetadatas.has(metadata.target)) {\n this._transformMetadatas.set(metadata.target, new Map());\n }\n if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) {\n this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []);\n }\n this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata);\n }\n\n addExposeMetadata(metadata: ExposeMetadata): void {\n if (!this._exposeMetadatas.has(metadata.target)) {\n this._exposeMetadatas.set(metadata.target, new Map());\n }\n this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n }\n\n addExcludeMetadata(metadata: ExcludeMetadata): void {\n if (!this._excludeMetadatas.has(metadata.target)) {\n this._excludeMetadatas.set(metadata.target, new Map());\n }\n this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n findTransformMetadatas(\n target: Function,\n propertyName: string,\n transformationType: TransformationType\n ): TransformMetadata[] {\n return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(metadata => {\n if (!metadata.options) return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;\n\n if (metadata.options.toClassOnly === true) {\n return (\n transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS\n );\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n\n return true;\n });\n }\n\n findExcludeMetadata(target: Function, propertyName: string): ExcludeMetadata {\n return this.findMetadata(this._excludeMetadatas, target, propertyName);\n }\n\n findExposeMetadata(target: Function, propertyName: string): ExposeMetadata {\n return this.findMetadata(this._exposeMetadatas, target, propertyName);\n }\n\n findExposeMetadataByCustomName(target: Function, name: string): ExposeMetadata {\n return this.getExposedMetadatas(target).find(metadata => {\n return metadata.options && metadata.options.name === name;\n });\n }\n\n findTypeMetadata(target: Function, propertyName: string): TypeMetadata {\n return this.findMetadata(this._typeMetadatas, target, propertyName);\n }\n\n getStrategy(target: Function): 'excludeAll' | 'exposeAll' | 'none' {\n const excludeMap = this._excludeMetadatas.get(target);\n const exclude = excludeMap && excludeMap.get(undefined);\n const exposeMap = this._exposeMetadatas.get(target);\n const expose = exposeMap && exposeMap.get(undefined);\n if ((exclude && expose) || (!exclude && !expose)) return 'none';\n return exclude ? 'excludeAll' : 'exposeAll';\n }\n\n getExposedMetadatas(target: Function): ExposeMetadata[] {\n return this.getMetadata(this._exposeMetadatas, target);\n }\n\n getExcludedMetadatas(target: Function): ExcludeMetadata[] {\n return this.getMetadata(this._excludeMetadatas, target);\n }\n\n getExposedProperties(target: Function, transformationType: TransformationType): string[] {\n return this.getExposedMetadatas(target)\n .filter(metadata => {\n if (!metadata.options) return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;\n\n if (metadata.options.toClassOnly === true) {\n return (\n transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS\n );\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n\n return true;\n })\n .map(metadata => metadata.propertyName);\n }\n\n getExcludedProperties(target: Function, transformationType: TransformationType): string[] {\n return this.getExcludedMetadatas(target)\n .filter(metadata => {\n if (!metadata.options) return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;\n\n if (metadata.options.toClassOnly === true) {\n return (\n transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS\n );\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n\n return true;\n })\n .map(metadata => metadata.propertyName);\n }\n\n clear(): void {\n this._typeMetadatas.clear();\n this._exposeMetadatas.clear();\n this._excludeMetadatas.clear();\n this._ancestorsMap.clear();\n }\n\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n\n private getMetadata(\n metadatas: Map>,\n target: Function\n ): T[] {\n const metadataFromTargetMap = metadatas.get(target);\n let metadataFromTarget: T[];\n if (metadataFromTargetMap) {\n metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(meta => meta.propertyName !== undefined);\n }\n const metadataFromAncestors: T[] = [];\n for (const ancestor of this.getAncestors(target)) {\n const ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n const metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(\n meta => meta.propertyName !== undefined\n );\n metadataFromAncestors.push(...metadataFromAncestor);\n }\n }\n return metadataFromAncestors.concat(metadataFromTarget || []);\n }\n\n private findMetadata(\n metadatas: Map>,\n target: Function,\n propertyName: string\n ): T {\n const metadataFromTargetMap = metadatas.get(target);\n if (metadataFromTargetMap) {\n const metadataFromTarget = metadataFromTargetMap.get(propertyName);\n if (metadataFromTarget) {\n return metadataFromTarget;\n }\n }\n for (const ancestor of this.getAncestors(target)) {\n const ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n const ancestorResult = ancestorMetadataMap.get(propertyName);\n if (ancestorResult) {\n return ancestorResult;\n }\n }\n }\n return undefined;\n }\n\n private findMetadatas(\n metadatas: Map>,\n target: Function,\n propertyName: string\n ): T[] {\n const metadataFromTargetMap = metadatas.get(target);\n let metadataFromTarget: T[];\n if (metadataFromTargetMap) {\n metadataFromTarget = metadataFromTargetMap.get(propertyName);\n }\n const metadataFromAncestorsTarget: T[] = [];\n for (const ancestor of this.getAncestors(target)) {\n const ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n if (ancestorMetadataMap.has(propertyName)) {\n metadataFromAncestorsTarget.push(...ancestorMetadataMap.get(propertyName));\n }\n }\n }\n return metadataFromAncestorsTarget\n .slice()\n .reverse()\n .concat((metadataFromTarget || []).slice().reverse());\n }\n\n private getAncestors(target: Function): Function[] {\n if (!target) return [];\n if (!this._ancestorsMap.has(target)) {\n const ancestors: Function[] = [];\n for (\n let baseClass = Object.getPrototypeOf(target.prototype.constructor);\n typeof baseClass.prototype !== 'undefined';\n baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)\n ) {\n ancestors.push(baseClass);\n }\n this._ancestorsMap.set(target, ancestors);\n }\n return this._ancestorsMap.get(target);\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/TransformOperationExecutor.js b/views/node_modules/class-transformer/cjs/TransformOperationExecutor.js deleted file mode 100644 index 81aec2a..0000000 --- a/views/node_modules/class-transformer/cjs/TransformOperationExecutor.js +++ /dev/null @@ -1,449 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TransformOperationExecutor = void 0; -const storage_1 = require("./storage"); -const enums_1 = require("./enums"); -const utils_1 = require("./utils"); -function instantiateArrayType(arrayType) { - const array = new arrayType(); - if (!(array instanceof Set) && !('push' in array)) { - return []; - } - return array; -} -class TransformOperationExecutor { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - constructor(transformationType, options) { - this.transformationType = transformationType; - this.options = options; - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - this.recursionStack = new Set(); - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - transform(source, value, targetType, arrayType, isMap, level = 0) { - if (Array.isArray(value) || value instanceof Set) { - const newValue = arrayType && this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS - ? instantiateArrayType(arrayType) - : []; - value.forEach((subValue, index) => { - const subSource = source ? source[index] : undefined; - if (!this.options.enableCircularCheck || !this.isCircular(subValue)) { - let realTargetType; - if (typeof targetType !== 'function' && - targetType && - targetType.options && - targetType.options.discriminator && - targetType.options.discriminator.property && - targetType.options.discriminator.subTypes) { - if (this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS) { - realTargetType = targetType.options.discriminator.subTypes.find(subType => subType.name === subValue[targetType.options.discriminator.property]); - const options = { newObject: newValue, object: subValue, property: undefined }; - const newType = targetType.typeFunction(options); - realTargetType === undefined ? (realTargetType = newType) : (realTargetType = realTargetType.value); - if (!targetType.options.keepDiscriminatorProperty) - delete subValue[targetType.options.discriminator.property]; - } - if (this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) { - realTargetType = subValue.constructor; - } - if (this.transformationType === enums_1.TransformationType.CLASS_TO_PLAIN) { - subValue[targetType.options.discriminator.property] = targetType.options.discriminator.subTypes.find(subType => subType.value === subValue.constructor).name; - } - } - else { - realTargetType = targetType; - } - const value = this.transform(subSource, subValue, realTargetType, undefined, subValue instanceof Map, level + 1); - if (newValue instanceof Set) { - newValue.add(value); - } - else { - newValue.push(value); - } - } - else if (this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) { - if (newValue instanceof Set) { - newValue.add(subValue); - } - else { - newValue.push(subValue); - } - } - }); - return newValue; - } - else if (targetType === String && !isMap) { - if (value === null || value === undefined) - return value; - return String(value); - } - else if (targetType === Number && !isMap) { - if (value === null || value === undefined) - return value; - return Number(value); - } - else if (targetType === Boolean && !isMap) { - if (value === null || value === undefined) - return value; - return Boolean(value); - } - else if ((targetType === Date || value instanceof Date) && !isMap) { - if (value instanceof Date) { - return new Date(value.valueOf()); - } - if (value === null || value === undefined) - return value; - return new Date(value); - } - else if (!!utils_1.getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) { - if (value === null || value === undefined) - return value; - return Buffer.from(value); - } - else if (utils_1.isPromise(value) && !isMap) { - return new Promise((resolve, reject) => { - value.then((data) => resolve(this.transform(undefined, data, targetType, undefined, undefined, level + 1)), reject); - }); - } - else if (!isMap && value !== null && typeof value === 'object' && typeof value.then === 'function') { - // Note: We should not enter this, as promise has been handled above - // This option simply returns the Promise preventing a JS error from happening and should be an inaccessible path. - return value; // skip promise transformation - } - else if (typeof value === 'object' && value !== null) { - // try to guess the type - if (!targetType && value.constructor !== Object /* && TransformationType === TransformationType.CLASS_TO_PLAIN*/) - targetType = value.constructor; - if (!targetType && source) - targetType = source.constructor; - if (this.options.enableCircularCheck) { - // add transformed type to prevent circular references - this.recursionStack.add(value); - } - const keys = this.getKeys(targetType, value, isMap); - let newValue = source ? source : {}; - if (!source && - (this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS || - this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS)) { - if (isMap) { - newValue = new Map(); - } - else if (targetType) { - newValue = new targetType(); - } - else { - newValue = {}; - } - } - // traverse over keys - for (const key of keys) { - if (key === '__proto__' || key === 'constructor') { - continue; - } - const valueKey = key; - let newValueKey = key, propertyName = key; - if (!this.options.ignoreDecorators && targetType) { - if (this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS) { - const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadataByCustomName(targetType, key); - if (exposeMetadata) { - propertyName = exposeMetadata.propertyName; - newValueKey = exposeMetadata.propertyName; - } - } - else if (this.transformationType === enums_1.TransformationType.CLASS_TO_PLAIN || - this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) { - const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadata(targetType, key); - if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) { - newValueKey = exposeMetadata.options.name; - } - } - } - // get a subvalue - let subValue = undefined; - if (value instanceof Map) { - subValue = value.get(valueKey); - } - else if (value[valueKey] instanceof Function) { - subValue = value[valueKey](); - } - else { - subValue = value[valueKey]; - } - // determine a type - let type = undefined, isSubValueMap = subValue instanceof Map; - if (targetType && isMap) { - type = targetType; - } - else if (targetType) { - const metadata = storage_1.defaultMetadataStorage.findTypeMetadata(targetType, propertyName); - if (metadata) { - const options = { newObject: newValue, object: value, property: propertyName }; - const newType = metadata.typeFunction ? metadata.typeFunction(options) : metadata.reflectedType; - if (metadata.options && - metadata.options.discriminator && - metadata.options.discriminator.property && - metadata.options.discriminator.subTypes) { - if (!(value[valueKey] instanceof Array)) { - if (this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS) { - type = metadata.options.discriminator.subTypes.find(subType => { - if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) { - return subType.name === subValue[metadata.options.discriminator.property]; - } - }); - type === undefined ? (type = newType) : (type = type.value); - if (!metadata.options.keepDiscriminatorProperty) { - if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) { - delete subValue[metadata.options.discriminator.property]; - } - } - } - if (this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) { - type = subValue.constructor; - } - if (this.transformationType === enums_1.TransformationType.CLASS_TO_PLAIN) { - subValue[metadata.options.discriminator.property] = metadata.options.discriminator.subTypes.find(subType => subType.value === subValue.constructor).name; - } - } - else { - type = metadata; - } - } - else { - type = newType; - } - isSubValueMap = isSubValueMap || metadata.reflectedType === Map; - } - else if (this.options.targetMaps) { - // try to find a type in target maps - this.options.targetMaps - .filter(map => map.target === targetType && !!map.properties[propertyName]) - .forEach(map => (type = map.properties[propertyName])); - } - else if (this.options.enableImplicitConversion && - this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS) { - // if we have no registererd type via the @Type() decorator then we check if we have any - // type declarations in reflect-metadata (type declaration is emited only if some decorator is added to the property.) - const reflectedType = Reflect.getMetadata('design:type', targetType.prototype, propertyName); - if (reflectedType) { - type = reflectedType; - } - } - } - // if value is an array try to get its custom array type - const arrayType = Array.isArray(value[valueKey]) - ? this.getReflectedType(targetType, propertyName) - : undefined; - // const subValueKey = TransformationType === TransformationType.PLAIN_TO_CLASS && newKeyName ? newKeyName : key; - const subSource = source ? source[valueKey] : undefined; - // if its deserialization then type if required - // if we uncomment this types like string[] will not work - // if (this.transformationType === TransformationType.PLAIN_TO_CLASS && !type && subValue instanceof Object && !(subValue instanceof Date)) - // throw new Error(`Cannot determine type for ${(targetType as any).name }.${propertyName}, did you forget to specify a @Type?`); - // if newValue is a source object that has method that match newKeyName then skip it - if (newValue.constructor.prototype) { - const descriptor = Object.getOwnPropertyDescriptor(newValue.constructor.prototype, newValueKey); - if ((this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS || - this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) && - // eslint-disable-next-line @typescript-eslint/unbound-method - ((descriptor && !descriptor.set) || newValue[newValueKey] instanceof Function)) - // || TransformationType === TransformationType.CLASS_TO_CLASS - continue; - } - if (!this.options.enableCircularCheck || !this.isCircular(subValue)) { - const transformKey = this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS ? newValueKey : key; - let finalValue; - if (this.transformationType === enums_1.TransformationType.CLASS_TO_PLAIN) { - // Get original value - finalValue = value[transformKey]; - // Apply custom transformation - finalValue = this.applyCustomTransformations(finalValue, targetType, transformKey, value, this.transformationType); - // If nothing change, it means no custom transformation was applied, so use the subValue. - finalValue = value[transformKey] === finalValue ? subValue : finalValue; - // Apply the default transformation - finalValue = this.transform(subSource, finalValue, type, arrayType, isSubValueMap, level + 1); - } - else { - if (subValue === undefined && this.options.exposeDefaultValues) { - // Set default value if nothing provided - finalValue = newValue[newValueKey]; - } - else { - finalValue = this.transform(subSource, subValue, type, arrayType, isSubValueMap, level + 1); - finalValue = this.applyCustomTransformations(finalValue, targetType, transformKey, value, this.transformationType); - } - } - if (finalValue !== undefined || this.options.exposeUnsetFields) { - if (newValue instanceof Map) { - newValue.set(newValueKey, finalValue); - } - else { - newValue[newValueKey] = finalValue; - } - } - } - else if (this.transformationType === enums_1.TransformationType.CLASS_TO_CLASS) { - let finalValue = subValue; - finalValue = this.applyCustomTransformations(finalValue, targetType, key, value, this.transformationType); - if (finalValue !== undefined || this.options.exposeUnsetFields) { - if (newValue instanceof Map) { - newValue.set(newValueKey, finalValue); - } - else { - newValue[newValueKey] = finalValue; - } - } - } - } - if (this.options.enableCircularCheck) { - this.recursionStack.delete(value); - } - return newValue; - } - else { - return value; - } - } - applyCustomTransformations(value, target, key, obj, transformationType) { - let metadatas = storage_1.defaultMetadataStorage.findTransformMetadatas(target, key, this.transformationType); - // apply versioning options - if (this.options.version !== undefined) { - metadatas = metadatas.filter(metadata => { - if (!metadata.options) - return true; - return this.checkVersion(metadata.options.since, metadata.options.until); - }); - } - // apply grouping options - if (this.options.groups && this.options.groups.length) { - metadatas = metadatas.filter(metadata => { - if (!metadata.options) - return true; - return this.checkGroups(metadata.options.groups); - }); - } - else { - metadatas = metadatas.filter(metadata => { - return !metadata.options || !metadata.options.groups || !metadata.options.groups.length; - }); - } - metadatas.forEach(metadata => { - value = metadata.transformFn({ value, key, obj, type: transformationType, options: this.options }); - }); - return value; - } - // preventing circular references - isCircular(object) { - return this.recursionStack.has(object); - } - getReflectedType(target, propertyName) { - if (!target) - return undefined; - const meta = storage_1.defaultMetadataStorage.findTypeMetadata(target, propertyName); - return meta ? meta.reflectedType : undefined; - } - getKeys(target, object, isMap) { - // determine exclusion strategy - let strategy = storage_1.defaultMetadataStorage.getStrategy(target); - if (strategy === 'none') - strategy = this.options.strategy || 'exposeAll'; // exposeAll is default strategy - // get all keys that need to expose - let keys = []; - if (strategy === 'exposeAll' || isMap) { - if (object instanceof Map) { - keys = Array.from(object.keys()); - } - else { - keys = Object.keys(object); - } - } - if (isMap) { - // expose & exclude do not apply for map keys only to fields - return keys; - } - if (!this.options.ignoreDecorators && target) { - // add all exposed to list of keys - let exposedProperties = storage_1.defaultMetadataStorage.getExposedProperties(target, this.transformationType); - if (this.transformationType === enums_1.TransformationType.PLAIN_TO_CLASS) { - exposedProperties = exposedProperties.map(key => { - const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadata(target, key); - if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) { - return exposeMetadata.options.name; - } - return key; - }); - } - if (this.options.excludeExtraneousValues) { - keys = exposedProperties; - } - else { - keys = keys.concat(exposedProperties); - } - // exclude excluded properties - const excludedProperties = storage_1.defaultMetadataStorage.getExcludedProperties(target, this.transformationType); - if (excludedProperties.length > 0) { - keys = keys.filter(key => { - return !excludedProperties.includes(key); - }); - } - // apply versioning options - if (this.options.version !== undefined) { - keys = keys.filter(key => { - const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadata(target, key); - if (!exposeMetadata || !exposeMetadata.options) - return true; - return this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until); - }); - } - // apply grouping options - if (this.options.groups && this.options.groups.length) { - keys = keys.filter(key => { - const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadata(target, key); - if (!exposeMetadata || !exposeMetadata.options) - return true; - return this.checkGroups(exposeMetadata.options.groups); - }); - } - else { - keys = keys.filter(key => { - const exposeMetadata = storage_1.defaultMetadataStorage.findExposeMetadata(target, key); - return (!exposeMetadata || - !exposeMetadata.options || - !exposeMetadata.options.groups || - !exposeMetadata.options.groups.length); - }); - } - } - // exclude prefixed properties - if (this.options.excludePrefixes && this.options.excludePrefixes.length) { - keys = keys.filter(key => this.options.excludePrefixes.every(prefix => { - return key.substr(0, prefix.length) !== prefix; - })); - } - // make sure we have unique keys - keys = keys.filter((key, index, self) => { - return self.indexOf(key) === index; - }); - return keys; - } - checkVersion(since, until) { - let decision = true; - if (decision && since) - decision = this.options.version >= since; - if (decision && until) - decision = this.options.version < until; - return decision; - } - checkGroups(groups) { - if (!groups) - return true; - return this.options.groups.some(optionGroup => groups.includes(optionGroup)); - } -} -exports.TransformOperationExecutor = TransformOperationExecutor; -//# sourceMappingURL=TransformOperationExecutor.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/TransformOperationExecutor.js.map b/views/node_modules/class-transformer/cjs/TransformOperationExecutor.js.map deleted file mode 100644 index 6b36004..0000000 --- a/views/node_modules/class-transformer/cjs/TransformOperationExecutor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"TransformOperationExecutor.js","sourceRoot":"","sources":["../../src/TransformOperationExecutor.ts"],"names":[],"mappings":"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","sourcesContent":["import { defaultMetadataStorage } from './storage';\nimport { TypeHelpOptions, TypeOptions, ClassTransformOptions, TypeMetadata } from './interfaces';\nimport { TransformationType } from './enums';\nimport { getGlobal, isPromise } from './utils';\n\nfunction instantiateArrayType(arrayType: Function): Array | Set {\n const array = new (arrayType as any)();\n if (!(array instanceof Set) && !('push' in array)) {\n return [];\n }\n return array;\n}\n\nexport class TransformOperationExecutor {\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n\n private recursionStack = new Set>();\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private transformationType: TransformationType, private options: ClassTransformOptions) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n transform(\n source: Record | Record[] | any,\n value: Record | Record[] | any,\n targetType: Function | TypeMetadata,\n arrayType: Function,\n isMap: boolean,\n level: number = 0\n ): any {\n if (Array.isArray(value) || value instanceof Set) {\n const newValue =\n arrayType && this.transformationType === TransformationType.PLAIN_TO_CLASS\n ? instantiateArrayType(arrayType)\n : [];\n (value as any[]).forEach((subValue, index) => {\n const subSource = source ? source[index] : undefined;\n if (!this.options.enableCircularCheck || !this.isCircular(subValue)) {\n let realTargetType;\n if (\n typeof targetType !== 'function' &&\n targetType &&\n targetType.options &&\n targetType.options.discriminator &&\n targetType.options.discriminator.property &&\n targetType.options.discriminator.subTypes\n ) {\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n realTargetType = targetType.options.discriminator.subTypes.find(\n subType =>\n subType.name === subValue[(targetType as { options: TypeOptions }).options.discriminator.property]\n );\n const options: TypeHelpOptions = { newObject: newValue, object: subValue, property: undefined };\n const newType = targetType.typeFunction(options);\n realTargetType === undefined ? (realTargetType = newType) : (realTargetType = realTargetType.value);\n if (!targetType.options.keepDiscriminatorProperty)\n delete subValue[targetType.options.discriminator.property];\n }\n\n if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n realTargetType = subValue.constructor;\n }\n if (this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n subValue[targetType.options.discriminator.property] = targetType.options.discriminator.subTypes.find(\n subType => subType.value === subValue.constructor\n ).name;\n }\n } else {\n realTargetType = targetType;\n }\n const value = this.transform(\n subSource,\n subValue,\n realTargetType,\n undefined,\n subValue instanceof Map,\n level + 1\n );\n\n if (newValue instanceof Set) {\n newValue.add(value);\n } else {\n newValue.push(value);\n }\n } else if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n if (newValue instanceof Set) {\n newValue.add(subValue);\n } else {\n newValue.push(subValue);\n }\n }\n });\n return newValue;\n } else if (targetType === String && !isMap) {\n if (value === null || value === undefined) return value;\n return String(value);\n } else if (targetType === Number && !isMap) {\n if (value === null || value === undefined) return value;\n return Number(value);\n } else if (targetType === Boolean && !isMap) {\n if (value === null || value === undefined) return value;\n return Boolean(value);\n } else if ((targetType === Date || value instanceof Date) && !isMap) {\n if (value instanceof Date) {\n return new Date(value.valueOf());\n }\n if (value === null || value === undefined) return value;\n return new Date(value);\n } else if (!!getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) {\n if (value === null || value === undefined) return value;\n return Buffer.from(value);\n } else if (isPromise(value) && !isMap) {\n return new Promise((resolve, reject) => {\n value.then(\n (data: any) => resolve(this.transform(undefined, data, targetType, undefined, undefined, level + 1)),\n reject\n );\n });\n } else if (!isMap && value !== null && typeof value === 'object' && typeof value.then === 'function') {\n // Note: We should not enter this, as promise has been handled above\n // This option simply returns the Promise preventing a JS error from happening and should be an inaccessible path.\n return value; // skip promise transformation\n } else if (typeof value === 'object' && value !== null) {\n // try to guess the type\n if (!targetType && value.constructor !== Object /* && TransformationType === TransformationType.CLASS_TO_PLAIN*/)\n targetType = value.constructor;\n if (!targetType && source) targetType = source.constructor;\n\n if (this.options.enableCircularCheck) {\n // add transformed type to prevent circular references\n this.recursionStack.add(value);\n }\n\n const keys = this.getKeys(targetType as Function, value, isMap);\n let newValue: any = source ? source : {};\n if (\n !source &&\n (this.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this.transformationType === TransformationType.CLASS_TO_CLASS)\n ) {\n if (isMap) {\n newValue = new Map();\n } else if (targetType) {\n newValue = new (targetType as any)();\n } else {\n newValue = {};\n }\n }\n\n // traverse over keys\n for (const key of keys) {\n if (key === '__proto__' || key === 'constructor') {\n continue;\n }\n\n const valueKey = key;\n let newValueKey = key,\n propertyName = key;\n if (!this.options.ignoreDecorators && targetType) {\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadataByCustomName(targetType as Function, key);\n if (exposeMetadata) {\n propertyName = exposeMetadata.propertyName;\n newValueKey = exposeMetadata.propertyName;\n }\n } else if (\n this.transformationType === TransformationType.CLASS_TO_PLAIN ||\n this.transformationType === TransformationType.CLASS_TO_CLASS\n ) {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(targetType as Function, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n newValueKey = exposeMetadata.options.name;\n }\n }\n }\n\n // get a subvalue\n let subValue: any = undefined;\n if (value instanceof Map) {\n subValue = value.get(valueKey);\n } else if (value[valueKey] instanceof Function) {\n subValue = value[valueKey]();\n } else {\n subValue = value[valueKey];\n }\n\n // determine a type\n let type: any = undefined,\n isSubValueMap = subValue instanceof Map;\n if (targetType && isMap) {\n type = targetType;\n } else if (targetType) {\n const metadata = defaultMetadataStorage.findTypeMetadata(targetType as Function, propertyName);\n if (metadata) {\n const options: TypeHelpOptions = { newObject: newValue, object: value, property: propertyName };\n const newType = metadata.typeFunction ? metadata.typeFunction(options) : metadata.reflectedType;\n if (\n metadata.options &&\n metadata.options.discriminator &&\n metadata.options.discriminator.property &&\n metadata.options.discriminator.subTypes\n ) {\n if (!(value[valueKey] instanceof Array)) {\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n type = metadata.options.discriminator.subTypes.find(subType => {\n if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) {\n return subType.name === subValue[metadata.options.discriminator.property];\n }\n });\n type === undefined ? (type = newType) : (type = type.value);\n if (!metadata.options.keepDiscriminatorProperty) {\n if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) {\n delete subValue[metadata.options.discriminator.property];\n }\n }\n }\n if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n type = subValue.constructor;\n }\n if (this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n subValue[metadata.options.discriminator.property] = metadata.options.discriminator.subTypes.find(\n subType => subType.value === subValue.constructor\n ).name;\n }\n } else {\n type = metadata;\n }\n } else {\n type = newType;\n }\n isSubValueMap = isSubValueMap || metadata.reflectedType === Map;\n } else if (this.options.targetMaps) {\n // try to find a type in target maps\n this.options.targetMaps\n .filter(map => map.target === targetType && !!map.properties[propertyName])\n .forEach(map => (type = map.properties[propertyName]));\n } else if (\n this.options.enableImplicitConversion &&\n this.transformationType === TransformationType.PLAIN_TO_CLASS\n ) {\n // if we have no registererd type via the @Type() decorator then we check if we have any\n // type declarations in reflect-metadata (type declaration is emited only if some decorator is added to the property.)\n const reflectedType = (Reflect as any).getMetadata(\n 'design:type',\n (targetType as Function).prototype,\n propertyName\n );\n\n if (reflectedType) {\n type = reflectedType;\n }\n }\n }\n\n // if value is an array try to get its custom array type\n const arrayType = Array.isArray(value[valueKey])\n ? this.getReflectedType(targetType as Function, propertyName)\n : undefined;\n\n // const subValueKey = TransformationType === TransformationType.PLAIN_TO_CLASS && newKeyName ? newKeyName : key;\n const subSource = source ? source[valueKey] : undefined;\n\n // if its deserialization then type if required\n // if we uncomment this types like string[] will not work\n // if (this.transformationType === TransformationType.PLAIN_TO_CLASS && !type && subValue instanceof Object && !(subValue instanceof Date))\n // throw new Error(`Cannot determine type for ${(targetType as any).name }.${propertyName}, did you forget to specify a @Type?`);\n\n // if newValue is a source object that has method that match newKeyName then skip it\n if (newValue.constructor.prototype) {\n const descriptor = Object.getOwnPropertyDescriptor(newValue.constructor.prototype, newValueKey);\n if (\n (this.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this.transformationType === TransformationType.CLASS_TO_CLASS) &&\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ((descriptor && !descriptor.set) || newValue[newValueKey] instanceof Function)\n )\n // || TransformationType === TransformationType.CLASS_TO_CLASS\n continue;\n }\n\n if (!this.options.enableCircularCheck || !this.isCircular(subValue)) {\n const transformKey = this.transformationType === TransformationType.PLAIN_TO_CLASS ? newValueKey : key;\n let finalValue;\n\n if (this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n // Get original value\n finalValue = value[transformKey];\n // Apply custom transformation\n finalValue = this.applyCustomTransformations(\n finalValue,\n targetType as Function,\n transformKey,\n value,\n this.transformationType\n );\n // If nothing change, it means no custom transformation was applied, so use the subValue.\n finalValue = value[transformKey] === finalValue ? subValue : finalValue;\n // Apply the default transformation\n finalValue = this.transform(subSource, finalValue, type, arrayType, isSubValueMap, level + 1);\n } else {\n if (subValue === undefined && this.options.exposeDefaultValues) {\n // Set default value if nothing provided\n finalValue = newValue[newValueKey];\n } else {\n finalValue = this.transform(subSource, subValue, type, arrayType, isSubValueMap, level + 1);\n finalValue = this.applyCustomTransformations(\n finalValue,\n targetType as Function,\n transformKey,\n value,\n this.transformationType\n );\n }\n }\n\n if (finalValue !== undefined || this.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n } else {\n newValue[newValueKey] = finalValue;\n }\n }\n } else if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n let finalValue = subValue;\n finalValue = this.applyCustomTransformations(\n finalValue,\n targetType as Function,\n key,\n value,\n this.transformationType\n );\n if (finalValue !== undefined || this.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n } else {\n newValue[newValueKey] = finalValue;\n }\n }\n }\n }\n\n if (this.options.enableCircularCheck) {\n this.recursionStack.delete(value);\n }\n\n return newValue;\n } else {\n return value;\n }\n }\n\n private applyCustomTransformations(\n value: any,\n target: Function,\n key: string,\n obj: any,\n transformationType: TransformationType\n ): boolean {\n let metadatas = defaultMetadataStorage.findTransformMetadatas(target, key, this.transformationType);\n\n // apply versioning options\n if (this.options.version !== undefined) {\n metadatas = metadatas.filter(metadata => {\n if (!metadata.options) return true;\n\n return this.checkVersion(metadata.options.since, metadata.options.until);\n });\n }\n\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n metadatas = metadatas.filter(metadata => {\n if (!metadata.options) return true;\n\n return this.checkGroups(metadata.options.groups);\n });\n } else {\n metadatas = metadatas.filter(metadata => {\n return !metadata.options || !metadata.options.groups || !metadata.options.groups.length;\n });\n }\n\n metadatas.forEach(metadata => {\n value = metadata.transformFn({ value, key, obj, type: transformationType, options: this.options });\n });\n\n return value;\n }\n\n // preventing circular references\n private isCircular(object: Record): boolean {\n return this.recursionStack.has(object);\n }\n\n private getReflectedType(target: Function, propertyName: string): Function | undefined {\n if (!target) return undefined;\n const meta = defaultMetadataStorage.findTypeMetadata(target, propertyName);\n return meta ? meta.reflectedType : undefined;\n }\n\n private getKeys(target: Function, object: Record, isMap: boolean): string[] {\n // determine exclusion strategy\n let strategy = defaultMetadataStorage.getStrategy(target);\n if (strategy === 'none') strategy = this.options.strategy || 'exposeAll'; // exposeAll is default strategy\n\n // get all keys that need to expose\n let keys: any[] = [];\n if (strategy === 'exposeAll' || isMap) {\n if (object instanceof Map) {\n keys = Array.from(object.keys());\n } else {\n keys = Object.keys(object);\n }\n }\n\n if (isMap) {\n // expose & exclude do not apply for map keys only to fields\n return keys;\n }\n\n if (!this.options.ignoreDecorators && target) {\n // add all exposed to list of keys\n let exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType);\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n exposedProperties = exposedProperties.map(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n return exposeMetadata.options.name;\n }\n\n return key;\n });\n }\n if (this.options.excludeExtraneousValues) {\n keys = exposedProperties;\n } else {\n keys = keys.concat(exposedProperties);\n }\n\n // exclude excluded properties\n const excludedProperties = defaultMetadataStorage.getExcludedProperties(target, this.transformationType);\n if (excludedProperties.length > 0) {\n keys = keys.filter(key => {\n return !excludedProperties.includes(key);\n });\n }\n\n // apply versioning options\n if (this.options.version !== undefined) {\n keys = keys.filter(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options) return true;\n\n return this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until);\n });\n }\n\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n keys = keys.filter(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options) return true;\n\n return this.checkGroups(exposeMetadata.options.groups);\n });\n } else {\n keys = keys.filter(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n return (\n !exposeMetadata ||\n !exposeMetadata.options ||\n !exposeMetadata.options.groups ||\n !exposeMetadata.options.groups.length\n );\n });\n }\n }\n\n // exclude prefixed properties\n if (this.options.excludePrefixes && this.options.excludePrefixes.length) {\n keys = keys.filter(key =>\n this.options.excludePrefixes.every(prefix => {\n return key.substr(0, prefix.length) !== prefix;\n })\n );\n }\n\n // make sure we have unique keys\n keys = keys.filter((key, index, self) => {\n return self.indexOf(key) === index;\n });\n\n return keys;\n }\n\n private checkVersion(since: number, until: number): boolean {\n let decision = true;\n if (decision && since) decision = this.options.version >= since;\n if (decision && until) decision = this.options.version < until;\n\n return decision;\n }\n\n private checkGroups(groups: string[]): boolean {\n if (!groups) return true;\n\n return this.options.groups.some(optionGroup => groups.includes(optionGroup));\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/constants/default-options.constant.js b/views/node_modules/class-transformer/cjs/constants/default-options.constant.js deleted file mode 100644 index a25f3a6..0000000 --- a/views/node_modules/class-transformer/cjs/constants/default-options.constant.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultOptions = void 0; -/** - * These are the default options used by any transformation operation. - */ -exports.defaultOptions = { - enableCircularCheck: false, - enableImplicitConversion: false, - excludeExtraneousValues: false, - excludePrefixes: undefined, - exposeDefaultValues: false, - exposeUnsetFields: true, - groups: undefined, - ignoreDecorators: false, - strategy: undefined, - targetMaps: undefined, - version: undefined, -}; -//# sourceMappingURL=default-options.constant.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/constants/default-options.constant.js.map b/views/node_modules/class-transformer/cjs/constants/default-options.constant.js.map deleted file mode 100644 index 62ef260..0000000 --- a/views/node_modules/class-transformer/cjs/constants/default-options.constant.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"default-options.constant.js","sourceRoot":"","sources":["../../../src/constants/default-options.constant.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACU,QAAA,cAAc,GAAmC;IAC5D,mBAAmB,EAAE,KAAK;IAC1B,wBAAwB,EAAE,KAAK;IAC/B,uBAAuB,EAAE,KAAK;IAC9B,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,KAAK;IACvB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;CACnB,CAAC","sourcesContent":["import { ClassTransformOptions } from '../interfaces/class-transformer-options.interface';\n\n/**\n * These are the default options used by any transformation operation.\n */\nexport const defaultOptions: Partial = {\n enableCircularCheck: false,\n enableImplicitConversion: false,\n excludeExtraneousValues: false,\n excludePrefixes: undefined,\n exposeDefaultValues: false,\n exposeUnsetFields: true,\n groups: undefined,\n ignoreDecorators: false,\n strategy: undefined,\n targetMaps: undefined,\n version: undefined,\n};\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/exclude.decorator.js b/views/node_modules/class-transformer/cjs/decorators/exclude.decorator.js deleted file mode 100644 index 043a5ef..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/exclude.decorator.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Exclude = void 0; -const storage_1 = require("../storage"); -/** - * Marks the given class or property as excluded. By default the property is excluded in both - * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction - * via using the `toPlainOnly` or `toClassOnly` option. - * - * Can be applied to class definitions and properties. - */ -function Exclude(options = {}) { - /** - * NOTE: The `propertyName` property must be marked as optional because - * this decorator used both as a class and a property decorator and the - * Typescript compiler will freak out if we make it mandatory as a class - * decorator only receives one parameter. - */ - return function (object, propertyName) { - storage_1.defaultMetadataStorage.addExcludeMetadata({ - target: object instanceof Function ? object : object.constructor, - propertyName: propertyName, - options, - }); - }; -} -exports.Exclude = Exclude; -//# sourceMappingURL=exclude.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/exclude.decorator.js.map b/views/node_modules/class-transformer/cjs/decorators/exclude.decorator.js.map deleted file mode 100644 index 304efd0..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/exclude.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"exclude.decorator.js","sourceRoot":"","sources":["../../../src/decorators/exclude.decorator.ts"],"names":[],"mappings":";;;AAAA,wCAAoD;AAGpD;;;;;;GAMG;AACH,SAAgB,OAAO,CAAC,UAA0B,EAAE;IAClD;;;;;OAKG;IACH,OAAO,UAAU,MAAW,EAAE,YAA8B;QAC1D,gCAAsB,CAAC,kBAAkB,CAAC;YACxC,MAAM,EAAE,MAAM,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW;YAChE,YAAY,EAAE,YAAsB;YACpC,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAdD,0BAcC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { ExcludeOptions } from '../interfaces';\n\n/**\n * Marks the given class or property as excluded. By default the property is excluded in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Exclude(options: ExcludeOptions = {}): PropertyDecorator & ClassDecorator {\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object: any, propertyName?: string | Symbol): void {\n defaultMetadataStorage.addExcludeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName as string,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/expose.decorator.js b/views/node_modules/class-transformer/cjs/decorators/expose.decorator.js deleted file mode 100644 index 7650873..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/expose.decorator.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Expose = void 0; -const storage_1 = require("../storage"); -/** - * Marks the given class or property as included. By default the property is included in both - * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction - * via using the `toPlainOnly` or `toClassOnly` option. - * - * Can be applied to class definitions and properties. - */ -function Expose(options = {}) { - /** - * NOTE: The `propertyName` property must be marked as optional because - * this decorator used both as a class and a property decorator and the - * Typescript compiler will freak out if we make it mandatory as a class - * decorator only receives one parameter. - */ - return function (object, propertyName) { - storage_1.defaultMetadataStorage.addExposeMetadata({ - target: object instanceof Function ? object : object.constructor, - propertyName: propertyName, - options, - }); - }; -} -exports.Expose = Expose; -//# sourceMappingURL=expose.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/expose.decorator.js.map b/views/node_modules/class-transformer/cjs/decorators/expose.decorator.js.map deleted file mode 100644 index 65b7046..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/expose.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"expose.decorator.js","sourceRoot":"","sources":["../../../src/decorators/expose.decorator.ts"],"names":[],"mappings":";;;AAAA,wCAAoD;AAGpD;;;;;;GAMG;AACH,SAAgB,MAAM,CAAC,UAAyB,EAAE;IAChD;;;;;OAKG;IACH,OAAO,UAAU,MAAW,EAAE,YAA8B;QAC1D,gCAAsB,CAAC,iBAAiB,CAAC;YACvC,MAAM,EAAE,MAAM,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW;YAChE,YAAY,EAAE,YAAsB;YACpC,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAdD,wBAcC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { ExposeOptions } from '../interfaces';\n\n/**\n * Marks the given class or property as included. By default the property is included in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Expose(options: ExposeOptions = {}): PropertyDecorator & ClassDecorator {\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object: any, propertyName?: string | Symbol): void {\n defaultMetadataStorage.addExposeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName as string,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/index.js b/views/node_modules/class-transformer/cjs/decorators/index.js deleted file mode 100644 index 7d31a30..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/index.js +++ /dev/null @@ -1,20 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./exclude.decorator"), exports); -__exportStar(require("./expose.decorator"), exports); -__exportStar(require("./transform-class-to-class.decorator"), exports); -__exportStar(require("./transform-class-to-plain.decorator"), exports); -__exportStar(require("./transform-plain-to-class.decorator"), exports); -__exportStar(require("./transform.decorator"), exports); -__exportStar(require("./type.decorator"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/index.js.map b/views/node_modules/class-transformer/cjs/decorators/index.js.map deleted file mode 100644 index 0520ea7..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAoC;AACpC,qDAAmC;AACnC,uEAAqD;AACrD,uEAAqD;AACrD,uEAAqD;AACrD,wDAAsC;AACtC,mDAAiC","sourcesContent":["export * from './exclude.decorator';\nexport * from './expose.decorator';\nexport * from './transform-class-to-class.decorator';\nexport * from './transform-class-to-plain.decorator';\nexport * from './transform-plain-to-class.decorator';\nexport * from './transform.decorator';\nexport * from './type.decorator';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/transform-class-to-class.decorator.js b/views/node_modules/class-transformer/cjs/decorators/transform-class-to-class.decorator.js deleted file mode 100644 index 4d0d40d..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/transform-class-to-class.decorator.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TransformClassToClass = void 0; -const ClassTransformer_1 = require("../ClassTransformer"); -/** - * Return the class instance only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -function TransformClassToClass(params) { - return function (target, propertyKey, descriptor) { - const classTransformer = new ClassTransformer_1.ClassTransformer(); - const originalMethod = descriptor.value; - descriptor.value = function (...args) { - const result = originalMethod.apply(this, args); - const isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then((data) => classTransformer.classToClass(data, params)) - : classTransformer.classToClass(result, params); - }; - }; -} -exports.TransformClassToClass = TransformClassToClass; -//# sourceMappingURL=transform-class-to-class.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/transform-class-to-class.decorator.js.map b/views/node_modules/class-transformer/cjs/decorators/transform-class-to-class.decorator.js.map deleted file mode 100644 index d0ca11c..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/transform-class-to-class.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-class-to-class.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform-class-to-class.decorator.ts"],"names":[],"mappings":";;;AAAA,0DAAuD;AAGvD;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,MAA8B;IAClE,OAAO,UAAU,MAA2B,EAAE,WAA4B,EAAE,UAA8B;QACxG,MAAM,gBAAgB,GAAqB,IAAI,mCAAgB,EAAE,CAAC;QAClE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;YACzC,MAAM,MAAM,GAAQ,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrD,MAAM,SAAS,GACb,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;YAChH,OAAO,SAAS;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACzE,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAdD,sDAcC","sourcesContent":["import { ClassTransformer } from '../ClassTransformer';\nimport { ClassTransformOptions } from '../interfaces';\n\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformClassToClass(params?: ClassTransformOptions): MethodDecorator {\n return function (target: Record, propertyKey: string | Symbol, descriptor: PropertyDescriptor): void {\n const classTransformer: ClassTransformer = new ClassTransformer();\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: any[]): Record {\n const result: any = originalMethod.apply(this, args);\n const isPromise =\n !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then((data: any) => classTransformer.classToClass(data, params))\n : classTransformer.classToClass(result, params);\n };\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/transform-class-to-plain.decorator.js b/views/node_modules/class-transformer/cjs/decorators/transform-class-to-plain.decorator.js deleted file mode 100644 index 50e96d7..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/transform-class-to-plain.decorator.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TransformClassToPlain = void 0; -const ClassTransformer_1 = require("../ClassTransformer"); -/** - * Transform the object from class to plain object and return only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -function TransformClassToPlain(params) { - return function (target, propertyKey, descriptor) { - const classTransformer = new ClassTransformer_1.ClassTransformer(); - const originalMethod = descriptor.value; - descriptor.value = function (...args) { - const result = originalMethod.apply(this, args); - const isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then((data) => classTransformer.classToPlain(data, params)) - : classTransformer.classToPlain(result, params); - }; - }; -} -exports.TransformClassToPlain = TransformClassToPlain; -//# sourceMappingURL=transform-class-to-plain.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/transform-class-to-plain.decorator.js.map b/views/node_modules/class-transformer/cjs/decorators/transform-class-to-plain.decorator.js.map deleted file mode 100644 index 84bf65c..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/transform-class-to-plain.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-class-to-plain.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform-class-to-plain.decorator.ts"],"names":[],"mappings":";;;AAAA,0DAAuD;AAGvD;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,MAA8B;IAClE,OAAO,UAAU,MAA2B,EAAE,WAA4B,EAAE,UAA8B;QACxG,MAAM,gBAAgB,GAAqB,IAAI,mCAAgB,EAAE,CAAC;QAClE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;YACzC,MAAM,MAAM,GAAQ,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrD,MAAM,SAAS,GACb,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;YAChH,OAAO,SAAS;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACzE,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAdD,sDAcC","sourcesContent":["import { ClassTransformer } from '../ClassTransformer';\nimport { ClassTransformOptions } from '../interfaces';\n\n/**\n * Transform the object from class to plain object and return only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformClassToPlain(params?: ClassTransformOptions): MethodDecorator {\n return function (target: Record, propertyKey: string | Symbol, descriptor: PropertyDescriptor): void {\n const classTransformer: ClassTransformer = new ClassTransformer();\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: any[]): Record {\n const result: any = originalMethod.apply(this, args);\n const isPromise =\n !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then((data: any) => classTransformer.classToPlain(data, params))\n : classTransformer.classToPlain(result, params);\n };\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/transform-plain-to-class.decorator.js b/views/node_modules/class-transformer/cjs/decorators/transform-plain-to-class.decorator.js deleted file mode 100644 index 00b7d4c..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/transform-plain-to-class.decorator.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TransformPlainToClass = void 0; -const ClassTransformer_1 = require("../ClassTransformer"); -/** - * Return the class instance only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -function TransformPlainToClass(classType, params) { - return function (target, propertyKey, descriptor) { - const classTransformer = new ClassTransformer_1.ClassTransformer(); - const originalMethod = descriptor.value; - descriptor.value = function (...args) { - const result = originalMethod.apply(this, args); - const isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then((data) => classTransformer.plainToClass(classType, data, params)) - : classTransformer.plainToClass(classType, result, params); - }; - }; -} -exports.TransformPlainToClass = TransformPlainToClass; -//# sourceMappingURL=transform-plain-to-class.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/transform-plain-to-class.decorator.js.map b/views/node_modules/class-transformer/cjs/decorators/transform-plain-to-class.decorator.js.map deleted file mode 100644 index 5361e1d..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/transform-plain-to-class.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-plain-to-class.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform-plain-to-class.decorator.ts"],"names":[],"mappings":";;;AAAA,0DAAuD;AAGvD;;;;GAIG;AACH,SAAgB,qBAAqB,CACnC,SAAgC,EAChC,MAA8B;IAE9B,OAAO,UAAU,MAA2B,EAAE,WAA4B,EAAE,UAA8B;QACxG,MAAM,gBAAgB,GAAqB,IAAI,mCAAgB,EAAE,CAAC;QAClE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;YACzC,MAAM,MAAM,GAAQ,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrD,MAAM,SAAS,GACb,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;YAChH,OAAO,SAAS;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBACpF,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAjBD,sDAiBC","sourcesContent":["import { ClassTransformer } from '../ClassTransformer';\nimport { ClassTransformOptions, ClassConstructor } from '../interfaces';\n\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformPlainToClass(\n classType: ClassConstructor,\n params?: ClassTransformOptions\n): MethodDecorator {\n return function (target: Record, propertyKey: string | Symbol, descriptor: PropertyDescriptor): void {\n const classTransformer: ClassTransformer = new ClassTransformer();\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: any[]): Record {\n const result: any = originalMethod.apply(this, args);\n const isPromise =\n !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then((data: any) => classTransformer.plainToClass(classType, data, params))\n : classTransformer.plainToClass(classType, result, params);\n };\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/transform.decorator.js b/views/node_modules/class-transformer/cjs/decorators/transform.decorator.js deleted file mode 100644 index 9611551..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/transform.decorator.js +++ /dev/null @@ -1,21 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Transform = void 0; -const storage_1 = require("../storage"); -/** - * Defines a custom logic for value transformation. - * - * Can be applied to properties only. - */ -function Transform(transformFn, options = {}) { - return function (target, propertyName) { - storage_1.defaultMetadataStorage.addTransformMetadata({ - target: target.constructor, - propertyName: propertyName, - transformFn, - options, - }); - }; -} -exports.Transform = Transform; -//# sourceMappingURL=transform.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/transform.decorator.js.map b/views/node_modules/class-transformer/cjs/decorators/transform.decorator.js.map deleted file mode 100644 index 74e754b..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/transform.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform.decorator.ts"],"names":[],"mappings":";;;AAAA,wCAAoD;AAGpD;;;;GAIG;AACH,SAAgB,SAAS,CACvB,WAA+C,EAC/C,UAA4B,EAAE;IAE9B,OAAO,UAAU,MAAW,EAAE,YAA6B;QACzD,gCAAsB,CAAC,oBAAoB,CAAC;YAC1C,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAsB;YACpC,WAAW;YACX,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAZD,8BAYC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { TransformFnParams, TransformOptions } from '../interfaces';\n\n/**\n * Defines a custom logic for value transformation.\n *\n * Can be applied to properties only.\n */\nexport function Transform(\n transformFn: (params: TransformFnParams) => any,\n options: TransformOptions = {}\n): PropertyDecorator {\n return function (target: any, propertyName: string | Symbol): void {\n defaultMetadataStorage.addTransformMetadata({\n target: target.constructor,\n propertyName: propertyName as string,\n transformFn,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/type.decorator.js b/views/node_modules/class-transformer/cjs/decorators/type.decorator.js deleted file mode 100644 index a3822b3..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/type.decorator.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Type = void 0; -const storage_1 = require("../storage"); -/** - * Specifies a type of the property. - * The given TypeFunction can return a constructor. A discriminator can be given in the options. - * - * Can be applied to properties only. - */ -function Type(typeFunction, options = {}) { - return function (target, propertyName) { - const reflectedType = Reflect.getMetadata('design:type', target, propertyName); - storage_1.defaultMetadataStorage.addTypeMetadata({ - target: target.constructor, - propertyName: propertyName, - reflectedType, - typeFunction, - options, - }); - }; -} -exports.Type = Type; -//# sourceMappingURL=type.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/decorators/type.decorator.js.map b/views/node_modules/class-transformer/cjs/decorators/type.decorator.js.map deleted file mode 100644 index 9e52197..0000000 --- a/views/node_modules/class-transformer/cjs/decorators/type.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type.decorator.js","sourceRoot":"","sources":["../../../src/decorators/type.decorator.ts"],"names":[],"mappings":";;;AAAA,wCAAoD;AAGpD;;;;;GAKG;AACH,SAAgB,IAAI,CAClB,YAAmD,EACnD,UAAuB,EAAE;IAEzB,OAAO,UAAU,MAAW,EAAE,YAA6B;QACzD,MAAM,aAAa,GAAI,OAAe,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACxF,gCAAsB,CAAC,eAAe,CAAC;YACrC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAsB;YACpC,aAAa;YACb,YAAY;YACZ,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAdD,oBAcC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { TypeHelpOptions, TypeOptions } from '../interfaces';\n\n/**\n * Specifies a type of the property.\n * The given TypeFunction can return a constructor. A discriminator can be given in the options.\n *\n * Can be applied to properties only.\n */\nexport function Type(\n typeFunction?: (type?: TypeHelpOptions) => Function,\n options: TypeOptions = {}\n): PropertyDecorator {\n return function (target: any, propertyName: string | Symbol): void {\n const reflectedType = (Reflect as any).getMetadata('design:type', target, propertyName);\n defaultMetadataStorage.addTypeMetadata({\n target: target.constructor,\n propertyName: propertyName as string,\n reflectedType,\n typeFunction,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/enums/index.js b/views/node_modules/class-transformer/cjs/enums/index.js deleted file mode 100644 index 285beb1..0000000 --- a/views/node_modules/class-transformer/cjs/enums/index.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./transformation-type.enum"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/enums/index.js.map b/views/node_modules/class-transformer/cjs/enums/index.js.map deleted file mode 100644 index e5af233..0000000 --- a/views/node_modules/class-transformer/cjs/enums/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6DAA2C","sourcesContent":["export * from './transformation-type.enum';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/enums/transformation-type.enum.js b/views/node_modules/class-transformer/cjs/enums/transformation-type.enum.js deleted file mode 100644 index 2d2645e..0000000 --- a/views/node_modules/class-transformer/cjs/enums/transformation-type.enum.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.TransformationType = void 0; -var TransformationType; -(function (TransformationType) { - TransformationType[TransformationType["PLAIN_TO_CLASS"] = 0] = "PLAIN_TO_CLASS"; - TransformationType[TransformationType["CLASS_TO_PLAIN"] = 1] = "CLASS_TO_PLAIN"; - TransformationType[TransformationType["CLASS_TO_CLASS"] = 2] = "CLASS_TO_CLASS"; -})(TransformationType = exports.TransformationType || (exports.TransformationType = {})); -//# sourceMappingURL=transformation-type.enum.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/enums/transformation-type.enum.js.map b/views/node_modules/class-transformer/cjs/enums/transformation-type.enum.js.map deleted file mode 100644 index 766c447..0000000 --- a/views/node_modules/class-transformer/cjs/enums/transformation-type.enum.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transformation-type.enum.js","sourceRoot":"","sources":["../../../src/enums/transformation-type.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,+EAAc,CAAA;IACd,+EAAc,CAAA;IACd,+EAAc,CAAA;AAChB,CAAC,EAJW,kBAAkB,GAAlB,0BAAkB,KAAlB,0BAAkB,QAI7B","sourcesContent":["export enum TransformationType {\n PLAIN_TO_CLASS,\n CLASS_TO_PLAIN,\n CLASS_TO_CLASS,\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/index.js b/views/node_modules/class-transformer/cjs/index.js deleted file mode 100644 index 59bd41c..0000000 --- a/views/node_modules/class-transformer/cjs/index.js +++ /dev/null @@ -1,63 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.deserializeArray = exports.deserialize = exports.serialize = exports.classToClassFromExist = exports.classToClass = exports.plainToClassFromExist = exports.plainToClass = exports.classToPlainFromExist = exports.classToPlain = exports.ClassTransformer = void 0; -const ClassTransformer_1 = require("./ClassTransformer"); -var ClassTransformer_2 = require("./ClassTransformer"); -Object.defineProperty(exports, "ClassTransformer", { enumerable: true, get: function () { return ClassTransformer_2.ClassTransformer; } }); -__exportStar(require("./decorators"), exports); -__exportStar(require("./interfaces"), exports); -__exportStar(require("./enums"), exports); -const classTransformer = new ClassTransformer_1.ClassTransformer(); -function classToPlain(object, options) { - return classTransformer.classToPlain(object, options); -} -exports.classToPlain = classToPlain; -function classToPlainFromExist(object, plainObject, options) { - return classTransformer.classToPlainFromExist(object, plainObject, options); -} -exports.classToPlainFromExist = classToPlainFromExist; -function plainToClass(cls, plain, options) { - return classTransformer.plainToClass(cls, plain, options); -} -exports.plainToClass = plainToClass; -function plainToClassFromExist(clsObject, plain, options) { - return classTransformer.plainToClassFromExist(clsObject, plain, options); -} -exports.plainToClassFromExist = plainToClassFromExist; -function classToClass(object, options) { - return classTransformer.classToClass(object, options); -} -exports.classToClass = classToClass; -function classToClassFromExist(object, fromObject, options) { - return classTransformer.classToClassFromExist(object, fromObject, options); -} -exports.classToClassFromExist = classToClassFromExist; -function serialize(object, options) { - return classTransformer.serialize(object, options); -} -exports.serialize = serialize; -/** - * Deserializes given JSON string to a object of the given class. - */ -function deserialize(cls, json, options) { - return classTransformer.deserialize(cls, json, options); -} -exports.deserialize = deserialize; -/** - * Deserializes given JSON string to an array of objects of the given class. - */ -function deserializeArray(cls, json, options) { - return classTransformer.deserializeArray(cls, json, options); -} -exports.deserializeArray = deserializeArray; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/index.js.map b/views/node_modules/class-transformer/cjs/index.js.map deleted file mode 100644 index f53919b..0000000 --- a/views/node_modules/class-transformer/cjs/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,yDAAsD;AAItD,uDAAsD;AAA7C,oHAAA,gBAAgB,OAAA;AACzB,+CAA6B;AAC7B,+CAA6B;AAC7B,0CAAwB;AAExB,MAAM,gBAAgB,GAAG,IAAI,mCAAgB,EAAE,CAAC;AAOhD,SAAgB,YAAY,CAC1B,MAAe,EACf,OAA+B;IAE/B,OAAO,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AALD,oCAKC;AAiBD,SAAgB,qBAAqB,CACnC,MAAS,EACT,WAAwD,EACxD,OAA+B;IAE/B,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAND,sDAMC;AAOD,SAAgB,YAAY,CAAO,GAAwB,EAAE,KAAc,EAAE,OAA+B;IAC1G,OAAO,gBAAgB,CAAC,YAAY,CAAC,GAAG,EAAE,KAAY,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AAFD,oCAEC;AASD,SAAgB,qBAAqB,CAAO,SAAY,EAAE,KAAc,EAAE,OAA+B;IACvG,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC;AAFD,sDAEC;AAOD,SAAgB,YAAY,CAAI,MAAe,EAAE,OAA+B;IAC9E,OAAO,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAFD,oCAEC;AASD,SAAgB,qBAAqB,CAAI,MAAS,EAAE,UAAmB,EAAE,OAA+B;IACtG,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAFD,sDAEC;AAOD,SAAgB,SAAS,CAAI,MAAe,EAAE,OAA+B;IAC3E,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC;AAFD,8BAEC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAI,GAAwB,EAAE,IAAY,EAAE,OAA+B;IACpG,OAAO,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAFD,kCAEC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAI,GAAwB,EAAE,IAAY,EAAE,OAA+B;IACzG,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAFD,4CAEC","sourcesContent":["import { ClassTransformer } from './ClassTransformer';\nimport { ClassTransformOptions } from './interfaces';\nimport { ClassConstructor } from './interfaces';\n\nexport { ClassTransformer } from './ClassTransformer';\nexport * from './decorators';\nexport * from './interfaces';\nexport * from './enums';\n\nconst classTransformer = new ClassTransformer();\n\n/**\n * Converts class (constructor) object to plain (literal) object. Also works with arrays.\n */\nexport function classToPlain(object: T, options?: ClassTransformOptions): Record;\nexport function classToPlain(object: T[], options?: ClassTransformOptions): Record[];\nexport function classToPlain(\n object: T | T[],\n options?: ClassTransformOptions\n): Record | Record[] {\n return classTransformer.classToPlain(object, options);\n}\n\n/**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\nexport function classToPlainFromExist(\n object: T,\n plainObject: Record,\n options?: ClassTransformOptions\n): Record;\nexport function classToPlainFromExist(\n object: T,\n plainObjects: Record[],\n options?: ClassTransformOptions\n): Record[];\nexport function classToPlainFromExist(\n object: T,\n plainObject: Record | Record[],\n options?: ClassTransformOptions\n): Record | Record[] {\n return classTransformer.classToPlainFromExist(object, plainObject, options);\n}\n\n/**\n * Converts plain (literal) object to class (constructor) object. Also works with arrays.\n */\nexport function plainToClass(cls: ClassConstructor, plain: V[], options?: ClassTransformOptions): T[];\nexport function plainToClass(cls: ClassConstructor, plain: V, options?: ClassTransformOptions): T;\nexport function plainToClass(cls: ClassConstructor, plain: V | V[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.plainToClass(cls, plain as any, options);\n}\n\n/**\n * Converts plain (literal) object to class (constructor) object.\n * Uses given object as source object (it means fills given object with data from plain object).\n * Also works with arrays.\n */\nexport function plainToClassFromExist(clsObject: T[], plain: V[], options?: ClassTransformOptions): T[];\nexport function plainToClassFromExist(clsObject: T, plain: V, options?: ClassTransformOptions): T;\nexport function plainToClassFromExist(clsObject: T, plain: V | V[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.plainToClassFromExist(clsObject, plain, options);\n}\n\n/**\n * Converts class (constructor) object to new class (constructor) object. Also works with arrays.\n */\nexport function classToClass(object: T, options?: ClassTransformOptions): T;\nexport function classToClass(object: T[], options?: ClassTransformOptions): T[];\nexport function classToClass(object: T | T[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.classToClass(object, options);\n}\n\n/**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\nexport function classToClassFromExist(object: T, fromObject: T, options?: ClassTransformOptions): T;\nexport function classToClassFromExist(object: T, fromObjects: T[], options?: ClassTransformOptions): T[];\nexport function classToClassFromExist(object: T, fromObject: T | T[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.classToClassFromExist(object, fromObject, options);\n}\n\n/**\n * Serializes given object to a JSON string.\n */\nexport function serialize(object: T, options?: ClassTransformOptions): string;\nexport function serialize(object: T[], options?: ClassTransformOptions): string;\nexport function serialize(object: T | T[], options?: ClassTransformOptions): string {\n return classTransformer.serialize(object, options);\n}\n\n/**\n * Deserializes given JSON string to a object of the given class.\n */\nexport function deserialize(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T {\n return classTransformer.deserialize(cls, json, options);\n}\n\n/**\n * Deserializes given JSON string to an array of objects of the given class.\n */\nexport function deserializeArray(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T[] {\n return classTransformer.deserializeArray(cls, json, options);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/class-constructor.type.js b/views/node_modules/class-transformer/cjs/interfaces/class-constructor.type.js deleted file mode 100644 index d8a1904..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/class-constructor.type.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=class-constructor.type.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/class-constructor.type.js.map b/views/node_modules/class-transformer/cjs/interfaces/class-constructor.type.js.map deleted file mode 100644 index e4b420a..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/class-constructor.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"class-constructor.type.js","sourceRoot":"","sources":["../../../src/interfaces/class-constructor.type.ts"],"names":[],"mappings":"","sourcesContent":["export type ClassConstructor = {\n new (...args: any[]): T;\n};\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/class-transformer-options.interface.js b/views/node_modules/class-transformer/cjs/interfaces/class-transformer-options.interface.js deleted file mode 100644 index ed30426..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/class-transformer-options.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=class-transformer-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/class-transformer-options.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/class-transformer-options.interface.js.map deleted file mode 100644 index 4401d79..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/class-transformer-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"class-transformer-options.interface.js","sourceRoot":"","sources":["../../../src/interfaces/class-transformer-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TargetMap } from './target-map.interface';\n\n/**\n * Options to be passed during transformation.\n */\nexport interface ClassTransformOptions {\n /**\n * Exclusion strategy. By default exposeAll is used, which means that it will expose all properties are transformed\n * by default.\n */\n strategy?: 'excludeAll' | 'exposeAll';\n\n /**\n * Indicates if extraneous properties should be excluded from the value when converting a plain value to a class.\n */\n excludeExtraneousValues?: boolean;\n\n /**\n * Only properties with given groups gonna be transformed.\n */\n groups?: string[];\n\n /**\n * Only properties with \"since\" > version < \"until\" gonna be transformed.\n */\n version?: number;\n\n /**\n * Excludes properties with the given prefixes. For example, if you mark your private properties with \"_\" and \"__\"\n * you can set this option's value to [\"_\", \"__\"] and all private properties will be skipped.\n * This works only for \"exposeAll\" strategy.\n */\n excludePrefixes?: string[];\n\n /**\n * If set to true then class transformer will ignore all @Expose and @Exclude decorators and what inside them.\n * This option is useful if you want to kinda clone your object but do not apply decorators affects.\n */\n ignoreDecorators?: boolean;\n\n /**\n * Target maps allows to set a Types of the transforming object without using @Type decorator.\n * This is useful when you are transforming external classes, or if you already have type metadata for\n * objects and you don't want to set it up again.\n */\n targetMaps?: TargetMap[];\n\n /**\n * If set to true then class transformer will perform a circular check. (circular check is turned off by default)\n * This option is useful when you know for sure that your types might have a circular dependency.\n */\n enableCircularCheck?: boolean;\n\n /**\n * If set to true then class transformer will try to convert properties implicitly to their target type based on their typing information.\n *\n * DEFAULT: `false`\n */\n enableImplicitConversion?: boolean;\n\n /**\n * If set to true then class transformer will take default values for unprovided fields.\n * This is useful when you convert a plain object to a class and have an optional field with a default value.\n */\n exposeDefaultValues?: boolean;\n\n /**\n * When set to true `undefined` fields will be ignored during class to plain transformation.\n *\n * DEFAULT: `true`\n */\n exposeUnsetFields?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/exclude-options.interface.js b/views/node_modules/class-transformer/cjs/interfaces/decorator-options/exclude-options.interface.js deleted file mode 100644 index 22130fb..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/exclude-options.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=exclude-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/exclude-options.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/decorator-options/exclude-options.interface.js.map deleted file mode 100644 index 3ccc700..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/exclude-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"exclude-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/exclude-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Possible transformation options for the @Exclude decorator.\n */\nexport interface ExcludeOptions {\n /**\n * Expose this property only when transforming from plain to class instance.\n */\n toClassOnly?: boolean;\n\n /**\n * Expose this property only when transforming from class instance to plain object.\n */\n toPlainOnly?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/expose-options.interface.js b/views/node_modules/class-transformer/cjs/interfaces/decorator-options/expose-options.interface.js deleted file mode 100644 index 40f7367..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/expose-options.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=expose-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/expose-options.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/decorator-options/expose-options.interface.js.map deleted file mode 100644 index 878e93e..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/expose-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"expose-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/expose-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Possible transformation options for the @Expose decorator.\n */\nexport interface ExposeOptions {\n /**\n * Name of property on the target object to expose the value of this property.\n */\n name?: string;\n\n /**\n * First version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n since?: number;\n\n /**\n * Last version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n until?: number;\n\n /**\n * List of transformation groups this property belongs to. When set,\n * the property will be exposed only when transform is called with\n * one of the groups specified.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { groups: ['user'] });\n * ```\n */\n groups?: string[];\n\n /**\n * Expose this property only when transforming from plain to class instance.\n */\n toClassOnly?: boolean;\n\n /**\n * Expose this property only when transforming from class instance to plain object.\n */\n toPlainOnly?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/transform-options.interface.js b/views/node_modules/class-transformer/cjs/interfaces/decorator-options/transform-options.interface.js deleted file mode 100644 index 7b60179..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/transform-options.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=transform-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/transform-options.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/decorator-options/transform-options.interface.js.map deleted file mode 100644 index 21bba54..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/transform-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/transform-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Possible transformation options for the @Transform decorator.\n */\nexport interface TransformOptions {\n /**\n * First version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n since?: number;\n\n /**\n * Last version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n until?: number;\n\n /**\n * List of transformation groups this property belongs to. When set,\n * the property will be exposed only when transform is called with\n * one of the groups specified.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { groups: ['user'] });\n * ```\n */\n groups?: string[];\n\n /**\n * Expose this property only when transforming from plain to class instance.\n */\n toClassOnly?: boolean;\n\n /**\n * Expose this property only when transforming from class instance to plain object.\n */\n toPlainOnly?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-discriminator-descriptor.interface.js b/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-discriminator-descriptor.interface.js deleted file mode 100644 index c739db4..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-discriminator-descriptor.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=type-discriminator-descriptor.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map deleted file mode 100644 index f6d533e..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-discriminator-descriptor.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/type-discriminator-descriptor.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { ClassConstructor } from '..';\n\n/**\n * Discriminator object containing the type information to select a proper type\n * during transformation when a discriminator property is provided.\n */\nexport interface DiscriminatorDescriptor {\n /**\n * The name of the property which holds the type information in the received object.\n */\n property: string;\n /**\n * List of the available types. The transformer will try to lookup the object\n * with the same key as the value received in the defined discriminator property\n * and create an instance of the defined class.\n */\n subTypes: {\n /**\n * Name of the type.\n */\n name: string;\n\n /**\n * A class constructor which can be used to create the object.\n */\n value: ClassConstructor;\n }[];\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-options.interface.js b/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-options.interface.js deleted file mode 100644 index 2a518a7..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-options.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=type-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-options.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-options.interface.js.map deleted file mode 100644 index d3cf046..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/decorator-options/type-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/type-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { DiscriminatorDescriptor } from './type-discriminator-descriptor.interface';\n\n/**\n * Possible transformation options for the @Type decorator.\n */\nexport interface TypeOptions {\n /**\n * Optional discriminator object, when provided the property value will be\n * initialized according to the specified object.\n */\n discriminator?: DiscriminatorDescriptor;\n\n /**\n * Indicates whether to keep the discriminator property on the\n * transformed object or not. Disabled by default.\n *\n * @default false\n */\n keepDiscriminatorProperty?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/index.js b/views/node_modules/class-transformer/cjs/interfaces/index.js deleted file mode 100644 index e5ef537..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/index.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./decorator-options/expose-options.interface"), exports); -__exportStar(require("./decorator-options/exclude-options.interface"), exports); -__exportStar(require("./decorator-options/transform-options.interface"), exports); -__exportStar(require("./decorator-options/type-discriminator-descriptor.interface"), exports); -__exportStar(require("./decorator-options/type-options.interface"), exports); -__exportStar(require("./metadata/exclude-metadata.interface"), exports); -__exportStar(require("./metadata/expose-metadata.interface"), exports); -__exportStar(require("./metadata/transform-metadata.interface"), exports); -__exportStar(require("./metadata/transform-fn-params.interface"), exports); -__exportStar(require("./metadata/type-metadata.interface"), exports); -__exportStar(require("./class-constructor.type"), exports); -__exportStar(require("./class-transformer-options.interface"), exports); -__exportStar(require("./target-map.interface"), exports); -__exportStar(require("./type-help-options.interface"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/index.js.map b/views/node_modules/class-transformer/cjs/interfaces/index.js.map deleted file mode 100644 index c01fd93..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+EAA6D;AAC7D,gFAA8D;AAC9D,kFAAgE;AAChE,8FAA4E;AAC5E,6EAA2D;AAC3D,wEAAsD;AACtD,uEAAqD;AACrD,0EAAwD;AACxD,2EAAyD;AACzD,qEAAmD;AACnD,2DAAyC;AACzC,wEAAsD;AACtD,yDAAuC;AACvC,gEAA8C","sourcesContent":["export * from './decorator-options/expose-options.interface';\nexport * from './decorator-options/exclude-options.interface';\nexport * from './decorator-options/transform-options.interface';\nexport * from './decorator-options/type-discriminator-descriptor.interface';\nexport * from './decorator-options/type-options.interface';\nexport * from './metadata/exclude-metadata.interface';\nexport * from './metadata/expose-metadata.interface';\nexport * from './metadata/transform-metadata.interface';\nexport * from './metadata/transform-fn-params.interface';\nexport * from './metadata/type-metadata.interface';\nexport * from './class-constructor.type';\nexport * from './class-transformer-options.interface';\nexport * from './target-map.interface';\nexport * from './type-help-options.interface';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/metadata/exclude-metadata.interface.js b/views/node_modules/class-transformer/cjs/interfaces/metadata/exclude-metadata.interface.js deleted file mode 100644 index 9f719e4..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/metadata/exclude-metadata.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=exclude-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/metadata/exclude-metadata.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/metadata/exclude-metadata.interface.js.map deleted file mode 100644 index ca4dad1..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/metadata/exclude-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"exclude-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/exclude-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { ExcludeOptions } from '..';\n\n/**\n * This object represents metadata assigned to a property via the @Exclude decorator.\n */\nexport interface ExcludeMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (class or property).\n *\n * Note: If the decorator is applied to a class the propertyName will be undefined.\n */\n propertyName: string | undefined;\n\n /**\n * Options passed to the @Exclude operator for this property.\n */\n options: ExcludeOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/metadata/expose-metadata.interface.js b/views/node_modules/class-transformer/cjs/interfaces/metadata/expose-metadata.interface.js deleted file mode 100644 index ef6d9a6..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/metadata/expose-metadata.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=expose-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/metadata/expose-metadata.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/metadata/expose-metadata.interface.js.map deleted file mode 100644 index 4902919..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/metadata/expose-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"expose-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/expose-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { ExposeOptions } from '..';\n\n/**\n * This object represents metadata assigned to a property via the @Expose decorator.\n */\nexport interface ExposeMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (class or property).\n *\n * Note: If the decorator is applied to a class the propertyName will be undefined.\n */\n propertyName: string | undefined;\n\n /**\n * Options passed to the @Expose operator for this property.\n */\n options: ExposeOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-fn-params.interface.js b/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-fn-params.interface.js deleted file mode 100644 index 4ae0488..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-fn-params.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=transform-fn-params.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-fn-params.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-fn-params.interface.js.map deleted file mode 100644 index e849e4f..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-fn-params.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-fn-params.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/transform-fn-params.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TransformationType } from '../../enums';\nimport { ClassTransformOptions } from '../class-transformer-options.interface';\n\nexport interface TransformFnParams {\n value: any;\n key: string;\n obj: any;\n type: TransformationType;\n options: ClassTransformOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-metadata.interface.js b/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-metadata.interface.js deleted file mode 100644 index 61beacb..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-metadata.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=transform-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-metadata.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-metadata.interface.js.map deleted file mode 100644 index 668c8ce..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/metadata/transform-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/transform-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TransformOptions } from '..';\nimport { TransformFnParams } from './transform-fn-params.interface';\n\n/**\n * This object represents metadata assigned to a property via the @Transform decorator.\n */\nexport interface TransformMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (property only).\n */\n propertyName: string;\n\n /**\n * The custom transformation function provided by the user in the @Transform decorator.\n */\n transformFn: (params: TransformFnParams) => any;\n\n /**\n * Options passed to the @Transform operator for this property.\n */\n options: TransformOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/metadata/type-metadata.interface.js b/views/node_modules/class-transformer/cjs/interfaces/metadata/type-metadata.interface.js deleted file mode 100644 index 62dcc4b..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/metadata/type-metadata.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=type-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/metadata/type-metadata.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/metadata/type-metadata.interface.js.map deleted file mode 100644 index 4c6206d..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/metadata/type-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/type-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TypeHelpOptions, TypeOptions } from '..';\n\n/**\n * This object represents metadata assigned to a property via the @Type decorator.\n */\nexport interface TypeMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (property only).\n */\n propertyName: string;\n\n /**\n * The type guessed from assigned Reflect metadata ('design:type')\n */\n reflectedType: any;\n\n /**\n * The custom function provided by the user in the @Type decorator which\n * returns the target type for the transformation.\n */\n typeFunction: (options?: TypeHelpOptions) => Function;\n\n /**\n * Options passed to the @Type operator for this property.\n */\n options: TypeOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/target-map.interface.js b/views/node_modules/class-transformer/cjs/interfaces/target-map.interface.js deleted file mode 100644 index 39fe2bf..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/target-map.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=target-map.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/target-map.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/target-map.interface.js.map deleted file mode 100644 index 710733f..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/target-map.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"target-map.interface.js","sourceRoot":"","sources":["../../../src/interfaces/target-map.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Allows to specify a map of Types in the object without using @Type decorator.\n * This is useful when you have external classes.\n */\nexport interface TargetMap {\n /**\n * Target which Types are being specified.\n */\n target: Function;\n\n /**\n * List of properties and their Types.\n */\n properties: { [key: string]: Function };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/type-help-options.interface.js b/views/node_modules/class-transformer/cjs/interfaces/type-help-options.interface.js deleted file mode 100644 index 49caf8f..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/type-help-options.interface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=type-help-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/interfaces/type-help-options.interface.js.map b/views/node_modules/class-transformer/cjs/interfaces/type-help-options.interface.js.map deleted file mode 100644 index 8050a8f..0000000 --- a/views/node_modules/class-transformer/cjs/interfaces/type-help-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-help-options.interface.js","sourceRoot":"","sources":["../../../src/interfaces/type-help-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["// TODO: Document this interface. What does each property means?\nexport interface TypeHelpOptions {\n newObject: any;\n object: Record;\n property: string;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/storage.js b/views/node_modules/class-transformer/cjs/storage.js deleted file mode 100644 index dc7d073..0000000 --- a/views/node_modules/class-transformer/cjs/storage.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.defaultMetadataStorage = void 0; -const MetadataStorage_1 = require("./MetadataStorage"); -/** - * Default metadata storage is used as singleton and can be used to storage all metadatas. - */ -exports.defaultMetadataStorage = new MetadataStorage_1.MetadataStorage(); -//# sourceMappingURL=storage.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/storage.js.map b/views/node_modules/class-transformer/cjs/storage.js.map deleted file mode 100644 index 60d872c..0000000 --- a/views/node_modules/class-transformer/cjs/storage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AAEpD;;GAEG;AACU,QAAA,sBAAsB,GAAG,IAAI,iCAAe,EAAE,CAAC","sourcesContent":["import { MetadataStorage } from './MetadataStorage';\n\n/**\n * Default metadata storage is used as singleton and can be used to storage all metadatas.\n */\nexport const defaultMetadataStorage = new MetadataStorage();\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/utils/get-global.util.js b/views/node_modules/class-transformer/cjs/utils/get-global.util.js deleted file mode 100644 index 63c6eeb..0000000 --- a/views/node_modules/class-transformer/cjs/utils/get-global.util.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getGlobal = void 0; -/** - * This function returns the global object across Node and browsers. - * - * Note: `globalThis` is the standardized approach however it has been added to - * Node.js in version 12. We need to include this snippet until Node 12 EOL. - */ -function getGlobal() { - if (typeof globalThis !== 'undefined') { - return globalThis; - } - if (typeof global !== 'undefined') { - return global; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - if (typeof window !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - return window; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - if (typeof self !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - return self; - } -} -exports.getGlobal = getGlobal; -//# sourceMappingURL=get-global.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/utils/get-global.util.js.map b/views/node_modules/class-transformer/cjs/utils/get-global.util.js.map deleted file mode 100644 index c74ab15..0000000 --- a/views/node_modules/class-transformer/cjs/utils/get-global.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-global.util.js","sourceRoot":"","sources":["../../../src/utils/get-global.util.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,SAAgB,SAAS;IACvB,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;QACrC,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,yCAAyC;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,6DAA6D;QAC7D,yCAAyC;QACzC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,uCAAuC;IACvC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC/B,6DAA6D;QAC7D,uCAAuC;QACvC,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAxBD,8BAwBC","sourcesContent":["/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/utils/get-global.util.spect.js b/views/node_modules/class-transformer/cjs/utils/get-global.util.spect.js deleted file mode 100644 index a6d427f..0000000 --- a/views/node_modules/class-transformer/cjs/utils/get-global.util.spect.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const _1 = require("."); -describe('getGlobal()', () => { - it('should return true if Buffer is present in globalThis', () => { - expect(_1.getGlobal().Buffer).toBe(true); - }); - it('should return false if Buffer is not present in globalThis', () => { - const bufferImp = global.Buffer; - delete global.Buffer; - expect(_1.getGlobal().Buffer).toBe(false); - global.Buffer = bufferImp; - }); -}); -//# sourceMappingURL=get-global.util.spect.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/utils/get-global.util.spect.js.map b/views/node_modules/class-transformer/cjs/utils/get-global.util.spect.js.map deleted file mode 100644 index b00449c..0000000 --- a/views/node_modules/class-transformer/cjs/utils/get-global.util.spect.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-global.util.spect.js","sourceRoot":"","sources":["../../../src/utils/get-global.util.spect.ts"],"names":[],"mappings":";;AAAA,wBAA8B;AAE9B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,YAAS,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC;QAErB,MAAM,CAAC,YAAS,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { getGlobal } from '.';\n\ndescribe('getGlobal()', () => {\n it('should return true if Buffer is present in globalThis', () => {\n expect(getGlobal().Buffer).toBe(true);\n });\n\n it('should return false if Buffer is not present in globalThis', () => {\n const bufferImp = global.Buffer;\n delete global.Buffer;\n\n expect(getGlobal().Buffer).toBe(false);\n\n global.Buffer = bufferImp;\n });\n});\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/utils/index.js b/views/node_modules/class-transformer/cjs/utils/index.js deleted file mode 100644 index d41068e..0000000 --- a/views/node_modules/class-transformer/cjs/utils/index.js +++ /dev/null @@ -1,15 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./get-global.util"), exports); -__exportStar(require("./is-promise.util"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/utils/index.js.map b/views/node_modules/class-transformer/cjs/utils/index.js.map deleted file mode 100644 index fd2b884..0000000 --- a/views/node_modules/class-transformer/cjs/utils/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAkC;AAClC,oDAAkC","sourcesContent":["export * from './get-global.util';\nexport * from './is-promise.util';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/utils/is-promise.util.js b/views/node_modules/class-transformer/cjs/utils/is-promise.util.js deleted file mode 100644 index 923ac8f..0000000 --- a/views/node_modules/class-transformer/cjs/utils/is-promise.util.js +++ /dev/null @@ -1,8 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isPromise = void 0; -function isPromise(p) { - return p !== null && typeof p === 'object' && typeof p.then === 'function'; -} -exports.isPromise = isPromise; -//# sourceMappingURL=is-promise.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/cjs/utils/is-promise.util.js.map b/views/node_modules/class-transformer/cjs/utils/is-promise.util.js.map deleted file mode 100644 index 9ed4f07..0000000 --- a/views/node_modules/class-transformer/cjs/utils/is-promise.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"is-promise.util.js","sourceRoot":"","sources":["../../../src/utils/is-promise.util.ts"],"names":[],"mappings":";;;AAAA,SAAgB,SAAS,CAAI,CAAM;IACjC,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AAC7E,CAAC;AAFD,8BAEC","sourcesContent":["export function isPromise(p: any): p is Promise {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/ClassTransformer.js b/views/node_modules/class-transformer/esm2015/ClassTransformer.js deleted file mode 100644 index d1f9f72..0000000 --- a/views/node_modules/class-transformer/esm2015/ClassTransformer.js +++ /dev/null @@ -1,65 +0,0 @@ -import { TransformOperationExecutor } from './TransformOperationExecutor'; -import { TransformationType } from './enums'; -import { defaultOptions } from './constants/default-options.constant'; -export class ClassTransformer { - classToPlain(object, options) { - const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, { - ...defaultOptions, - ...options, - }); - return executor.transform(undefined, object, undefined, undefined, undefined, undefined); - } - classToPlainFromExist(object, plainObject, options) { - const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, { - ...defaultOptions, - ...options, - }); - return executor.transform(plainObject, object, undefined, undefined, undefined, undefined); - } - plainToClass(cls, plain, options) { - const executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, { - ...defaultOptions, - ...options, - }); - return executor.transform(undefined, plain, cls, undefined, undefined, undefined); - } - plainToClassFromExist(clsObject, plain, options) { - const executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, { - ...defaultOptions, - ...options, - }); - return executor.transform(clsObject, plain, undefined, undefined, undefined, undefined); - } - classToClass(object, options) { - const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, { - ...defaultOptions, - ...options, - }); - return executor.transform(undefined, object, undefined, undefined, undefined, undefined); - } - classToClassFromExist(object, fromObject, options) { - const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, { - ...defaultOptions, - ...options, - }); - return executor.transform(fromObject, object, undefined, undefined, undefined, undefined); - } - serialize(object, options) { - return JSON.stringify(this.classToPlain(object, options)); - } - /** - * Deserializes given JSON string to a object of the given class. - */ - deserialize(cls, json, options) { - const jsonObject = JSON.parse(json); - return this.plainToClass(cls, jsonObject, options); - } - /** - * Deserializes given JSON string to an array of objects of the given class. - */ - deserializeArray(cls, json, options) { - const jsonObject = JSON.parse(json); - return this.plainToClass(cls, jsonObject, options); - } -} -//# sourceMappingURL=ClassTransformer.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/ClassTransformer.js.map b/views/node_modules/class-transformer/esm2015/ClassTransformer.js.map deleted file mode 100644 index 740f3e7..0000000 --- a/views/node_modules/class-transformer/esm2015/ClassTransformer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ClassTransformer.js","sourceRoot":"","sources":["../../src/ClassTransformer.ts"],"names":[],"mappings":"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","sourcesContent":["import { ClassTransformOptions } from './interfaces';\nimport { TransformOperationExecutor } from './TransformOperationExecutor';\nimport { TransformationType } from './enums';\nimport { ClassConstructor } from './interfaces';\nimport { defaultOptions } from './constants/default-options.constant';\n\nexport class ClassTransformer {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Converts class (constructor) object to plain (literal) object. Also works with arrays.\n */\n classToPlain>(object: T, options?: ClassTransformOptions): Record;\n classToPlain>(object: T[], options?: ClassTransformOptions): Record[];\n classToPlain>(\n object: T | T[],\n options?: ClassTransformOptions\n ): Record | Record[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\n classToPlainFromExist, P>(\n object: T,\n plainObject: P,\n options?: ClassTransformOptions\n ): T;\n classToPlainFromExist, P>(\n object: T,\n plainObjects: P[],\n options?: ClassTransformOptions\n ): T[];\n classToPlainFromExist, P>(\n object: T,\n plainObject: P | P[],\n options?: ClassTransformOptions\n ): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(plainObject, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts plain (literal) object to class (constructor) object. Also works with arrays.\n */\n plainToClass, V extends Array>(\n cls: ClassConstructor,\n plain: V,\n options?: ClassTransformOptions\n ): T[];\n plainToClass, V>(\n cls: ClassConstructor,\n plain: V,\n options?: ClassTransformOptions\n ): T;\n plainToClass, V>(\n cls: ClassConstructor,\n plain: V | V[],\n options?: ClassTransformOptions\n ): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(undefined, plain, cls, undefined, undefined, undefined);\n }\n\n /**\n * Converts plain (literal) object to class (constructor) object.\n * Uses given object as source object (it means fills given object with data from plain object).\n * Also works with arrays.\n */\n plainToClassFromExist, V extends Array>(\n clsObject: T,\n plain: V,\n options?: ClassTransformOptions\n ): T;\n plainToClassFromExist, V>(clsObject: T, plain: V, options?: ClassTransformOptions): T[];\n plainToClassFromExist, V>(\n clsObject: T,\n plain: V | V[],\n options?: ClassTransformOptions\n ): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(clsObject, plain, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts class (constructor) object to new class (constructor) object. Also works with arrays.\n */\n classToClass(object: T, options?: ClassTransformOptions): T;\n classToClass(object: T[], options?: ClassTransformOptions): T[];\n classToClass(object: T | T[], options?: ClassTransformOptions): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\n classToClassFromExist(object: T, fromObject: T, options?: ClassTransformOptions): T;\n classToClassFromExist(object: T, fromObjects: T[], options?: ClassTransformOptions): T[];\n classToClassFromExist(object: T, fromObject: T | T[], options?: ClassTransformOptions): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(fromObject, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Serializes given object to a JSON string.\n */\n serialize(object: T, options?: ClassTransformOptions): string;\n serialize(object: T[], options?: ClassTransformOptions): string;\n serialize(object: T | T[], options?: ClassTransformOptions): string {\n return JSON.stringify(this.classToPlain(object, options));\n }\n\n /**\n * Deserializes given JSON string to a object of the given class.\n */\n deserialize(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T {\n const jsonObject: T = JSON.parse(json);\n return this.plainToClass(cls, jsonObject, options);\n }\n\n /**\n * Deserializes given JSON string to an array of objects of the given class.\n */\n deserializeArray(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T[] {\n const jsonObject: any[] = JSON.parse(json);\n return this.plainToClass(cls, jsonObject, options);\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/MetadataStorage.js b/views/node_modules/class-transformer/esm2015/MetadataStorage.js deleted file mode 100644 index 417202d..0000000 --- a/views/node_modules/class-transformer/esm2015/MetadataStorage.js +++ /dev/null @@ -1,207 +0,0 @@ -import { TransformationType } from './enums'; -/** - * Storage all library metadata. - */ -export class MetadataStorage { - constructor() { - // ------------------------------------------------------------------------- - // Properties - // ------------------------------------------------------------------------- - this._typeMetadatas = new Map(); - this._transformMetadatas = new Map(); - this._exposeMetadatas = new Map(); - this._excludeMetadatas = new Map(); - this._ancestorsMap = new Map(); - } - // ------------------------------------------------------------------------- - // Adder Methods - // ------------------------------------------------------------------------- - addTypeMetadata(metadata) { - if (!this._typeMetadatas.has(metadata.target)) { - this._typeMetadatas.set(metadata.target, new Map()); - } - this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - } - addTransformMetadata(metadata) { - if (!this._transformMetadatas.has(metadata.target)) { - this._transformMetadatas.set(metadata.target, new Map()); - } - if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) { - this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []); - } - this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata); - } - addExposeMetadata(metadata) { - if (!this._exposeMetadatas.has(metadata.target)) { - this._exposeMetadatas.set(metadata.target, new Map()); - } - this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - } - addExcludeMetadata(metadata) { - if (!this._excludeMetadatas.has(metadata.target)) { - this._excludeMetadatas.set(metadata.target, new Map()); - } - this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - findTransformMetadatas(target, propertyName, transformationType) { - return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(metadata => { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === TransformationType.CLASS_TO_CLASS || - transformationType === TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === TransformationType.CLASS_TO_PLAIN; - } - return true; - }); - } - findExcludeMetadata(target, propertyName) { - return this.findMetadata(this._excludeMetadatas, target, propertyName); - } - findExposeMetadata(target, propertyName) { - return this.findMetadata(this._exposeMetadatas, target, propertyName); - } - findExposeMetadataByCustomName(target, name) { - return this.getExposedMetadatas(target).find(metadata => { - return metadata.options && metadata.options.name === name; - }); - } - findTypeMetadata(target, propertyName) { - return this.findMetadata(this._typeMetadatas, target, propertyName); - } - getStrategy(target) { - const excludeMap = this._excludeMetadatas.get(target); - const exclude = excludeMap && excludeMap.get(undefined); - const exposeMap = this._exposeMetadatas.get(target); - const expose = exposeMap && exposeMap.get(undefined); - if ((exclude && expose) || (!exclude && !expose)) - return 'none'; - return exclude ? 'excludeAll' : 'exposeAll'; - } - getExposedMetadatas(target) { - return this.getMetadata(this._exposeMetadatas, target); - } - getExcludedMetadatas(target) { - return this.getMetadata(this._excludeMetadatas, target); - } - getExposedProperties(target, transformationType) { - return this.getExposedMetadatas(target) - .filter(metadata => { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === TransformationType.CLASS_TO_CLASS || - transformationType === TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === TransformationType.CLASS_TO_PLAIN; - } - return true; - }) - .map(metadata => metadata.propertyName); - } - getExcludedProperties(target, transformationType) { - return this.getExcludedMetadatas(target) - .filter(metadata => { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === TransformationType.CLASS_TO_CLASS || - transformationType === TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === TransformationType.CLASS_TO_PLAIN; - } - return true; - }) - .map(metadata => metadata.propertyName); - } - clear() { - this._typeMetadatas.clear(); - this._exposeMetadatas.clear(); - this._excludeMetadatas.clear(); - this._ancestorsMap.clear(); - } - // ------------------------------------------------------------------------- - // Private Methods - // ------------------------------------------------------------------------- - getMetadata(metadatas, target) { - const metadataFromTargetMap = metadatas.get(target); - let metadataFromTarget; - if (metadataFromTargetMap) { - metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(meta => meta.propertyName !== undefined); - } - const metadataFromAncestors = []; - for (const ancestor of this.getAncestors(target)) { - const ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - const metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(meta => meta.propertyName !== undefined); - metadataFromAncestors.push(...metadataFromAncestor); - } - } - return metadataFromAncestors.concat(metadataFromTarget || []); - } - findMetadata(metadatas, target, propertyName) { - const metadataFromTargetMap = metadatas.get(target); - if (metadataFromTargetMap) { - const metadataFromTarget = metadataFromTargetMap.get(propertyName); - if (metadataFromTarget) { - return metadataFromTarget; - } - } - for (const ancestor of this.getAncestors(target)) { - const ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - const ancestorResult = ancestorMetadataMap.get(propertyName); - if (ancestorResult) { - return ancestorResult; - } - } - } - return undefined; - } - findMetadatas(metadatas, target, propertyName) { - const metadataFromTargetMap = metadatas.get(target); - let metadataFromTarget; - if (metadataFromTargetMap) { - metadataFromTarget = metadataFromTargetMap.get(propertyName); - } - const metadataFromAncestorsTarget = []; - for (const ancestor of this.getAncestors(target)) { - const ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - if (ancestorMetadataMap.has(propertyName)) { - metadataFromAncestorsTarget.push(...ancestorMetadataMap.get(propertyName)); - } - } - } - return metadataFromAncestorsTarget - .slice() - .reverse() - .concat((metadataFromTarget || []).slice().reverse()); - } - getAncestors(target) { - if (!target) - return []; - if (!this._ancestorsMap.has(target)) { - const ancestors = []; - for (let baseClass = Object.getPrototypeOf(target.prototype.constructor); typeof baseClass.prototype !== 'undefined'; baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)) { - ancestors.push(baseClass); - } - this._ancestorsMap.set(target, ancestors); - } - return this._ancestorsMap.get(target); - } -} -//# sourceMappingURL=MetadataStorage.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/MetadataStorage.js.map b/views/node_modules/class-transformer/esm2015/MetadataStorage.js.map deleted file mode 100644 index 4ca6d46..0000000 --- a/views/node_modules/class-transformer/esm2015/MetadataStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MetadataStorage.js","sourceRoot":"","sources":["../../src/MetadataStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import { TypeMetadata, ExposeMetadata, ExcludeMetadata, TransformMetadata } from './interfaces';\nimport { TransformationType } from './enums';\n\n/**\n * Storage all library metadata.\n */\nexport class MetadataStorage {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n private _typeMetadatas = new Map>();\n private _transformMetadatas = new Map>();\n private _exposeMetadatas = new Map>();\n private _excludeMetadatas = new Map>();\n private _ancestorsMap = new Map();\n\n // -------------------------------------------------------------------------\n // Adder Methods\n // -------------------------------------------------------------------------\n\n addTypeMetadata(metadata: TypeMetadata): void {\n if (!this._typeMetadatas.has(metadata.target)) {\n this._typeMetadatas.set(metadata.target, new Map());\n }\n this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n }\n\n addTransformMetadata(metadata: TransformMetadata): void {\n if (!this._transformMetadatas.has(metadata.target)) {\n this._transformMetadatas.set(metadata.target, new Map());\n }\n if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) {\n this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []);\n }\n this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata);\n }\n\n addExposeMetadata(metadata: ExposeMetadata): void {\n if (!this._exposeMetadatas.has(metadata.target)) {\n this._exposeMetadatas.set(metadata.target, new Map());\n }\n this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n }\n\n addExcludeMetadata(metadata: ExcludeMetadata): void {\n if (!this._excludeMetadatas.has(metadata.target)) {\n this._excludeMetadatas.set(metadata.target, new Map());\n }\n this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n findTransformMetadatas(\n target: Function,\n propertyName: string,\n transformationType: TransformationType\n ): TransformMetadata[] {\n return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(metadata => {\n if (!metadata.options) return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;\n\n if (metadata.options.toClassOnly === true) {\n return (\n transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS\n );\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n\n return true;\n });\n }\n\n findExcludeMetadata(target: Function, propertyName: string): ExcludeMetadata {\n return this.findMetadata(this._excludeMetadatas, target, propertyName);\n }\n\n findExposeMetadata(target: Function, propertyName: string): ExposeMetadata {\n return this.findMetadata(this._exposeMetadatas, target, propertyName);\n }\n\n findExposeMetadataByCustomName(target: Function, name: string): ExposeMetadata {\n return this.getExposedMetadatas(target).find(metadata => {\n return metadata.options && metadata.options.name === name;\n });\n }\n\n findTypeMetadata(target: Function, propertyName: string): TypeMetadata {\n return this.findMetadata(this._typeMetadatas, target, propertyName);\n }\n\n getStrategy(target: Function): 'excludeAll' | 'exposeAll' | 'none' {\n const excludeMap = this._excludeMetadatas.get(target);\n const exclude = excludeMap && excludeMap.get(undefined);\n const exposeMap = this._exposeMetadatas.get(target);\n const expose = exposeMap && exposeMap.get(undefined);\n if ((exclude && expose) || (!exclude && !expose)) return 'none';\n return exclude ? 'excludeAll' : 'exposeAll';\n }\n\n getExposedMetadatas(target: Function): ExposeMetadata[] {\n return this.getMetadata(this._exposeMetadatas, target);\n }\n\n getExcludedMetadatas(target: Function): ExcludeMetadata[] {\n return this.getMetadata(this._excludeMetadatas, target);\n }\n\n getExposedProperties(target: Function, transformationType: TransformationType): string[] {\n return this.getExposedMetadatas(target)\n .filter(metadata => {\n if (!metadata.options) return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;\n\n if (metadata.options.toClassOnly === true) {\n return (\n transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS\n );\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n\n return true;\n })\n .map(metadata => metadata.propertyName);\n }\n\n getExcludedProperties(target: Function, transformationType: TransformationType): string[] {\n return this.getExcludedMetadatas(target)\n .filter(metadata => {\n if (!metadata.options) return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;\n\n if (metadata.options.toClassOnly === true) {\n return (\n transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS\n );\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n\n return true;\n })\n .map(metadata => metadata.propertyName);\n }\n\n clear(): void {\n this._typeMetadatas.clear();\n this._exposeMetadatas.clear();\n this._excludeMetadatas.clear();\n this._ancestorsMap.clear();\n }\n\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n\n private getMetadata(\n metadatas: Map>,\n target: Function\n ): T[] {\n const metadataFromTargetMap = metadatas.get(target);\n let metadataFromTarget: T[];\n if (metadataFromTargetMap) {\n metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(meta => meta.propertyName !== undefined);\n }\n const metadataFromAncestors: T[] = [];\n for (const ancestor of this.getAncestors(target)) {\n const ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n const metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(\n meta => meta.propertyName !== undefined\n );\n metadataFromAncestors.push(...metadataFromAncestor);\n }\n }\n return metadataFromAncestors.concat(metadataFromTarget || []);\n }\n\n private findMetadata(\n metadatas: Map>,\n target: Function,\n propertyName: string\n ): T {\n const metadataFromTargetMap = metadatas.get(target);\n if (metadataFromTargetMap) {\n const metadataFromTarget = metadataFromTargetMap.get(propertyName);\n if (metadataFromTarget) {\n return metadataFromTarget;\n }\n }\n for (const ancestor of this.getAncestors(target)) {\n const ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n const ancestorResult = ancestorMetadataMap.get(propertyName);\n if (ancestorResult) {\n return ancestorResult;\n }\n }\n }\n return undefined;\n }\n\n private findMetadatas(\n metadatas: Map>,\n target: Function,\n propertyName: string\n ): T[] {\n const metadataFromTargetMap = metadatas.get(target);\n let metadataFromTarget: T[];\n if (metadataFromTargetMap) {\n metadataFromTarget = metadataFromTargetMap.get(propertyName);\n }\n const metadataFromAncestorsTarget: T[] = [];\n for (const ancestor of this.getAncestors(target)) {\n const ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n if (ancestorMetadataMap.has(propertyName)) {\n metadataFromAncestorsTarget.push(...ancestorMetadataMap.get(propertyName));\n }\n }\n }\n return metadataFromAncestorsTarget\n .slice()\n .reverse()\n .concat((metadataFromTarget || []).slice().reverse());\n }\n\n private getAncestors(target: Function): Function[] {\n if (!target) return [];\n if (!this._ancestorsMap.has(target)) {\n const ancestors: Function[] = [];\n for (\n let baseClass = Object.getPrototypeOf(target.prototype.constructor);\n typeof baseClass.prototype !== 'undefined';\n baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)\n ) {\n ancestors.push(baseClass);\n }\n this._ancestorsMap.set(target, ancestors);\n }\n return this._ancestorsMap.get(target);\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/TransformOperationExecutor.js b/views/node_modules/class-transformer/esm2015/TransformOperationExecutor.js deleted file mode 100644 index 0ce77a6..0000000 --- a/views/node_modules/class-transformer/esm2015/TransformOperationExecutor.js +++ /dev/null @@ -1,445 +0,0 @@ -import { defaultMetadataStorage } from './storage'; -import { TransformationType } from './enums'; -import { getGlobal, isPromise } from './utils'; -function instantiateArrayType(arrayType) { - const array = new arrayType(); - if (!(array instanceof Set) && !('push' in array)) { - return []; - } - return array; -} -export class TransformOperationExecutor { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - constructor(transformationType, options) { - this.transformationType = transformationType; - this.options = options; - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - this.recursionStack = new Set(); - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - transform(source, value, targetType, arrayType, isMap, level = 0) { - if (Array.isArray(value) || value instanceof Set) { - const newValue = arrayType && this.transformationType === TransformationType.PLAIN_TO_CLASS - ? instantiateArrayType(arrayType) - : []; - value.forEach((subValue, index) => { - const subSource = source ? source[index] : undefined; - if (!this.options.enableCircularCheck || !this.isCircular(subValue)) { - let realTargetType; - if (typeof targetType !== 'function' && - targetType && - targetType.options && - targetType.options.discriminator && - targetType.options.discriminator.property && - targetType.options.discriminator.subTypes) { - if (this.transformationType === TransformationType.PLAIN_TO_CLASS) { - realTargetType = targetType.options.discriminator.subTypes.find(subType => subType.name === subValue[targetType.options.discriminator.property]); - const options = { newObject: newValue, object: subValue, property: undefined }; - const newType = targetType.typeFunction(options); - realTargetType === undefined ? (realTargetType = newType) : (realTargetType = realTargetType.value); - if (!targetType.options.keepDiscriminatorProperty) - delete subValue[targetType.options.discriminator.property]; - } - if (this.transformationType === TransformationType.CLASS_TO_CLASS) { - realTargetType = subValue.constructor; - } - if (this.transformationType === TransformationType.CLASS_TO_PLAIN) { - subValue[targetType.options.discriminator.property] = targetType.options.discriminator.subTypes.find(subType => subType.value === subValue.constructor).name; - } - } - else { - realTargetType = targetType; - } - const value = this.transform(subSource, subValue, realTargetType, undefined, subValue instanceof Map, level + 1); - if (newValue instanceof Set) { - newValue.add(value); - } - else { - newValue.push(value); - } - } - else if (this.transformationType === TransformationType.CLASS_TO_CLASS) { - if (newValue instanceof Set) { - newValue.add(subValue); - } - else { - newValue.push(subValue); - } - } - }); - return newValue; - } - else if (targetType === String && !isMap) { - if (value === null || value === undefined) - return value; - return String(value); - } - else if (targetType === Number && !isMap) { - if (value === null || value === undefined) - return value; - return Number(value); - } - else if (targetType === Boolean && !isMap) { - if (value === null || value === undefined) - return value; - return Boolean(value); - } - else if ((targetType === Date || value instanceof Date) && !isMap) { - if (value instanceof Date) { - return new Date(value.valueOf()); - } - if (value === null || value === undefined) - return value; - return new Date(value); - } - else if (!!getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) { - if (value === null || value === undefined) - return value; - return Buffer.from(value); - } - else if (isPromise(value) && !isMap) { - return new Promise((resolve, reject) => { - value.then((data) => resolve(this.transform(undefined, data, targetType, undefined, undefined, level + 1)), reject); - }); - } - else if (!isMap && value !== null && typeof value === 'object' && typeof value.then === 'function') { - // Note: We should not enter this, as promise has been handled above - // This option simply returns the Promise preventing a JS error from happening and should be an inaccessible path. - return value; // skip promise transformation - } - else if (typeof value === 'object' && value !== null) { - // try to guess the type - if (!targetType && value.constructor !== Object /* && TransformationType === TransformationType.CLASS_TO_PLAIN*/) - targetType = value.constructor; - if (!targetType && source) - targetType = source.constructor; - if (this.options.enableCircularCheck) { - // add transformed type to prevent circular references - this.recursionStack.add(value); - } - const keys = this.getKeys(targetType, value, isMap); - let newValue = source ? source : {}; - if (!source && - (this.transformationType === TransformationType.PLAIN_TO_CLASS || - this.transformationType === TransformationType.CLASS_TO_CLASS)) { - if (isMap) { - newValue = new Map(); - } - else if (targetType) { - newValue = new targetType(); - } - else { - newValue = {}; - } - } - // traverse over keys - for (const key of keys) { - if (key === '__proto__' || key === 'constructor') { - continue; - } - const valueKey = key; - let newValueKey = key, propertyName = key; - if (!this.options.ignoreDecorators && targetType) { - if (this.transformationType === TransformationType.PLAIN_TO_CLASS) { - const exposeMetadata = defaultMetadataStorage.findExposeMetadataByCustomName(targetType, key); - if (exposeMetadata) { - propertyName = exposeMetadata.propertyName; - newValueKey = exposeMetadata.propertyName; - } - } - else if (this.transformationType === TransformationType.CLASS_TO_PLAIN || - this.transformationType === TransformationType.CLASS_TO_CLASS) { - const exposeMetadata = defaultMetadataStorage.findExposeMetadata(targetType, key); - if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) { - newValueKey = exposeMetadata.options.name; - } - } - } - // get a subvalue - let subValue = undefined; - if (value instanceof Map) { - subValue = value.get(valueKey); - } - else if (value[valueKey] instanceof Function) { - subValue = value[valueKey](); - } - else { - subValue = value[valueKey]; - } - // determine a type - let type = undefined, isSubValueMap = subValue instanceof Map; - if (targetType && isMap) { - type = targetType; - } - else if (targetType) { - const metadata = defaultMetadataStorage.findTypeMetadata(targetType, propertyName); - if (metadata) { - const options = { newObject: newValue, object: value, property: propertyName }; - const newType = metadata.typeFunction ? metadata.typeFunction(options) : metadata.reflectedType; - if (metadata.options && - metadata.options.discriminator && - metadata.options.discriminator.property && - metadata.options.discriminator.subTypes) { - if (!(value[valueKey] instanceof Array)) { - if (this.transformationType === TransformationType.PLAIN_TO_CLASS) { - type = metadata.options.discriminator.subTypes.find(subType => { - if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) { - return subType.name === subValue[metadata.options.discriminator.property]; - } - }); - type === undefined ? (type = newType) : (type = type.value); - if (!metadata.options.keepDiscriminatorProperty) { - if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) { - delete subValue[metadata.options.discriminator.property]; - } - } - } - if (this.transformationType === TransformationType.CLASS_TO_CLASS) { - type = subValue.constructor; - } - if (this.transformationType === TransformationType.CLASS_TO_PLAIN) { - subValue[metadata.options.discriminator.property] = metadata.options.discriminator.subTypes.find(subType => subType.value === subValue.constructor).name; - } - } - else { - type = metadata; - } - } - else { - type = newType; - } - isSubValueMap = isSubValueMap || metadata.reflectedType === Map; - } - else if (this.options.targetMaps) { - // try to find a type in target maps - this.options.targetMaps - .filter(map => map.target === targetType && !!map.properties[propertyName]) - .forEach(map => (type = map.properties[propertyName])); - } - else if (this.options.enableImplicitConversion && - this.transformationType === TransformationType.PLAIN_TO_CLASS) { - // if we have no registererd type via the @Type() decorator then we check if we have any - // type declarations in reflect-metadata (type declaration is emited only if some decorator is added to the property.) - const reflectedType = Reflect.getMetadata('design:type', targetType.prototype, propertyName); - if (reflectedType) { - type = reflectedType; - } - } - } - // if value is an array try to get its custom array type - const arrayType = Array.isArray(value[valueKey]) - ? this.getReflectedType(targetType, propertyName) - : undefined; - // const subValueKey = TransformationType === TransformationType.PLAIN_TO_CLASS && newKeyName ? newKeyName : key; - const subSource = source ? source[valueKey] : undefined; - // if its deserialization then type if required - // if we uncomment this types like string[] will not work - // if (this.transformationType === TransformationType.PLAIN_TO_CLASS && !type && subValue instanceof Object && !(subValue instanceof Date)) - // throw new Error(`Cannot determine type for ${(targetType as any).name }.${propertyName}, did you forget to specify a @Type?`); - // if newValue is a source object that has method that match newKeyName then skip it - if (newValue.constructor.prototype) { - const descriptor = Object.getOwnPropertyDescriptor(newValue.constructor.prototype, newValueKey); - if ((this.transformationType === TransformationType.PLAIN_TO_CLASS || - this.transformationType === TransformationType.CLASS_TO_CLASS) && - // eslint-disable-next-line @typescript-eslint/unbound-method - ((descriptor && !descriptor.set) || newValue[newValueKey] instanceof Function)) - // || TransformationType === TransformationType.CLASS_TO_CLASS - continue; - } - if (!this.options.enableCircularCheck || !this.isCircular(subValue)) { - const transformKey = this.transformationType === TransformationType.PLAIN_TO_CLASS ? newValueKey : key; - let finalValue; - if (this.transformationType === TransformationType.CLASS_TO_PLAIN) { - // Get original value - finalValue = value[transformKey]; - // Apply custom transformation - finalValue = this.applyCustomTransformations(finalValue, targetType, transformKey, value, this.transformationType); - // If nothing change, it means no custom transformation was applied, so use the subValue. - finalValue = value[transformKey] === finalValue ? subValue : finalValue; - // Apply the default transformation - finalValue = this.transform(subSource, finalValue, type, arrayType, isSubValueMap, level + 1); - } - else { - if (subValue === undefined && this.options.exposeDefaultValues) { - // Set default value if nothing provided - finalValue = newValue[newValueKey]; - } - else { - finalValue = this.transform(subSource, subValue, type, arrayType, isSubValueMap, level + 1); - finalValue = this.applyCustomTransformations(finalValue, targetType, transformKey, value, this.transformationType); - } - } - if (finalValue !== undefined || this.options.exposeUnsetFields) { - if (newValue instanceof Map) { - newValue.set(newValueKey, finalValue); - } - else { - newValue[newValueKey] = finalValue; - } - } - } - else if (this.transformationType === TransformationType.CLASS_TO_CLASS) { - let finalValue = subValue; - finalValue = this.applyCustomTransformations(finalValue, targetType, key, value, this.transformationType); - if (finalValue !== undefined || this.options.exposeUnsetFields) { - if (newValue instanceof Map) { - newValue.set(newValueKey, finalValue); - } - else { - newValue[newValueKey] = finalValue; - } - } - } - } - if (this.options.enableCircularCheck) { - this.recursionStack.delete(value); - } - return newValue; - } - else { - return value; - } - } - applyCustomTransformations(value, target, key, obj, transformationType) { - let metadatas = defaultMetadataStorage.findTransformMetadatas(target, key, this.transformationType); - // apply versioning options - if (this.options.version !== undefined) { - metadatas = metadatas.filter(metadata => { - if (!metadata.options) - return true; - return this.checkVersion(metadata.options.since, metadata.options.until); - }); - } - // apply grouping options - if (this.options.groups && this.options.groups.length) { - metadatas = metadatas.filter(metadata => { - if (!metadata.options) - return true; - return this.checkGroups(metadata.options.groups); - }); - } - else { - metadatas = metadatas.filter(metadata => { - return !metadata.options || !metadata.options.groups || !metadata.options.groups.length; - }); - } - metadatas.forEach(metadata => { - value = metadata.transformFn({ value, key, obj, type: transformationType, options: this.options }); - }); - return value; - } - // preventing circular references - isCircular(object) { - return this.recursionStack.has(object); - } - getReflectedType(target, propertyName) { - if (!target) - return undefined; - const meta = defaultMetadataStorage.findTypeMetadata(target, propertyName); - return meta ? meta.reflectedType : undefined; - } - getKeys(target, object, isMap) { - // determine exclusion strategy - let strategy = defaultMetadataStorage.getStrategy(target); - if (strategy === 'none') - strategy = this.options.strategy || 'exposeAll'; // exposeAll is default strategy - // get all keys that need to expose - let keys = []; - if (strategy === 'exposeAll' || isMap) { - if (object instanceof Map) { - keys = Array.from(object.keys()); - } - else { - keys = Object.keys(object); - } - } - if (isMap) { - // expose & exclude do not apply for map keys only to fields - return keys; - } - if (!this.options.ignoreDecorators && target) { - // add all exposed to list of keys - let exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType); - if (this.transformationType === TransformationType.PLAIN_TO_CLASS) { - exposedProperties = exposedProperties.map(key => { - const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) { - return exposeMetadata.options.name; - } - return key; - }); - } - if (this.options.excludeExtraneousValues) { - keys = exposedProperties; - } - else { - keys = keys.concat(exposedProperties); - } - // exclude excluded properties - const excludedProperties = defaultMetadataStorage.getExcludedProperties(target, this.transformationType); - if (excludedProperties.length > 0) { - keys = keys.filter(key => { - return !excludedProperties.includes(key); - }); - } - // apply versioning options - if (this.options.version !== undefined) { - keys = keys.filter(key => { - const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - if (!exposeMetadata || !exposeMetadata.options) - return true; - return this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until); - }); - } - // apply grouping options - if (this.options.groups && this.options.groups.length) { - keys = keys.filter(key => { - const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - if (!exposeMetadata || !exposeMetadata.options) - return true; - return this.checkGroups(exposeMetadata.options.groups); - }); - } - else { - keys = keys.filter(key => { - const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - return (!exposeMetadata || - !exposeMetadata.options || - !exposeMetadata.options.groups || - !exposeMetadata.options.groups.length); - }); - } - } - // exclude prefixed properties - if (this.options.excludePrefixes && this.options.excludePrefixes.length) { - keys = keys.filter(key => this.options.excludePrefixes.every(prefix => { - return key.substr(0, prefix.length) !== prefix; - })); - } - // make sure we have unique keys - keys = keys.filter((key, index, self) => { - return self.indexOf(key) === index; - }); - return keys; - } - checkVersion(since, until) { - let decision = true; - if (decision && since) - decision = this.options.version >= since; - if (decision && until) - decision = this.options.version < until; - return decision; - } - checkGroups(groups) { - if (!groups) - return true; - return this.options.groups.some(optionGroup => groups.includes(optionGroup)); - } -} -//# sourceMappingURL=TransformOperationExecutor.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/TransformOperationExecutor.js.map b/views/node_modules/class-transformer/esm2015/TransformOperationExecutor.js.map deleted file mode 100644 index 5dcba47..0000000 --- a/views/node_modules/class-transformer/esm2015/TransformOperationExecutor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"TransformOperationExecutor.js","sourceRoot":"","sources":["../../src/TransformOperationExecutor.ts"],"names":[],"mappings":"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","sourcesContent":["import { defaultMetadataStorage } from './storage';\nimport { TypeHelpOptions, TypeOptions, ClassTransformOptions, TypeMetadata } from './interfaces';\nimport { TransformationType } from './enums';\nimport { getGlobal, isPromise } from './utils';\n\nfunction instantiateArrayType(arrayType: Function): Array | Set {\n const array = new (arrayType as any)();\n if (!(array instanceof Set) && !('push' in array)) {\n return [];\n }\n return array;\n}\n\nexport class TransformOperationExecutor {\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n\n private recursionStack = new Set>();\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private transformationType: TransformationType, private options: ClassTransformOptions) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n transform(\n source: Record | Record[] | any,\n value: Record | Record[] | any,\n targetType: Function | TypeMetadata,\n arrayType: Function,\n isMap: boolean,\n level: number = 0\n ): any {\n if (Array.isArray(value) || value instanceof Set) {\n const newValue =\n arrayType && this.transformationType === TransformationType.PLAIN_TO_CLASS\n ? instantiateArrayType(arrayType)\n : [];\n (value as any[]).forEach((subValue, index) => {\n const subSource = source ? source[index] : undefined;\n if (!this.options.enableCircularCheck || !this.isCircular(subValue)) {\n let realTargetType;\n if (\n typeof targetType !== 'function' &&\n targetType &&\n targetType.options &&\n targetType.options.discriminator &&\n targetType.options.discriminator.property &&\n targetType.options.discriminator.subTypes\n ) {\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n realTargetType = targetType.options.discriminator.subTypes.find(\n subType =>\n subType.name === subValue[(targetType as { options: TypeOptions }).options.discriminator.property]\n );\n const options: TypeHelpOptions = { newObject: newValue, object: subValue, property: undefined };\n const newType = targetType.typeFunction(options);\n realTargetType === undefined ? (realTargetType = newType) : (realTargetType = realTargetType.value);\n if (!targetType.options.keepDiscriminatorProperty)\n delete subValue[targetType.options.discriminator.property];\n }\n\n if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n realTargetType = subValue.constructor;\n }\n if (this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n subValue[targetType.options.discriminator.property] = targetType.options.discriminator.subTypes.find(\n subType => subType.value === subValue.constructor\n ).name;\n }\n } else {\n realTargetType = targetType;\n }\n const value = this.transform(\n subSource,\n subValue,\n realTargetType,\n undefined,\n subValue instanceof Map,\n level + 1\n );\n\n if (newValue instanceof Set) {\n newValue.add(value);\n } else {\n newValue.push(value);\n }\n } else if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n if (newValue instanceof Set) {\n newValue.add(subValue);\n } else {\n newValue.push(subValue);\n }\n }\n });\n return newValue;\n } else if (targetType === String && !isMap) {\n if (value === null || value === undefined) return value;\n return String(value);\n } else if (targetType === Number && !isMap) {\n if (value === null || value === undefined) return value;\n return Number(value);\n } else if (targetType === Boolean && !isMap) {\n if (value === null || value === undefined) return value;\n return Boolean(value);\n } else if ((targetType === Date || value instanceof Date) && !isMap) {\n if (value instanceof Date) {\n return new Date(value.valueOf());\n }\n if (value === null || value === undefined) return value;\n return new Date(value);\n } else if (!!getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) {\n if (value === null || value === undefined) return value;\n return Buffer.from(value);\n } else if (isPromise(value) && !isMap) {\n return new Promise((resolve, reject) => {\n value.then(\n (data: any) => resolve(this.transform(undefined, data, targetType, undefined, undefined, level + 1)),\n reject\n );\n });\n } else if (!isMap && value !== null && typeof value === 'object' && typeof value.then === 'function') {\n // Note: We should not enter this, as promise has been handled above\n // This option simply returns the Promise preventing a JS error from happening and should be an inaccessible path.\n return value; // skip promise transformation\n } else if (typeof value === 'object' && value !== null) {\n // try to guess the type\n if (!targetType && value.constructor !== Object /* && TransformationType === TransformationType.CLASS_TO_PLAIN*/)\n targetType = value.constructor;\n if (!targetType && source) targetType = source.constructor;\n\n if (this.options.enableCircularCheck) {\n // add transformed type to prevent circular references\n this.recursionStack.add(value);\n }\n\n const keys = this.getKeys(targetType as Function, value, isMap);\n let newValue: any = source ? source : {};\n if (\n !source &&\n (this.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this.transformationType === TransformationType.CLASS_TO_CLASS)\n ) {\n if (isMap) {\n newValue = new Map();\n } else if (targetType) {\n newValue = new (targetType as any)();\n } else {\n newValue = {};\n }\n }\n\n // traverse over keys\n for (const key of keys) {\n if (key === '__proto__' || key === 'constructor') {\n continue;\n }\n\n const valueKey = key;\n let newValueKey = key,\n propertyName = key;\n if (!this.options.ignoreDecorators && targetType) {\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadataByCustomName(targetType as Function, key);\n if (exposeMetadata) {\n propertyName = exposeMetadata.propertyName;\n newValueKey = exposeMetadata.propertyName;\n }\n } else if (\n this.transformationType === TransformationType.CLASS_TO_PLAIN ||\n this.transformationType === TransformationType.CLASS_TO_CLASS\n ) {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(targetType as Function, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n newValueKey = exposeMetadata.options.name;\n }\n }\n }\n\n // get a subvalue\n let subValue: any = undefined;\n if (value instanceof Map) {\n subValue = value.get(valueKey);\n } else if (value[valueKey] instanceof Function) {\n subValue = value[valueKey]();\n } else {\n subValue = value[valueKey];\n }\n\n // determine a type\n let type: any = undefined,\n isSubValueMap = subValue instanceof Map;\n if (targetType && isMap) {\n type = targetType;\n } else if (targetType) {\n const metadata = defaultMetadataStorage.findTypeMetadata(targetType as Function, propertyName);\n if (metadata) {\n const options: TypeHelpOptions = { newObject: newValue, object: value, property: propertyName };\n const newType = metadata.typeFunction ? metadata.typeFunction(options) : metadata.reflectedType;\n if (\n metadata.options &&\n metadata.options.discriminator &&\n metadata.options.discriminator.property &&\n metadata.options.discriminator.subTypes\n ) {\n if (!(value[valueKey] instanceof Array)) {\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n type = metadata.options.discriminator.subTypes.find(subType => {\n if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) {\n return subType.name === subValue[metadata.options.discriminator.property];\n }\n });\n type === undefined ? (type = newType) : (type = type.value);\n if (!metadata.options.keepDiscriminatorProperty) {\n if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) {\n delete subValue[metadata.options.discriminator.property];\n }\n }\n }\n if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n type = subValue.constructor;\n }\n if (this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n subValue[metadata.options.discriminator.property] = metadata.options.discriminator.subTypes.find(\n subType => subType.value === subValue.constructor\n ).name;\n }\n } else {\n type = metadata;\n }\n } else {\n type = newType;\n }\n isSubValueMap = isSubValueMap || metadata.reflectedType === Map;\n } else if (this.options.targetMaps) {\n // try to find a type in target maps\n this.options.targetMaps\n .filter(map => map.target === targetType && !!map.properties[propertyName])\n .forEach(map => (type = map.properties[propertyName]));\n } else if (\n this.options.enableImplicitConversion &&\n this.transformationType === TransformationType.PLAIN_TO_CLASS\n ) {\n // if we have no registererd type via the @Type() decorator then we check if we have any\n // type declarations in reflect-metadata (type declaration is emited only if some decorator is added to the property.)\n const reflectedType = (Reflect as any).getMetadata(\n 'design:type',\n (targetType as Function).prototype,\n propertyName\n );\n\n if (reflectedType) {\n type = reflectedType;\n }\n }\n }\n\n // if value is an array try to get its custom array type\n const arrayType = Array.isArray(value[valueKey])\n ? this.getReflectedType(targetType as Function, propertyName)\n : undefined;\n\n // const subValueKey = TransformationType === TransformationType.PLAIN_TO_CLASS && newKeyName ? newKeyName : key;\n const subSource = source ? source[valueKey] : undefined;\n\n // if its deserialization then type if required\n // if we uncomment this types like string[] will not work\n // if (this.transformationType === TransformationType.PLAIN_TO_CLASS && !type && subValue instanceof Object && !(subValue instanceof Date))\n // throw new Error(`Cannot determine type for ${(targetType as any).name }.${propertyName}, did you forget to specify a @Type?`);\n\n // if newValue is a source object that has method that match newKeyName then skip it\n if (newValue.constructor.prototype) {\n const descriptor = Object.getOwnPropertyDescriptor(newValue.constructor.prototype, newValueKey);\n if (\n (this.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this.transformationType === TransformationType.CLASS_TO_CLASS) &&\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ((descriptor && !descriptor.set) || newValue[newValueKey] instanceof Function)\n )\n // || TransformationType === TransformationType.CLASS_TO_CLASS\n continue;\n }\n\n if (!this.options.enableCircularCheck || !this.isCircular(subValue)) {\n const transformKey = this.transformationType === TransformationType.PLAIN_TO_CLASS ? newValueKey : key;\n let finalValue;\n\n if (this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n // Get original value\n finalValue = value[transformKey];\n // Apply custom transformation\n finalValue = this.applyCustomTransformations(\n finalValue,\n targetType as Function,\n transformKey,\n value,\n this.transformationType\n );\n // If nothing change, it means no custom transformation was applied, so use the subValue.\n finalValue = value[transformKey] === finalValue ? subValue : finalValue;\n // Apply the default transformation\n finalValue = this.transform(subSource, finalValue, type, arrayType, isSubValueMap, level + 1);\n } else {\n if (subValue === undefined && this.options.exposeDefaultValues) {\n // Set default value if nothing provided\n finalValue = newValue[newValueKey];\n } else {\n finalValue = this.transform(subSource, subValue, type, arrayType, isSubValueMap, level + 1);\n finalValue = this.applyCustomTransformations(\n finalValue,\n targetType as Function,\n transformKey,\n value,\n this.transformationType\n );\n }\n }\n\n if (finalValue !== undefined || this.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n } else {\n newValue[newValueKey] = finalValue;\n }\n }\n } else if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n let finalValue = subValue;\n finalValue = this.applyCustomTransformations(\n finalValue,\n targetType as Function,\n key,\n value,\n this.transformationType\n );\n if (finalValue !== undefined || this.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n } else {\n newValue[newValueKey] = finalValue;\n }\n }\n }\n }\n\n if (this.options.enableCircularCheck) {\n this.recursionStack.delete(value);\n }\n\n return newValue;\n } else {\n return value;\n }\n }\n\n private applyCustomTransformations(\n value: any,\n target: Function,\n key: string,\n obj: any,\n transformationType: TransformationType\n ): boolean {\n let metadatas = defaultMetadataStorage.findTransformMetadatas(target, key, this.transformationType);\n\n // apply versioning options\n if (this.options.version !== undefined) {\n metadatas = metadatas.filter(metadata => {\n if (!metadata.options) return true;\n\n return this.checkVersion(metadata.options.since, metadata.options.until);\n });\n }\n\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n metadatas = metadatas.filter(metadata => {\n if (!metadata.options) return true;\n\n return this.checkGroups(metadata.options.groups);\n });\n } else {\n metadatas = metadatas.filter(metadata => {\n return !metadata.options || !metadata.options.groups || !metadata.options.groups.length;\n });\n }\n\n metadatas.forEach(metadata => {\n value = metadata.transformFn({ value, key, obj, type: transformationType, options: this.options });\n });\n\n return value;\n }\n\n // preventing circular references\n private isCircular(object: Record): boolean {\n return this.recursionStack.has(object);\n }\n\n private getReflectedType(target: Function, propertyName: string): Function | undefined {\n if (!target) return undefined;\n const meta = defaultMetadataStorage.findTypeMetadata(target, propertyName);\n return meta ? meta.reflectedType : undefined;\n }\n\n private getKeys(target: Function, object: Record, isMap: boolean): string[] {\n // determine exclusion strategy\n let strategy = defaultMetadataStorage.getStrategy(target);\n if (strategy === 'none') strategy = this.options.strategy || 'exposeAll'; // exposeAll is default strategy\n\n // get all keys that need to expose\n let keys: any[] = [];\n if (strategy === 'exposeAll' || isMap) {\n if (object instanceof Map) {\n keys = Array.from(object.keys());\n } else {\n keys = Object.keys(object);\n }\n }\n\n if (isMap) {\n // expose & exclude do not apply for map keys only to fields\n return keys;\n }\n\n if (!this.options.ignoreDecorators && target) {\n // add all exposed to list of keys\n let exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType);\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n exposedProperties = exposedProperties.map(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n return exposeMetadata.options.name;\n }\n\n return key;\n });\n }\n if (this.options.excludeExtraneousValues) {\n keys = exposedProperties;\n } else {\n keys = keys.concat(exposedProperties);\n }\n\n // exclude excluded properties\n const excludedProperties = defaultMetadataStorage.getExcludedProperties(target, this.transformationType);\n if (excludedProperties.length > 0) {\n keys = keys.filter(key => {\n return !excludedProperties.includes(key);\n });\n }\n\n // apply versioning options\n if (this.options.version !== undefined) {\n keys = keys.filter(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options) return true;\n\n return this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until);\n });\n }\n\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n keys = keys.filter(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options) return true;\n\n return this.checkGroups(exposeMetadata.options.groups);\n });\n } else {\n keys = keys.filter(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n return (\n !exposeMetadata ||\n !exposeMetadata.options ||\n !exposeMetadata.options.groups ||\n !exposeMetadata.options.groups.length\n );\n });\n }\n }\n\n // exclude prefixed properties\n if (this.options.excludePrefixes && this.options.excludePrefixes.length) {\n keys = keys.filter(key =>\n this.options.excludePrefixes.every(prefix => {\n return key.substr(0, prefix.length) !== prefix;\n })\n );\n }\n\n // make sure we have unique keys\n keys = keys.filter((key, index, self) => {\n return self.indexOf(key) === index;\n });\n\n return keys;\n }\n\n private checkVersion(since: number, until: number): boolean {\n let decision = true;\n if (decision && since) decision = this.options.version >= since;\n if (decision && until) decision = this.options.version < until;\n\n return decision;\n }\n\n private checkGroups(groups: string[]): boolean {\n if (!groups) return true;\n\n return this.options.groups.some(optionGroup => groups.includes(optionGroup));\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/constants/default-options.constant.js b/views/node_modules/class-transformer/esm2015/constants/default-options.constant.js deleted file mode 100644 index 419c9d7..0000000 --- a/views/node_modules/class-transformer/esm2015/constants/default-options.constant.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * These are the default options used by any transformation operation. - */ -export const defaultOptions = { - enableCircularCheck: false, - enableImplicitConversion: false, - excludeExtraneousValues: false, - excludePrefixes: undefined, - exposeDefaultValues: false, - exposeUnsetFields: true, - groups: undefined, - ignoreDecorators: false, - strategy: undefined, - targetMaps: undefined, - version: undefined, -}; -//# sourceMappingURL=default-options.constant.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/constants/default-options.constant.js.map b/views/node_modules/class-transformer/esm2015/constants/default-options.constant.js.map deleted file mode 100644 index dba3c7f..0000000 --- a/views/node_modules/class-transformer/esm2015/constants/default-options.constant.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"default-options.constant.js","sourceRoot":"","sources":["../../../src/constants/default-options.constant.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAmC;IAC5D,mBAAmB,EAAE,KAAK;IAC1B,wBAAwB,EAAE,KAAK;IAC/B,uBAAuB,EAAE,KAAK;IAC9B,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,KAAK;IACvB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;CACnB,CAAC","sourcesContent":["import { ClassTransformOptions } from '../interfaces/class-transformer-options.interface';\n\n/**\n * These are the default options used by any transformation operation.\n */\nexport const defaultOptions: Partial = {\n enableCircularCheck: false,\n enableImplicitConversion: false,\n excludeExtraneousValues: false,\n excludePrefixes: undefined,\n exposeDefaultValues: false,\n exposeUnsetFields: true,\n groups: undefined,\n ignoreDecorators: false,\n strategy: undefined,\n targetMaps: undefined,\n version: undefined,\n};\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/exclude.decorator.js b/views/node_modules/class-transformer/esm2015/decorators/exclude.decorator.js deleted file mode 100644 index 9175de3..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/exclude.decorator.js +++ /dev/null @@ -1,24 +0,0 @@ -import { defaultMetadataStorage } from '../storage'; -/** - * Marks the given class or property as excluded. By default the property is excluded in both - * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction - * via using the `toPlainOnly` or `toClassOnly` option. - * - * Can be applied to class definitions and properties. - */ -export function Exclude(options = {}) { - /** - * NOTE: The `propertyName` property must be marked as optional because - * this decorator used both as a class and a property decorator and the - * Typescript compiler will freak out if we make it mandatory as a class - * decorator only receives one parameter. - */ - return function (object, propertyName) { - defaultMetadataStorage.addExcludeMetadata({ - target: object instanceof Function ? object : object.constructor, - propertyName: propertyName, - options, - }); - }; -} -//# sourceMappingURL=exclude.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/exclude.decorator.js.map b/views/node_modules/class-transformer/esm2015/decorators/exclude.decorator.js.map deleted file mode 100644 index f6d5d45..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/exclude.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"exclude.decorator.js","sourceRoot":"","sources":["../../../src/decorators/exclude.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,UAA0B,EAAE;IAClD;;;;;OAKG;IACH,OAAO,UAAU,MAAW,EAAE,YAA8B;QAC1D,sBAAsB,CAAC,kBAAkB,CAAC;YACxC,MAAM,EAAE,MAAM,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW;YAChE,YAAY,EAAE,YAAsB;YACpC,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { ExcludeOptions } from '../interfaces';\n\n/**\n * Marks the given class or property as excluded. By default the property is excluded in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Exclude(options: ExcludeOptions = {}): PropertyDecorator & ClassDecorator {\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object: any, propertyName?: string | Symbol): void {\n defaultMetadataStorage.addExcludeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName as string,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/expose.decorator.js b/views/node_modules/class-transformer/esm2015/decorators/expose.decorator.js deleted file mode 100644 index 4b7e0ea..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/expose.decorator.js +++ /dev/null @@ -1,24 +0,0 @@ -import { defaultMetadataStorage } from '../storage'; -/** - * Marks the given class or property as included. By default the property is included in both - * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction - * via using the `toPlainOnly` or `toClassOnly` option. - * - * Can be applied to class definitions and properties. - */ -export function Expose(options = {}) { - /** - * NOTE: The `propertyName` property must be marked as optional because - * this decorator used both as a class and a property decorator and the - * Typescript compiler will freak out if we make it mandatory as a class - * decorator only receives one parameter. - */ - return function (object, propertyName) { - defaultMetadataStorage.addExposeMetadata({ - target: object instanceof Function ? object : object.constructor, - propertyName: propertyName, - options, - }); - }; -} -//# sourceMappingURL=expose.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/expose.decorator.js.map b/views/node_modules/class-transformer/esm2015/decorators/expose.decorator.js.map deleted file mode 100644 index 3d58be5..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/expose.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"expose.decorator.js","sourceRoot":"","sources":["../../../src/decorators/expose.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,UAAyB,EAAE;IAChD;;;;;OAKG;IACH,OAAO,UAAU,MAAW,EAAE,YAA8B;QAC1D,sBAAsB,CAAC,iBAAiB,CAAC;YACvC,MAAM,EAAE,MAAM,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW;YAChE,YAAY,EAAE,YAAsB;YACpC,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { ExposeOptions } from '../interfaces';\n\n/**\n * Marks the given class or property as included. By default the property is included in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Expose(options: ExposeOptions = {}): PropertyDecorator & ClassDecorator {\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object: any, propertyName?: string | Symbol): void {\n defaultMetadataStorage.addExposeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName as string,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/index.js b/views/node_modules/class-transformer/esm2015/decorators/index.js deleted file mode 100644 index 781ba4b..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/index.js +++ /dev/null @@ -1,8 +0,0 @@ -export * from './exclude.decorator'; -export * from './expose.decorator'; -export * from './transform-class-to-class.decorator'; -export * from './transform-class-to-plain.decorator'; -export * from './transform-plain-to-class.decorator'; -export * from './transform.decorator'; -export * from './type.decorator'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/index.js.map b/views/node_modules/class-transformer/esm2015/decorators/index.js.map deleted file mode 100644 index 4f999c3..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './exclude.decorator';\nexport * from './expose.decorator';\nexport * from './transform-class-to-class.decorator';\nexport * from './transform-class-to-plain.decorator';\nexport * from './transform-plain-to-class.decorator';\nexport * from './transform.decorator';\nexport * from './type.decorator';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-class.decorator.js b/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-class.decorator.js deleted file mode 100644 index 1aefc00..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-class.decorator.js +++ /dev/null @@ -1,20 +0,0 @@ -import { ClassTransformer } from '../ClassTransformer'; -/** - * Return the class instance only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -export function TransformClassToClass(params) { - return function (target, propertyKey, descriptor) { - const classTransformer = new ClassTransformer(); - const originalMethod = descriptor.value; - descriptor.value = function (...args) { - const result = originalMethod.apply(this, args); - const isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then((data) => classTransformer.classToClass(data, params)) - : classTransformer.classToClass(result, params); - }; - }; -} -//# sourceMappingURL=transform-class-to-class.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-class.decorator.js.map b/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-class.decorator.js.map deleted file mode 100644 index c8aa363..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-class.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-class-to-class.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform-class-to-class.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,OAAO,UAAU,MAA2B,EAAE,WAA4B,EAAE,UAA8B;QACxG,MAAM,gBAAgB,GAAqB,IAAI,gBAAgB,EAAE,CAAC;QAClE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;YACzC,MAAM,MAAM,GAAQ,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrD,MAAM,SAAS,GACb,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;YAChH,OAAO,SAAS;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACzE,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ClassTransformer } from '../ClassTransformer';\nimport { ClassTransformOptions } from '../interfaces';\n\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformClassToClass(params?: ClassTransformOptions): MethodDecorator {\n return function (target: Record, propertyKey: string | Symbol, descriptor: PropertyDescriptor): void {\n const classTransformer: ClassTransformer = new ClassTransformer();\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: any[]): Record {\n const result: any = originalMethod.apply(this, args);\n const isPromise =\n !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then((data: any) => classTransformer.classToClass(data, params))\n : classTransformer.classToClass(result, params);\n };\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-plain.decorator.js b/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-plain.decorator.js deleted file mode 100644 index 27145f7..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-plain.decorator.js +++ /dev/null @@ -1,20 +0,0 @@ -import { ClassTransformer } from '../ClassTransformer'; -/** - * Transform the object from class to plain object and return only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -export function TransformClassToPlain(params) { - return function (target, propertyKey, descriptor) { - const classTransformer = new ClassTransformer(); - const originalMethod = descriptor.value; - descriptor.value = function (...args) { - const result = originalMethod.apply(this, args); - const isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then((data) => classTransformer.classToPlain(data, params)) - : classTransformer.classToPlain(result, params); - }; - }; -} -//# sourceMappingURL=transform-class-to-plain.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-plain.decorator.js.map b/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-plain.decorator.js.map deleted file mode 100644 index 28b5443..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/transform-class-to-plain.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-class-to-plain.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform-class-to-plain.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,OAAO,UAAU,MAA2B,EAAE,WAA4B,EAAE,UAA8B;QACxG,MAAM,gBAAgB,GAAqB,IAAI,gBAAgB,EAAE,CAAC;QAClE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;YACzC,MAAM,MAAM,GAAQ,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrD,MAAM,SAAS,GACb,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;YAChH,OAAO,SAAS;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBACzE,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ClassTransformer } from '../ClassTransformer';\nimport { ClassTransformOptions } from '../interfaces';\n\n/**\n * Transform the object from class to plain object and return only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformClassToPlain(params?: ClassTransformOptions): MethodDecorator {\n return function (target: Record, propertyKey: string | Symbol, descriptor: PropertyDescriptor): void {\n const classTransformer: ClassTransformer = new ClassTransformer();\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: any[]): Record {\n const result: any = originalMethod.apply(this, args);\n const isPromise =\n !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then((data: any) => classTransformer.classToPlain(data, params))\n : classTransformer.classToPlain(result, params);\n };\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/transform-plain-to-class.decorator.js b/views/node_modules/class-transformer/esm2015/decorators/transform-plain-to-class.decorator.js deleted file mode 100644 index a3bdd4c..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/transform-plain-to-class.decorator.js +++ /dev/null @@ -1,20 +0,0 @@ -import { ClassTransformer } from '../ClassTransformer'; -/** - * Return the class instance only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -export function TransformPlainToClass(classType, params) { - return function (target, propertyKey, descriptor) { - const classTransformer = new ClassTransformer(); - const originalMethod = descriptor.value; - descriptor.value = function (...args) { - const result = originalMethod.apply(this, args); - const isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then((data) => classTransformer.plainToClass(classType, data, params)) - : classTransformer.plainToClass(classType, result, params); - }; - }; -} -//# sourceMappingURL=transform-plain-to-class.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/transform-plain-to-class.decorator.js.map b/views/node_modules/class-transformer/esm2015/decorators/transform-plain-to-class.decorator.js.map deleted file mode 100644 index 334592c..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/transform-plain-to-class.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-plain-to-class.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform-plain-to-class.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAgC,EAChC,MAA8B;IAE9B,OAAO,UAAU,MAA2B,EAAE,WAA4B,EAAE,UAA8B;QACxG,MAAM,gBAAgB,GAAqB,IAAI,gBAAgB,EAAE,CAAC;QAClE,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,UAAU,GAAG,IAAW;YACzC,MAAM,MAAM,GAAQ,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrD,MAAM,SAAS,GACb,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;YAChH,OAAO,SAAS;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;gBACpF,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ClassTransformer } from '../ClassTransformer';\nimport { ClassTransformOptions, ClassConstructor } from '../interfaces';\n\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformPlainToClass(\n classType: ClassConstructor,\n params?: ClassTransformOptions\n): MethodDecorator {\n return function (target: Record, propertyKey: string | Symbol, descriptor: PropertyDescriptor): void {\n const classTransformer: ClassTransformer = new ClassTransformer();\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: any[]): Record {\n const result: any = originalMethod.apply(this, args);\n const isPromise =\n !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then((data: any) => classTransformer.plainToClass(classType, data, params))\n : classTransformer.plainToClass(classType, result, params);\n };\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/transform.decorator.js b/views/node_modules/class-transformer/esm2015/decorators/transform.decorator.js deleted file mode 100644 index 411c891..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/transform.decorator.js +++ /dev/null @@ -1,17 +0,0 @@ -import { defaultMetadataStorage } from '../storage'; -/** - * Defines a custom logic for value transformation. - * - * Can be applied to properties only. - */ -export function Transform(transformFn, options = {}) { - return function (target, propertyName) { - defaultMetadataStorage.addTransformMetadata({ - target: target.constructor, - propertyName: propertyName, - transformFn, - options, - }); - }; -} -//# sourceMappingURL=transform.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/transform.decorator.js.map b/views/node_modules/class-transformer/esm2015/decorators/transform.decorator.js.map deleted file mode 100644 index 19cfa4b..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/transform.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,WAA+C,EAC/C,UAA4B,EAAE;IAE9B,OAAO,UAAU,MAAW,EAAE,YAA6B;QACzD,sBAAsB,CAAC,oBAAoB,CAAC;YAC1C,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAsB;YACpC,WAAW;YACX,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { TransformFnParams, TransformOptions } from '../interfaces';\n\n/**\n * Defines a custom logic for value transformation.\n *\n * Can be applied to properties only.\n */\nexport function Transform(\n transformFn: (params: TransformFnParams) => any,\n options: TransformOptions = {}\n): PropertyDecorator {\n return function (target: any, propertyName: string | Symbol): void {\n defaultMetadataStorage.addTransformMetadata({\n target: target.constructor,\n propertyName: propertyName as string,\n transformFn,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/type.decorator.js b/views/node_modules/class-transformer/esm2015/decorators/type.decorator.js deleted file mode 100644 index 339f6de..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/type.decorator.js +++ /dev/null @@ -1,20 +0,0 @@ -import { defaultMetadataStorage } from '../storage'; -/** - * Specifies a type of the property. - * The given TypeFunction can return a constructor. A discriminator can be given in the options. - * - * Can be applied to properties only. - */ -export function Type(typeFunction, options = {}) { - return function (target, propertyName) { - const reflectedType = Reflect.getMetadata('design:type', target, propertyName); - defaultMetadataStorage.addTypeMetadata({ - target: target.constructor, - propertyName: propertyName, - reflectedType, - typeFunction, - options, - }); - }; -} -//# sourceMappingURL=type.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/decorators/type.decorator.js.map b/views/node_modules/class-transformer/esm2015/decorators/type.decorator.js.map deleted file mode 100644 index ed12342..0000000 --- a/views/node_modules/class-transformer/esm2015/decorators/type.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type.decorator.js","sourceRoot":"","sources":["../../../src/decorators/type.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAClB,YAAmD,EACnD,UAAuB,EAAE;IAEzB,OAAO,UAAU,MAAW,EAAE,YAA6B;QACzD,MAAM,aAAa,GAAI,OAAe,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACxF,sBAAsB,CAAC,eAAe,CAAC;YACrC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAsB;YACpC,aAAa;YACb,YAAY;YACZ,OAAO;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { TypeHelpOptions, TypeOptions } from '../interfaces';\n\n/**\n * Specifies a type of the property.\n * The given TypeFunction can return a constructor. A discriminator can be given in the options.\n *\n * Can be applied to properties only.\n */\nexport function Type(\n typeFunction?: (type?: TypeHelpOptions) => Function,\n options: TypeOptions = {}\n): PropertyDecorator {\n return function (target: any, propertyName: string | Symbol): void {\n const reflectedType = (Reflect as any).getMetadata('design:type', target, propertyName);\n defaultMetadataStorage.addTypeMetadata({\n target: target.constructor,\n propertyName: propertyName as string,\n reflectedType,\n typeFunction,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/enums/index.js b/views/node_modules/class-transformer/esm2015/enums/index.js deleted file mode 100644 index 281d8c9..0000000 --- a/views/node_modules/class-transformer/esm2015/enums/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from './transformation-type.enum'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/enums/index.js.map b/views/node_modules/class-transformer/esm2015/enums/index.js.map deleted file mode 100644 index 19bdc25..0000000 --- a/views/node_modules/class-transformer/esm2015/enums/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC","sourcesContent":["export * from './transformation-type.enum';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/enums/transformation-type.enum.js b/views/node_modules/class-transformer/esm2015/enums/transformation-type.enum.js deleted file mode 100644 index fdef8bf..0000000 --- a/views/node_modules/class-transformer/esm2015/enums/transformation-type.enum.js +++ /dev/null @@ -1,7 +0,0 @@ -export var TransformationType; -(function (TransformationType) { - TransformationType[TransformationType["PLAIN_TO_CLASS"] = 0] = "PLAIN_TO_CLASS"; - TransformationType[TransformationType["CLASS_TO_PLAIN"] = 1] = "CLASS_TO_PLAIN"; - TransformationType[TransformationType["CLASS_TO_CLASS"] = 2] = "CLASS_TO_CLASS"; -})(TransformationType || (TransformationType = {})); -//# sourceMappingURL=transformation-type.enum.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/enums/transformation-type.enum.js.map b/views/node_modules/class-transformer/esm2015/enums/transformation-type.enum.js.map deleted file mode 100644 index d4da5bd..0000000 --- a/views/node_modules/class-transformer/esm2015/enums/transformation-type.enum.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transformation-type.enum.js","sourceRoot":"","sources":["../../../src/enums/transformation-type.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,+EAAc,CAAA;IACd,+EAAc,CAAA;IACd,+EAAc,CAAA;AAChB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B","sourcesContent":["export enum TransformationType {\n PLAIN_TO_CLASS,\n CLASS_TO_PLAIN,\n CLASS_TO_CLASS,\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/index.js b/views/node_modules/class-transformer/esm2015/index.js deleted file mode 100644 index aa3df79..0000000 --- a/views/node_modules/class-transformer/esm2015/index.js +++ /dev/null @@ -1,40 +0,0 @@ -import { ClassTransformer } from './ClassTransformer'; -export { ClassTransformer } from './ClassTransformer'; -export * from './decorators'; -export * from './interfaces'; -export * from './enums'; -const classTransformer = new ClassTransformer(); -export function classToPlain(object, options) { - return classTransformer.classToPlain(object, options); -} -export function classToPlainFromExist(object, plainObject, options) { - return classTransformer.classToPlainFromExist(object, plainObject, options); -} -export function plainToClass(cls, plain, options) { - return classTransformer.plainToClass(cls, plain, options); -} -export function plainToClassFromExist(clsObject, plain, options) { - return classTransformer.plainToClassFromExist(clsObject, plain, options); -} -export function classToClass(object, options) { - return classTransformer.classToClass(object, options); -} -export function classToClassFromExist(object, fromObject, options) { - return classTransformer.classToClassFromExist(object, fromObject, options); -} -export function serialize(object, options) { - return classTransformer.serialize(object, options); -} -/** - * Deserializes given JSON string to a object of the given class. - */ -export function deserialize(cls, json, options) { - return classTransformer.deserialize(cls, json, options); -} -/** - * Deserializes given JSON string to an array of objects of the given class. - */ -export function deserializeArray(cls, json, options) { - return classTransformer.deserializeArray(cls, json, options); -} -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/index.js.map b/views/node_modules/class-transformer/esm2015/index.js.map deleted file mode 100644 index 99def71..0000000 --- a/views/node_modules/class-transformer/esm2015/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AAExB,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAOhD,MAAM,UAAU,YAAY,CAC1B,MAAe,EACf,OAA+B;IAE/B,OAAO,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAiBD,MAAM,UAAU,qBAAqB,CACnC,MAAS,EACT,WAAwD,EACxD,OAA+B;IAE/B,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAOD,MAAM,UAAU,YAAY,CAAO,GAAwB,EAAE,KAAc,EAAE,OAA+B;IAC1G,OAAO,gBAAgB,CAAC,YAAY,CAAC,GAAG,EAAE,KAAY,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AASD,MAAM,UAAU,qBAAqB,CAAO,SAAY,EAAE,KAAc,EAAE,OAA+B;IACvG,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC;AAOD,MAAM,UAAU,YAAY,CAAI,MAAe,EAAE,OAA+B;IAC9E,OAAO,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AASD,MAAM,UAAU,qBAAqB,CAAI,MAAS,EAAE,UAAmB,EAAE,OAA+B;IACtG,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAOD,MAAM,UAAU,SAAS,CAAI,MAAe,EAAE,OAA+B;IAC3E,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAI,GAAwB,EAAE,IAAY,EAAE,OAA+B;IACpG,OAAO,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAI,GAAwB,EAAE,IAAY,EAAE,OAA+B;IACzG,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC","sourcesContent":["import { ClassTransformer } from './ClassTransformer';\nimport { ClassTransformOptions } from './interfaces';\nimport { ClassConstructor } from './interfaces';\n\nexport { ClassTransformer } from './ClassTransformer';\nexport * from './decorators';\nexport * from './interfaces';\nexport * from './enums';\n\nconst classTransformer = new ClassTransformer();\n\n/**\n * Converts class (constructor) object to plain (literal) object. Also works with arrays.\n */\nexport function classToPlain(object: T, options?: ClassTransformOptions): Record;\nexport function classToPlain(object: T[], options?: ClassTransformOptions): Record[];\nexport function classToPlain(\n object: T | T[],\n options?: ClassTransformOptions\n): Record | Record[] {\n return classTransformer.classToPlain(object, options);\n}\n\n/**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\nexport function classToPlainFromExist(\n object: T,\n plainObject: Record,\n options?: ClassTransformOptions\n): Record;\nexport function classToPlainFromExist(\n object: T,\n plainObjects: Record[],\n options?: ClassTransformOptions\n): Record[];\nexport function classToPlainFromExist(\n object: T,\n plainObject: Record | Record[],\n options?: ClassTransformOptions\n): Record | Record[] {\n return classTransformer.classToPlainFromExist(object, plainObject, options);\n}\n\n/**\n * Converts plain (literal) object to class (constructor) object. Also works with arrays.\n */\nexport function plainToClass(cls: ClassConstructor, plain: V[], options?: ClassTransformOptions): T[];\nexport function plainToClass(cls: ClassConstructor, plain: V, options?: ClassTransformOptions): T;\nexport function plainToClass(cls: ClassConstructor, plain: V | V[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.plainToClass(cls, plain as any, options);\n}\n\n/**\n * Converts plain (literal) object to class (constructor) object.\n * Uses given object as source object (it means fills given object with data from plain object).\n * Also works with arrays.\n */\nexport function plainToClassFromExist(clsObject: T[], plain: V[], options?: ClassTransformOptions): T[];\nexport function plainToClassFromExist(clsObject: T, plain: V, options?: ClassTransformOptions): T;\nexport function plainToClassFromExist(clsObject: T, plain: V | V[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.plainToClassFromExist(clsObject, plain, options);\n}\n\n/**\n * Converts class (constructor) object to new class (constructor) object. Also works with arrays.\n */\nexport function classToClass(object: T, options?: ClassTransformOptions): T;\nexport function classToClass(object: T[], options?: ClassTransformOptions): T[];\nexport function classToClass(object: T | T[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.classToClass(object, options);\n}\n\n/**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\nexport function classToClassFromExist(object: T, fromObject: T, options?: ClassTransformOptions): T;\nexport function classToClassFromExist(object: T, fromObjects: T[], options?: ClassTransformOptions): T[];\nexport function classToClassFromExist(object: T, fromObject: T | T[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.classToClassFromExist(object, fromObject, options);\n}\n\n/**\n * Serializes given object to a JSON string.\n */\nexport function serialize(object: T, options?: ClassTransformOptions): string;\nexport function serialize(object: T[], options?: ClassTransformOptions): string;\nexport function serialize(object: T | T[], options?: ClassTransformOptions): string {\n return classTransformer.serialize(object, options);\n}\n\n/**\n * Deserializes given JSON string to a object of the given class.\n */\nexport function deserialize(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T {\n return classTransformer.deserialize(cls, json, options);\n}\n\n/**\n * Deserializes given JSON string to an array of objects of the given class.\n */\nexport function deserializeArray(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T[] {\n return classTransformer.deserializeArray(cls, json, options);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/class-constructor.type.js b/views/node_modules/class-transformer/esm2015/interfaces/class-constructor.type.js deleted file mode 100644 index 33f0232..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/class-constructor.type.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=class-constructor.type.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/class-constructor.type.js.map b/views/node_modules/class-transformer/esm2015/interfaces/class-constructor.type.js.map deleted file mode 100644 index e4b420a..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/class-constructor.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"class-constructor.type.js","sourceRoot":"","sources":["../../../src/interfaces/class-constructor.type.ts"],"names":[],"mappings":"","sourcesContent":["export type ClassConstructor = {\n new (...args: any[]): T;\n};\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/class-transformer-options.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/class-transformer-options.interface.js deleted file mode 100644 index 0aac215..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/class-transformer-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=class-transformer-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/class-transformer-options.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/class-transformer-options.interface.js.map deleted file mode 100644 index 4401d79..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/class-transformer-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"class-transformer-options.interface.js","sourceRoot":"","sources":["../../../src/interfaces/class-transformer-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TargetMap } from './target-map.interface';\n\n/**\n * Options to be passed during transformation.\n */\nexport interface ClassTransformOptions {\n /**\n * Exclusion strategy. By default exposeAll is used, which means that it will expose all properties are transformed\n * by default.\n */\n strategy?: 'excludeAll' | 'exposeAll';\n\n /**\n * Indicates if extraneous properties should be excluded from the value when converting a plain value to a class.\n */\n excludeExtraneousValues?: boolean;\n\n /**\n * Only properties with given groups gonna be transformed.\n */\n groups?: string[];\n\n /**\n * Only properties with \"since\" > version < \"until\" gonna be transformed.\n */\n version?: number;\n\n /**\n * Excludes properties with the given prefixes. For example, if you mark your private properties with \"_\" and \"__\"\n * you can set this option's value to [\"_\", \"__\"] and all private properties will be skipped.\n * This works only for \"exposeAll\" strategy.\n */\n excludePrefixes?: string[];\n\n /**\n * If set to true then class transformer will ignore all @Expose and @Exclude decorators and what inside them.\n * This option is useful if you want to kinda clone your object but do not apply decorators affects.\n */\n ignoreDecorators?: boolean;\n\n /**\n * Target maps allows to set a Types of the transforming object without using @Type decorator.\n * This is useful when you are transforming external classes, or if you already have type metadata for\n * objects and you don't want to set it up again.\n */\n targetMaps?: TargetMap[];\n\n /**\n * If set to true then class transformer will perform a circular check. (circular check is turned off by default)\n * This option is useful when you know for sure that your types might have a circular dependency.\n */\n enableCircularCheck?: boolean;\n\n /**\n * If set to true then class transformer will try to convert properties implicitly to their target type based on their typing information.\n *\n * DEFAULT: `false`\n */\n enableImplicitConversion?: boolean;\n\n /**\n * If set to true then class transformer will take default values for unprovided fields.\n * This is useful when you convert a plain object to a class and have an optional field with a default value.\n */\n exposeDefaultValues?: boolean;\n\n /**\n * When set to true `undefined` fields will be ignored during class to plain transformation.\n *\n * DEFAULT: `true`\n */\n exposeUnsetFields?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/exclude-options.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/exclude-options.interface.js deleted file mode 100644 index 05900a1..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/exclude-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=exclude-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/exclude-options.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/exclude-options.interface.js.map deleted file mode 100644 index 3ccc700..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/exclude-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"exclude-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/exclude-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Possible transformation options for the @Exclude decorator.\n */\nexport interface ExcludeOptions {\n /**\n * Expose this property only when transforming from plain to class instance.\n */\n toClassOnly?: boolean;\n\n /**\n * Expose this property only when transforming from class instance to plain object.\n */\n toPlainOnly?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/expose-options.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/expose-options.interface.js deleted file mode 100644 index af2140e..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/expose-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=expose-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/expose-options.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/expose-options.interface.js.map deleted file mode 100644 index 878e93e..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/expose-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"expose-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/expose-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Possible transformation options for the @Expose decorator.\n */\nexport interface ExposeOptions {\n /**\n * Name of property on the target object to expose the value of this property.\n */\n name?: string;\n\n /**\n * First version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n since?: number;\n\n /**\n * Last version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n until?: number;\n\n /**\n * List of transformation groups this property belongs to. When set,\n * the property will be exposed only when transform is called with\n * one of the groups specified.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { groups: ['user'] });\n * ```\n */\n groups?: string[];\n\n /**\n * Expose this property only when transforming from plain to class instance.\n */\n toClassOnly?: boolean;\n\n /**\n * Expose this property only when transforming from class instance to plain object.\n */\n toPlainOnly?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/transform-options.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/transform-options.interface.js deleted file mode 100644 index fd26963..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/transform-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=transform-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/transform-options.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/transform-options.interface.js.map deleted file mode 100644 index 21bba54..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/transform-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/transform-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Possible transformation options for the @Transform decorator.\n */\nexport interface TransformOptions {\n /**\n * First version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n since?: number;\n\n /**\n * Last version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n until?: number;\n\n /**\n * List of transformation groups this property belongs to. When set,\n * the property will be exposed only when transform is called with\n * one of the groups specified.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { groups: ['user'] });\n * ```\n */\n groups?: string[];\n\n /**\n * Expose this property only when transforming from plain to class instance.\n */\n toClassOnly?: boolean;\n\n /**\n * Expose this property only when transforming from class instance to plain object.\n */\n toPlainOnly?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-discriminator-descriptor.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-discriminator-descriptor.interface.js deleted file mode 100644 index a01309f..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-discriminator-descriptor.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=type-discriminator-descriptor.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map deleted file mode 100644 index f6d533e..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-discriminator-descriptor.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/type-discriminator-descriptor.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { ClassConstructor } from '..';\n\n/**\n * Discriminator object containing the type information to select a proper type\n * during transformation when a discriminator property is provided.\n */\nexport interface DiscriminatorDescriptor {\n /**\n * The name of the property which holds the type information in the received object.\n */\n property: string;\n /**\n * List of the available types. The transformer will try to lookup the object\n * with the same key as the value received in the defined discriminator property\n * and create an instance of the defined class.\n */\n subTypes: {\n /**\n * Name of the type.\n */\n name: string;\n\n /**\n * A class constructor which can be used to create the object.\n */\n value: ClassConstructor;\n }[];\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-options.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-options.interface.js deleted file mode 100644 index 63094a2..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=type-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-options.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-options.interface.js.map deleted file mode 100644 index d3cf046..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/decorator-options/type-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/type-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { DiscriminatorDescriptor } from './type-discriminator-descriptor.interface';\n\n/**\n * Possible transformation options for the @Type decorator.\n */\nexport interface TypeOptions {\n /**\n * Optional discriminator object, when provided the property value will be\n * initialized according to the specified object.\n */\n discriminator?: DiscriminatorDescriptor;\n\n /**\n * Indicates whether to keep the discriminator property on the\n * transformed object or not. Disabled by default.\n *\n * @default false\n */\n keepDiscriminatorProperty?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/index.js b/views/node_modules/class-transformer/esm2015/interfaces/index.js deleted file mode 100644 index 00933fe..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/index.js +++ /dev/null @@ -1,15 +0,0 @@ -export * from './decorator-options/expose-options.interface'; -export * from './decorator-options/exclude-options.interface'; -export * from './decorator-options/transform-options.interface'; -export * from './decorator-options/type-discriminator-descriptor.interface'; -export * from './decorator-options/type-options.interface'; -export * from './metadata/exclude-metadata.interface'; -export * from './metadata/expose-metadata.interface'; -export * from './metadata/transform-metadata.interface'; -export * from './metadata/transform-fn-params.interface'; -export * from './metadata/type-metadata.interface'; -export * from './class-constructor.type'; -export * from './class-transformer-options.interface'; -export * from './target-map.interface'; -export * from './type-help-options.interface'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/index.js.map b/views/node_modules/class-transformer/esm2015/interfaces/index.js.map deleted file mode 100644 index 0cf79ca..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iDAAiD,CAAC;AAChE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AACtD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC","sourcesContent":["export * from './decorator-options/expose-options.interface';\nexport * from './decorator-options/exclude-options.interface';\nexport * from './decorator-options/transform-options.interface';\nexport * from './decorator-options/type-discriminator-descriptor.interface';\nexport * from './decorator-options/type-options.interface';\nexport * from './metadata/exclude-metadata.interface';\nexport * from './metadata/expose-metadata.interface';\nexport * from './metadata/transform-metadata.interface';\nexport * from './metadata/transform-fn-params.interface';\nexport * from './metadata/type-metadata.interface';\nexport * from './class-constructor.type';\nexport * from './class-transformer-options.interface';\nexport * from './target-map.interface';\nexport * from './type-help-options.interface';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/metadata/exclude-metadata.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/metadata/exclude-metadata.interface.js deleted file mode 100644 index 2f9ec8f..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/metadata/exclude-metadata.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=exclude-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/metadata/exclude-metadata.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/metadata/exclude-metadata.interface.js.map deleted file mode 100644 index ca4dad1..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/metadata/exclude-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"exclude-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/exclude-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { ExcludeOptions } from '..';\n\n/**\n * This object represents metadata assigned to a property via the @Exclude decorator.\n */\nexport interface ExcludeMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (class or property).\n *\n * Note: If the decorator is applied to a class the propertyName will be undefined.\n */\n propertyName: string | undefined;\n\n /**\n * Options passed to the @Exclude operator for this property.\n */\n options: ExcludeOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/metadata/expose-metadata.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/metadata/expose-metadata.interface.js deleted file mode 100644 index 2e6ed47..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/metadata/expose-metadata.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=expose-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/metadata/expose-metadata.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/metadata/expose-metadata.interface.js.map deleted file mode 100644 index 4902919..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/metadata/expose-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"expose-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/expose-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { ExposeOptions } from '..';\n\n/**\n * This object represents metadata assigned to a property via the @Expose decorator.\n */\nexport interface ExposeMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (class or property).\n *\n * Note: If the decorator is applied to a class the propertyName will be undefined.\n */\n propertyName: string | undefined;\n\n /**\n * Options passed to the @Expose operator for this property.\n */\n options: ExposeOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-fn-params.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-fn-params.interface.js deleted file mode 100644 index 4d47f5b..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-fn-params.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=transform-fn-params.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-fn-params.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-fn-params.interface.js.map deleted file mode 100644 index e849e4f..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-fn-params.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-fn-params.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/transform-fn-params.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TransformationType } from '../../enums';\nimport { ClassTransformOptions } from '../class-transformer-options.interface';\n\nexport interface TransformFnParams {\n value: any;\n key: string;\n obj: any;\n type: TransformationType;\n options: ClassTransformOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-metadata.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-metadata.interface.js deleted file mode 100644 index 7e1f380..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-metadata.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=transform-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-metadata.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-metadata.interface.js.map deleted file mode 100644 index 668c8ce..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/metadata/transform-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/transform-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TransformOptions } from '..';\nimport { TransformFnParams } from './transform-fn-params.interface';\n\n/**\n * This object represents metadata assigned to a property via the @Transform decorator.\n */\nexport interface TransformMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (property only).\n */\n propertyName: string;\n\n /**\n * The custom transformation function provided by the user in the @Transform decorator.\n */\n transformFn: (params: TransformFnParams) => any;\n\n /**\n * Options passed to the @Transform operator for this property.\n */\n options: TransformOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/metadata/type-metadata.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/metadata/type-metadata.interface.js deleted file mode 100644 index 1464571..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/metadata/type-metadata.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=type-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/metadata/type-metadata.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/metadata/type-metadata.interface.js.map deleted file mode 100644 index 4c6206d..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/metadata/type-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/type-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TypeHelpOptions, TypeOptions } from '..';\n\n/**\n * This object represents metadata assigned to a property via the @Type decorator.\n */\nexport interface TypeMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (property only).\n */\n propertyName: string;\n\n /**\n * The type guessed from assigned Reflect metadata ('design:type')\n */\n reflectedType: any;\n\n /**\n * The custom function provided by the user in the @Type decorator which\n * returns the target type for the transformation.\n */\n typeFunction: (options?: TypeHelpOptions) => Function;\n\n /**\n * Options passed to the @Type operator for this property.\n */\n options: TypeOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/target-map.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/target-map.interface.js deleted file mode 100644 index 39ea86f..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/target-map.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=target-map.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/target-map.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/target-map.interface.js.map deleted file mode 100644 index 710733f..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/target-map.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"target-map.interface.js","sourceRoot":"","sources":["../../../src/interfaces/target-map.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Allows to specify a map of Types in the object without using @Type decorator.\n * This is useful when you have external classes.\n */\nexport interface TargetMap {\n /**\n * Target which Types are being specified.\n */\n target: Function;\n\n /**\n * List of properties and their Types.\n */\n properties: { [key: string]: Function };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/type-help-options.interface.js b/views/node_modules/class-transformer/esm2015/interfaces/type-help-options.interface.js deleted file mode 100644 index cafc948..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/type-help-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=type-help-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/interfaces/type-help-options.interface.js.map b/views/node_modules/class-transformer/esm2015/interfaces/type-help-options.interface.js.map deleted file mode 100644 index 8050a8f..0000000 --- a/views/node_modules/class-transformer/esm2015/interfaces/type-help-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-help-options.interface.js","sourceRoot":"","sources":["../../../src/interfaces/type-help-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["// TODO: Document this interface. What does each property means?\nexport interface TypeHelpOptions {\n newObject: any;\n object: Record;\n property: string;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/storage.js b/views/node_modules/class-transformer/esm2015/storage.js deleted file mode 100644 index 2203e97..0000000 --- a/views/node_modules/class-transformer/esm2015/storage.js +++ /dev/null @@ -1,6 +0,0 @@ -import { MetadataStorage } from './MetadataStorage'; -/** - * Default metadata storage is used as singleton and can be used to storage all metadatas. - */ -export const defaultMetadataStorage = new MetadataStorage(); -//# sourceMappingURL=storage.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/storage.js.map b/views/node_modules/class-transformer/esm2015/storage.js.map deleted file mode 100644 index 97fa2e2..0000000 --- a/views/node_modules/class-transformer/esm2015/storage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC","sourcesContent":["import { MetadataStorage } from './MetadataStorage';\n\n/**\n * Default metadata storage is used as singleton and can be used to storage all metadatas.\n */\nexport const defaultMetadataStorage = new MetadataStorage();\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/utils/get-global.util.js b/views/node_modules/class-transformer/esm2015/utils/get-global.util.js deleted file mode 100644 index a8b64cc..0000000 --- a/views/node_modules/class-transformer/esm2015/utils/get-global.util.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * This function returns the global object across Node and browsers. - * - * Note: `globalThis` is the standardized approach however it has been added to - * Node.js in version 12. We need to include this snippet until Node 12 EOL. - */ -export function getGlobal() { - if (typeof globalThis !== 'undefined') { - return globalThis; - } - if (typeof global !== 'undefined') { - return global; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - if (typeof window !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - return window; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - if (typeof self !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - return self; - } -} -//# sourceMappingURL=get-global.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/utils/get-global.util.js.map b/views/node_modules/class-transformer/esm2015/utils/get-global.util.js.map deleted file mode 100644 index 83b6cf4..0000000 --- a/views/node_modules/class-transformer/esm2015/utils/get-global.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-global.util.js","sourceRoot":"","sources":["../../../src/utils/get-global.util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;QACrC,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,yCAAyC;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,6DAA6D;QAC7D,yCAAyC;QACzC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,uCAAuC;IACvC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC/B,6DAA6D;QAC7D,uCAAuC;QACvC,OAAO,IAAI,CAAC;KACb;AACH,CAAC","sourcesContent":["/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/utils/get-global.util.spect.js b/views/node_modules/class-transformer/esm2015/utils/get-global.util.spect.js deleted file mode 100644 index 9b5bb33..0000000 --- a/views/node_modules/class-transformer/esm2015/utils/get-global.util.spect.js +++ /dev/null @@ -1,13 +0,0 @@ -import { getGlobal } from '.'; -describe('getGlobal()', () => { - it('should return true if Buffer is present in globalThis', () => { - expect(getGlobal().Buffer).toBe(true); - }); - it('should return false if Buffer is not present in globalThis', () => { - const bufferImp = global.Buffer; - delete global.Buffer; - expect(getGlobal().Buffer).toBe(false); - global.Buffer = bufferImp; - }); -}); -//# sourceMappingURL=get-global.util.spect.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/utils/get-global.util.spect.js.map b/views/node_modules/class-transformer/esm2015/utils/get-global.util.spect.js.map deleted file mode 100644 index 0384181..0000000 --- a/views/node_modules/class-transformer/esm2015/utils/get-global.util.spect.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-global.util.spect.js","sourceRoot":"","sources":["../../../src/utils/get-global.util.spect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAE9B,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC;QAErB,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { getGlobal } from '.';\n\ndescribe('getGlobal()', () => {\n it('should return true if Buffer is present in globalThis', () => {\n expect(getGlobal().Buffer).toBe(true);\n });\n\n it('should return false if Buffer is not present in globalThis', () => {\n const bufferImp = global.Buffer;\n delete global.Buffer;\n\n expect(getGlobal().Buffer).toBe(false);\n\n global.Buffer = bufferImp;\n });\n});\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/utils/index.js b/views/node_modules/class-transformer/esm2015/utils/index.js deleted file mode 100644 index 7b62321..0000000 --- a/views/node_modules/class-transformer/esm2015/utils/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export * from './get-global.util'; -export * from './is-promise.util'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/utils/index.js.map b/views/node_modules/class-transformer/esm2015/utils/index.js.map deleted file mode 100644 index 132a5fd..0000000 --- a/views/node_modules/class-transformer/esm2015/utils/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC","sourcesContent":["export * from './get-global.util';\nexport * from './is-promise.util';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/utils/is-promise.util.js b/views/node_modules/class-transformer/esm2015/utils/is-promise.util.js deleted file mode 100644 index 170e190..0000000 --- a/views/node_modules/class-transformer/esm2015/utils/is-promise.util.js +++ /dev/null @@ -1,4 +0,0 @@ -export function isPromise(p) { - return p !== null && typeof p === 'object' && typeof p.then === 'function'; -} -//# sourceMappingURL=is-promise.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm2015/utils/is-promise.util.js.map b/views/node_modules/class-transformer/esm2015/utils/is-promise.util.js.map deleted file mode 100644 index 9813aa9..0000000 --- a/views/node_modules/class-transformer/esm2015/utils/is-promise.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"is-promise.util.js","sourceRoot":"","sources":["../../../src/utils/is-promise.util.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAI,CAAM;IACjC,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AAC7E,CAAC","sourcesContent":["export function isPromise(p: any): p is Promise {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/ClassTransformer.js b/views/node_modules/class-transformer/esm5/ClassTransformer.js deleted file mode 100644 index 56fce1f..0000000 --- a/views/node_modules/class-transformer/esm5/ClassTransformer.js +++ /dev/null @@ -1,62 +0,0 @@ -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -import { TransformOperationExecutor } from './TransformOperationExecutor'; -import { TransformationType } from './enums'; -import { defaultOptions } from './constants/default-options.constant'; -var ClassTransformer = /** @class */ (function () { - function ClassTransformer() { - } - ClassTransformer.prototype.classToPlain = function (object, options) { - var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options)); - return executor.transform(undefined, object, undefined, undefined, undefined, undefined); - }; - ClassTransformer.prototype.classToPlainFromExist = function (object, plainObject, options) { - var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, __assign(__assign({}, defaultOptions), options)); - return executor.transform(plainObject, object, undefined, undefined, undefined, undefined); - }; - ClassTransformer.prototype.plainToClass = function (cls, plain, options) { - var executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options)); - return executor.transform(undefined, plain, cls, undefined, undefined, undefined); - }; - ClassTransformer.prototype.plainToClassFromExist = function (clsObject, plain, options) { - var executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, __assign(__assign({}, defaultOptions), options)); - return executor.transform(clsObject, plain, undefined, undefined, undefined, undefined); - }; - ClassTransformer.prototype.classToClass = function (object, options) { - var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options)); - return executor.transform(undefined, object, undefined, undefined, undefined, undefined); - }; - ClassTransformer.prototype.classToClassFromExist = function (object, fromObject, options) { - var executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, __assign(__assign({}, defaultOptions), options)); - return executor.transform(fromObject, object, undefined, undefined, undefined, undefined); - }; - ClassTransformer.prototype.serialize = function (object, options) { - return JSON.stringify(this.classToPlain(object, options)); - }; - /** - * Deserializes given JSON string to a object of the given class. - */ - ClassTransformer.prototype.deserialize = function (cls, json, options) { - var jsonObject = JSON.parse(json); - return this.plainToClass(cls, jsonObject, options); - }; - /** - * Deserializes given JSON string to an array of objects of the given class. - */ - ClassTransformer.prototype.deserializeArray = function (cls, json, options) { - var jsonObject = JSON.parse(json); - return this.plainToClass(cls, jsonObject, options); - }; - return ClassTransformer; -}()); -export { ClassTransformer }; -//# sourceMappingURL=ClassTransformer.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/ClassTransformer.js.map b/views/node_modules/class-transformer/esm5/ClassTransformer.js.map deleted file mode 100644 index 7764dd7..0000000 --- a/views/node_modules/class-transformer/esm5/ClassTransformer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ClassTransformer.js","sourceRoot":"","sources":["../../src/ClassTransformer.ts"],"names":[],"mappings":"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","sourcesContent":["import { ClassTransformOptions } from './interfaces';\nimport { TransformOperationExecutor } from './TransformOperationExecutor';\nimport { TransformationType } from './enums';\nimport { ClassConstructor } from './interfaces';\nimport { defaultOptions } from './constants/default-options.constant';\n\nexport class ClassTransformer {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Converts class (constructor) object to plain (literal) object. Also works with arrays.\n */\n classToPlain>(object: T, options?: ClassTransformOptions): Record;\n classToPlain>(object: T[], options?: ClassTransformOptions): Record[];\n classToPlain>(\n object: T | T[],\n options?: ClassTransformOptions\n ): Record | Record[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\n classToPlainFromExist, P>(\n object: T,\n plainObject: P,\n options?: ClassTransformOptions\n ): T;\n classToPlainFromExist, P>(\n object: T,\n plainObjects: P[],\n options?: ClassTransformOptions\n ): T[];\n classToPlainFromExist, P>(\n object: T,\n plainObject: P | P[],\n options?: ClassTransformOptions\n ): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_PLAIN, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(plainObject, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts plain (literal) object to class (constructor) object. Also works with arrays.\n */\n plainToClass, V extends Array>(\n cls: ClassConstructor,\n plain: V,\n options?: ClassTransformOptions\n ): T[];\n plainToClass, V>(\n cls: ClassConstructor,\n plain: V,\n options?: ClassTransformOptions\n ): T;\n plainToClass, V>(\n cls: ClassConstructor,\n plain: V | V[],\n options?: ClassTransformOptions\n ): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(undefined, plain, cls, undefined, undefined, undefined);\n }\n\n /**\n * Converts plain (literal) object to class (constructor) object.\n * Uses given object as source object (it means fills given object with data from plain object).\n * Also works with arrays.\n */\n plainToClassFromExist, V extends Array>(\n clsObject: T,\n plain: V,\n options?: ClassTransformOptions\n ): T;\n plainToClassFromExist, V>(clsObject: T, plain: V, options?: ClassTransformOptions): T[];\n plainToClassFromExist, V>(\n clsObject: T,\n plain: V | V[],\n options?: ClassTransformOptions\n ): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.PLAIN_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(clsObject, plain, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts class (constructor) object to new class (constructor) object. Also works with arrays.\n */\n classToClass(object: T, options?: ClassTransformOptions): T;\n classToClass(object: T[], options?: ClassTransformOptions): T[];\n classToClass(object: T | T[], options?: ClassTransformOptions): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(undefined, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\n classToClassFromExist(object: T, fromObject: T, options?: ClassTransformOptions): T;\n classToClassFromExist(object: T, fromObjects: T[], options?: ClassTransformOptions): T[];\n classToClassFromExist(object: T, fromObject: T | T[], options?: ClassTransformOptions): T | T[] {\n const executor = new TransformOperationExecutor(TransformationType.CLASS_TO_CLASS, {\n ...defaultOptions,\n ...options,\n });\n return executor.transform(fromObject, object, undefined, undefined, undefined, undefined);\n }\n\n /**\n * Serializes given object to a JSON string.\n */\n serialize(object: T, options?: ClassTransformOptions): string;\n serialize(object: T[], options?: ClassTransformOptions): string;\n serialize(object: T | T[], options?: ClassTransformOptions): string {\n return JSON.stringify(this.classToPlain(object, options));\n }\n\n /**\n * Deserializes given JSON string to a object of the given class.\n */\n deserialize(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T {\n const jsonObject: T = JSON.parse(json);\n return this.plainToClass(cls, jsonObject, options);\n }\n\n /**\n * Deserializes given JSON string to an array of objects of the given class.\n */\n deserializeArray(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T[] {\n const jsonObject: any[] = JSON.parse(json);\n return this.plainToClass(cls, jsonObject, options);\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/MetadataStorage.js b/views/node_modules/class-transformer/esm5/MetadataStorage.js deleted file mode 100644 index a93affc..0000000 --- a/views/node_modules/class-transformer/esm5/MetadataStorage.js +++ /dev/null @@ -1,212 +0,0 @@ -import { TransformationType } from './enums'; -/** - * Storage all library metadata. - */ -var MetadataStorage = /** @class */ (function () { - function MetadataStorage() { - // ------------------------------------------------------------------------- - // Properties - // ------------------------------------------------------------------------- - this._typeMetadatas = new Map(); - this._transformMetadatas = new Map(); - this._exposeMetadatas = new Map(); - this._excludeMetadatas = new Map(); - this._ancestorsMap = new Map(); - } - // ------------------------------------------------------------------------- - // Adder Methods - // ------------------------------------------------------------------------- - MetadataStorage.prototype.addTypeMetadata = function (metadata) { - if (!this._typeMetadatas.has(metadata.target)) { - this._typeMetadatas.set(metadata.target, new Map()); - } - this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - }; - MetadataStorage.prototype.addTransformMetadata = function (metadata) { - if (!this._transformMetadatas.has(metadata.target)) { - this._transformMetadatas.set(metadata.target, new Map()); - } - if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) { - this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []); - } - this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata); - }; - MetadataStorage.prototype.addExposeMetadata = function (metadata) { - if (!this._exposeMetadatas.has(metadata.target)) { - this._exposeMetadatas.set(metadata.target, new Map()); - } - this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - }; - MetadataStorage.prototype.addExcludeMetadata = function (metadata) { - if (!this._excludeMetadatas.has(metadata.target)) { - this._excludeMetadatas.set(metadata.target, new Map()); - } - this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata); - }; - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - MetadataStorage.prototype.findTransformMetadatas = function (target, propertyName, transformationType) { - return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(function (metadata) { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === TransformationType.CLASS_TO_CLASS || - transformationType === TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === TransformationType.CLASS_TO_PLAIN; - } - return true; - }); - }; - MetadataStorage.prototype.findExcludeMetadata = function (target, propertyName) { - return this.findMetadata(this._excludeMetadatas, target, propertyName); - }; - MetadataStorage.prototype.findExposeMetadata = function (target, propertyName) { - return this.findMetadata(this._exposeMetadatas, target, propertyName); - }; - MetadataStorage.prototype.findExposeMetadataByCustomName = function (target, name) { - return this.getExposedMetadatas(target).find(function (metadata) { - return metadata.options && metadata.options.name === name; - }); - }; - MetadataStorage.prototype.findTypeMetadata = function (target, propertyName) { - return this.findMetadata(this._typeMetadatas, target, propertyName); - }; - MetadataStorage.prototype.getStrategy = function (target) { - var excludeMap = this._excludeMetadatas.get(target); - var exclude = excludeMap && excludeMap.get(undefined); - var exposeMap = this._exposeMetadatas.get(target); - var expose = exposeMap && exposeMap.get(undefined); - if ((exclude && expose) || (!exclude && !expose)) - return 'none'; - return exclude ? 'excludeAll' : 'exposeAll'; - }; - MetadataStorage.prototype.getExposedMetadatas = function (target) { - return this.getMetadata(this._exposeMetadatas, target); - }; - MetadataStorage.prototype.getExcludedMetadatas = function (target) { - return this.getMetadata(this._excludeMetadatas, target); - }; - MetadataStorage.prototype.getExposedProperties = function (target, transformationType) { - return this.getExposedMetadatas(target) - .filter(function (metadata) { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === TransformationType.CLASS_TO_CLASS || - transformationType === TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === TransformationType.CLASS_TO_PLAIN; - } - return true; - }) - .map(function (metadata) { return metadata.propertyName; }); - }; - MetadataStorage.prototype.getExcludedProperties = function (target, transformationType) { - return this.getExcludedMetadatas(target) - .filter(function (metadata) { - if (!metadata.options) - return true; - if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) - return true; - if (metadata.options.toClassOnly === true) { - return (transformationType === TransformationType.CLASS_TO_CLASS || - transformationType === TransformationType.PLAIN_TO_CLASS); - } - if (metadata.options.toPlainOnly === true) { - return transformationType === TransformationType.CLASS_TO_PLAIN; - } - return true; - }) - .map(function (metadata) { return metadata.propertyName; }); - }; - MetadataStorage.prototype.clear = function () { - this._typeMetadatas.clear(); - this._exposeMetadatas.clear(); - this._excludeMetadatas.clear(); - this._ancestorsMap.clear(); - }; - // ------------------------------------------------------------------------- - // Private Methods - // ------------------------------------------------------------------------- - MetadataStorage.prototype.getMetadata = function (metadatas, target) { - var metadataFromTargetMap = metadatas.get(target); - var metadataFromTarget; - if (metadataFromTargetMap) { - metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(function (meta) { return meta.propertyName !== undefined; }); - } - var metadataFromAncestors = []; - for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) { - var ancestor = _a[_i]; - var ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - var metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(function (meta) { return meta.propertyName !== undefined; }); - metadataFromAncestors.push.apply(metadataFromAncestors, metadataFromAncestor); - } - } - return metadataFromAncestors.concat(metadataFromTarget || []); - }; - MetadataStorage.prototype.findMetadata = function (metadatas, target, propertyName) { - var metadataFromTargetMap = metadatas.get(target); - if (metadataFromTargetMap) { - var metadataFromTarget = metadataFromTargetMap.get(propertyName); - if (metadataFromTarget) { - return metadataFromTarget; - } - } - for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) { - var ancestor = _a[_i]; - var ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - var ancestorResult = ancestorMetadataMap.get(propertyName); - if (ancestorResult) { - return ancestorResult; - } - } - } - return undefined; - }; - MetadataStorage.prototype.findMetadatas = function (metadatas, target, propertyName) { - var metadataFromTargetMap = metadatas.get(target); - var metadataFromTarget; - if (metadataFromTargetMap) { - metadataFromTarget = metadataFromTargetMap.get(propertyName); - } - var metadataFromAncestorsTarget = []; - for (var _i = 0, _a = this.getAncestors(target); _i < _a.length; _i++) { - var ancestor = _a[_i]; - var ancestorMetadataMap = metadatas.get(ancestor); - if (ancestorMetadataMap) { - if (ancestorMetadataMap.has(propertyName)) { - metadataFromAncestorsTarget.push.apply(metadataFromAncestorsTarget, ancestorMetadataMap.get(propertyName)); - } - } - } - return metadataFromAncestorsTarget - .slice() - .reverse() - .concat((metadataFromTarget || []).slice().reverse()); - }; - MetadataStorage.prototype.getAncestors = function (target) { - if (!target) - return []; - if (!this._ancestorsMap.has(target)) { - var ancestors = []; - for (var baseClass = Object.getPrototypeOf(target.prototype.constructor); typeof baseClass.prototype !== 'undefined'; baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)) { - ancestors.push(baseClass); - } - this._ancestorsMap.set(target, ancestors); - } - return this._ancestorsMap.get(target); - }; - return MetadataStorage; -}()); -export { MetadataStorage }; -//# sourceMappingURL=MetadataStorage.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/MetadataStorage.js.map b/views/node_modules/class-transformer/esm5/MetadataStorage.js.map deleted file mode 100644 index b586923..0000000 --- a/views/node_modules/class-transformer/esm5/MetadataStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MetadataStorage.js","sourceRoot":"","sources":["../../src/MetadataStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import { TypeMetadata, ExposeMetadata, ExcludeMetadata, TransformMetadata } from './interfaces';\nimport { TransformationType } from './enums';\n\n/**\n * Storage all library metadata.\n */\nexport class MetadataStorage {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n private _typeMetadatas = new Map>();\n private _transformMetadatas = new Map>();\n private _exposeMetadatas = new Map>();\n private _excludeMetadatas = new Map>();\n private _ancestorsMap = new Map();\n\n // -------------------------------------------------------------------------\n // Adder Methods\n // -------------------------------------------------------------------------\n\n addTypeMetadata(metadata: TypeMetadata): void {\n if (!this._typeMetadatas.has(metadata.target)) {\n this._typeMetadatas.set(metadata.target, new Map());\n }\n this._typeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n }\n\n addTransformMetadata(metadata: TransformMetadata): void {\n if (!this._transformMetadatas.has(metadata.target)) {\n this._transformMetadatas.set(metadata.target, new Map());\n }\n if (!this._transformMetadatas.get(metadata.target).has(metadata.propertyName)) {\n this._transformMetadatas.get(metadata.target).set(metadata.propertyName, []);\n }\n this._transformMetadatas.get(metadata.target).get(metadata.propertyName).push(metadata);\n }\n\n addExposeMetadata(metadata: ExposeMetadata): void {\n if (!this._exposeMetadatas.has(metadata.target)) {\n this._exposeMetadatas.set(metadata.target, new Map());\n }\n this._exposeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n }\n\n addExcludeMetadata(metadata: ExcludeMetadata): void {\n if (!this._excludeMetadatas.has(metadata.target)) {\n this._excludeMetadatas.set(metadata.target, new Map());\n }\n this._excludeMetadatas.get(metadata.target).set(metadata.propertyName, metadata);\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n findTransformMetadatas(\n target: Function,\n propertyName: string,\n transformationType: TransformationType\n ): TransformMetadata[] {\n return this.findMetadatas(this._transformMetadatas, target, propertyName).filter(metadata => {\n if (!metadata.options) return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;\n\n if (metadata.options.toClassOnly === true) {\n return (\n transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS\n );\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n\n return true;\n });\n }\n\n findExcludeMetadata(target: Function, propertyName: string): ExcludeMetadata {\n return this.findMetadata(this._excludeMetadatas, target, propertyName);\n }\n\n findExposeMetadata(target: Function, propertyName: string): ExposeMetadata {\n return this.findMetadata(this._exposeMetadatas, target, propertyName);\n }\n\n findExposeMetadataByCustomName(target: Function, name: string): ExposeMetadata {\n return this.getExposedMetadatas(target).find(metadata => {\n return metadata.options && metadata.options.name === name;\n });\n }\n\n findTypeMetadata(target: Function, propertyName: string): TypeMetadata {\n return this.findMetadata(this._typeMetadatas, target, propertyName);\n }\n\n getStrategy(target: Function): 'excludeAll' | 'exposeAll' | 'none' {\n const excludeMap = this._excludeMetadatas.get(target);\n const exclude = excludeMap && excludeMap.get(undefined);\n const exposeMap = this._exposeMetadatas.get(target);\n const expose = exposeMap && exposeMap.get(undefined);\n if ((exclude && expose) || (!exclude && !expose)) return 'none';\n return exclude ? 'excludeAll' : 'exposeAll';\n }\n\n getExposedMetadatas(target: Function): ExposeMetadata[] {\n return this.getMetadata(this._exposeMetadatas, target);\n }\n\n getExcludedMetadatas(target: Function): ExcludeMetadata[] {\n return this.getMetadata(this._excludeMetadatas, target);\n }\n\n getExposedProperties(target: Function, transformationType: TransformationType): string[] {\n return this.getExposedMetadatas(target)\n .filter(metadata => {\n if (!metadata.options) return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;\n\n if (metadata.options.toClassOnly === true) {\n return (\n transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS\n );\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n\n return true;\n })\n .map(metadata => metadata.propertyName);\n }\n\n getExcludedProperties(target: Function, transformationType: TransformationType): string[] {\n return this.getExcludedMetadatas(target)\n .filter(metadata => {\n if (!metadata.options) return true;\n if (metadata.options.toClassOnly === true && metadata.options.toPlainOnly === true) return true;\n\n if (metadata.options.toClassOnly === true) {\n return (\n transformationType === TransformationType.CLASS_TO_CLASS ||\n transformationType === TransformationType.PLAIN_TO_CLASS\n );\n }\n if (metadata.options.toPlainOnly === true) {\n return transformationType === TransformationType.CLASS_TO_PLAIN;\n }\n\n return true;\n })\n .map(metadata => metadata.propertyName);\n }\n\n clear(): void {\n this._typeMetadatas.clear();\n this._exposeMetadatas.clear();\n this._excludeMetadatas.clear();\n this._ancestorsMap.clear();\n }\n\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n\n private getMetadata(\n metadatas: Map>,\n target: Function\n ): T[] {\n const metadataFromTargetMap = metadatas.get(target);\n let metadataFromTarget: T[];\n if (metadataFromTargetMap) {\n metadataFromTarget = Array.from(metadataFromTargetMap.values()).filter(meta => meta.propertyName !== undefined);\n }\n const metadataFromAncestors: T[] = [];\n for (const ancestor of this.getAncestors(target)) {\n const ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n const metadataFromAncestor = Array.from(ancestorMetadataMap.values()).filter(\n meta => meta.propertyName !== undefined\n );\n metadataFromAncestors.push(...metadataFromAncestor);\n }\n }\n return metadataFromAncestors.concat(metadataFromTarget || []);\n }\n\n private findMetadata(\n metadatas: Map>,\n target: Function,\n propertyName: string\n ): T {\n const metadataFromTargetMap = metadatas.get(target);\n if (metadataFromTargetMap) {\n const metadataFromTarget = metadataFromTargetMap.get(propertyName);\n if (metadataFromTarget) {\n return metadataFromTarget;\n }\n }\n for (const ancestor of this.getAncestors(target)) {\n const ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n const ancestorResult = ancestorMetadataMap.get(propertyName);\n if (ancestorResult) {\n return ancestorResult;\n }\n }\n }\n return undefined;\n }\n\n private findMetadatas(\n metadatas: Map>,\n target: Function,\n propertyName: string\n ): T[] {\n const metadataFromTargetMap = metadatas.get(target);\n let metadataFromTarget: T[];\n if (metadataFromTargetMap) {\n metadataFromTarget = metadataFromTargetMap.get(propertyName);\n }\n const metadataFromAncestorsTarget: T[] = [];\n for (const ancestor of this.getAncestors(target)) {\n const ancestorMetadataMap = metadatas.get(ancestor);\n if (ancestorMetadataMap) {\n if (ancestorMetadataMap.has(propertyName)) {\n metadataFromAncestorsTarget.push(...ancestorMetadataMap.get(propertyName));\n }\n }\n }\n return metadataFromAncestorsTarget\n .slice()\n .reverse()\n .concat((metadataFromTarget || []).slice().reverse());\n }\n\n private getAncestors(target: Function): Function[] {\n if (!target) return [];\n if (!this._ancestorsMap.has(target)) {\n const ancestors: Function[] = [];\n for (\n let baseClass = Object.getPrototypeOf(target.prototype.constructor);\n typeof baseClass.prototype !== 'undefined';\n baseClass = Object.getPrototypeOf(baseClass.prototype.constructor)\n ) {\n ancestors.push(baseClass);\n }\n this._ancestorsMap.set(target, ancestors);\n }\n return this._ancestorsMap.get(target);\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/TransformOperationExecutor.js b/views/node_modules/class-transformer/esm5/TransformOperationExecutor.js deleted file mode 100644 index a92e6d5..0000000 --- a/views/node_modules/class-transformer/esm5/TransformOperationExecutor.js +++ /dev/null @@ -1,459 +0,0 @@ -import { defaultMetadataStorage } from './storage'; -import { TransformationType } from './enums'; -import { getGlobal, isPromise } from './utils'; -function instantiateArrayType(arrayType) { - var array = new arrayType(); - if (!(array instanceof Set) && !('push' in array)) { - return []; - } - return array; -} -var TransformOperationExecutor = /** @class */ (function () { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - function TransformOperationExecutor(transformationType, options) { - this.transformationType = transformationType; - this.options = options; - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - this.recursionStack = new Set(); - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - TransformOperationExecutor.prototype.transform = function (source, value, targetType, arrayType, isMap, level) { - var _this = this; - if (level === void 0) { level = 0; } - if (Array.isArray(value) || value instanceof Set) { - var newValue_1 = arrayType && this.transformationType === TransformationType.PLAIN_TO_CLASS - ? instantiateArrayType(arrayType) - : []; - value.forEach(function (subValue, index) { - var subSource = source ? source[index] : undefined; - if (!_this.options.enableCircularCheck || !_this.isCircular(subValue)) { - var realTargetType = void 0; - if (typeof targetType !== 'function' && - targetType && - targetType.options && - targetType.options.discriminator && - targetType.options.discriminator.property && - targetType.options.discriminator.subTypes) { - if (_this.transformationType === TransformationType.PLAIN_TO_CLASS) { - realTargetType = targetType.options.discriminator.subTypes.find(function (subType) { - return subType.name === subValue[targetType.options.discriminator.property]; - }); - var options = { newObject: newValue_1, object: subValue, property: undefined }; - var newType = targetType.typeFunction(options); - realTargetType === undefined ? (realTargetType = newType) : (realTargetType = realTargetType.value); - if (!targetType.options.keepDiscriminatorProperty) - delete subValue[targetType.options.discriminator.property]; - } - if (_this.transformationType === TransformationType.CLASS_TO_CLASS) { - realTargetType = subValue.constructor; - } - if (_this.transformationType === TransformationType.CLASS_TO_PLAIN) { - subValue[targetType.options.discriminator.property] = targetType.options.discriminator.subTypes.find(function (subType) { return subType.value === subValue.constructor; }).name; - } - } - else { - realTargetType = targetType; - } - var value_1 = _this.transform(subSource, subValue, realTargetType, undefined, subValue instanceof Map, level + 1); - if (newValue_1 instanceof Set) { - newValue_1.add(value_1); - } - else { - newValue_1.push(value_1); - } - } - else if (_this.transformationType === TransformationType.CLASS_TO_CLASS) { - if (newValue_1 instanceof Set) { - newValue_1.add(subValue); - } - else { - newValue_1.push(subValue); - } - } - }); - return newValue_1; - } - else if (targetType === String && !isMap) { - if (value === null || value === undefined) - return value; - return String(value); - } - else if (targetType === Number && !isMap) { - if (value === null || value === undefined) - return value; - return Number(value); - } - else if (targetType === Boolean && !isMap) { - if (value === null || value === undefined) - return value; - return Boolean(value); - } - else if ((targetType === Date || value instanceof Date) && !isMap) { - if (value instanceof Date) { - return new Date(value.valueOf()); - } - if (value === null || value === undefined) - return value; - return new Date(value); - } - else if (!!getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) { - if (value === null || value === undefined) - return value; - return Buffer.from(value); - } - else if (isPromise(value) && !isMap) { - return new Promise(function (resolve, reject) { - value.then(function (data) { return resolve(_this.transform(undefined, data, targetType, undefined, undefined, level + 1)); }, reject); - }); - } - else if (!isMap && value !== null && typeof value === 'object' && typeof value.then === 'function') { - // Note: We should not enter this, as promise has been handled above - // This option simply returns the Promise preventing a JS error from happening and should be an inaccessible path. - return value; // skip promise transformation - } - else if (typeof value === 'object' && value !== null) { - // try to guess the type - if (!targetType && value.constructor !== Object /* && TransformationType === TransformationType.CLASS_TO_PLAIN*/) - targetType = value.constructor; - if (!targetType && source) - targetType = source.constructor; - if (this.options.enableCircularCheck) { - // add transformed type to prevent circular references - this.recursionStack.add(value); - } - var keys = this.getKeys(targetType, value, isMap); - var newValue = source ? source : {}; - if (!source && - (this.transformationType === TransformationType.PLAIN_TO_CLASS || - this.transformationType === TransformationType.CLASS_TO_CLASS)) { - if (isMap) { - newValue = new Map(); - } - else if (targetType) { - newValue = new targetType(); - } - else { - newValue = {}; - } - } - var _loop_1 = function (key) { - if (key === '__proto__' || key === 'constructor') { - return "continue"; - } - var valueKey = key; - var newValueKey = key, propertyName = key; - if (!this_1.options.ignoreDecorators && targetType) { - if (this_1.transformationType === TransformationType.PLAIN_TO_CLASS) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadataByCustomName(targetType, key); - if (exposeMetadata) { - propertyName = exposeMetadata.propertyName; - newValueKey = exposeMetadata.propertyName; - } - } - else if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN || - this_1.transformationType === TransformationType.CLASS_TO_CLASS) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadata(targetType, key); - if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) { - newValueKey = exposeMetadata.options.name; - } - } - } - // get a subvalue - var subValue = undefined; - if (value instanceof Map) { - subValue = value.get(valueKey); - } - else if (value[valueKey] instanceof Function) { - subValue = value[valueKey](); - } - else { - subValue = value[valueKey]; - } - // determine a type - var type = undefined, isSubValueMap = subValue instanceof Map; - if (targetType && isMap) { - type = targetType; - } - else if (targetType) { - var metadata_1 = defaultMetadataStorage.findTypeMetadata(targetType, propertyName); - if (metadata_1) { - var options = { newObject: newValue, object: value, property: propertyName }; - var newType = metadata_1.typeFunction ? metadata_1.typeFunction(options) : metadata_1.reflectedType; - if (metadata_1.options && - metadata_1.options.discriminator && - metadata_1.options.discriminator.property && - metadata_1.options.discriminator.subTypes) { - if (!(value[valueKey] instanceof Array)) { - if (this_1.transformationType === TransformationType.PLAIN_TO_CLASS) { - type = metadata_1.options.discriminator.subTypes.find(function (subType) { - if (subValue && subValue instanceof Object && metadata_1.options.discriminator.property in subValue) { - return subType.name === subValue[metadata_1.options.discriminator.property]; - } - }); - type === undefined ? (type = newType) : (type = type.value); - if (!metadata_1.options.keepDiscriminatorProperty) { - if (subValue && subValue instanceof Object && metadata_1.options.discriminator.property in subValue) { - delete subValue[metadata_1.options.discriminator.property]; - } - } - } - if (this_1.transformationType === TransformationType.CLASS_TO_CLASS) { - type = subValue.constructor; - } - if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN) { - subValue[metadata_1.options.discriminator.property] = metadata_1.options.discriminator.subTypes.find(function (subType) { return subType.value === subValue.constructor; }).name; - } - } - else { - type = metadata_1; - } - } - else { - type = newType; - } - isSubValueMap = isSubValueMap || metadata_1.reflectedType === Map; - } - else if (this_1.options.targetMaps) { - // try to find a type in target maps - this_1.options.targetMaps - .filter(function (map) { return map.target === targetType && !!map.properties[propertyName]; }) - .forEach(function (map) { return (type = map.properties[propertyName]); }); - } - else if (this_1.options.enableImplicitConversion && - this_1.transformationType === TransformationType.PLAIN_TO_CLASS) { - // if we have no registererd type via the @Type() decorator then we check if we have any - // type declarations in reflect-metadata (type declaration is emited only if some decorator is added to the property.) - var reflectedType = Reflect.getMetadata('design:type', targetType.prototype, propertyName); - if (reflectedType) { - type = reflectedType; - } - } - } - // if value is an array try to get its custom array type - var arrayType_1 = Array.isArray(value[valueKey]) - ? this_1.getReflectedType(targetType, propertyName) - : undefined; - // const subValueKey = TransformationType === TransformationType.PLAIN_TO_CLASS && newKeyName ? newKeyName : key; - var subSource = source ? source[valueKey] : undefined; - // if its deserialization then type if required - // if we uncomment this types like string[] will not work - // if (this.transformationType === TransformationType.PLAIN_TO_CLASS && !type && subValue instanceof Object && !(subValue instanceof Date)) - // throw new Error(`Cannot determine type for ${(targetType as any).name }.${propertyName}, did you forget to specify a @Type?`); - // if newValue is a source object that has method that match newKeyName then skip it - if (newValue.constructor.prototype) { - var descriptor = Object.getOwnPropertyDescriptor(newValue.constructor.prototype, newValueKey); - if ((this_1.transformationType === TransformationType.PLAIN_TO_CLASS || - this_1.transformationType === TransformationType.CLASS_TO_CLASS) && - // eslint-disable-next-line @typescript-eslint/unbound-method - ((descriptor && !descriptor.set) || newValue[newValueKey] instanceof Function)) - return "continue"; - } - if (!this_1.options.enableCircularCheck || !this_1.isCircular(subValue)) { - var transformKey = this_1.transformationType === TransformationType.PLAIN_TO_CLASS ? newValueKey : key; - var finalValue = void 0; - if (this_1.transformationType === TransformationType.CLASS_TO_PLAIN) { - // Get original value - finalValue = value[transformKey]; - // Apply custom transformation - finalValue = this_1.applyCustomTransformations(finalValue, targetType, transformKey, value, this_1.transformationType); - // If nothing change, it means no custom transformation was applied, so use the subValue. - finalValue = value[transformKey] === finalValue ? subValue : finalValue; - // Apply the default transformation - finalValue = this_1.transform(subSource, finalValue, type, arrayType_1, isSubValueMap, level + 1); - } - else { - if (subValue === undefined && this_1.options.exposeDefaultValues) { - // Set default value if nothing provided - finalValue = newValue[newValueKey]; - } - else { - finalValue = this_1.transform(subSource, subValue, type, arrayType_1, isSubValueMap, level + 1); - finalValue = this_1.applyCustomTransformations(finalValue, targetType, transformKey, value, this_1.transformationType); - } - } - if (finalValue !== undefined || this_1.options.exposeUnsetFields) { - if (newValue instanceof Map) { - newValue.set(newValueKey, finalValue); - } - else { - newValue[newValueKey] = finalValue; - } - } - } - else if (this_1.transformationType === TransformationType.CLASS_TO_CLASS) { - var finalValue = subValue; - finalValue = this_1.applyCustomTransformations(finalValue, targetType, key, value, this_1.transformationType); - if (finalValue !== undefined || this_1.options.exposeUnsetFields) { - if (newValue instanceof Map) { - newValue.set(newValueKey, finalValue); - } - else { - newValue[newValueKey] = finalValue; - } - } - } - }; - var this_1 = this; - // traverse over keys - for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) { - var key = keys_1[_i]; - _loop_1(key); - } - if (this.options.enableCircularCheck) { - this.recursionStack.delete(value); - } - return newValue; - } - else { - return value; - } - }; - TransformOperationExecutor.prototype.applyCustomTransformations = function (value, target, key, obj, transformationType) { - var _this = this; - var metadatas = defaultMetadataStorage.findTransformMetadatas(target, key, this.transformationType); - // apply versioning options - if (this.options.version !== undefined) { - metadatas = metadatas.filter(function (metadata) { - if (!metadata.options) - return true; - return _this.checkVersion(metadata.options.since, metadata.options.until); - }); - } - // apply grouping options - if (this.options.groups && this.options.groups.length) { - metadatas = metadatas.filter(function (metadata) { - if (!metadata.options) - return true; - return _this.checkGroups(metadata.options.groups); - }); - } - else { - metadatas = metadatas.filter(function (metadata) { - return !metadata.options || !metadata.options.groups || !metadata.options.groups.length; - }); - } - metadatas.forEach(function (metadata) { - value = metadata.transformFn({ value: value, key: key, obj: obj, type: transformationType, options: _this.options }); - }); - return value; - }; - // preventing circular references - TransformOperationExecutor.prototype.isCircular = function (object) { - return this.recursionStack.has(object); - }; - TransformOperationExecutor.prototype.getReflectedType = function (target, propertyName) { - if (!target) - return undefined; - var meta = defaultMetadataStorage.findTypeMetadata(target, propertyName); - return meta ? meta.reflectedType : undefined; - }; - TransformOperationExecutor.prototype.getKeys = function (target, object, isMap) { - var _this = this; - // determine exclusion strategy - var strategy = defaultMetadataStorage.getStrategy(target); - if (strategy === 'none') - strategy = this.options.strategy || 'exposeAll'; // exposeAll is default strategy - // get all keys that need to expose - var keys = []; - if (strategy === 'exposeAll' || isMap) { - if (object instanceof Map) { - keys = Array.from(object.keys()); - } - else { - keys = Object.keys(object); - } - } - if (isMap) { - // expose & exclude do not apply for map keys only to fields - return keys; - } - if (!this.options.ignoreDecorators && target) { - // add all exposed to list of keys - var exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType); - if (this.transformationType === TransformationType.PLAIN_TO_CLASS) { - exposedProperties = exposedProperties.map(function (key) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) { - return exposeMetadata.options.name; - } - return key; - }); - } - if (this.options.excludeExtraneousValues) { - keys = exposedProperties; - } - else { - keys = keys.concat(exposedProperties); - } - // exclude excluded properties - var excludedProperties_1 = defaultMetadataStorage.getExcludedProperties(target, this.transformationType); - if (excludedProperties_1.length > 0) { - keys = keys.filter(function (key) { - return !excludedProperties_1.includes(key); - }); - } - // apply versioning options - if (this.options.version !== undefined) { - keys = keys.filter(function (key) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - if (!exposeMetadata || !exposeMetadata.options) - return true; - return _this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until); - }); - } - // apply grouping options - if (this.options.groups && this.options.groups.length) { - keys = keys.filter(function (key) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - if (!exposeMetadata || !exposeMetadata.options) - return true; - return _this.checkGroups(exposeMetadata.options.groups); - }); - } - else { - keys = keys.filter(function (key) { - var exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key); - return (!exposeMetadata || - !exposeMetadata.options || - !exposeMetadata.options.groups || - !exposeMetadata.options.groups.length); - }); - } - } - // exclude prefixed properties - if (this.options.excludePrefixes && this.options.excludePrefixes.length) { - keys = keys.filter(function (key) { - return _this.options.excludePrefixes.every(function (prefix) { - return key.substr(0, prefix.length) !== prefix; - }); - }); - } - // make sure we have unique keys - keys = keys.filter(function (key, index, self) { - return self.indexOf(key) === index; - }); - return keys; - }; - TransformOperationExecutor.prototype.checkVersion = function (since, until) { - var decision = true; - if (decision && since) - decision = this.options.version >= since; - if (decision && until) - decision = this.options.version < until; - return decision; - }; - TransformOperationExecutor.prototype.checkGroups = function (groups) { - if (!groups) - return true; - return this.options.groups.some(function (optionGroup) { return groups.includes(optionGroup); }); - }; - return TransformOperationExecutor; -}()); -export { TransformOperationExecutor }; -//# sourceMappingURL=TransformOperationExecutor.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/TransformOperationExecutor.js.map b/views/node_modules/class-transformer/esm5/TransformOperationExecutor.js.map deleted file mode 100644 index 1e1dfe7..0000000 --- a/views/node_modules/class-transformer/esm5/TransformOperationExecutor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"TransformOperationExecutor.js","sourceRoot":"","sources":["../../src/TransformOperationExecutor.ts"],"names":[],"mappings":"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","sourcesContent":["import { defaultMetadataStorage } from './storage';\nimport { TypeHelpOptions, TypeOptions, ClassTransformOptions, TypeMetadata } from './interfaces';\nimport { TransformationType } from './enums';\nimport { getGlobal, isPromise } from './utils';\n\nfunction instantiateArrayType(arrayType: Function): Array | Set {\n const array = new (arrayType as any)();\n if (!(array instanceof Set) && !('push' in array)) {\n return [];\n }\n return array;\n}\n\nexport class TransformOperationExecutor {\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n\n private recursionStack = new Set>();\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private transformationType: TransformationType, private options: ClassTransformOptions) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n transform(\n source: Record | Record[] | any,\n value: Record | Record[] | any,\n targetType: Function | TypeMetadata,\n arrayType: Function,\n isMap: boolean,\n level: number = 0\n ): any {\n if (Array.isArray(value) || value instanceof Set) {\n const newValue =\n arrayType && this.transformationType === TransformationType.PLAIN_TO_CLASS\n ? instantiateArrayType(arrayType)\n : [];\n (value as any[]).forEach((subValue, index) => {\n const subSource = source ? source[index] : undefined;\n if (!this.options.enableCircularCheck || !this.isCircular(subValue)) {\n let realTargetType;\n if (\n typeof targetType !== 'function' &&\n targetType &&\n targetType.options &&\n targetType.options.discriminator &&\n targetType.options.discriminator.property &&\n targetType.options.discriminator.subTypes\n ) {\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n realTargetType = targetType.options.discriminator.subTypes.find(\n subType =>\n subType.name === subValue[(targetType as { options: TypeOptions }).options.discriminator.property]\n );\n const options: TypeHelpOptions = { newObject: newValue, object: subValue, property: undefined };\n const newType = targetType.typeFunction(options);\n realTargetType === undefined ? (realTargetType = newType) : (realTargetType = realTargetType.value);\n if (!targetType.options.keepDiscriminatorProperty)\n delete subValue[targetType.options.discriminator.property];\n }\n\n if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n realTargetType = subValue.constructor;\n }\n if (this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n subValue[targetType.options.discriminator.property] = targetType.options.discriminator.subTypes.find(\n subType => subType.value === subValue.constructor\n ).name;\n }\n } else {\n realTargetType = targetType;\n }\n const value = this.transform(\n subSource,\n subValue,\n realTargetType,\n undefined,\n subValue instanceof Map,\n level + 1\n );\n\n if (newValue instanceof Set) {\n newValue.add(value);\n } else {\n newValue.push(value);\n }\n } else if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n if (newValue instanceof Set) {\n newValue.add(subValue);\n } else {\n newValue.push(subValue);\n }\n }\n });\n return newValue;\n } else if (targetType === String && !isMap) {\n if (value === null || value === undefined) return value;\n return String(value);\n } else if (targetType === Number && !isMap) {\n if (value === null || value === undefined) return value;\n return Number(value);\n } else if (targetType === Boolean && !isMap) {\n if (value === null || value === undefined) return value;\n return Boolean(value);\n } else if ((targetType === Date || value instanceof Date) && !isMap) {\n if (value instanceof Date) {\n return new Date(value.valueOf());\n }\n if (value === null || value === undefined) return value;\n return new Date(value);\n } else if (!!getGlobal().Buffer && (targetType === Buffer || value instanceof Buffer) && !isMap) {\n if (value === null || value === undefined) return value;\n return Buffer.from(value);\n } else if (isPromise(value) && !isMap) {\n return new Promise((resolve, reject) => {\n value.then(\n (data: any) => resolve(this.transform(undefined, data, targetType, undefined, undefined, level + 1)),\n reject\n );\n });\n } else if (!isMap && value !== null && typeof value === 'object' && typeof value.then === 'function') {\n // Note: We should not enter this, as promise has been handled above\n // This option simply returns the Promise preventing a JS error from happening and should be an inaccessible path.\n return value; // skip promise transformation\n } else if (typeof value === 'object' && value !== null) {\n // try to guess the type\n if (!targetType && value.constructor !== Object /* && TransformationType === TransformationType.CLASS_TO_PLAIN*/)\n targetType = value.constructor;\n if (!targetType && source) targetType = source.constructor;\n\n if (this.options.enableCircularCheck) {\n // add transformed type to prevent circular references\n this.recursionStack.add(value);\n }\n\n const keys = this.getKeys(targetType as Function, value, isMap);\n let newValue: any = source ? source : {};\n if (\n !source &&\n (this.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this.transformationType === TransformationType.CLASS_TO_CLASS)\n ) {\n if (isMap) {\n newValue = new Map();\n } else if (targetType) {\n newValue = new (targetType as any)();\n } else {\n newValue = {};\n }\n }\n\n // traverse over keys\n for (const key of keys) {\n if (key === '__proto__' || key === 'constructor') {\n continue;\n }\n\n const valueKey = key;\n let newValueKey = key,\n propertyName = key;\n if (!this.options.ignoreDecorators && targetType) {\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadataByCustomName(targetType as Function, key);\n if (exposeMetadata) {\n propertyName = exposeMetadata.propertyName;\n newValueKey = exposeMetadata.propertyName;\n }\n } else if (\n this.transformationType === TransformationType.CLASS_TO_PLAIN ||\n this.transformationType === TransformationType.CLASS_TO_CLASS\n ) {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(targetType as Function, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n newValueKey = exposeMetadata.options.name;\n }\n }\n }\n\n // get a subvalue\n let subValue: any = undefined;\n if (value instanceof Map) {\n subValue = value.get(valueKey);\n } else if (value[valueKey] instanceof Function) {\n subValue = value[valueKey]();\n } else {\n subValue = value[valueKey];\n }\n\n // determine a type\n let type: any = undefined,\n isSubValueMap = subValue instanceof Map;\n if (targetType && isMap) {\n type = targetType;\n } else if (targetType) {\n const metadata = defaultMetadataStorage.findTypeMetadata(targetType as Function, propertyName);\n if (metadata) {\n const options: TypeHelpOptions = { newObject: newValue, object: value, property: propertyName };\n const newType = metadata.typeFunction ? metadata.typeFunction(options) : metadata.reflectedType;\n if (\n metadata.options &&\n metadata.options.discriminator &&\n metadata.options.discriminator.property &&\n metadata.options.discriminator.subTypes\n ) {\n if (!(value[valueKey] instanceof Array)) {\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n type = metadata.options.discriminator.subTypes.find(subType => {\n if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) {\n return subType.name === subValue[metadata.options.discriminator.property];\n }\n });\n type === undefined ? (type = newType) : (type = type.value);\n if (!metadata.options.keepDiscriminatorProperty) {\n if (subValue && subValue instanceof Object && metadata.options.discriminator.property in subValue) {\n delete subValue[metadata.options.discriminator.property];\n }\n }\n }\n if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n type = subValue.constructor;\n }\n if (this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n subValue[metadata.options.discriminator.property] = metadata.options.discriminator.subTypes.find(\n subType => subType.value === subValue.constructor\n ).name;\n }\n } else {\n type = metadata;\n }\n } else {\n type = newType;\n }\n isSubValueMap = isSubValueMap || metadata.reflectedType === Map;\n } else if (this.options.targetMaps) {\n // try to find a type in target maps\n this.options.targetMaps\n .filter(map => map.target === targetType && !!map.properties[propertyName])\n .forEach(map => (type = map.properties[propertyName]));\n } else if (\n this.options.enableImplicitConversion &&\n this.transformationType === TransformationType.PLAIN_TO_CLASS\n ) {\n // if we have no registererd type via the @Type() decorator then we check if we have any\n // type declarations in reflect-metadata (type declaration is emited only if some decorator is added to the property.)\n const reflectedType = (Reflect as any).getMetadata(\n 'design:type',\n (targetType as Function).prototype,\n propertyName\n );\n\n if (reflectedType) {\n type = reflectedType;\n }\n }\n }\n\n // if value is an array try to get its custom array type\n const arrayType = Array.isArray(value[valueKey])\n ? this.getReflectedType(targetType as Function, propertyName)\n : undefined;\n\n // const subValueKey = TransformationType === TransformationType.PLAIN_TO_CLASS && newKeyName ? newKeyName : key;\n const subSource = source ? source[valueKey] : undefined;\n\n // if its deserialization then type if required\n // if we uncomment this types like string[] will not work\n // if (this.transformationType === TransformationType.PLAIN_TO_CLASS && !type && subValue instanceof Object && !(subValue instanceof Date))\n // throw new Error(`Cannot determine type for ${(targetType as any).name }.${propertyName}, did you forget to specify a @Type?`);\n\n // if newValue is a source object that has method that match newKeyName then skip it\n if (newValue.constructor.prototype) {\n const descriptor = Object.getOwnPropertyDescriptor(newValue.constructor.prototype, newValueKey);\n if (\n (this.transformationType === TransformationType.PLAIN_TO_CLASS ||\n this.transformationType === TransformationType.CLASS_TO_CLASS) &&\n // eslint-disable-next-line @typescript-eslint/unbound-method\n ((descriptor && !descriptor.set) || newValue[newValueKey] instanceof Function)\n )\n // || TransformationType === TransformationType.CLASS_TO_CLASS\n continue;\n }\n\n if (!this.options.enableCircularCheck || !this.isCircular(subValue)) {\n const transformKey = this.transformationType === TransformationType.PLAIN_TO_CLASS ? newValueKey : key;\n let finalValue;\n\n if (this.transformationType === TransformationType.CLASS_TO_PLAIN) {\n // Get original value\n finalValue = value[transformKey];\n // Apply custom transformation\n finalValue = this.applyCustomTransformations(\n finalValue,\n targetType as Function,\n transformKey,\n value,\n this.transformationType\n );\n // If nothing change, it means no custom transformation was applied, so use the subValue.\n finalValue = value[transformKey] === finalValue ? subValue : finalValue;\n // Apply the default transformation\n finalValue = this.transform(subSource, finalValue, type, arrayType, isSubValueMap, level + 1);\n } else {\n if (subValue === undefined && this.options.exposeDefaultValues) {\n // Set default value if nothing provided\n finalValue = newValue[newValueKey];\n } else {\n finalValue = this.transform(subSource, subValue, type, arrayType, isSubValueMap, level + 1);\n finalValue = this.applyCustomTransformations(\n finalValue,\n targetType as Function,\n transformKey,\n value,\n this.transformationType\n );\n }\n }\n\n if (finalValue !== undefined || this.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n } else {\n newValue[newValueKey] = finalValue;\n }\n }\n } else if (this.transformationType === TransformationType.CLASS_TO_CLASS) {\n let finalValue = subValue;\n finalValue = this.applyCustomTransformations(\n finalValue,\n targetType as Function,\n key,\n value,\n this.transformationType\n );\n if (finalValue !== undefined || this.options.exposeUnsetFields) {\n if (newValue instanceof Map) {\n newValue.set(newValueKey, finalValue);\n } else {\n newValue[newValueKey] = finalValue;\n }\n }\n }\n }\n\n if (this.options.enableCircularCheck) {\n this.recursionStack.delete(value);\n }\n\n return newValue;\n } else {\n return value;\n }\n }\n\n private applyCustomTransformations(\n value: any,\n target: Function,\n key: string,\n obj: any,\n transformationType: TransformationType\n ): boolean {\n let metadatas = defaultMetadataStorage.findTransformMetadatas(target, key, this.transformationType);\n\n // apply versioning options\n if (this.options.version !== undefined) {\n metadatas = metadatas.filter(metadata => {\n if (!metadata.options) return true;\n\n return this.checkVersion(metadata.options.since, metadata.options.until);\n });\n }\n\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n metadatas = metadatas.filter(metadata => {\n if (!metadata.options) return true;\n\n return this.checkGroups(metadata.options.groups);\n });\n } else {\n metadatas = metadatas.filter(metadata => {\n return !metadata.options || !metadata.options.groups || !metadata.options.groups.length;\n });\n }\n\n metadatas.forEach(metadata => {\n value = metadata.transformFn({ value, key, obj, type: transformationType, options: this.options });\n });\n\n return value;\n }\n\n // preventing circular references\n private isCircular(object: Record): boolean {\n return this.recursionStack.has(object);\n }\n\n private getReflectedType(target: Function, propertyName: string): Function | undefined {\n if (!target) return undefined;\n const meta = defaultMetadataStorage.findTypeMetadata(target, propertyName);\n return meta ? meta.reflectedType : undefined;\n }\n\n private getKeys(target: Function, object: Record, isMap: boolean): string[] {\n // determine exclusion strategy\n let strategy = defaultMetadataStorage.getStrategy(target);\n if (strategy === 'none') strategy = this.options.strategy || 'exposeAll'; // exposeAll is default strategy\n\n // get all keys that need to expose\n let keys: any[] = [];\n if (strategy === 'exposeAll' || isMap) {\n if (object instanceof Map) {\n keys = Array.from(object.keys());\n } else {\n keys = Object.keys(object);\n }\n }\n\n if (isMap) {\n // expose & exclude do not apply for map keys only to fields\n return keys;\n }\n\n if (!this.options.ignoreDecorators && target) {\n // add all exposed to list of keys\n let exposedProperties = defaultMetadataStorage.getExposedProperties(target, this.transformationType);\n if (this.transformationType === TransformationType.PLAIN_TO_CLASS) {\n exposedProperties = exposedProperties.map(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (exposeMetadata && exposeMetadata.options && exposeMetadata.options.name) {\n return exposeMetadata.options.name;\n }\n\n return key;\n });\n }\n if (this.options.excludeExtraneousValues) {\n keys = exposedProperties;\n } else {\n keys = keys.concat(exposedProperties);\n }\n\n // exclude excluded properties\n const excludedProperties = defaultMetadataStorage.getExcludedProperties(target, this.transformationType);\n if (excludedProperties.length > 0) {\n keys = keys.filter(key => {\n return !excludedProperties.includes(key);\n });\n }\n\n // apply versioning options\n if (this.options.version !== undefined) {\n keys = keys.filter(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options) return true;\n\n return this.checkVersion(exposeMetadata.options.since, exposeMetadata.options.until);\n });\n }\n\n // apply grouping options\n if (this.options.groups && this.options.groups.length) {\n keys = keys.filter(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n if (!exposeMetadata || !exposeMetadata.options) return true;\n\n return this.checkGroups(exposeMetadata.options.groups);\n });\n } else {\n keys = keys.filter(key => {\n const exposeMetadata = defaultMetadataStorage.findExposeMetadata(target, key);\n return (\n !exposeMetadata ||\n !exposeMetadata.options ||\n !exposeMetadata.options.groups ||\n !exposeMetadata.options.groups.length\n );\n });\n }\n }\n\n // exclude prefixed properties\n if (this.options.excludePrefixes && this.options.excludePrefixes.length) {\n keys = keys.filter(key =>\n this.options.excludePrefixes.every(prefix => {\n return key.substr(0, prefix.length) !== prefix;\n })\n );\n }\n\n // make sure we have unique keys\n keys = keys.filter((key, index, self) => {\n return self.indexOf(key) === index;\n });\n\n return keys;\n }\n\n private checkVersion(since: number, until: number): boolean {\n let decision = true;\n if (decision && since) decision = this.options.version >= since;\n if (decision && until) decision = this.options.version < until;\n\n return decision;\n }\n\n private checkGroups(groups: string[]): boolean {\n if (!groups) return true;\n\n return this.options.groups.some(optionGroup => groups.includes(optionGroup));\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/constants/default-options.constant.js b/views/node_modules/class-transformer/esm5/constants/default-options.constant.js deleted file mode 100644 index 7db66e4..0000000 --- a/views/node_modules/class-transformer/esm5/constants/default-options.constant.js +++ /dev/null @@ -1,17 +0,0 @@ -/** - * These are the default options used by any transformation operation. - */ -export var defaultOptions = { - enableCircularCheck: false, - enableImplicitConversion: false, - excludeExtraneousValues: false, - excludePrefixes: undefined, - exposeDefaultValues: false, - exposeUnsetFields: true, - groups: undefined, - ignoreDecorators: false, - strategy: undefined, - targetMaps: undefined, - version: undefined, -}; -//# sourceMappingURL=default-options.constant.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/constants/default-options.constant.js.map b/views/node_modules/class-transformer/esm5/constants/default-options.constant.js.map deleted file mode 100644 index 2521091..0000000 --- a/views/node_modules/class-transformer/esm5/constants/default-options.constant.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"default-options.constant.js","sourceRoot":"","sources":["../../../src/constants/default-options.constant.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,IAAM,cAAc,GAAmC;IAC5D,mBAAmB,EAAE,KAAK;IAC1B,wBAAwB,EAAE,KAAK;IAC/B,uBAAuB,EAAE,KAAK;IAC9B,eAAe,EAAE,SAAS;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,iBAAiB,EAAE,IAAI;IACvB,MAAM,EAAE,SAAS;IACjB,gBAAgB,EAAE,KAAK;IACvB,QAAQ,EAAE,SAAS;IACnB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,SAAS;CACnB,CAAC","sourcesContent":["import { ClassTransformOptions } from '../interfaces/class-transformer-options.interface';\n\n/**\n * These are the default options used by any transformation operation.\n */\nexport const defaultOptions: Partial = {\n enableCircularCheck: false,\n enableImplicitConversion: false,\n excludeExtraneousValues: false,\n excludePrefixes: undefined,\n exposeDefaultValues: false,\n exposeUnsetFields: true,\n groups: undefined,\n ignoreDecorators: false,\n strategy: undefined,\n targetMaps: undefined,\n version: undefined,\n};\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/exclude.decorator.js b/views/node_modules/class-transformer/esm5/decorators/exclude.decorator.js deleted file mode 100644 index 33928c9..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/exclude.decorator.js +++ /dev/null @@ -1,25 +0,0 @@ -import { defaultMetadataStorage } from '../storage'; -/** - * Marks the given class or property as excluded. By default the property is excluded in both - * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction - * via using the `toPlainOnly` or `toClassOnly` option. - * - * Can be applied to class definitions and properties. - */ -export function Exclude(options) { - if (options === void 0) { options = {}; } - /** - * NOTE: The `propertyName` property must be marked as optional because - * this decorator used both as a class and a property decorator and the - * Typescript compiler will freak out if we make it mandatory as a class - * decorator only receives one parameter. - */ - return function (object, propertyName) { - defaultMetadataStorage.addExcludeMetadata({ - target: object instanceof Function ? object : object.constructor, - propertyName: propertyName, - options: options, - }); - }; -} -//# sourceMappingURL=exclude.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/exclude.decorator.js.map b/views/node_modules/class-transformer/esm5/decorators/exclude.decorator.js.map deleted file mode 100644 index 43501f4..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/exclude.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"exclude.decorator.js","sourceRoot":"","sources":["../../../src/decorators/exclude.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,OAA4B;IAA5B,wBAAA,EAAA,YAA4B;IAClD;;;;;OAKG;IACH,OAAO,UAAU,MAAW,EAAE,YAA8B;QAC1D,sBAAsB,CAAC,kBAAkB,CAAC;YACxC,MAAM,EAAE,MAAM,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW;YAChE,YAAY,EAAE,YAAsB;YACpC,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { ExcludeOptions } from '../interfaces';\n\n/**\n * Marks the given class or property as excluded. By default the property is excluded in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Exclude(options: ExcludeOptions = {}): PropertyDecorator & ClassDecorator {\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object: any, propertyName?: string | Symbol): void {\n defaultMetadataStorage.addExcludeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName as string,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/expose.decorator.js b/views/node_modules/class-transformer/esm5/decorators/expose.decorator.js deleted file mode 100644 index 78f26da..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/expose.decorator.js +++ /dev/null @@ -1,25 +0,0 @@ -import { defaultMetadataStorage } from '../storage'; -/** - * Marks the given class or property as included. By default the property is included in both - * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction - * via using the `toPlainOnly` or `toClassOnly` option. - * - * Can be applied to class definitions and properties. - */ -export function Expose(options) { - if (options === void 0) { options = {}; } - /** - * NOTE: The `propertyName` property must be marked as optional because - * this decorator used both as a class and a property decorator and the - * Typescript compiler will freak out if we make it mandatory as a class - * decorator only receives one parameter. - */ - return function (object, propertyName) { - defaultMetadataStorage.addExposeMetadata({ - target: object instanceof Function ? object : object.constructor, - propertyName: propertyName, - options: options, - }); - }; -} -//# sourceMappingURL=expose.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/expose.decorator.js.map b/views/node_modules/class-transformer/esm5/decorators/expose.decorator.js.map deleted file mode 100644 index ddbb025..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/expose.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"expose.decorator.js","sourceRoot":"","sources":["../../../src/decorators/expose.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,OAA2B;IAA3B,wBAAA,EAAA,YAA2B;IAChD;;;;;OAKG;IACH,OAAO,UAAU,MAAW,EAAE,YAA8B;QAC1D,sBAAsB,CAAC,iBAAiB,CAAC;YACvC,MAAM,EAAE,MAAM,YAAY,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW;YAChE,YAAY,EAAE,YAAsB;YACpC,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { ExposeOptions } from '../interfaces';\n\n/**\n * Marks the given class or property as included. By default the property is included in both\n * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction\n * via using the `toPlainOnly` or `toClassOnly` option.\n *\n * Can be applied to class definitions and properties.\n */\nexport function Expose(options: ExposeOptions = {}): PropertyDecorator & ClassDecorator {\n /**\n * NOTE: The `propertyName` property must be marked as optional because\n * this decorator used both as a class and a property decorator and the\n * Typescript compiler will freak out if we make it mandatory as a class\n * decorator only receives one parameter.\n */\n return function (object: any, propertyName?: string | Symbol): void {\n defaultMetadataStorage.addExposeMetadata({\n target: object instanceof Function ? object : object.constructor,\n propertyName: propertyName as string,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/index.js b/views/node_modules/class-transformer/esm5/decorators/index.js deleted file mode 100644 index 781ba4b..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/index.js +++ /dev/null @@ -1,8 +0,0 @@ -export * from './exclude.decorator'; -export * from './expose.decorator'; -export * from './transform-class-to-class.decorator'; -export * from './transform-class-to-plain.decorator'; -export * from './transform-plain-to-class.decorator'; -export * from './transform.decorator'; -export * from './type.decorator'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/index.js.map b/views/node_modules/class-transformer/esm5/decorators/index.js.map deleted file mode 100644 index 4f999c3..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,sCAAsC,CAAC;AACrD,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC","sourcesContent":["export * from './exclude.decorator';\nexport * from './expose.decorator';\nexport * from './transform-class-to-class.decorator';\nexport * from './transform-class-to-plain.decorator';\nexport * from './transform-plain-to-class.decorator';\nexport * from './transform.decorator';\nexport * from './type.decorator';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/transform-class-to-class.decorator.js b/views/node_modules/class-transformer/esm5/decorators/transform-class-to-class.decorator.js deleted file mode 100644 index 23e85bf..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/transform-class-to-class.decorator.js +++ /dev/null @@ -1,24 +0,0 @@ -import { ClassTransformer } from '../ClassTransformer'; -/** - * Return the class instance only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -export function TransformClassToClass(params) { - return function (target, propertyKey, descriptor) { - var classTransformer = new ClassTransformer(); - var originalMethod = descriptor.value; - descriptor.value = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var result = originalMethod.apply(this, args); - var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then(function (data) { return classTransformer.classToClass(data, params); }) - : classTransformer.classToClass(result, params); - }; - }; -} -//# sourceMappingURL=transform-class-to-class.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/transform-class-to-class.decorator.js.map b/views/node_modules/class-transformer/esm5/decorators/transform-class-to-class.decorator.js.map deleted file mode 100644 index 3256339..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/transform-class-to-class.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-class-to-class.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform-class-to-class.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,OAAO,UAAU,MAA2B,EAAE,WAA4B,EAAE,UAA8B;QACxG,IAAM,gBAAgB,GAAqB,IAAI,gBAAgB,EAAE,CAAC;QAClE,IAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG;YAAU,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YACzC,IAAM,MAAM,GAAQ,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrD,IAAM,SAAS,GACb,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;YAChH,OAAO,SAAS;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,IAAS,IAAK,OAAA,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAA3C,CAA2C,CAAC;gBACzE,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ClassTransformer } from '../ClassTransformer';\nimport { ClassTransformOptions } from '../interfaces';\n\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformClassToClass(params?: ClassTransformOptions): MethodDecorator {\n return function (target: Record, propertyKey: string | Symbol, descriptor: PropertyDescriptor): void {\n const classTransformer: ClassTransformer = new ClassTransformer();\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: any[]): Record {\n const result: any = originalMethod.apply(this, args);\n const isPromise =\n !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then((data: any) => classTransformer.classToClass(data, params))\n : classTransformer.classToClass(result, params);\n };\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/transform-class-to-plain.decorator.js b/views/node_modules/class-transformer/esm5/decorators/transform-class-to-plain.decorator.js deleted file mode 100644 index de209dc..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/transform-class-to-plain.decorator.js +++ /dev/null @@ -1,24 +0,0 @@ -import { ClassTransformer } from '../ClassTransformer'; -/** - * Transform the object from class to plain object and return only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -export function TransformClassToPlain(params) { - return function (target, propertyKey, descriptor) { - var classTransformer = new ClassTransformer(); - var originalMethod = descriptor.value; - descriptor.value = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var result = originalMethod.apply(this, args); - var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then(function (data) { return classTransformer.classToPlain(data, params); }) - : classTransformer.classToPlain(result, params); - }; - }; -} -//# sourceMappingURL=transform-class-to-plain.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/transform-class-to-plain.decorator.js.map b/views/node_modules/class-transformer/esm5/decorators/transform-class-to-plain.decorator.js.map deleted file mode 100644 index 6bfb673..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/transform-class-to-plain.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-class-to-plain.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform-class-to-plain.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,OAAO,UAAU,MAA2B,EAAE,WAA4B,EAAE,UAA8B;QACxG,IAAM,gBAAgB,GAAqB,IAAI,gBAAgB,EAAE,CAAC;QAClE,IAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG;YAAU,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YACzC,IAAM,MAAM,GAAQ,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrD,IAAM,SAAS,GACb,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;YAChH,OAAO,SAAS;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,IAAS,IAAK,OAAA,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAA3C,CAA2C,CAAC;gBACzE,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACpD,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ClassTransformer } from '../ClassTransformer';\nimport { ClassTransformOptions } from '../interfaces';\n\n/**\n * Transform the object from class to plain object and return only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformClassToPlain(params?: ClassTransformOptions): MethodDecorator {\n return function (target: Record, propertyKey: string | Symbol, descriptor: PropertyDescriptor): void {\n const classTransformer: ClassTransformer = new ClassTransformer();\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: any[]): Record {\n const result: any = originalMethod.apply(this, args);\n const isPromise =\n !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then((data: any) => classTransformer.classToPlain(data, params))\n : classTransformer.classToPlain(result, params);\n };\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/transform-plain-to-class.decorator.js b/views/node_modules/class-transformer/esm5/decorators/transform-plain-to-class.decorator.js deleted file mode 100644 index 2e65521..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/transform-plain-to-class.decorator.js +++ /dev/null @@ -1,24 +0,0 @@ -import { ClassTransformer } from '../ClassTransformer'; -/** - * Return the class instance only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -export function TransformPlainToClass(classType, params) { - return function (target, propertyKey, descriptor) { - var classTransformer = new ClassTransformer(); - var originalMethod = descriptor.value; - descriptor.value = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var result = originalMethod.apply(this, args); - var isPromise = !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function'; - return isPromise - ? result.then(function (data) { return classTransformer.plainToClass(classType, data, params); }) - : classTransformer.plainToClass(classType, result, params); - }; - }; -} -//# sourceMappingURL=transform-plain-to-class.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/transform-plain-to-class.decorator.js.map b/views/node_modules/class-transformer/esm5/decorators/transform-plain-to-class.decorator.js.map deleted file mode 100644 index da68f5f..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/transform-plain-to-class.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-plain-to-class.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform-plain-to-class.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,SAAgC,EAChC,MAA8B;IAE9B,OAAO,UAAU,MAA2B,EAAE,WAA4B,EAAE,UAA8B;QACxG,IAAM,gBAAgB,GAAqB,IAAI,gBAAgB,EAAE,CAAC;QAClE,IAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG;YAAU,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YACzC,IAAM,MAAM,GAAQ,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrD,IAAM,SAAS,GACb,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,UAAU,CAAC,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,UAAU,CAAC;YAChH,OAAO,SAAS;gBACd,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,IAAS,IAAK,OAAA,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,EAAtD,CAAsD,CAAC;gBACpF,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ClassTransformer } from '../ClassTransformer';\nimport { ClassTransformOptions, ClassConstructor } from '../interfaces';\n\n/**\n * Return the class instance only with the exposed properties.\n *\n * Can be applied to functions and getters/setters only.\n */\nexport function TransformPlainToClass(\n classType: ClassConstructor,\n params?: ClassTransformOptions\n): MethodDecorator {\n return function (target: Record, propertyKey: string | Symbol, descriptor: PropertyDescriptor): void {\n const classTransformer: ClassTransformer = new ClassTransformer();\n const originalMethod = descriptor.value;\n\n descriptor.value = function (...args: any[]): Record {\n const result: any = originalMethod.apply(this, args);\n const isPromise =\n !!result && (typeof result === 'object' || typeof result === 'function') && typeof result.then === 'function';\n return isPromise\n ? result.then((data: any) => classTransformer.plainToClass(classType, data, params))\n : classTransformer.plainToClass(classType, result, params);\n };\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/transform.decorator.js b/views/node_modules/class-transformer/esm5/decorators/transform.decorator.js deleted file mode 100644 index a93de37..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/transform.decorator.js +++ /dev/null @@ -1,18 +0,0 @@ -import { defaultMetadataStorage } from '../storage'; -/** - * Defines a custom logic for value transformation. - * - * Can be applied to properties only. - */ -export function Transform(transformFn, options) { - if (options === void 0) { options = {}; } - return function (target, propertyName) { - defaultMetadataStorage.addTransformMetadata({ - target: target.constructor, - propertyName: propertyName, - transformFn: transformFn, - options: options, - }); - }; -} -//# sourceMappingURL=transform.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/transform.decorator.js.map b/views/node_modules/class-transformer/esm5/decorators/transform.decorator.js.map deleted file mode 100644 index 0abbd8e..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/transform.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform.decorator.js","sourceRoot":"","sources":["../../../src/decorators/transform.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,WAA+C,EAC/C,OAA8B;IAA9B,wBAAA,EAAA,YAA8B;IAE9B,OAAO,UAAU,MAAW,EAAE,YAA6B;QACzD,sBAAsB,CAAC,oBAAoB,CAAC;YAC1C,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAsB;YACpC,WAAW,aAAA;YACX,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { TransformFnParams, TransformOptions } from '../interfaces';\n\n/**\n * Defines a custom logic for value transformation.\n *\n * Can be applied to properties only.\n */\nexport function Transform(\n transformFn: (params: TransformFnParams) => any,\n options: TransformOptions = {}\n): PropertyDecorator {\n return function (target: any, propertyName: string | Symbol): void {\n defaultMetadataStorage.addTransformMetadata({\n target: target.constructor,\n propertyName: propertyName as string,\n transformFn,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/type.decorator.js b/views/node_modules/class-transformer/esm5/decorators/type.decorator.js deleted file mode 100644 index f4aca2f..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/type.decorator.js +++ /dev/null @@ -1,21 +0,0 @@ -import { defaultMetadataStorage } from '../storage'; -/** - * Specifies a type of the property. - * The given TypeFunction can return a constructor. A discriminator can be given in the options. - * - * Can be applied to properties only. - */ -export function Type(typeFunction, options) { - if (options === void 0) { options = {}; } - return function (target, propertyName) { - var reflectedType = Reflect.getMetadata('design:type', target, propertyName); - defaultMetadataStorage.addTypeMetadata({ - target: target.constructor, - propertyName: propertyName, - reflectedType: reflectedType, - typeFunction: typeFunction, - options: options, - }); - }; -} -//# sourceMappingURL=type.decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/decorators/type.decorator.js.map b/views/node_modules/class-transformer/esm5/decorators/type.decorator.js.map deleted file mode 100644 index a84f6e6..0000000 --- a/views/node_modules/class-transformer/esm5/decorators/type.decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type.decorator.js","sourceRoot":"","sources":["../../../src/decorators/type.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD;;;;;GAKG;AACH,MAAM,UAAU,IAAI,CAClB,YAAmD,EACnD,OAAyB;IAAzB,wBAAA,EAAA,YAAyB;IAEzB,OAAO,UAAU,MAAW,EAAE,YAA6B;QACzD,IAAM,aAAa,GAAI,OAAe,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACxF,sBAAsB,CAAC,eAAe,CAAC;YACrC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAsB;YACpC,aAAa,eAAA;YACb,YAAY,cAAA;YACZ,OAAO,SAAA;SACR,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { defaultMetadataStorage } from '../storage';\nimport { TypeHelpOptions, TypeOptions } from '../interfaces';\n\n/**\n * Specifies a type of the property.\n * The given TypeFunction can return a constructor. A discriminator can be given in the options.\n *\n * Can be applied to properties only.\n */\nexport function Type(\n typeFunction?: (type?: TypeHelpOptions) => Function,\n options: TypeOptions = {}\n): PropertyDecorator {\n return function (target: any, propertyName: string | Symbol): void {\n const reflectedType = (Reflect as any).getMetadata('design:type', target, propertyName);\n defaultMetadataStorage.addTypeMetadata({\n target: target.constructor,\n propertyName: propertyName as string,\n reflectedType,\n typeFunction,\n options,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/enums/index.js b/views/node_modules/class-transformer/esm5/enums/index.js deleted file mode 100644 index 281d8c9..0000000 --- a/views/node_modules/class-transformer/esm5/enums/index.js +++ /dev/null @@ -1,2 +0,0 @@ -export * from './transformation-type.enum'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/enums/index.js.map b/views/node_modules/class-transformer/esm5/enums/index.js.map deleted file mode 100644 index 19bdc25..0000000 --- a/views/node_modules/class-transformer/esm5/enums/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/enums/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC","sourcesContent":["export * from './transformation-type.enum';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/enums/transformation-type.enum.js b/views/node_modules/class-transformer/esm5/enums/transformation-type.enum.js deleted file mode 100644 index fdef8bf..0000000 --- a/views/node_modules/class-transformer/esm5/enums/transformation-type.enum.js +++ /dev/null @@ -1,7 +0,0 @@ -export var TransformationType; -(function (TransformationType) { - TransformationType[TransformationType["PLAIN_TO_CLASS"] = 0] = "PLAIN_TO_CLASS"; - TransformationType[TransformationType["CLASS_TO_PLAIN"] = 1] = "CLASS_TO_PLAIN"; - TransformationType[TransformationType["CLASS_TO_CLASS"] = 2] = "CLASS_TO_CLASS"; -})(TransformationType || (TransformationType = {})); -//# sourceMappingURL=transformation-type.enum.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/enums/transformation-type.enum.js.map b/views/node_modules/class-transformer/esm5/enums/transformation-type.enum.js.map deleted file mode 100644 index d4da5bd..0000000 --- a/views/node_modules/class-transformer/esm5/enums/transformation-type.enum.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transformation-type.enum.js","sourceRoot":"","sources":["../../../src/enums/transformation-type.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,+EAAc,CAAA;IACd,+EAAc,CAAA;IACd,+EAAc,CAAA;AAChB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B","sourcesContent":["export enum TransformationType {\n PLAIN_TO_CLASS,\n CLASS_TO_PLAIN,\n CLASS_TO_CLASS,\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/index.js b/views/node_modules/class-transformer/esm5/index.js deleted file mode 100644 index c7ead9e..0000000 --- a/views/node_modules/class-transformer/esm5/index.js +++ /dev/null @@ -1,40 +0,0 @@ -import { ClassTransformer } from './ClassTransformer'; -export { ClassTransformer } from './ClassTransformer'; -export * from './decorators'; -export * from './interfaces'; -export * from './enums'; -var classTransformer = new ClassTransformer(); -export function classToPlain(object, options) { - return classTransformer.classToPlain(object, options); -} -export function classToPlainFromExist(object, plainObject, options) { - return classTransformer.classToPlainFromExist(object, plainObject, options); -} -export function plainToClass(cls, plain, options) { - return classTransformer.plainToClass(cls, plain, options); -} -export function plainToClassFromExist(clsObject, plain, options) { - return classTransformer.plainToClassFromExist(clsObject, plain, options); -} -export function classToClass(object, options) { - return classTransformer.classToClass(object, options); -} -export function classToClassFromExist(object, fromObject, options) { - return classTransformer.classToClassFromExist(object, fromObject, options); -} -export function serialize(object, options) { - return classTransformer.serialize(object, options); -} -/** - * Deserializes given JSON string to a object of the given class. - */ -export function deserialize(cls, json, options) { - return classTransformer.deserialize(cls, json, options); -} -/** - * Deserializes given JSON string to an array of objects of the given class. - */ -export function deserializeArray(cls, json, options) { - return classTransformer.deserializeArray(cls, json, options); -} -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/index.js.map b/views/node_modules/class-transformer/esm5/index.js.map deleted file mode 100644 index 7b01daf..0000000 --- a/views/node_modules/class-transformer/esm5/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAItD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AAExB,IAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;AAOhD,MAAM,UAAU,YAAY,CAC1B,MAAe,EACf,OAA+B;IAE/B,OAAO,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAiBD,MAAM,UAAU,qBAAqB,CACnC,MAAS,EACT,WAAwD,EACxD,OAA+B;IAE/B,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAOD,MAAM,UAAU,YAAY,CAAO,GAAwB,EAAE,KAAc,EAAE,OAA+B;IAC1G,OAAO,gBAAgB,CAAC,YAAY,CAAC,GAAG,EAAE,KAAY,EAAE,OAAO,CAAC,CAAC;AACnE,CAAC;AASD,MAAM,UAAU,qBAAqB,CAAO,SAAY,EAAE,KAAc,EAAE,OAA+B;IACvG,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC;AAOD,MAAM,UAAU,YAAY,CAAI,MAAe,EAAE,OAA+B;IAC9E,OAAO,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AASD,MAAM,UAAU,qBAAqB,CAAI,MAAS,EAAE,UAAmB,EAAE,OAA+B;IACtG,OAAO,gBAAgB,CAAC,qBAAqB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAOD,MAAM,UAAU,SAAS,CAAI,MAAe,EAAE,OAA+B;IAC3E,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAI,GAAwB,EAAE,IAAY,EAAE,OAA+B;IACpG,OAAO,gBAAgB,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAI,GAAwB,EAAE,IAAY,EAAE,OAA+B;IACzG,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC","sourcesContent":["import { ClassTransformer } from './ClassTransformer';\nimport { ClassTransformOptions } from './interfaces';\nimport { ClassConstructor } from './interfaces';\n\nexport { ClassTransformer } from './ClassTransformer';\nexport * from './decorators';\nexport * from './interfaces';\nexport * from './enums';\n\nconst classTransformer = new ClassTransformer();\n\n/**\n * Converts class (constructor) object to plain (literal) object. Also works with arrays.\n */\nexport function classToPlain(object: T, options?: ClassTransformOptions): Record;\nexport function classToPlain(object: T[], options?: ClassTransformOptions): Record[];\nexport function classToPlain(\n object: T | T[],\n options?: ClassTransformOptions\n): Record | Record[] {\n return classTransformer.classToPlain(object, options);\n}\n\n/**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\nexport function classToPlainFromExist(\n object: T,\n plainObject: Record,\n options?: ClassTransformOptions\n): Record;\nexport function classToPlainFromExist(\n object: T,\n plainObjects: Record[],\n options?: ClassTransformOptions\n): Record[];\nexport function classToPlainFromExist(\n object: T,\n plainObject: Record | Record[],\n options?: ClassTransformOptions\n): Record | Record[] {\n return classTransformer.classToPlainFromExist(object, plainObject, options);\n}\n\n/**\n * Converts plain (literal) object to class (constructor) object. Also works with arrays.\n */\nexport function plainToClass(cls: ClassConstructor, plain: V[], options?: ClassTransformOptions): T[];\nexport function plainToClass(cls: ClassConstructor, plain: V, options?: ClassTransformOptions): T;\nexport function plainToClass(cls: ClassConstructor, plain: V | V[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.plainToClass(cls, plain as any, options);\n}\n\n/**\n * Converts plain (literal) object to class (constructor) object.\n * Uses given object as source object (it means fills given object with data from plain object).\n * Also works with arrays.\n */\nexport function plainToClassFromExist(clsObject: T[], plain: V[], options?: ClassTransformOptions): T[];\nexport function plainToClassFromExist(clsObject: T, plain: V, options?: ClassTransformOptions): T;\nexport function plainToClassFromExist(clsObject: T, plain: V | V[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.plainToClassFromExist(clsObject, plain, options);\n}\n\n/**\n * Converts class (constructor) object to new class (constructor) object. Also works with arrays.\n */\nexport function classToClass(object: T, options?: ClassTransformOptions): T;\nexport function classToClass(object: T[], options?: ClassTransformOptions): T[];\nexport function classToClass(object: T | T[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.classToClass(object, options);\n}\n\n/**\n * Converts class (constructor) object to plain (literal) object.\n * Uses given plain object as source object (it means fills given plain object with data from class object).\n * Also works with arrays.\n */\nexport function classToClassFromExist(object: T, fromObject: T, options?: ClassTransformOptions): T;\nexport function classToClassFromExist(object: T, fromObjects: T[], options?: ClassTransformOptions): T[];\nexport function classToClassFromExist(object: T, fromObject: T | T[], options?: ClassTransformOptions): T | T[] {\n return classTransformer.classToClassFromExist(object, fromObject, options);\n}\n\n/**\n * Serializes given object to a JSON string.\n */\nexport function serialize(object: T, options?: ClassTransformOptions): string;\nexport function serialize(object: T[], options?: ClassTransformOptions): string;\nexport function serialize(object: T | T[], options?: ClassTransformOptions): string {\n return classTransformer.serialize(object, options);\n}\n\n/**\n * Deserializes given JSON string to a object of the given class.\n */\nexport function deserialize(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T {\n return classTransformer.deserialize(cls, json, options);\n}\n\n/**\n * Deserializes given JSON string to an array of objects of the given class.\n */\nexport function deserializeArray(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T[] {\n return classTransformer.deserializeArray(cls, json, options);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/class-constructor.type.js b/views/node_modules/class-transformer/esm5/interfaces/class-constructor.type.js deleted file mode 100644 index 33f0232..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/class-constructor.type.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=class-constructor.type.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/class-constructor.type.js.map b/views/node_modules/class-transformer/esm5/interfaces/class-constructor.type.js.map deleted file mode 100644 index e4b420a..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/class-constructor.type.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"class-constructor.type.js","sourceRoot":"","sources":["../../../src/interfaces/class-constructor.type.ts"],"names":[],"mappings":"","sourcesContent":["export type ClassConstructor = {\n new (...args: any[]): T;\n};\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/class-transformer-options.interface.js b/views/node_modules/class-transformer/esm5/interfaces/class-transformer-options.interface.js deleted file mode 100644 index 0aac215..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/class-transformer-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=class-transformer-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/class-transformer-options.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/class-transformer-options.interface.js.map deleted file mode 100644 index 4401d79..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/class-transformer-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"class-transformer-options.interface.js","sourceRoot":"","sources":["../../../src/interfaces/class-transformer-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TargetMap } from './target-map.interface';\n\n/**\n * Options to be passed during transformation.\n */\nexport interface ClassTransformOptions {\n /**\n * Exclusion strategy. By default exposeAll is used, which means that it will expose all properties are transformed\n * by default.\n */\n strategy?: 'excludeAll' | 'exposeAll';\n\n /**\n * Indicates if extraneous properties should be excluded from the value when converting a plain value to a class.\n */\n excludeExtraneousValues?: boolean;\n\n /**\n * Only properties with given groups gonna be transformed.\n */\n groups?: string[];\n\n /**\n * Only properties with \"since\" > version < \"until\" gonna be transformed.\n */\n version?: number;\n\n /**\n * Excludes properties with the given prefixes. For example, if you mark your private properties with \"_\" and \"__\"\n * you can set this option's value to [\"_\", \"__\"] and all private properties will be skipped.\n * This works only for \"exposeAll\" strategy.\n */\n excludePrefixes?: string[];\n\n /**\n * If set to true then class transformer will ignore all @Expose and @Exclude decorators and what inside them.\n * This option is useful if you want to kinda clone your object but do not apply decorators affects.\n */\n ignoreDecorators?: boolean;\n\n /**\n * Target maps allows to set a Types of the transforming object without using @Type decorator.\n * This is useful when you are transforming external classes, or if you already have type metadata for\n * objects and you don't want to set it up again.\n */\n targetMaps?: TargetMap[];\n\n /**\n * If set to true then class transformer will perform a circular check. (circular check is turned off by default)\n * This option is useful when you know for sure that your types might have a circular dependency.\n */\n enableCircularCheck?: boolean;\n\n /**\n * If set to true then class transformer will try to convert properties implicitly to their target type based on their typing information.\n *\n * DEFAULT: `false`\n */\n enableImplicitConversion?: boolean;\n\n /**\n * If set to true then class transformer will take default values for unprovided fields.\n * This is useful when you convert a plain object to a class and have an optional field with a default value.\n */\n exposeDefaultValues?: boolean;\n\n /**\n * When set to true `undefined` fields will be ignored during class to plain transformation.\n *\n * DEFAULT: `true`\n */\n exposeUnsetFields?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/exclude-options.interface.js b/views/node_modules/class-transformer/esm5/interfaces/decorator-options/exclude-options.interface.js deleted file mode 100644 index 05900a1..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/exclude-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=exclude-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/exclude-options.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/decorator-options/exclude-options.interface.js.map deleted file mode 100644 index 3ccc700..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/exclude-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"exclude-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/exclude-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Possible transformation options for the @Exclude decorator.\n */\nexport interface ExcludeOptions {\n /**\n * Expose this property only when transforming from plain to class instance.\n */\n toClassOnly?: boolean;\n\n /**\n * Expose this property only when transforming from class instance to plain object.\n */\n toPlainOnly?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/expose-options.interface.js b/views/node_modules/class-transformer/esm5/interfaces/decorator-options/expose-options.interface.js deleted file mode 100644 index af2140e..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/expose-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=expose-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/expose-options.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/decorator-options/expose-options.interface.js.map deleted file mode 100644 index 878e93e..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/expose-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"expose-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/expose-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Possible transformation options for the @Expose decorator.\n */\nexport interface ExposeOptions {\n /**\n * Name of property on the target object to expose the value of this property.\n */\n name?: string;\n\n /**\n * First version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n since?: number;\n\n /**\n * Last version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n until?: number;\n\n /**\n * List of transformation groups this property belongs to. When set,\n * the property will be exposed only when transform is called with\n * one of the groups specified.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { groups: ['user'] });\n * ```\n */\n groups?: string[];\n\n /**\n * Expose this property only when transforming from plain to class instance.\n */\n toClassOnly?: boolean;\n\n /**\n * Expose this property only when transforming from class instance to plain object.\n */\n toPlainOnly?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/transform-options.interface.js b/views/node_modules/class-transformer/esm5/interfaces/decorator-options/transform-options.interface.js deleted file mode 100644 index fd26963..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/transform-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=transform-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/transform-options.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/decorator-options/transform-options.interface.js.map deleted file mode 100644 index 21bba54..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/transform-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/transform-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Possible transformation options for the @Transform decorator.\n */\nexport interface TransformOptions {\n /**\n * First version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n since?: number;\n\n /**\n * Last version where this property should be exposed.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { version: 1.0 });\n * ```\n */\n until?: number;\n\n /**\n * List of transformation groups this property belongs to. When set,\n * the property will be exposed only when transform is called with\n * one of the groups specified.\n *\n * Example:\n * ```ts\n * classToPlain(payload, { groups: ['user'] });\n * ```\n */\n groups?: string[];\n\n /**\n * Expose this property only when transforming from plain to class instance.\n */\n toClassOnly?: boolean;\n\n /**\n * Expose this property only when transforming from class instance to plain object.\n */\n toPlainOnly?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-discriminator-descriptor.interface.js b/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-discriminator-descriptor.interface.js deleted file mode 100644 index a01309f..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-discriminator-descriptor.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=type-discriminator-descriptor.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map deleted file mode 100644 index f6d533e..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-discriminator-descriptor.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-discriminator-descriptor.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/type-discriminator-descriptor.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { ClassConstructor } from '..';\n\n/**\n * Discriminator object containing the type information to select a proper type\n * during transformation when a discriminator property is provided.\n */\nexport interface DiscriminatorDescriptor {\n /**\n * The name of the property which holds the type information in the received object.\n */\n property: string;\n /**\n * List of the available types. The transformer will try to lookup the object\n * with the same key as the value received in the defined discriminator property\n * and create an instance of the defined class.\n */\n subTypes: {\n /**\n * Name of the type.\n */\n name: string;\n\n /**\n * A class constructor which can be used to create the object.\n */\n value: ClassConstructor;\n }[];\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-options.interface.js b/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-options.interface.js deleted file mode 100644 index 63094a2..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=type-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-options.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-options.interface.js.map deleted file mode 100644 index d3cf046..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/decorator-options/type-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-options.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/decorator-options/type-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { DiscriminatorDescriptor } from './type-discriminator-descriptor.interface';\n\n/**\n * Possible transformation options for the @Type decorator.\n */\nexport interface TypeOptions {\n /**\n * Optional discriminator object, when provided the property value will be\n * initialized according to the specified object.\n */\n discriminator?: DiscriminatorDescriptor;\n\n /**\n * Indicates whether to keep the discriminator property on the\n * transformed object or not. Disabled by default.\n *\n * @default false\n */\n keepDiscriminatorProperty?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/index.js b/views/node_modules/class-transformer/esm5/interfaces/index.js deleted file mode 100644 index 00933fe..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/index.js +++ /dev/null @@ -1,15 +0,0 @@ -export * from './decorator-options/expose-options.interface'; -export * from './decorator-options/exclude-options.interface'; -export * from './decorator-options/transform-options.interface'; -export * from './decorator-options/type-discriminator-descriptor.interface'; -export * from './decorator-options/type-options.interface'; -export * from './metadata/exclude-metadata.interface'; -export * from './metadata/expose-metadata.interface'; -export * from './metadata/transform-metadata.interface'; -export * from './metadata/transform-fn-params.interface'; -export * from './metadata/type-metadata.interface'; -export * from './class-constructor.type'; -export * from './class-transformer-options.interface'; -export * from './target-map.interface'; -export * from './type-help-options.interface'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/index.js.map b/views/node_modules/class-transformer/esm5/interfaces/index.js.map deleted file mode 100644 index 0cf79ca..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iDAAiD,CAAC;AAChE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,4CAA4C,CAAC;AAC3D,cAAc,uCAAuC,CAAC;AACtD,cAAc,sCAAsC,CAAC;AACrD,cAAc,yCAAyC,CAAC;AACxD,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AACtD,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC","sourcesContent":["export * from './decorator-options/expose-options.interface';\nexport * from './decorator-options/exclude-options.interface';\nexport * from './decorator-options/transform-options.interface';\nexport * from './decorator-options/type-discriminator-descriptor.interface';\nexport * from './decorator-options/type-options.interface';\nexport * from './metadata/exclude-metadata.interface';\nexport * from './metadata/expose-metadata.interface';\nexport * from './metadata/transform-metadata.interface';\nexport * from './metadata/transform-fn-params.interface';\nexport * from './metadata/type-metadata.interface';\nexport * from './class-constructor.type';\nexport * from './class-transformer-options.interface';\nexport * from './target-map.interface';\nexport * from './type-help-options.interface';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/metadata/exclude-metadata.interface.js b/views/node_modules/class-transformer/esm5/interfaces/metadata/exclude-metadata.interface.js deleted file mode 100644 index 2f9ec8f..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/metadata/exclude-metadata.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=exclude-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/metadata/exclude-metadata.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/metadata/exclude-metadata.interface.js.map deleted file mode 100644 index ca4dad1..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/metadata/exclude-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"exclude-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/exclude-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { ExcludeOptions } from '..';\n\n/**\n * This object represents metadata assigned to a property via the @Exclude decorator.\n */\nexport interface ExcludeMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (class or property).\n *\n * Note: If the decorator is applied to a class the propertyName will be undefined.\n */\n propertyName: string | undefined;\n\n /**\n * Options passed to the @Exclude operator for this property.\n */\n options: ExcludeOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/metadata/expose-metadata.interface.js b/views/node_modules/class-transformer/esm5/interfaces/metadata/expose-metadata.interface.js deleted file mode 100644 index 2e6ed47..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/metadata/expose-metadata.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=expose-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/metadata/expose-metadata.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/metadata/expose-metadata.interface.js.map deleted file mode 100644 index 4902919..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/metadata/expose-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"expose-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/expose-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { ExposeOptions } from '..';\n\n/**\n * This object represents metadata assigned to a property via the @Expose decorator.\n */\nexport interface ExposeMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (class or property).\n *\n * Note: If the decorator is applied to a class the propertyName will be undefined.\n */\n propertyName: string | undefined;\n\n /**\n * Options passed to the @Expose operator for this property.\n */\n options: ExposeOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-fn-params.interface.js b/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-fn-params.interface.js deleted file mode 100644 index 4d47f5b..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-fn-params.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=transform-fn-params.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-fn-params.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-fn-params.interface.js.map deleted file mode 100644 index e849e4f..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-fn-params.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-fn-params.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/transform-fn-params.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TransformationType } from '../../enums';\nimport { ClassTransformOptions } from '../class-transformer-options.interface';\n\nexport interface TransformFnParams {\n value: any;\n key: string;\n obj: any;\n type: TransformationType;\n options: ClassTransformOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-metadata.interface.js b/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-metadata.interface.js deleted file mode 100644 index 7e1f380..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-metadata.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=transform-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-metadata.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-metadata.interface.js.map deleted file mode 100644 index 668c8ce..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/metadata/transform-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"transform-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/transform-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TransformOptions } from '..';\nimport { TransformFnParams } from './transform-fn-params.interface';\n\n/**\n * This object represents metadata assigned to a property via the @Transform decorator.\n */\nexport interface TransformMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (property only).\n */\n propertyName: string;\n\n /**\n * The custom transformation function provided by the user in the @Transform decorator.\n */\n transformFn: (params: TransformFnParams) => any;\n\n /**\n * Options passed to the @Transform operator for this property.\n */\n options: TransformOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/metadata/type-metadata.interface.js b/views/node_modules/class-transformer/esm5/interfaces/metadata/type-metadata.interface.js deleted file mode 100644 index 1464571..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/metadata/type-metadata.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=type-metadata.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/metadata/type-metadata.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/metadata/type-metadata.interface.js.map deleted file mode 100644 index 4c6206d..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/metadata/type-metadata.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-metadata.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/metadata/type-metadata.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { TypeHelpOptions, TypeOptions } from '..';\n\n/**\n * This object represents metadata assigned to a property via the @Type decorator.\n */\nexport interface TypeMetadata {\n target: Function;\n\n /**\n * The property name this metadata belongs to on the target (property only).\n */\n propertyName: string;\n\n /**\n * The type guessed from assigned Reflect metadata ('design:type')\n */\n reflectedType: any;\n\n /**\n * The custom function provided by the user in the @Type decorator which\n * returns the target type for the transformation.\n */\n typeFunction: (options?: TypeHelpOptions) => Function;\n\n /**\n * Options passed to the @Type operator for this property.\n */\n options: TypeOptions;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/target-map.interface.js b/views/node_modules/class-transformer/esm5/interfaces/target-map.interface.js deleted file mode 100644 index 39ea86f..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/target-map.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=target-map.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/target-map.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/target-map.interface.js.map deleted file mode 100644 index 710733f..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/target-map.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"target-map.interface.js","sourceRoot":"","sources":["../../../src/interfaces/target-map.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Allows to specify a map of Types in the object without using @Type decorator.\n * This is useful when you have external classes.\n */\nexport interface TargetMap {\n /**\n * Target which Types are being specified.\n */\n target: Function;\n\n /**\n * List of properties and their Types.\n */\n properties: { [key: string]: Function };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/type-help-options.interface.js b/views/node_modules/class-transformer/esm5/interfaces/type-help-options.interface.js deleted file mode 100644 index cafc948..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/type-help-options.interface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=type-help-options.interface.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/interfaces/type-help-options.interface.js.map b/views/node_modules/class-transformer/esm5/interfaces/type-help-options.interface.js.map deleted file mode 100644 index 8050a8f..0000000 --- a/views/node_modules/class-transformer/esm5/interfaces/type-help-options.interface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"type-help-options.interface.js","sourceRoot":"","sources":["../../../src/interfaces/type-help-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["// TODO: Document this interface. What does each property means?\nexport interface TypeHelpOptions {\n newObject: any;\n object: Record;\n property: string;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/storage.js b/views/node_modules/class-transformer/esm5/storage.js deleted file mode 100644 index 67e122c..0000000 --- a/views/node_modules/class-transformer/esm5/storage.js +++ /dev/null @@ -1,6 +0,0 @@ -import { MetadataStorage } from './MetadataStorage'; -/** - * Default metadata storage is used as singleton and can be used to storage all metadatas. - */ -export var defaultMetadataStorage = new MetadataStorage(); -//# sourceMappingURL=storage.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/storage.js.map b/views/node_modules/class-transformer/esm5/storage.js.map deleted file mode 100644 index ae4c4c1..0000000 --- a/views/node_modules/class-transformer/esm5/storage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,IAAM,sBAAsB,GAAG,IAAI,eAAe,EAAE,CAAC","sourcesContent":["import { MetadataStorage } from './MetadataStorage';\n\n/**\n * Default metadata storage is used as singleton and can be used to storage all metadatas.\n */\nexport const defaultMetadataStorage = new MetadataStorage();\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/utils/get-global.util.js b/views/node_modules/class-transformer/esm5/utils/get-global.util.js deleted file mode 100644 index a8b64cc..0000000 --- a/views/node_modules/class-transformer/esm5/utils/get-global.util.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * This function returns the global object across Node and browsers. - * - * Note: `globalThis` is the standardized approach however it has been added to - * Node.js in version 12. We need to include this snippet until Node 12 EOL. - */ -export function getGlobal() { - if (typeof globalThis !== 'undefined') { - return globalThis; - } - if (typeof global !== 'undefined') { - return global; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - if (typeof window !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - return window; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - if (typeof self !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - return self; - } -} -//# sourceMappingURL=get-global.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/utils/get-global.util.js.map b/views/node_modules/class-transformer/esm5/utils/get-global.util.js.map deleted file mode 100644 index 83b6cf4..0000000 --- a/views/node_modules/class-transformer/esm5/utils/get-global.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-global.util.js","sourceRoot":"","sources":["../../../src/utils/get-global.util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;QACrC,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,yCAAyC;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,6DAA6D;QAC7D,yCAAyC;QACzC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,uCAAuC;IACvC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC/B,6DAA6D;QAC7D,uCAAuC;QACvC,OAAO,IAAI,CAAC;KACb;AACH,CAAC","sourcesContent":["/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/utils/get-global.util.spect.js b/views/node_modules/class-transformer/esm5/utils/get-global.util.spect.js deleted file mode 100644 index 5237df1..0000000 --- a/views/node_modules/class-transformer/esm5/utils/get-global.util.spect.js +++ /dev/null @@ -1,13 +0,0 @@ -import { getGlobal } from '.'; -describe('getGlobal()', function () { - it('should return true if Buffer is present in globalThis', function () { - expect(getGlobal().Buffer).toBe(true); - }); - it('should return false if Buffer is not present in globalThis', function () { - var bufferImp = global.Buffer; - delete global.Buffer; - expect(getGlobal().Buffer).toBe(false); - global.Buffer = bufferImp; - }); -}); -//# sourceMappingURL=get-global.util.spect.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/utils/get-global.util.spect.js.map b/views/node_modules/class-transformer/esm5/utils/get-global.util.spect.js.map deleted file mode 100644 index 6e4ca00..0000000 --- a/views/node_modules/class-transformer/esm5/utils/get-global.util.spect.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-global.util.spect.js","sourceRoot":"","sources":["../../../src/utils/get-global.util.spect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AAE9B,QAAQ,CAAC,aAAa,EAAE;IACtB,EAAE,CAAC,uDAAuD,EAAE;QAC1D,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE;QAC/D,IAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC;QAErB,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { getGlobal } from '.';\n\ndescribe('getGlobal()', () => {\n it('should return true if Buffer is present in globalThis', () => {\n expect(getGlobal().Buffer).toBe(true);\n });\n\n it('should return false if Buffer is not present in globalThis', () => {\n const bufferImp = global.Buffer;\n delete global.Buffer;\n\n expect(getGlobal().Buffer).toBe(false);\n\n global.Buffer = bufferImp;\n });\n});\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/utils/index.js b/views/node_modules/class-transformer/esm5/utils/index.js deleted file mode 100644 index 7b62321..0000000 --- a/views/node_modules/class-transformer/esm5/utils/index.js +++ /dev/null @@ -1,3 +0,0 @@ -export * from './get-global.util'; -export * from './is-promise.util'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/utils/index.js.map b/views/node_modules/class-transformer/esm5/utils/index.js.map deleted file mode 100644 index 132a5fd..0000000 --- a/views/node_modules/class-transformer/esm5/utils/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC","sourcesContent":["export * from './get-global.util';\nexport * from './is-promise.util';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/utils/is-promise.util.js b/views/node_modules/class-transformer/esm5/utils/is-promise.util.js deleted file mode 100644 index 170e190..0000000 --- a/views/node_modules/class-transformer/esm5/utils/is-promise.util.js +++ /dev/null @@ -1,4 +0,0 @@ -export function isPromise(p) { - return p !== null && typeof p === 'object' && typeof p.then === 'function'; -} -//# sourceMappingURL=is-promise.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-transformer/esm5/utils/is-promise.util.js.map b/views/node_modules/class-transformer/esm5/utils/is-promise.util.js.map deleted file mode 100644 index 9813aa9..0000000 --- a/views/node_modules/class-transformer/esm5/utils/is-promise.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"is-promise.util.js","sourceRoot":"","sources":["../../../src/utils/is-promise.util.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAI,CAAM;IACjC,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AAC7E,CAAC","sourcesContent":["export function isPromise(p: any): p is Promise {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-transformer/package.json b/views/node_modules/class-transformer/package.json deleted file mode 100644 index fe736ec..0000000 --- a/views/node_modules/class-transformer/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "class-transformer", - "version": "0.4.0", - "description": "Proper decorator-based transformation / serialization / deserialization of plain javascript objects to class constructors", - "author": "TypeStack contributors", - "license": "MIT", - "readmeFilename": "README.md", - "sideEffects": false, - "main": "./cjs/index.js", - "module": "./esm5/index.js", - "es2015": "./esm2015/index.js", - "typings": "./types/index.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/typestack/class-transformer.git" - }, - "tags": [ - "serialization", - "deserialization", - "serializer", - "typescript", - "object-to-class", - "typescript-serializer" - ], - "husky": { - "hooks": { - "pre-commit": "lint-staged" - } - }, - "lint-staged": { - "*.md": [ - "npm run prettier:fix" - ], - "*.ts": [ - "npm run prettier:fix" - ] - } -} diff --git a/views/node_modules/class-transformer/types/ClassTransformer.d.ts b/views/node_modules/class-transformer/types/ClassTransformer.d.ts deleted file mode 100644 index 71fbc4c..0000000 --- a/views/node_modules/class-transformer/types/ClassTransformer.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { ClassTransformOptions } from './interfaces'; -import { ClassConstructor } from './interfaces'; -export declare class ClassTransformer { - /** - * Converts class (constructor) object to plain (literal) object. Also works with arrays. - */ - classToPlain>(object: T, options?: ClassTransformOptions): Record; - classToPlain>(object: T[], options?: ClassTransformOptions): Record[]; - /** - * Converts class (constructor) object to plain (literal) object. - * Uses given plain object as source object (it means fills given plain object with data from class object). - * Also works with arrays. - */ - classToPlainFromExist, P>(object: T, plainObject: P, options?: ClassTransformOptions): T; - classToPlainFromExist, P>(object: T, plainObjects: P[], options?: ClassTransformOptions): T[]; - /** - * Converts plain (literal) object to class (constructor) object. Also works with arrays. - */ - plainToClass, V extends Array>(cls: ClassConstructor, plain: V, options?: ClassTransformOptions): T[]; - plainToClass, V>(cls: ClassConstructor, plain: V, options?: ClassTransformOptions): T; - /** - * Converts plain (literal) object to class (constructor) object. - * Uses given object as source object (it means fills given object with data from plain object). - * Also works with arrays. - */ - plainToClassFromExist, V extends Array>(clsObject: T, plain: V, options?: ClassTransformOptions): T; - plainToClassFromExist, V>(clsObject: T, plain: V, options?: ClassTransformOptions): T[]; - /** - * Converts class (constructor) object to new class (constructor) object. Also works with arrays. - */ - classToClass(object: T, options?: ClassTransformOptions): T; - classToClass(object: T[], options?: ClassTransformOptions): T[]; - /** - * Converts class (constructor) object to plain (literal) object. - * Uses given plain object as source object (it means fills given plain object with data from class object). - * Also works with arrays. - */ - classToClassFromExist(object: T, fromObject: T, options?: ClassTransformOptions): T; - classToClassFromExist(object: T, fromObjects: T[], options?: ClassTransformOptions): T[]; - /** - * Serializes given object to a JSON string. - */ - serialize(object: T, options?: ClassTransformOptions): string; - serialize(object: T[], options?: ClassTransformOptions): string; - /** - * Deserializes given JSON string to a object of the given class. - */ - deserialize(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T; - /** - * Deserializes given JSON string to an array of objects of the given class. - */ - deserializeArray(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T[]; -} diff --git a/views/node_modules/class-transformer/types/MetadataStorage.d.ts b/views/node_modules/class-transformer/types/MetadataStorage.d.ts deleted file mode 100644 index 0a7a67c..0000000 --- a/views/node_modules/class-transformer/types/MetadataStorage.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { TypeMetadata, ExposeMetadata, ExcludeMetadata, TransformMetadata } from './interfaces'; -import { TransformationType } from './enums'; -/** - * Storage all library metadata. - */ -export declare class MetadataStorage { - private _typeMetadatas; - private _transformMetadatas; - private _exposeMetadatas; - private _excludeMetadatas; - private _ancestorsMap; - addTypeMetadata(metadata: TypeMetadata): void; - addTransformMetadata(metadata: TransformMetadata): void; - addExposeMetadata(metadata: ExposeMetadata): void; - addExcludeMetadata(metadata: ExcludeMetadata): void; - findTransformMetadatas(target: Function, propertyName: string, transformationType: TransformationType): TransformMetadata[]; - findExcludeMetadata(target: Function, propertyName: string): ExcludeMetadata; - findExposeMetadata(target: Function, propertyName: string): ExposeMetadata; - findExposeMetadataByCustomName(target: Function, name: string): ExposeMetadata; - findTypeMetadata(target: Function, propertyName: string): TypeMetadata; - getStrategy(target: Function): 'excludeAll' | 'exposeAll' | 'none'; - getExposedMetadatas(target: Function): ExposeMetadata[]; - getExcludedMetadatas(target: Function): ExcludeMetadata[]; - getExposedProperties(target: Function, transformationType: TransformationType): string[]; - getExcludedProperties(target: Function, transformationType: TransformationType): string[]; - clear(): void; - private getMetadata; - private findMetadata; - private findMetadatas; - private getAncestors; -} diff --git a/views/node_modules/class-transformer/types/TransformOperationExecutor.d.ts b/views/node_modules/class-transformer/types/TransformOperationExecutor.d.ts deleted file mode 100644 index 68bf377..0000000 --- a/views/node_modules/class-transformer/types/TransformOperationExecutor.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ClassTransformOptions, TypeMetadata } from './interfaces'; -import { TransformationType } from './enums'; -export declare class TransformOperationExecutor { - private transformationType; - private options; - private recursionStack; - constructor(transformationType: TransformationType, options: ClassTransformOptions); - transform(source: Record | Record[] | any, value: Record | Record[] | any, targetType: Function | TypeMetadata, arrayType: Function, isMap: boolean, level?: number): any; - private applyCustomTransformations; - private isCircular; - private getReflectedType; - private getKeys; - private checkVersion; - private checkGroups; -} diff --git a/views/node_modules/class-transformer/types/constants/default-options.constant.d.ts b/views/node_modules/class-transformer/types/constants/default-options.constant.d.ts deleted file mode 100644 index 13aa5cb..0000000 --- a/views/node_modules/class-transformer/types/constants/default-options.constant.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ClassTransformOptions } from '../interfaces/class-transformer-options.interface'; -/** - * These are the default options used by any transformation operation. - */ -export declare const defaultOptions: Partial; diff --git a/views/node_modules/class-transformer/types/decorators/exclude.decorator.d.ts b/views/node_modules/class-transformer/types/decorators/exclude.decorator.d.ts deleted file mode 100644 index 80d5145..0000000 --- a/views/node_modules/class-transformer/types/decorators/exclude.decorator.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { ExcludeOptions } from '../interfaces'; -/** - * Marks the given class or property as excluded. By default the property is excluded in both - * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction - * via using the `toPlainOnly` or `toClassOnly` option. - * - * Can be applied to class definitions and properties. - */ -export declare function Exclude(options?: ExcludeOptions): PropertyDecorator & ClassDecorator; diff --git a/views/node_modules/class-transformer/types/decorators/expose.decorator.d.ts b/views/node_modules/class-transformer/types/decorators/expose.decorator.d.ts deleted file mode 100644 index fdee981..0000000 --- a/views/node_modules/class-transformer/types/decorators/expose.decorator.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { ExposeOptions } from '../interfaces'; -/** - * Marks the given class or property as included. By default the property is included in both - * constructorToPlain and plainToConstructor transformations. It can be limited to only one direction - * via using the `toPlainOnly` or `toClassOnly` option. - * - * Can be applied to class definitions and properties. - */ -export declare function Expose(options?: ExposeOptions): PropertyDecorator & ClassDecorator; diff --git a/views/node_modules/class-transformer/types/decorators/index.d.ts b/views/node_modules/class-transformer/types/decorators/index.d.ts deleted file mode 100644 index 9ee99d1..0000000 --- a/views/node_modules/class-transformer/types/decorators/index.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from './exclude.decorator'; -export * from './expose.decorator'; -export * from './transform-class-to-class.decorator'; -export * from './transform-class-to-plain.decorator'; -export * from './transform-plain-to-class.decorator'; -export * from './transform.decorator'; -export * from './type.decorator'; diff --git a/views/node_modules/class-transformer/types/decorators/transform-class-to-class.decorator.d.ts b/views/node_modules/class-transformer/types/decorators/transform-class-to-class.decorator.d.ts deleted file mode 100644 index d94bc10..0000000 --- a/views/node_modules/class-transformer/types/decorators/transform-class-to-class.decorator.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ClassTransformOptions } from '../interfaces'; -/** - * Return the class instance only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -export declare function TransformClassToClass(params?: ClassTransformOptions): MethodDecorator; diff --git a/views/node_modules/class-transformer/types/decorators/transform-class-to-plain.decorator.d.ts b/views/node_modules/class-transformer/types/decorators/transform-class-to-plain.decorator.d.ts deleted file mode 100644 index a61fe1d..0000000 --- a/views/node_modules/class-transformer/types/decorators/transform-class-to-plain.decorator.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ClassTransformOptions } from '../interfaces'; -/** - * Transform the object from class to plain object and return only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -export declare function TransformClassToPlain(params?: ClassTransformOptions): MethodDecorator; diff --git a/views/node_modules/class-transformer/types/decorators/transform-plain-to-class.decorator.d.ts b/views/node_modules/class-transformer/types/decorators/transform-plain-to-class.decorator.d.ts deleted file mode 100644 index f6f5a92..0000000 --- a/views/node_modules/class-transformer/types/decorators/transform-plain-to-class.decorator.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ClassTransformOptions, ClassConstructor } from '../interfaces'; -/** - * Return the class instance only with the exposed properties. - * - * Can be applied to functions and getters/setters only. - */ -export declare function TransformPlainToClass(classType: ClassConstructor, params?: ClassTransformOptions): MethodDecorator; diff --git a/views/node_modules/class-transformer/types/decorators/transform.decorator.d.ts b/views/node_modules/class-transformer/types/decorators/transform.decorator.d.ts deleted file mode 100644 index 539ac0e..0000000 --- a/views/node_modules/class-transformer/types/decorators/transform.decorator.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { TransformFnParams, TransformOptions } from '../interfaces'; -/** - * Defines a custom logic for value transformation. - * - * Can be applied to properties only. - */ -export declare function Transform(transformFn: (params: TransformFnParams) => any, options?: TransformOptions): PropertyDecorator; diff --git a/views/node_modules/class-transformer/types/decorators/type.decorator.d.ts b/views/node_modules/class-transformer/types/decorators/type.decorator.d.ts deleted file mode 100644 index ed2d7fb..0000000 --- a/views/node_modules/class-transformer/types/decorators/type.decorator.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { TypeHelpOptions, TypeOptions } from '../interfaces'; -/** - * Specifies a type of the property. - * The given TypeFunction can return a constructor. A discriminator can be given in the options. - * - * Can be applied to properties only. - */ -export declare function Type(typeFunction?: (type?: TypeHelpOptions) => Function, options?: TypeOptions): PropertyDecorator; diff --git a/views/node_modules/class-transformer/types/enums/index.d.ts b/views/node_modules/class-transformer/types/enums/index.d.ts deleted file mode 100644 index 7d356eb..0000000 --- a/views/node_modules/class-transformer/types/enums/index.d.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './transformation-type.enum'; diff --git a/views/node_modules/class-transformer/types/enums/transformation-type.enum.d.ts b/views/node_modules/class-transformer/types/enums/transformation-type.enum.d.ts deleted file mode 100644 index 0c48827..0000000 --- a/views/node_modules/class-transformer/types/enums/transformation-type.enum.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export declare enum TransformationType { - PLAIN_TO_CLASS = 0, - CLASS_TO_PLAIN = 1, - CLASS_TO_CLASS = 2 -} diff --git a/views/node_modules/class-transformer/types/index.d.ts b/views/node_modules/class-transformer/types/index.d.ts deleted file mode 100644 index a699a5b..0000000 --- a/views/node_modules/class-transformer/types/index.d.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { ClassTransformOptions } from './interfaces'; -import { ClassConstructor } from './interfaces'; -export { ClassTransformer } from './ClassTransformer'; -export * from './decorators'; -export * from './interfaces'; -export * from './enums'; -/** - * Converts class (constructor) object to plain (literal) object. Also works with arrays. - */ -export declare function classToPlain(object: T, options?: ClassTransformOptions): Record; -export declare function classToPlain(object: T[], options?: ClassTransformOptions): Record[]; -/** - * Converts class (constructor) object to plain (literal) object. - * Uses given plain object as source object (it means fills given plain object with data from class object). - * Also works with arrays. - */ -export declare function classToPlainFromExist(object: T, plainObject: Record, options?: ClassTransformOptions): Record; -export declare function classToPlainFromExist(object: T, plainObjects: Record[], options?: ClassTransformOptions): Record[]; -/** - * Converts plain (literal) object to class (constructor) object. Also works with arrays. - */ -export declare function plainToClass(cls: ClassConstructor, plain: V[], options?: ClassTransformOptions): T[]; -export declare function plainToClass(cls: ClassConstructor, plain: V, options?: ClassTransformOptions): T; -/** - * Converts plain (literal) object to class (constructor) object. - * Uses given object as source object (it means fills given object with data from plain object). - * Also works with arrays. - */ -export declare function plainToClassFromExist(clsObject: T[], plain: V[], options?: ClassTransformOptions): T[]; -export declare function plainToClassFromExist(clsObject: T, plain: V, options?: ClassTransformOptions): T; -/** - * Converts class (constructor) object to new class (constructor) object. Also works with arrays. - */ -export declare function classToClass(object: T, options?: ClassTransformOptions): T; -export declare function classToClass(object: T[], options?: ClassTransformOptions): T[]; -/** - * Converts class (constructor) object to plain (literal) object. - * Uses given plain object as source object (it means fills given plain object with data from class object). - * Also works with arrays. - */ -export declare function classToClassFromExist(object: T, fromObject: T, options?: ClassTransformOptions): T; -export declare function classToClassFromExist(object: T, fromObjects: T[], options?: ClassTransformOptions): T[]; -/** - * Serializes given object to a JSON string. - */ -export declare function serialize(object: T, options?: ClassTransformOptions): string; -export declare function serialize(object: T[], options?: ClassTransformOptions): string; -/** - * Deserializes given JSON string to a object of the given class. - */ -export declare function deserialize(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T; -/** - * Deserializes given JSON string to an array of objects of the given class. - */ -export declare function deserializeArray(cls: ClassConstructor, json: string, options?: ClassTransformOptions): T[]; diff --git a/views/node_modules/class-transformer/types/interfaces/class-constructor.type.d.ts b/views/node_modules/class-transformer/types/interfaces/class-constructor.type.d.ts deleted file mode 100644 index b1f956f..0000000 --- a/views/node_modules/class-transformer/types/interfaces/class-constructor.type.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export declare type ClassConstructor = { - new (...args: any[]): T; -}; diff --git a/views/node_modules/class-transformer/types/interfaces/class-transformer-options.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/class-transformer-options.interface.d.ts deleted file mode 100644 index 78377aa..0000000 --- a/views/node_modules/class-transformer/types/interfaces/class-transformer-options.interface.d.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { TargetMap } from './target-map.interface'; -/** - * Options to be passed during transformation. - */ -export interface ClassTransformOptions { - /** - * Exclusion strategy. By default exposeAll is used, which means that it will expose all properties are transformed - * by default. - */ - strategy?: 'excludeAll' | 'exposeAll'; - /** - * Indicates if extraneous properties should be excluded from the value when converting a plain value to a class. - */ - excludeExtraneousValues?: boolean; - /** - * Only properties with given groups gonna be transformed. - */ - groups?: string[]; - /** - * Only properties with "since" > version < "until" gonna be transformed. - */ - version?: number; - /** - * Excludes properties with the given prefixes. For example, if you mark your private properties with "_" and "__" - * you can set this option's value to ["_", "__"] and all private properties will be skipped. - * This works only for "exposeAll" strategy. - */ - excludePrefixes?: string[]; - /** - * If set to true then class transformer will ignore all @Expose and @Exclude decorators and what inside them. - * This option is useful if you want to kinda clone your object but do not apply decorators affects. - */ - ignoreDecorators?: boolean; - /** - * Target maps allows to set a Types of the transforming object without using @Type decorator. - * This is useful when you are transforming external classes, or if you already have type metadata for - * objects and you don't want to set it up again. - */ - targetMaps?: TargetMap[]; - /** - * If set to true then class transformer will perform a circular check. (circular check is turned off by default) - * This option is useful when you know for sure that your types might have a circular dependency. - */ - enableCircularCheck?: boolean; - /** - * If set to true then class transformer will try to convert properties implicitly to their target type based on their typing information. - * - * DEFAULT: `false` - */ - enableImplicitConversion?: boolean; - /** - * If set to true then class transformer will take default values for unprovided fields. - * This is useful when you convert a plain object to a class and have an optional field with a default value. - */ - exposeDefaultValues?: boolean; - /** - * When set to true `undefined` fields will be ignored during class to plain transformation. - * - * DEFAULT: `true` - */ - exposeUnsetFields?: boolean; -} diff --git a/views/node_modules/class-transformer/types/interfaces/decorator-options/exclude-options.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/decorator-options/exclude-options.interface.d.ts deleted file mode 100644 index 57bc22e..0000000 --- a/views/node_modules/class-transformer/types/interfaces/decorator-options/exclude-options.interface.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Possible transformation options for the @Exclude decorator. - */ -export interface ExcludeOptions { - /** - * Expose this property only when transforming from plain to class instance. - */ - toClassOnly?: boolean; - /** - * Expose this property only when transforming from class instance to plain object. - */ - toPlainOnly?: boolean; -} diff --git a/views/node_modules/class-transformer/types/interfaces/decorator-options/expose-options.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/decorator-options/expose-options.interface.d.ts deleted file mode 100644 index 4d306cd..0000000 --- a/views/node_modules/class-transformer/types/interfaces/decorator-options/expose-options.interface.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Possible transformation options for the @Expose decorator. - */ -export interface ExposeOptions { - /** - * Name of property on the target object to expose the value of this property. - */ - name?: string; - /** - * First version where this property should be exposed. - * - * Example: - * ```ts - * classToPlain(payload, { version: 1.0 }); - * ``` - */ - since?: number; - /** - * Last version where this property should be exposed. - * - * Example: - * ```ts - * classToPlain(payload, { version: 1.0 }); - * ``` - */ - until?: number; - /** - * List of transformation groups this property belongs to. When set, - * the property will be exposed only when transform is called with - * one of the groups specified. - * - * Example: - * ```ts - * classToPlain(payload, { groups: ['user'] }); - * ``` - */ - groups?: string[]; - /** - * Expose this property only when transforming from plain to class instance. - */ - toClassOnly?: boolean; - /** - * Expose this property only when transforming from class instance to plain object. - */ - toPlainOnly?: boolean; -} diff --git a/views/node_modules/class-transformer/types/interfaces/decorator-options/transform-options.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/decorator-options/transform-options.interface.d.ts deleted file mode 100644 index 5b4a61a..0000000 --- a/views/node_modules/class-transformer/types/interfaces/decorator-options/transform-options.interface.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -/** - * Possible transformation options for the @Transform decorator. - */ -export interface TransformOptions { - /** - * First version where this property should be exposed. - * - * Example: - * ```ts - * classToPlain(payload, { version: 1.0 }); - * ``` - */ - since?: number; - /** - * Last version where this property should be exposed. - * - * Example: - * ```ts - * classToPlain(payload, { version: 1.0 }); - * ``` - */ - until?: number; - /** - * List of transformation groups this property belongs to. When set, - * the property will be exposed only when transform is called with - * one of the groups specified. - * - * Example: - * ```ts - * classToPlain(payload, { groups: ['user'] }); - * ``` - */ - groups?: string[]; - /** - * Expose this property only when transforming from plain to class instance. - */ - toClassOnly?: boolean; - /** - * Expose this property only when transforming from class instance to plain object. - */ - toPlainOnly?: boolean; -} diff --git a/views/node_modules/class-transformer/types/interfaces/decorator-options/type-discriminator-descriptor.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/decorator-options/type-discriminator-descriptor.interface.d.ts deleted file mode 100644 index 10151ca..0000000 --- a/views/node_modules/class-transformer/types/interfaces/decorator-options/type-discriminator-descriptor.interface.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { ClassConstructor } from '..'; -/** - * Discriminator object containing the type information to select a proper type - * during transformation when a discriminator property is provided. - */ -export interface DiscriminatorDescriptor { - /** - * The name of the property which holds the type information in the received object. - */ - property: string; - /** - * List of the available types. The transformer will try to lookup the object - * with the same key as the value received in the defined discriminator property - * and create an instance of the defined class. - */ - subTypes: { - /** - * Name of the type. - */ - name: string; - /** - * A class constructor which can be used to create the object. - */ - value: ClassConstructor; - }[]; -} diff --git a/views/node_modules/class-transformer/types/interfaces/decorator-options/type-options.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/decorator-options/type-options.interface.d.ts deleted file mode 100644 index 51f0ad7..0000000 --- a/views/node_modules/class-transformer/types/interfaces/decorator-options/type-options.interface.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { DiscriminatorDescriptor } from './type-discriminator-descriptor.interface'; -/** - * Possible transformation options for the @Type decorator. - */ -export interface TypeOptions { - /** - * Optional discriminator object, when provided the property value will be - * initialized according to the specified object. - */ - discriminator?: DiscriminatorDescriptor; - /** - * Indicates whether to keep the discriminator property on the - * transformed object or not. Disabled by default. - * - * @default false - */ - keepDiscriminatorProperty?: boolean; -} diff --git a/views/node_modules/class-transformer/types/interfaces/index.d.ts b/views/node_modules/class-transformer/types/interfaces/index.d.ts deleted file mode 100644 index 4a1d1aa..0000000 --- a/views/node_modules/class-transformer/types/interfaces/index.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -export * from './decorator-options/expose-options.interface'; -export * from './decorator-options/exclude-options.interface'; -export * from './decorator-options/transform-options.interface'; -export * from './decorator-options/type-discriminator-descriptor.interface'; -export * from './decorator-options/type-options.interface'; -export * from './metadata/exclude-metadata.interface'; -export * from './metadata/expose-metadata.interface'; -export * from './metadata/transform-metadata.interface'; -export * from './metadata/transform-fn-params.interface'; -export * from './metadata/type-metadata.interface'; -export * from './class-constructor.type'; -export * from './class-transformer-options.interface'; -export * from './target-map.interface'; -export * from './type-help-options.interface'; diff --git a/views/node_modules/class-transformer/types/interfaces/metadata/exclude-metadata.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/metadata/exclude-metadata.interface.d.ts deleted file mode 100644 index ec2c35f..0000000 --- a/views/node_modules/class-transformer/types/interfaces/metadata/exclude-metadata.interface.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ExcludeOptions } from '..'; -/** - * This object represents metadata assigned to a property via the @Exclude decorator. - */ -export interface ExcludeMetadata { - target: Function; - /** - * The property name this metadata belongs to on the target (class or property). - * - * Note: If the decorator is applied to a class the propertyName will be undefined. - */ - propertyName: string | undefined; - /** - * Options passed to the @Exclude operator for this property. - */ - options: ExcludeOptions; -} diff --git a/views/node_modules/class-transformer/types/interfaces/metadata/expose-metadata.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/metadata/expose-metadata.interface.d.ts deleted file mode 100644 index a3a194f..0000000 --- a/views/node_modules/class-transformer/types/interfaces/metadata/expose-metadata.interface.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ExposeOptions } from '..'; -/** - * This object represents metadata assigned to a property via the @Expose decorator. - */ -export interface ExposeMetadata { - target: Function; - /** - * The property name this metadata belongs to on the target (class or property). - * - * Note: If the decorator is applied to a class the propertyName will be undefined. - */ - propertyName: string | undefined; - /** - * Options passed to the @Expose operator for this property. - */ - options: ExposeOptions; -} diff --git a/views/node_modules/class-transformer/types/interfaces/metadata/transform-fn-params.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/metadata/transform-fn-params.interface.d.ts deleted file mode 100644 index be201fa..0000000 --- a/views/node_modules/class-transformer/types/interfaces/metadata/transform-fn-params.interface.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { TransformationType } from '../../enums'; -import { ClassTransformOptions } from '../class-transformer-options.interface'; -export interface TransformFnParams { - value: any; - key: string; - obj: any; - type: TransformationType; - options: ClassTransformOptions; -} diff --git a/views/node_modules/class-transformer/types/interfaces/metadata/transform-metadata.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/metadata/transform-metadata.interface.d.ts deleted file mode 100644 index 919f63f..0000000 --- a/views/node_modules/class-transformer/types/interfaces/metadata/transform-metadata.interface.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { TransformOptions } from '..'; -import { TransformFnParams } from './transform-fn-params.interface'; -/** - * This object represents metadata assigned to a property via the @Transform decorator. - */ -export interface TransformMetadata { - target: Function; - /** - * The property name this metadata belongs to on the target (property only). - */ - propertyName: string; - /** - * The custom transformation function provided by the user in the @Transform decorator. - */ - transformFn: (params: TransformFnParams) => any; - /** - * Options passed to the @Transform operator for this property. - */ - options: TransformOptions; -} diff --git a/views/node_modules/class-transformer/types/interfaces/metadata/type-metadata.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/metadata/type-metadata.interface.d.ts deleted file mode 100644 index 7eff21b..0000000 --- a/views/node_modules/class-transformer/types/interfaces/metadata/type-metadata.interface.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { TypeHelpOptions, TypeOptions } from '..'; -/** - * This object represents metadata assigned to a property via the @Type decorator. - */ -export interface TypeMetadata { - target: Function; - /** - * The property name this metadata belongs to on the target (property only). - */ - propertyName: string; - /** - * The type guessed from assigned Reflect metadata ('design:type') - */ - reflectedType: any; - /** - * The custom function provided by the user in the @Type decorator which - * returns the target type for the transformation. - */ - typeFunction: (options?: TypeHelpOptions) => Function; - /** - * Options passed to the @Type operator for this property. - */ - options: TypeOptions; -} diff --git a/views/node_modules/class-transformer/types/interfaces/target-map.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/target-map.interface.d.ts deleted file mode 100644 index c279b2f..0000000 --- a/views/node_modules/class-transformer/types/interfaces/target-map.interface.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Allows to specify a map of Types in the object without using @Type decorator. - * This is useful when you have external classes. - */ -export interface TargetMap { - /** - * Target which Types are being specified. - */ - target: Function; - /** - * List of properties and their Types. - */ - properties: { - [key: string]: Function; - }; -} diff --git a/views/node_modules/class-transformer/types/interfaces/type-help-options.interface.d.ts b/views/node_modules/class-transformer/types/interfaces/type-help-options.interface.d.ts deleted file mode 100644 index 9da0a98..0000000 --- a/views/node_modules/class-transformer/types/interfaces/type-help-options.interface.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface TypeHelpOptions { - newObject: any; - object: Record; - property: string; -} diff --git a/views/node_modules/class-transformer/types/storage.d.ts b/views/node_modules/class-transformer/types/storage.d.ts deleted file mode 100644 index a4f3df0..0000000 --- a/views/node_modules/class-transformer/types/storage.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { MetadataStorage } from './MetadataStorage'; -/** - * Default metadata storage is used as singleton and can be used to storage all metadatas. - */ -export declare const defaultMetadataStorage: MetadataStorage; diff --git a/views/node_modules/class-transformer/types/utils/get-global.util.d.ts b/views/node_modules/class-transformer/types/utils/get-global.util.d.ts deleted file mode 100644 index c7d02b8..0000000 --- a/views/node_modules/class-transformer/types/utils/get-global.util.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * This function returns the global object across Node and browsers. - * - * Note: `globalThis` is the standardized approach however it has been added to - * Node.js in version 12. We need to include this snippet until Node 12 EOL. - */ -export declare function getGlobal(): any; diff --git a/views/node_modules/class-transformer/types/utils/get-global.util.spect.d.ts b/views/node_modules/class-transformer/types/utils/get-global.util.spect.d.ts deleted file mode 100644 index cb0ff5c..0000000 --- a/views/node_modules/class-transformer/types/utils/get-global.util.spect.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/views/node_modules/class-transformer/types/utils/index.d.ts b/views/node_modules/class-transformer/types/utils/index.d.ts deleted file mode 100644 index 382ad2d..0000000 --- a/views/node_modules/class-transformer/types/utils/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './get-global.util'; -export * from './is-promise.util'; diff --git a/views/node_modules/class-transformer/types/utils/is-promise.util.d.ts b/views/node_modules/class-transformer/types/utils/is-promise.util.d.ts deleted file mode 100644 index ba82d71..0000000 --- a/views/node_modules/class-transformer/types/utils/is-promise.util.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function isPromise(p: any): p is Promise; diff --git a/views/node_modules/class-validator/LICENSE b/views/node_modules/class-validator/LICENSE deleted file mode 100644 index abdf4ab..0000000 --- a/views/node_modules/class-validator/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License - -Copyright (c) 2015-2020 TypeStack - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/views/node_modules/class-validator/README.md b/views/node_modules/class-validator/README.md deleted file mode 100644 index 24f58b4..0000000 --- a/views/node_modules/class-validator/README.md +++ /dev/null @@ -1,1013 +0,0 @@ -# class-validator - -![Build Status](https://github.com/typestack/class-validator/workflows/CI/badge.svg) -[![codecov](https://codecov.io/gh/typestack/class-validator/branch/develop/graph/badge.svg)](https://codecov.io/gh/typestack/class-validator) -[![npm version](https://badge.fury.io/js/class-validator.svg)](https://badge.fury.io/js/class-validator) -[![install size](https://packagephobia.now.sh/badge?p=class-validator)](https://packagephobia.now.sh/result?p=class-validator) - -Allows use of decorator and non-decorator based validation. -Internally uses [validator.js][1] to perform validation. -Class-validator works on both browser and node.js platforms. - -## Table of Contents - -- [class-validator](#class-validator) - - [Table of Contents](#table-of-contents) - - [Installation](#installation) - - [Usage](#usage) - - [Passing options](#passing-options) - - [Validation errors](#validation-errors) - - [Validation messages](#validation-messages) - - [Validating arrays](#validating-arrays) - - [Validating sets](#validating-sets) - - [Validating maps](#validating-maps) - - [Validating nested objects](#validating-nested-objects) - - [Validating promises](#validating-promises) - - [Inheriting Validation decorators](#inheriting-validation-decorators) - - [Conditional validation](#conditional-validation) - - [Whitelisting](#whitelisting) - - [Passing context to decorators](#passing-context-to-decorators) - - [Skipping missing properties](#skipping-missing-properties) - - [Validation groups](#validation-groups) - - [Custom validation classes](#custom-validation-classes) - - [Custom validation decorators](#custom-validation-decorators) - - [Using service container](#using-service-container) - - [Synchronous validation](#synchronous-validation) - - [Manual validation](#manual-validation) - - [Validation decorators](#validation-decorators) - - [Defining validation schema without decorators](#defining-validation-schema-without-decorators) - - [Validating plain objects](#validating-plain-objects) - - [Samples](#samples) - - [Extensions](#extensions) - - [Release notes](#release-notes) - -## Installation - -``` -npm install class-validator --save -``` - -> Note: Please use at least npm@6 when using class-validator. From npm@6 the dependency tree is flattened, which is required by `class-validator` to function properly. - -## Usage - -Create your class and put some validation decorators on the properties you want to validate: - -```typescript -import { - validate, - validateOrReject, - Contains, - IsInt, - Length, - IsEmail, - IsFQDN, - IsDate, - Min, - Max, -} from 'class-validator'; - -export class Post { - @Length(10, 20) - title: string; - - @Contains('hello') - text: string; - - @IsInt() - @Min(0) - @Max(10) - rating: number; - - @IsEmail() - email: string; - - @IsFQDN() - site: string; - - @IsDate() - createDate: Date; -} - -let post = new Post(); -post.title = 'Hello'; // should not pass -post.text = 'this is a great post about hell world'; // should not pass -post.rating = 11; // should not pass -post.email = 'google.com'; // should not pass -post.site = 'googlecom'; // should not pass - -validate(post).then(errors => { - // errors is an array of validation errors - if (errors.length > 0) { - console.log('validation failed. errors: ', errors); - } else { - console.log('validation succeed'); - } -}); - -validateOrReject(post).catch(errors => { - console.log('Promise rejected (validation failed). Errors: ', errors); -}); -// or -async function validateOrRejectExample(input) { - try { - await validateOrReject(input); - } catch (errors) { - console.log('Caught promise rejection (validation failed). Errors: ', errors); - } -} -``` - -### Passing options - -The `validate` function optionally expects a `ValidatorOptions` object as a second parameter: - -```ts -export interface ValidatorOptions { - skipMissingProperties?: boolean; - whitelist?: boolean; - forbidNonWhitelisted?: boolean; - groups?: string[]; - dismissDefaultMessages?: boolean; - validationError?: { - target?: boolean; - value?: boolean; - }; - - forbidUnknownValues?: boolean; - stopAtFirstError?: boolean; -} -``` - -> It's highly advised to set `forbidUnknownValues: true` as it will prevent unknown objects from passing validation. - -## Validation errors - -The `validate` method returns an array of `ValidationError` objects. Each `ValidationError` is: - -```typescript -{ - target: Object; // Object that was validated. - property: string; // Object's property that haven't pass validation. - value: any; // Value that haven't pass a validation. - constraints?: { // Constraints that failed validation with error messages. - [type: string]: string; - }; - children?: ValidationError[]; // Contains all nested validation errors of the property -} -``` - -In our case, when we validated a Post object, we have such an array of `ValidationError` objects: - -```typescript -[{ - target: /* post object */, - property: "title", - value: "Hello", - constraints: { - length: "$property must be longer than or equal to 10 characters" - } -}, { - target: /* post object */, - property: "text", - value: "this is a great post about hell world", - constraints: { - contains: "text must contain a hello string" - } -}, -// and other errors -] -``` - -If you don't want a `target` to be exposed in validation errors, there is a special option when you use validator: - -```typescript -validator.validate(post, { validationError: { target: false } }); -``` - -This is especially useful when you send errors back over http, and you most probably don't want to expose -the whole target object. - -## Validation messages - -You can specify validation message in the decorator options and that message will be returned in the `ValidationError` -returned by the `validate` method (in the case that validation for this field fails). - -```typescript -import { MinLength, MaxLength } from 'class-validator'; - -export class Post { - @MinLength(10, { - message: 'Title is too short', - }) - @MaxLength(50, { - message: 'Title is too long', - }) - title: string; -} -``` - -There are few special tokens you can use in your messages: - -- `$value` - the value that is being validated -- `$property` - name of the object's property being validated -- `$target` - name of the object's class being validated -- `$constraint1`, `$constraint2`, ... `$constraintN` - constraints defined by specific validation type - -Example of usage: - -```typescript -import { MinLength, MaxLength } from 'class-validator'; - -export class Post { - @MinLength(10, { - // here, $constraint1 will be replaced with "10", and $value with actual supplied value - message: 'Title is too short. Minimal length is $constraint1 characters, but actual is $value', - }) - @MaxLength(50, { - // here, $constraint1 will be replaced with "50", and $value with actual supplied value - message: 'Title is too long. Maximal length is $constraint1 characters, but actual is $value', - }) - title: string; -} -``` - -Also you can provide a function, that returns a message. This allows you to create more granular messages: - -```typescript -import { MinLength, MaxLength, ValidationArguments } from 'class-validator'; - -export class Post { - @MinLength(10, { - message: (args: ValidationArguments) => { - if (args.value.length === 1) { - return 'Too short, minimum length is 1 character'; - } else { - return 'Too short, minimum length is ' + args.constraints[0] + ' characters'; - } - }, - }) - title: string; -} -``` - -Message function accepts `ValidationArguments` which contains the following information: - -- `value` - the value that is being validated -- `constraints` - array of constraints defined by specific validation type -- `targetName` - name of the object's class being validated -- `object` - object that is being validated -- `property` - name of the object's property being validated - -## Validating arrays - -If your field is an array and you want to perform validation of each item in the array you must specify a -special `each: true` decorator option: - -```typescript -import { MinLength, MaxLength } from 'class-validator'; - -export class Post { - @MaxLength(20, { - each: true, - }) - tags: string[]; -} -``` - -This will validate each item in `post.tags` array. - -## Validating sets - -If your field is a set and you want to perform validation of each item in the set you must specify a -special `each: true` decorator option: - -```typescript -import { MinLength, MaxLength } from 'class-validator'; - -export class Post { - @MaxLength(20, { - each: true, - }) - tags: Set; -} -``` - -This will validate each item in `post.tags` set. - -## Validating maps - -If your field is a map and you want to perform validation of each item in the map you must specify a -special `each: true` decorator option: - -```typescript -import { MinLength, MaxLength } from 'class-validator'; - -export class Post { - @MaxLength(20, { - each: true, - }) - tags: Map; -} -``` - -This will validate each item in `post.tags` map. - -## Validating nested objects - -If your object contains nested objects and you want the validator to perform their validation too, then you need to -use the `@ValidateNested()` decorator: - -```typescript -import { ValidateNested } from 'class-validator'; - -export class Post { - @ValidateNested() - user: User; -} -``` - -Please note that nested object _must_ be an instance of a class, otherwise `@ValidateNested` won't know what class is target of validation. Check also [Validating plain objects](#validating-plain-objects). - -It also works with multi-dimensional array, like : - -```typescript -import { ValidateNested } from 'class-validator'; - -export class Plan2D { - @ValidateNested() - matrix: Point[][]; -} -``` - -## Validating promises - -If your object contains property with `Promise`-returned value that should be validated, then you need to use the `@ValidatePromise()` decorator: - -```typescript -import { ValidatePromise, Min } from 'class-validator'; - -export class Post { - @Min(0) - @ValidatePromise() - userId: Promise; -} -``` - -It also works great with `@ValidateNested` decorator: - -```typescript -import { ValidateNested, ValidatePromise } from 'class-validator'; - -export class Post { - @ValidateNested() - @ValidatePromise() - user: Promise; -} -``` - -## Inheriting Validation decorators - -When you define a subclass which extends from another one, the subclass will automatically inherit the parent's decorators. If a property is redefined in the descendant class decorators will be applied on it both from that and the base class. - -```typescript -import { validate } from 'class-validator'; - -class BaseContent { - @IsEmail() - email: string; - - @IsString() - password: string; -} - -class User extends BaseContent { - @MinLength(10) - @MaxLength(20) - name: string; - - @Contains('hello') - welcome: string; - - @MinLength(20) - password: string; -} - -let user = new User(); - -user.email = 'invalid email'; // inherited property -user.password = 'too short'; // password wil be validated not only against IsString, but against MinLength as well -user.name = 'not valid'; -user.welcome = 'helo'; - -validate(user).then(errors => { - // ... -}); // it will return errors for email, title and text properties -``` - -## Conditional validation - -The conditional validation decorator (`@ValidateIf`) can be used to ignore the validators on a property when the provided condition function returns false. The condition function takes the object being validated and must return a `boolean`. - -```typescript -import { ValidateIf, IsNotEmpty } from 'class-validator'; - -export class Post { - otherProperty: string; - - @ValidateIf(o => o.otherProperty === 'value') - @IsNotEmpty() - example: string; -} -``` - -In the example above, the validation rules applied to `example` won't be run unless the object's `otherProperty` is `"value"`. - -Note that when the condition is false all validation decorators are ignored, including `isDefined`. - -## Whitelisting - -Even if your object is an instance of a validation class it can contain additional properties that are not defined. -If you do not want to have such properties on your object, pass special flag to `validate` method: - -```typescript -import { validate } from 'class-validator'; -// ... -validate(post, { whitelist: true }); -``` - -This will strip all properties that don't have any decorators. If no other decorator is suitable for your property, -you can use @Allow decorator: - -```typescript -import {validate, Allow, Min} from "class-validator"; - -export class Post { - - @Allow() - title: string; - - @Min(0) - views: number; - - nonWhitelistedProperty: number; -} - -let post = new Post(); -post.title = 'Hello world!'; -post.views = 420; - -post.nonWhitelistedProperty = 69; -(post as any).anotherNonWhitelistedProperty = "something"; - -validate(post).then(errors => { - // post.nonWhitelistedProperty is not defined - // (post as any).anotherNonWhitelistedProperty is not defined - ... -}); -``` - -If you would rather to have an error thrown when any non-whitelisted properties are present, pass another flag to -`validate` method: - -```typescript -import { validate } from 'class-validator'; -// ... -validate(post, { whitelist: true, forbidNonWhitelisted: true }); -``` - -## Passing context to decorators - -It's possible to pass a custom object to decorators which will be accessible on the `ValidationError` instance of the property if validation failed. - -```ts -import { validate } from 'class-validator'; - -class MyClass { - @MinLength(32, { - message: 'EIC code must be at least 32 characters', - context: { - errorCode: 1003, - developerNote: 'The validated string must contain 32 or more characters.', - }, - }) - eicCode: string; -} - -const model = new MyClass(); - -validate(model).then(errors => { - //errors[0].contexts['minLength'].errorCode === 1003 -}); -``` - -## Skipping missing properties - -Sometimes you may want to skip validation of the properties that do not exist in the validating object. This is -usually desirable when you want to update some parts of the object, and want to validate only updated parts, -but skip everything else, e.g. skip missing properties. -In such situations you will need to pass a special flag to `validate` method: - -```typescript -import { validate } from 'class-validator'; -// ... -validate(post, { skipMissingProperties: true }); -``` - -When skipping missing properties, sometimes you want not to skip all missing properties, some of them maybe required -for you, even if skipMissingProperties is set to true. For such cases you should use `@IsDefined()` decorator. -`@IsDefined()` is the only decorator that ignores `skipMissingProperties` option. - -## Validation groups - -In different situations you may want to use different validation schemas of the same object. -In such cases you can use validation groups. - -```typescript -import { validate, Min, Length } from 'class-validator'; - -export class User { - @Min(12, { - groups: ['registration'], - }) - age: number; - - @Length(2, 20, { - groups: ['registration', 'admin'], - }) - name: string; -} - -let user = new User(); -user.age = 10; -user.name = 'Alex'; - -validate(user, { - groups: ['registration'], -}); // this will not pass validation - -validate(user, { - groups: ['admin'], -}); // this will pass validation - -validate(user, { - groups: ['registration', 'admin'], -}); // this will not pass validation - -validate(user, { - groups: undefined, // the default -}); // this will not pass validation since all properties get validated regardless of their groups - -validate(user, { - groups: [], -}); // this will not pass validation, (equivalent to 'groups: undefined', see above) -``` - -There is also a special flag `always: true` in validation options that you can use. This flag says that this validation -must be applied always no matter which group is used. - -## Custom validation classes - -If you have custom validation logic you can create a _Constraint class_: - -1. First create a file, lets say `CustomTextLength.ts`, and define a new class: - - ```typescript - import { ValidatorConstraint, ValidatorConstraintInterface, ValidationArguments } from 'class-validator'; - - @ValidatorConstraint({ name: 'customText', async: false }) - export class CustomTextLength implements ValidatorConstraintInterface { - validate(text: string, args: ValidationArguments) { - return text.length > 1 && text.length < 10; // for async validations you must return a Promise here - } - - defaultMessage(args: ValidationArguments) { - // here you can provide default error message if validation failed - return 'Text ($value) is too short or too long!'; - } - } - ``` - - We marked our class with `@ValidatorConstraint` decorator. - You can also supply a validation constraint name - this name will be used as "error type" in ValidationError. - If you will not supply a constraint name - it will be auto-generated. - - Our class must implement `ValidatorConstraintInterface` interface and its `validate` method, - which defines validation logic. If validation succeeds, method returns true, otherwise false. - Custom validator can be asynchronous, if you want to perform validation after some asynchronous - operations, simply return a promise with boolean inside in `validate` method. - - Also we defined optional method `defaultMessage` which defines a default error message, - in the case that the decorator's implementation doesn't set an error message. - -2) Then you can use your new validation constraint in your class: - - ```typescript - import { Validate } from 'class-validator'; - import { CustomTextLength } from './CustomTextLength'; - - export class Post { - @Validate(CustomTextLength, { - message: 'Title is too short or long!', - }) - title: string; - } - ``` - - Here we set our newly created `CustomTextLength` validation constraint for `Post.title`. - -3) And use validator as usual: - - ```typescript - import { validate } from 'class-validator'; - - validate(post).then(errors => { - // ... - }); - ``` - -You can also pass constraints to your validator, like this: - -```typescript -import { Validate } from 'class-validator'; -import { CustomTextLength } from './CustomTextLength'; - -export class Post { - @Validate(CustomTextLength, [3, 20], { - message: 'Wrong post title', - }) - title: string; -} -``` - -And use them from `validationArguments` object: - -```typescript -import { ValidationArguments, ValidatorConstraint, ValidatorConstraintInterface } from 'class-validator'; - -@ValidatorConstraint() -export class CustomTextLength implements ValidatorConstraintInterface { - validate(text: string, validationArguments: ValidationArguments) { - return text.length > validationArguments.constraints[0] && text.length < validationArguments.constraints[1]; - } -} -``` - -## Custom validation decorators - -You can also create a custom decorators. Its the most elegant way of using a custom validations. -Lets create a decorator called `@IsLongerThan`: - -1. Create a decorator itself: - - ```typescript - import { registerDecorator, ValidationOptions, ValidationArguments } from 'class-validator'; - - export function IsLongerThan(property: string, validationOptions?: ValidationOptions) { - return function (object: Object, propertyName: string) { - registerDecorator({ - name: 'isLongerThan', - target: object.constructor, - propertyName: propertyName, - constraints: [property], - options: validationOptions, - validator: { - validate(value: any, args: ValidationArguments) { - const [relatedPropertyName] = args.constraints; - const relatedValue = (args.object as any)[relatedPropertyName]; - return typeof value === 'string' && typeof relatedValue === 'string' && value.length > relatedValue.length; // you can return a Promise here as well, if you want to make async validation - }, - }, - }); - }; - } - ``` - -2. Put it to use: - - ```typescript - import { IsLongerThan } from './IsLongerThan'; - - export class Post { - title: string; - - @IsLongerThan('title', { - /* you can also use additional validation options, like "groups" in your custom validation decorators. "each" is not supported */ - message: 'Text must be longer than the title', - }) - text: string; - } - ``` - -In your custom decorators you can also use `ValidationConstraint`. -Lets create another custom validation decorator called `IsUserAlreadyExist`: - -1. Create a ValidationConstraint and decorator: - - ```typescript - import { - registerDecorator, - ValidationOptions, - ValidatorConstraint, - ValidatorConstraintInterface, - ValidationArguments, - } from 'class-validator'; - - @ValidatorConstraint({ async: true }) - export class IsUserAlreadyExistConstraint implements ValidatorConstraintInterface { - validate(userName: any, args: ValidationArguments) { - return UserRepository.findOneByName(userName).then(user => { - if (user) return false; - return true; - }); - } - } - - export function IsUserAlreadyExist(validationOptions?: ValidationOptions) { - return function (object: Object, propertyName: string) { - registerDecorator({ - target: object.constructor, - propertyName: propertyName, - options: validationOptions, - constraints: [], - validator: IsUserAlreadyExistConstraint, - }); - }; - } - ``` - - note that we marked our constraint that it will by async by adding `{ async: true }` in validation options. - -2. And put it to use: - - ```typescript - import { IsUserAlreadyExist } from './IsUserAlreadyExist'; - - export class User { - @IsUserAlreadyExist({ - message: 'User $value already exists. Choose another name.', - }) - name: string; - } - ``` - -## Using service container - -Validator supports service container in the case if want to inject dependencies into your custom validator constraint -classes. Here is example how to integrate it with [typedi][2]: - -```typescript -import { Container } from 'typedi'; -import { useContainer, Validator } from 'class-validator'; - -// do this somewhere in the global application level: -useContainer(Container); -let validator = Container.get(Validator); - -// now everywhere you can inject Validator class which will go from the container -// also you can inject classes using constructor injection into your custom ValidatorConstraint-s -``` - -## Synchronous validation - -If you want to perform a simple non async validation you can use `validateSync` method instead of regular `validate` -method. It has the same arguments as `validate` method. But note, this method **ignores** all async validations -you have. - -## Manual validation - -There are several method exist in the Validator that allows to perform non-decorator based validation: - -```typescript -import { isEmpty, isBoolean } from 'class-validator'; - -isEmpty(value); -isBoolean(value); -``` - -## Validation decorators - - - -| Decorator | Description | -| ------------------------------------------------| ----------- | -| **Common validation decorators** | | -| `@IsDefined(value: any)` | Checks if value is defined (!== undefined, !== null). This is the only decorator that ignores skipMissingProperties option. | -| `@IsOptional()` | Checks if given value is empty (=== null, === undefined) and if so, ignores all the validators on the property. | -| `@Equals(comparison: any)` | Checks if value equals ("===") comparison. | -| `@NotEquals(comparison: any)` | Checks if value not equal ("!==") comparison. | -| `@IsEmpty()` | Checks if given value is empty (=== '', === null, === undefined). | -| `@IsNotEmpty()` | Checks if given value is not empty (!== '', !== null, !== undefined). | -| `@IsIn(values: any[])` | Checks if value is in a array of allowed values. | -| `@IsNotIn(values: any[])` | Checks if value is not in a array of disallowed values. | -| **Type validation decorators** | | -| `@IsBoolean()` | Checks if a value is a boolean. | -| `@IsDate()` | Checks if the value is a date. | -| `@IsString()` | Checks if the string is a string. | -| `@IsNumber(options: IsNumberOptions)` | Checks if the value is a number. | -| `@IsInt()` | Checks if the value is an integer number. | -| `@IsArray()` | Checks if the value is an array | -| `@IsEnum(entity: object)` | Checks if the value is an valid enum | -| **Number validation decorators** | -| `@IsDivisibleBy(num: number)` | Checks if the value is a number that's divisible by another. | -| `@IsPositive()` | Checks if the value is a positive number greater than zero. | -| `@IsNegative()` | Checks if the value is a negative number smaller than zero. | -| `@Min(min: number)` | Checks if the given number is greater than or equal to given number. | -| `@Max(max: number)` | Checks if the given number is less than or equal to given number. | -| **Date validation decorators** | -| `@MinDate(date: Date)` | Checks if the value is a date that's after the specified date. | -| `@MaxDate(date: Date)` | Checks if the value is a date that's before the specified date. | -| **String-type validation decorators** | | -| `@IsBooleanString()` | Checks if a string is a boolean (e.g. is "true" or "false"). | -| `@IsDateString()` | Alias for `@IsISO8601()`. | -| `@IsNumberString(options?: IsNumericOptions)` | Checks if a string is a number. | -| **String validation decorators** | | -| `@Contains(seed: string)` | Checks if the string contains the seed. | -| `@NotContains(seed: string)` | Checks if the string not contains the seed. | -| `@IsAlpha()` | Checks if the string contains only letters (a-zA-Z). | -| `@IsAlphanumeric()` | Checks if the string contains only letters and numbers. | -| `@IsDecimal(options?: IsDecimalOptions)` | Checks if the string is a valid decimal value. Default IsDecimalOptions are `force_decimal=False`, `decimal_digits: '1,'`, `locale: 'en-US'` | -| `@IsAscii()` | Checks if the string contains ASCII chars only. | -| `@IsBase32()` | Checks if a string is base32 encoded. | -| `@IsBase64()` | Checks if a string is base64 encoded. | -| `@IsIBAN()` | Checks if a string is a IBAN (International Bank Account Number). | -| `@IsBIC()` | Checks if a string is a BIC (Bank Identification Code) or SWIFT code. | -| `@IsByteLength(min: number, max?: number)` | Checks if the string's length (in bytes) falls in a range. | -| `@IsCreditCard()` | Checks if the string is a credit card. | -| `@IsCurrency(options?: IsCurrencyOptions)` | Checks if the string is a valid currency amount. | -| `@IsEthereumAddress()` | Checks if the string is an Ethereum address using basic regex. Does not validate address checksums. | -| `@IsBtcAddress()` | Checks if the string is a valid BTC address. | -| `@IsDataURI()` | Checks if the string is a data uri format. | -| `@IsEmail(options?: IsEmailOptions)` | Checks if the string is an email.| -| `@IsFQDN(options?: IsFQDNOptions)` | Checks if the string is a fully qualified domain name (e.g. domain.com). | -| `@IsFullWidth()` | Checks if the string contains any full-width chars. | -| `@IsHalfWidth()` | Checks if the string contains any half-width chars. | -| `@IsVariableWidth()` | Checks if the string contains a mixture of full and half-width chars. | -| `@IsHexColor()` | Checks if the string is a hexadecimal color. | -| `@IsHSLColor()` | Checks if the string is an HSL color based on [CSS Colors Level 4 specification](https://developer.mozilla.org/en-US/docs/Web/CSS/color_value). | -| `@IsRgbColor(options?: IsRgbOptions)` | Checks if the string is a rgb or rgba color. | -| `@IsIdentityCard(locale?: string)` | Checks if the string is a valid identity card code. | -| `@IsPassportNumber(countryCode?: string)` | Checks if the string is a valid passport number relative to a specific country code. | -| `@IsPostalCode(locale?: string)` | Checks if the string is a postal code. | -| `@IsHexadecimal()` | Checks if the string is a hexadecimal number. | -| `@IsOctal()` | Checks if the string is a octal number. | -| `@IsMACAddress(options?: IsMACAddressOptions)` | Checks if the string is a MAC Address. | -| `@IsIP(version?: "4"\|"6")` | Checks if the string is an IP (version 4 or 6). | -| `@IsPort()` | Checks if the string is a valid port number. | -| `@IsISBN(version?: "10"\|"13")` | Checks if the string is an ISBN (version 10 or 13). | -| `@IsEAN()` | Checks if the string is an if the string is an EAN (European Article Number). | -| `@IsISIN()` | Checks if the string is an ISIN (stock/security identifier). | -| `@IsISO8601(options?: IsISO8601Options)` | Checks if the string is a valid ISO 8601 date format. Use the option strict = true for additional checks for a valid date. | -| `@IsJSON()` | Checks if the string is valid JSON. | -| `@IsJWT()` | Checks if the string is valid JWT. | -| `@IsObject()` | Checks if the object is valid Object (null, functions, arrays will return false). | -| `@IsNotEmptyObject()` | Checks if the object is not empty. | -| `@IsLowercase()` | Checks if the string is lowercase. | -| `@IsLatLong()` | Checks if the string is a valid latitude-longitude coordinate in the format lat, long. | -| `@IsLatitude()` | Checks if the string or number is a valid latitude coordinate. | -| `@IsLongitude()` | Checks if the string or number is a valid longitude coordinate. | -| `@IsMobilePhone(locale: string)` | Checks if the string is a mobile phone number. | -| `@IsISO31661Alpha2()` | Checks if the string is a valid ISO 3166-1 alpha-2 officially assigned country code. | -| `@IsISO31661Alpha3()` | Checks if the string is a valid ISO 3166-1 alpha-3 officially assigned country code. | -| `@IsLocale()` | Checks if the string is a locale. | -| `@IsPhoneNumber(region: string)` | Checks if the string is a valid phone numberusing libphonenumber-js. | -| `@IsMongoId()` | Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. | -| `@IsMultibyte()` | Checks if the string contains one or more multibyte chars. | -| `@IsNumberString(options?: IsNumericOptions)` | Checks if the string is numeric. | -| `@IsSurrogatePair()` | Checks if the string contains any surrogate pairs chars. | -| `@IsUrl(options?: IsURLOptions)` | Checks if the string is an url. | -| `@IsMagnetURI()` | Checks if the string is a [magnet uri format](https://en.wikipedia.org/wiki/Magnet_URI_scheme). | -| `@IsUUID(version?: "3"\|"4"\|"5"\|"all")` | Checks if the string is a UUID (version 3, 4, 5 or all ). | -| `@IsFirebasePushId()` | Checks if the string is a [Firebase Push ID](https://firebase.googleblog.com/2015/02/the-2120-ways-to-ensure-unique_68.html) | -| `@IsUppercase()` | Checks if the string is uppercase. | -| `@Length(min: number, max?: number)` | Checks if the string's length falls in a range. | -| `@MinLength(min: number)` | Checks if the string's length is not less than given number. | -| `@MaxLength(max: number)` | Checks if the string's length is not more than given number. | -| `@Matches(pattern: RegExp, modifiers?: string)` | Checks if string matches the pattern. Either matches('foo', /foo/i) or matches('foo', 'foo', 'i'). | -| `@IsMilitaryTime()` | Checks if the string is a valid representation of military time in the format HH:MM. | -| `@IsHash(algorithm: string)` | Checks if the string is a hash The following types are supported:`md4`, `md5`, `sha1`, `sha256`, `sha384`, `sha512`, `ripemd128`, `ripemd160`, `tiger128`, `tiger160`, `tiger192`, `crc32`, `crc32b`. | -| `@IsMimeType()` | Checks if the string matches to a valid [MIME type](https://en.wikipedia.org/wiki/Media_type) format | -| `@IsSemVer()` | Checks if the string is a Semantic Versioning Specification (SemVer). | -| `@IsISSN(options?: IsISSNOptions)` | Checks if the string is a ISSN. | -| `@IsISRC()` | Checks if the string is a [ISRC](https://en.wikipedia.org/wiki/International_Standard_Recording_Code). | -| `@IsRFC3339()` | Checks if the string is a valid [RFC 3339](https://tools.ietf.org/html/rfc3339) date. | -| **Array validation decorators** | | -| `@ArrayContains(values: any[])` | Checks if array contains all values from the given array of values. | -| `@ArrayNotContains(values: any[])` | Checks if array does not contain any of the given values. | -| `@ArrayNotEmpty()` | Checks if given array is not empty. | -| `@ArrayMinSize(min: number)` | Checks if the array's length is greater than or equal to the specified number. | -| `@ArrayMaxSize(max: number)` | Checks if the array's length is less or equal to the specified number. | -| `@ArrayUnique(identifier?: (o) => any)` | Checks if all array's values are unique. Comparison for objects is reference-based. Optional function can be speciefied which return value will be used for the comparsion. | -| **Object validation decorators** | -| `@IsInstance(value: any)` | Checks if the property is an instance of the passed value. | -| **Other decorators** | | -| `@Allow()` | Prevent stripping off the property when no other constraint is specified for it. | - -## Defining validation schema without decorators - -You can define your validation schemas without decorators: - -- you can define it in the separate object -- you can define it in the `.json` file - -This feature maybe useful in the cases if: - -- are using es5/es6 and don't have decorators available -- you don't have a classes, and instead using interfaces -- you don't want to use model at all -- you want to have a validation schema separate of your model -- you want beautiful json-schema based validation models -- you simply hate decorators - -Here is an example of using it: - -1. Create a schema object: - - ```typescript - import { ValidationSchema } from 'class-validator'; - export let UserValidationSchema: ValidationSchema = { - // using interface here is not required, its just for type-safety - name: 'myUserSchema', // this is required, and must be unique - properties: { - firstName: [ - { - type: 'minLength', // validation type. All validation types are listed in ValidationTypes class. - constraints: [2], - }, - { - type: 'maxLength', - constraints: [20], - }, - ], - lastName: [ - { - type: 'minLength', - constraints: [2], - }, - { - type: 'maxLength', - constraints: [20], - }, - ], - email: [ - { - type: 'isEmail', - }, - ], - }, - }; - ``` - - Same schema can be provided in `.json` file, depend on your wish. - -2. Register your schema: - - ```typescript - import { registerSchema } from 'class-validator'; - import { UserValidationSchema } from './UserValidationSchema'; - registerSchema(UserValidationSchema); // if schema is in .json file, then you can simply do registerSchema(require("path-to-schema.json")); - ``` - - Better to put this code in a global place, maybe when you bootstrap your application, for example in `app.ts`. - -3. Validate your object using validation schema: - - ```typescript - import { validate } from 'class-validator'; - const user = { firstName: 'Johny', secondName: 'Cage', email: 'johny@cage.com' }; - validate('myUserSchema', user).then(errors => { - if (errors.length > 0) { - console.log('Validation failed: ', errors); - } else { - console.log('Validation succeed.'); - } - }); - ``` - - That's it. Here `"myUserSchema"` is the name of our validation schema. - `validate` method will perform validation based on this schema - -## Validating plain objects - -Due to nature of the decorators, the validated object has to be instantiated using `new Class()` syntax. If you have your class defined using class-validator decorators and you want to validate plain JS object (literal object or returned by JSON.parse), you need to transform it to the class instance via using [class-transformer](https://github.com/pleerock/class-transformer)). - -## Samples - -Take a look on samples in [./sample](https://github.com/pleerock/class-validator/tree/master/sample) for more examples of -usages. - -## Extensions - -There are several extensions that simplify class-validator integration with other modules: - -- [class-validator integration](https://github.com/19majkel94/class-transformer-validator) with [class-transformer](https://github.com/pleerock/class-transformer) -- [class-validator-rule](https://github.com/yantrab/class-validator-rule) -- [ngx-dynamic-form-builder](https://github.com/EndyKaufman/ngx-dynamic-form-builder) - -## Release notes - -See information about breaking changes and release notes [here][3]. - -[1]: https://github.com/chriso/validator.js -[2]: https://github.com/pleerock/typedi -[3]: CHANGELOG.md diff --git a/views/node_modules/class-validator/bundles/class-validator.umd.js b/views/node_modules/class-validator/bundles/class-validator.umd.js deleted file mode 100644 index b7b3e67..0000000 --- a/views/node_modules/class-validator/bundles/class-validator.umd.js +++ /dev/null @@ -1,10083 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.ClassValidator = {})); -}(this, (function (exports) { 'use strict'; - - /** - * This metadata contains validation rules. - */ - var ValidationMetadata = /** @class */ (function () { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - function ValidationMetadata(args) { - /** - * Validation groups used for this validation. - */ - this.groups = []; - /** - * Specifies if validated value is an array and each of its item must be validated. - */ - this.each = false; - /* - * A transient set of data passed through to the validation result for response mapping - */ - this.context = undefined; - this.type = args.type; - this.target = args.target; - this.propertyName = args.propertyName; - this.constraints = args.constraints; - this.constraintCls = args.constraintCls; - this.validationTypeOptions = args.validationTypeOptions; - if (args.validationOptions) { - this.message = args.validationOptions.message; - this.groups = args.validationOptions.groups; - this.always = args.validationOptions.always; - this.each = args.validationOptions.each; - this.context = args.validationOptions.context; - } - } - return ValidationMetadata; - }()); - - /** - * Used to transform validation schemas to validation metadatas. - */ - var ValidationSchemaToMetadataTransformer = /** @class */ (function () { - function ValidationSchemaToMetadataTransformer() { - } - ValidationSchemaToMetadataTransformer.prototype.transform = function (schema) { - var metadatas = []; - Object.keys(schema.properties).forEach(function (property) { - schema.properties[property].forEach(function (validation) { - var validationOptions = { - message: validation.message, - groups: validation.groups, - always: validation.always, - each: validation.each, - }; - var args = { - type: validation.type, - target: schema.name, - propertyName: property, - constraints: validation.constraints, - validationTypeOptions: validation.options, - validationOptions: validationOptions, - }; - metadatas.push(new ValidationMetadata(args)); - }); - }); - return metadatas; - }; - return ValidationSchemaToMetadataTransformer; - }()); - - /** - * Convert Map, Set to Array - */ - function convertToArray(val) { - if (val instanceof Map) { - return Array.from(val.values()); - } - return Array.isArray(val) ? val : Array.from(val); - } - - /** - * This function returns the global object across Node and browsers. - * - * Note: `globalThis` is the standardized approach however it has been added to - * Node.js in version 12. We need to include this snippet until Node 12 EOL. - */ - function getGlobal() { - if (typeof globalThis !== 'undefined') { - return globalThis; - } - if (typeof global !== 'undefined') { - return global; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - if (typeof window !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - return window; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - if (typeof self !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - return self; - } - } - - // https://github.com/TylorS/typed-is-promise/blob/abf1514e1b6961adfc75765476b0debb96b2c3ae/src/index.ts - function isPromise(p) { - return p !== null && typeof p === 'object' && typeof p.then === 'function'; - } - - /** - * Storage all metadatas. - */ - var MetadataStorage = /** @class */ (function () { - function MetadataStorage() { - // ------------------------------------------------------------------------- - // Private properties - // ------------------------------------------------------------------------- - this.validationMetadatas = []; - this.constraintMetadatas = []; - } - Object.defineProperty(MetadataStorage.prototype, "hasValidationMetaData", { - get: function () { - return !!this.validationMetadatas.length; - }, - enumerable: false, - configurable: true - }); - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - /** - * Adds a new validation metadata. - */ - MetadataStorage.prototype.addValidationSchema = function (schema) { - var _this = this; - var validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema); - validationMetadatas.forEach(function (validationMetadata) { return _this.addValidationMetadata(validationMetadata); }); - }; - /** - * Adds a new validation metadata. - */ - MetadataStorage.prototype.addValidationMetadata = function (metadata) { - this.validationMetadatas.push(metadata); - }; - /** - * Adds a new constraint metadata. - */ - MetadataStorage.prototype.addConstraintMetadata = function (metadata) { - this.constraintMetadatas.push(metadata); - }; - /** - * Groups metadata by their property names. - */ - MetadataStorage.prototype.groupByPropertyName = function (metadata) { - var grouped = {}; - metadata.forEach(function (metadata) { - if (!grouped[metadata.propertyName]) - grouped[metadata.propertyName] = []; - grouped[metadata.propertyName].push(metadata); - }); - return grouped; - }; - /** - * Gets all validation metadatas for the given object with the given groups. - */ - MetadataStorage.prototype.getTargetValidationMetadatas = function (targetConstructor, targetSchema, always, strictGroups, groups) { - var includeMetadataBecauseOfAlwaysOption = function (metadata) { - // `metadata.always` overrides global default. - if (typeof metadata.always !== 'undefined') - return metadata.always; - // `metadata.groups` overrides global default. - if (metadata.groups && metadata.groups.length) - return false; - // Use global default. - return always; - }; - var excludeMetadataBecauseOfStrictGroupsOption = function (metadata) { - if (strictGroups) { - // Validation is not using groups. - if (!groups || !groups.length) { - // `metadata.groups` has at least one group. - if (metadata.groups && metadata.groups.length) - return true; - } - } - return false; - }; - // get directly related to a target metadatas - var originalMetadatas = this.validationMetadatas.filter(function (metadata) { - if (metadata.target !== targetConstructor && metadata.target !== targetSchema) - return false; - if (includeMetadataBecauseOfAlwaysOption(metadata)) - return true; - if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) - return false; - if (groups && groups.length > 0) - return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; }); - return true; - }); - // get metadatas for inherited classes - var inheritedMetadatas = this.validationMetadatas.filter(function (metadata) { - // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas - if (typeof metadata.target === 'string') - return false; - if (metadata.target === targetConstructor) - return false; - if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target)) - return false; - if (includeMetadataBecauseOfAlwaysOption(metadata)) - return true; - if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) - return false; - if (groups && groups.length > 0) - return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; }); - return true; - }); - // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas - var uniqueInheritedMetadatas = inheritedMetadatas.filter(function (inheritedMetadata) { - return !originalMetadatas.find(function (originalMetadata) { - return (originalMetadata.propertyName === inheritedMetadata.propertyName && - originalMetadata.type === inheritedMetadata.type); - }); - }); - return originalMetadatas.concat(uniqueInheritedMetadatas); - }; - /** - * Gets all validator constraints for the given object. - */ - MetadataStorage.prototype.getTargetValidatorConstraints = function (target) { - return this.constraintMetadatas.filter(function (metadata) { return metadata.target === target; }); - }; - return MetadataStorage; - }()); - /** - * Gets metadata storage. - * Metadata storage follows the best practices and stores metadata in a global variable. - */ - function getMetadataStorage() { - var global = getGlobal(); - if (!global.classValidatorMetadataStorage) { - global.classValidatorMetadataStorage = new MetadataStorage(); - } - return global.classValidatorMetadataStorage; - } - - /** - * Validation error description. - */ - var ValidationError = /** @class */ (function () { - function ValidationError() { - } - /** - * - * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability - * @param hasParent true when the error is a child of an another one - * @param parentPath path as string to the parent of this property - */ - ValidationError.prototype.toString = function (shouldDecorate, hasParent, parentPath) { - var _this = this; - if (shouldDecorate === void 0) { shouldDecorate = false; } - if (hasParent === void 0) { hasParent = false; } - if (parentPath === void 0) { parentPath = ""; } - var boldStart = shouldDecorate ? "\u001B[1m" : ""; - var boldEnd = shouldDecorate ? "\u001B[22m" : ""; - var propConstraintFailed = function (propertyName) { - return " - property " + boldStart + parentPath + propertyName + boldEnd + " has failed the following constraints: " + boldStart + Object.keys(_this.constraints).join(", ") + boldEnd + " \n"; - }; - if (!hasParent) { - return ("An instance of " + boldStart + (this.target ? this.target.constructor.name : 'an object') + boldEnd + " has failed the validation:\n" + - (this.constraints ? propConstraintFailed(this.property) : "") + - (this.children - ? this.children.map(function (childError) { return childError.toString(shouldDecorate, true, _this.property); }).join("") - : "")); - } - else { - // we format numbers as array indexes for better readability. - var formattedProperty_1 = Number.isInteger(+this.property) - ? "[" + this.property + "]" - : "" + (parentPath ? "." : "") + this.property; - if (this.constraints) { - return propConstraintFailed(formattedProperty_1); - } - else { - return this.children - ? this.children - .map(function (childError) { return childError.toString(shouldDecorate, true, "" + parentPath + formattedProperty_1); }) - .join("") - : ""; - } - } - }; - return ValidationError; - }()); - - /** - * Validation types. - */ - var ValidationTypes = /** @class */ (function () { - function ValidationTypes() { - } - /** - * Checks if validation type is valid. - */ - ValidationTypes.isValid = function (type) { - var _this = this; - return (type !== 'isValid' && - type !== 'getMessage' && - Object.keys(this) - .map(function (key) { return _this[key]; }) - .indexOf(type) !== -1); - }; - /* system */ - ValidationTypes.CUSTOM_VALIDATION = 'customValidation'; // done - ValidationTypes.NESTED_VALIDATION = 'nestedValidation'; // done - ValidationTypes.PROMISE_VALIDATION = 'promiseValidation'; // done - ValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation'; // done - ValidationTypes.WHITELIST = 'whitelistValidation'; // done - ValidationTypes.IS_DEFINED = 'isDefined'; // done - return ValidationTypes; - }()); - - /** - * Convert the constraint to a string to be shown in an error - */ - function constraintToString(constraint) { - if (Array.isArray(constraint)) { - return constraint.join(', '); - } - return "" + constraint; - } - var ValidationUtils = /** @class */ (function () { - function ValidationUtils() { - } - ValidationUtils.replaceMessageSpecialTokens = function (message, validationArguments) { - var messageString; - if (message instanceof Function) { - messageString = message(validationArguments); - } - else if (typeof message === 'string') { - messageString = message; - } - if (messageString && validationArguments.constraints instanceof Array) { - validationArguments.constraints.forEach(function (constraint, index) { - messageString = messageString.replace(new RegExp("\\$constraint" + (index + 1), 'g'), constraintToString(constraint)); - }); - } - if (messageString && - validationArguments.value !== undefined && - validationArguments.value !== null && - typeof validationArguments.value === 'string') - messageString = messageString.replace(/\$value/g, validationArguments.value); - if (messageString) - messageString = messageString.replace(/\$property/g, validationArguments.property); - if (messageString) - messageString = messageString.replace(/\$target/g, validationArguments.targetName); - return messageString; - }; - return ValidationUtils; - }()); - - /** - * Executes validation over given object. - */ - var ValidationExecutor = /** @class */ (function () { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - function ValidationExecutor(validator, validatorOptions) { - this.validator = validator; - this.validatorOptions = validatorOptions; - // ------------------------------------------------------------------------- - // Properties - // ------------------------------------------------------------------------- - this.awaitingPromises = []; - this.ignoreAsyncValidations = false; - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - this.metadataStorage = getMetadataStorage(); - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - ValidationExecutor.prototype.execute = function (object, targetSchema, validationErrors) { - var _this = this; - var _a; - /** - * If there is no metadata registered it means possibly the dependencies are not flatterned and - * more than one instance is used. - * - * TODO: This needs proper handling, forcing to use the same container or some other proper solution. - */ - if (!this.metadataStorage.hasValidationMetaData && ((_a = this.validatorOptions) === null || _a === void 0 ? void 0 : _a.enableDebugMessages) === true) { - console.warn("No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies."); - } - var groups = this.validatorOptions ? this.validatorOptions.groups : undefined; - var strictGroups = (this.validatorOptions && this.validatorOptions.strictGroups) || false; - var always = (this.validatorOptions && this.validatorOptions.always) || false; - var targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(object.constructor, targetSchema, always, strictGroups, groups); - var groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas); - if (this.validatorOptions && this.validatorOptions.forbidUnknownValues && !targetMetadatas.length) { - var validationError = new ValidationError(); - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.target === undefined || - this.validatorOptions.validationError.target === true) - validationError.target = object; - validationError.value = undefined; - validationError.property = undefined; - validationError.children = []; - validationError.constraints = { unknownValue: 'an unknown value was passed to the validate function' }; - validationErrors.push(validationError); - return; - } - if (this.validatorOptions && this.validatorOptions.whitelist) - this.whitelist(object, groupedMetadatas, validationErrors); - // General validation - Object.keys(groupedMetadatas).forEach(function (propertyName) { - var value = object[propertyName]; - var definedMetadatas = groupedMetadatas[propertyName].filter(function (metadata) { return metadata.type === ValidationTypes.IS_DEFINED; }); - var metadatas = groupedMetadatas[propertyName].filter(function (metadata) { return metadata.type !== ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes.WHITELIST; }); - if (value instanceof Promise && - metadatas.find(function (metadata) { return metadata.type === ValidationTypes.PROMISE_VALIDATION; })) { - _this.awaitingPromises.push(value.then(function (resolvedValue) { - _this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors); - })); - } - else { - _this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors); - } - }); - }; - ValidationExecutor.prototype.whitelist = function (object, groupedMetadatas, validationErrors) { - var _this = this; - var notAllowedProperties = []; - Object.keys(object).forEach(function (propertyName) { - // does this property have no metadata? - if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0) - notAllowedProperties.push(propertyName); - }); - if (notAllowedProperties.length > 0) { - if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) { - // throw errors - notAllowedProperties.forEach(function (property) { - var _a; - var validationError = _this.generateValidationError(object, object[property], property); - validationError.constraints = (_a = {}, _a[ValidationTypes.WHITELIST] = "property " + property + " should not exist", _a); - validationError.children = undefined; - validationErrors.push(validationError); - }); - } - else { - // strip non allowed properties - notAllowedProperties.forEach(function (property) { return delete object[property]; }); - } - } - }; - ValidationExecutor.prototype.stripEmptyErrors = function (errors) { - var _this = this; - return errors.filter(function (error) { - if (error.children) { - error.children = _this.stripEmptyErrors(error.children); - } - if (Object.keys(error.constraints).length === 0) { - if (error.children.length === 0) { - return false; - } - else { - delete error.constraints; - } - } - return true; - }); - }; - // ------------------------------------------------------------------------- - // Private Methods - // ------------------------------------------------------------------------- - ValidationExecutor.prototype.performValidations = function (object, value, propertyName, definedMetadatas, metadatas, validationErrors) { - var customValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.CUSTOM_VALIDATION; }); - var nestedValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.NESTED_VALIDATION; }); - var conditionalValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.CONDITIONAL_VALIDATION; }); - var validationError = this.generateValidationError(object, value, propertyName); - validationErrors.push(validationError); - var canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas); - if (!canValidate) { - return; - } - // handle IS_DEFINED validation type the special way - it should work no matter skipUndefinedProperties/skipMissingProperties is set or not - this.customValidations(object, value, definedMetadatas, validationError); - this.mapContexts(object, value, definedMetadatas, validationError); - if (value === undefined && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) { - return; - } - if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) { - return; - } - if ((value === null || value === undefined) && - this.validatorOptions && - this.validatorOptions.skipMissingProperties === true) { - return; - } - this.customValidations(object, value, customValidationMetadatas, validationError); - this.nestedValidations(value, nestedValidationMetadatas, validationError.children); - this.mapContexts(object, value, metadatas, validationError); - this.mapContexts(object, value, customValidationMetadatas, validationError); - }; - ValidationExecutor.prototype.generateValidationError = function (object, value, propertyName) { - var validationError = new ValidationError(); - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.target === undefined || - this.validatorOptions.validationError.target === true) - validationError.target = object; - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.value === undefined || - this.validatorOptions.validationError.value === true) - validationError.value = value; - validationError.property = propertyName; - validationError.children = []; - validationError.constraints = {}; - return validationError; - }; - ValidationExecutor.prototype.conditionalValidations = function (object, value, metadatas) { - return metadatas - .map(function (metadata) { return metadata.constraints[0](object, value); }) - .reduce(function (resultA, resultB) { return resultA && resultB; }, true); - }; - ValidationExecutor.prototype.customValidations = function (object, value, metadatas, error) { - var _this = this; - metadatas.forEach(function (metadata) { - _this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls).forEach(function (customConstraintMetadata) { - if (customConstraintMetadata.async && _this.ignoreAsyncValidations) - return; - if (_this.validatorOptions && - _this.validatorOptions.stopAtFirstError && - Object.keys(error.constraints || {}).length > 0) - return; - var validationArguments = { - targetName: object.constructor ? object.constructor.name : undefined, - property: metadata.propertyName, - object: object, - value: value, - constraints: metadata.constraints, - }; - if (!metadata.each || !(value instanceof Array || value instanceof Set || value instanceof Map)) { - var validatedValue = customConstraintMetadata.instance.validate(value, validationArguments); - if (isPromise(validatedValue)) { - var promise = validatedValue.then(function (isValid) { - if (!isValid) { - var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1]; - error.constraints[type] = message; - if (metadata.context) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - _this.awaitingPromises.push(promise); - } - else { - if (!validatedValue) { - var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1]; - error.constraints[type] = message; - } - } - return; - } - // convert set and map into array - var arrayValue = convertToArray(value); - // Validation needs to be applied to each array item - var validatedSubValues = arrayValue.map(function (subValue) { - return customConstraintMetadata.instance.validate(subValue, validationArguments); - }); - var validationIsAsync = validatedSubValues.some(function (validatedSubValue) { - return isPromise(validatedSubValue); - }); - if (validationIsAsync) { - // Wrap plain values (if any) in promises, so that all are async - var asyncValidatedSubValues = validatedSubValues.map(function (validatedSubValue) { - return isPromise(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue); - }); - var asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues).then(function (flatValidatedValues) { - var validationResult = flatValidatedValues.every(function (isValid) { return isValid; }); - if (!validationResult) { - var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1]; - error.constraints[type] = message; - if (metadata.context) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - _this.awaitingPromises.push(asyncValidationIsFinishedPromise); - return; - } - var validationResult = validatedSubValues.every(function (isValid) { return isValid; }); - if (!validationResult) { - var _b = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _b[0], message = _b[1]; - error.constraints[type] = message; - } - }); - }); - }; - ValidationExecutor.prototype.nestedValidations = function (value, metadatas, errors) { - var _this = this; - if (value === void 0) { - return; - } - metadatas.forEach(function (metadata) { - var _a; - if (metadata.type !== ValidationTypes.NESTED_VALIDATION && metadata.type !== ValidationTypes.PROMISE_VALIDATION) { - return; - } - if (value instanceof Array || value instanceof Set || value instanceof Map) { - // Treats Set as an array - as index of Set value is value itself and it is common case to have Object as value - var arrayLikeValue = value instanceof Set ? Array.from(value) : value; - arrayLikeValue.forEach(function (subValue, index) { - _this.performValidations(value, subValue, index.toString(), [], metadatas, errors); - }); - } - else if (value instanceof Object) { - var targetSchema = typeof metadata.target === 'string' ? metadata.target : metadata.target.name; - _this.execute(value, targetSchema, errors); - } - else { - var error = new ValidationError(); - error.value = value; - error.property = metadata.propertyName; - error.target = metadata.target; - var _b = _this.createValidationError(metadata.target, value, metadata), type = _b[0], message = _b[1]; - error.constraints = (_a = {}, - _a[type] = message, - _a); - errors.push(error); - } - }); - }; - ValidationExecutor.prototype.mapContexts = function (object, value, metadatas, error) { - var _this = this; - return metadatas.forEach(function (metadata) { - if (metadata.context) { - var customConstraint = void 0; - if (metadata.type === ValidationTypes.CUSTOM_VALIDATION) { - var customConstraints = _this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls); - customConstraint = customConstraints[0]; - } - var type = _this.getConstraintType(metadata, customConstraint); - if (error.constraints[type]) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - }; - ValidationExecutor.prototype.createValidationError = function (object, value, metadata, customValidatorMetadata) { - var targetName = object.constructor ? object.constructor.name : undefined; - var type = this.getConstraintType(metadata, customValidatorMetadata); - var validationArguments = { - targetName: targetName, - property: metadata.propertyName, - object: object, - value: value, - constraints: metadata.constraints, - }; - var message = metadata.message || ''; - if (!metadata.message && - (!this.validatorOptions || (this.validatorOptions && !this.validatorOptions.dismissDefaultMessages))) { - if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) { - message = customValidatorMetadata.instance.defaultMessage(validationArguments); - } - } - var messageString = ValidationUtils.replaceMessageSpecialTokens(message, validationArguments); - return [type, messageString]; - }; - ValidationExecutor.prototype.getConstraintType = function (metadata, customValidatorMetadata) { - var type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type; - return type; - }; - return ValidationExecutor; - }()); - - var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - var __generator = (undefined && undefined.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - }; - /** - * Validator performs validation of the given object based on its metadata. - */ - var Validator = /** @class */ (function () { - function Validator() { - } - /** - * Performs validation of the given object based on decorators or validation schema. - */ - Validator.prototype.validate = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions); - }; - /** - * Performs validation of the given object based on decorators or validation schema and reject on error. - */ - Validator.prototype.validateOrReject = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - return __awaiter(this, void 0, void 0, function () { - var errors; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions)]; - case 1: - errors = _a.sent(); - if (errors.length) - return [2 /*return*/, Promise.reject(errors)]; - return [2 /*return*/]; - } - }); - }); - }; - /** - * Performs validation of the given object based on decorators or validation schema. - */ - Validator.prototype.validateSync = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - var object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName; - var options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions; - var schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined; - var executor = new ValidationExecutor(this, options); - executor.ignoreAsyncValidations = true; - var validationErrors = []; - executor.execute(object, schema, validationErrors); - return executor.stripEmptyErrors(validationErrors); - }; - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - /** - * Performs validation of the given object based on decorators or validation schema. - * Common method for `validateOrReject` and `validate` methods. - */ - Validator.prototype.coreValidate = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - var object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName; - var options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions; - var schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined; - var executor = new ValidationExecutor(this, options); - var validationErrors = []; - executor.execute(object, schema, validationErrors); - return Promise.all(executor.awaitingPromises).then(function () { - return executor.stripEmptyErrors(validationErrors); - }); - }; - return Validator; - }()); - - /** - * Container to be used by this library for inversion control. If container was not implicitly set then by default - * container simply creates a new instance of the given class. - */ - var defaultContainer = new (/** @class */ (function () { - function class_1() { - this.instances = []; - } - class_1.prototype.get = function (someClass) { - var instance = this.instances.find(function (instance) { return instance.type === someClass; }); - if (!instance) { - instance = { type: someClass, object: new someClass() }; - this.instances.push(instance); - } - return instance.object; - }; - return class_1; - }()))(); - var userContainer; - var userContainerOptions; - /** - * Sets container to be used by this library. - */ - function useContainer(iocContainer, options) { - userContainer = iocContainer; - userContainerOptions = options; - } - /** - * Gets the IOC container used by this library. - */ - function getFromContainer(someClass) { - if (userContainer) { - try { - var instance = userContainer.get(someClass); - if (instance) - return instance; - if (!userContainerOptions || !userContainerOptions.fallback) - return instance; - } - catch (error) { - if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) - throw error; - } - } - return defaultContainer.get(someClass); - } - - /** - * If object has both allowed and not allowed properties a validation error will be thrown. - */ - function Allow(validationOptions) { - return function (object, propertyName) { - var args = { - type: ValidationTypes.WHITELIST, - target: object.constructor, - propertyName: propertyName, - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; - } - - /** - * This metadata interface contains information for custom validators. - */ - var ConstraintMetadata = /** @class */ (function () { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - function ConstraintMetadata(target, name, async) { - if (async === void 0) { async = false; } - this.target = target; - this.name = name; - this.async = async; - } - Object.defineProperty(ConstraintMetadata.prototype, "instance", { - // ------------------------------------------------------------------------- - // Accessors - // ------------------------------------------------------------------------- - /** - * Instance of the target custom validation class which performs validation. - */ - get: function () { - return getFromContainer(this.target); - }, - enumerable: false, - configurable: true - }); - return ConstraintMetadata; - }()); - - /** - * Registers a custom validation decorator. - */ - function registerDecorator(options) { - var constraintCls; - if (options.validator instanceof Function) { - constraintCls = options.validator; - var constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator); - if (constraintClasses.length > 1) { - throw "More than one implementation of ValidatorConstraintInterface found for validator on: " + options.target.name + ":" + options.propertyName; - } - } - else { - var validator_1 = options.validator; - constraintCls = /** @class */ (function () { - function CustomConstraint() { - } - CustomConstraint.prototype.validate = function (value, validationArguments) { - return validator_1.validate(value, validationArguments); - }; - CustomConstraint.prototype.defaultMessage = function (validationArguments) { - if (validator_1.defaultMessage) { - return validator_1.defaultMessage(validationArguments); - } - return ''; - }; - return CustomConstraint; - }()); - getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async)); - } - var validationMetadataArgs = { - type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION, - target: options.target, - propertyName: options.propertyName, - validationOptions: options.options, - constraintCls: constraintCls, - constraints: options.constraints, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs)); - } - - function buildMessage(impl, validationOptions) { - return function (validationArguments) { - var eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : ''; - return impl(eachPrefix, validationArguments); - }; - } - function ValidateBy(options, validationOptions) { - return function (object, propertyName) { - registerDecorator({ - name: options.name, - target: object.constructor, - propertyName: propertyName, - options: validationOptions, - constraints: options.constraints, - validator: options.validator, - }); - }; - } - - // isDefined is (yet) a special case - var IS_DEFINED = ValidationTypes.IS_DEFINED; - /** - * Checks if value is defined (!== undefined, !== null). - */ - function isDefined(value) { - return value !== undefined && value !== null; - } - /** - * Checks if value is defined (!== undefined, !== null). - */ - function IsDefined(validationOptions) { - return ValidateBy({ - name: IS_DEFINED, - validator: { - validate: function (value) { return isDefined(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be null or undefined'; }, validationOptions), - }, - }, validationOptions); - } - - /** - * Checks if value is missing and if so, ignores all validators. - */ - function IsOptional(validationOptions) { - return function (object, propertyName) { - var args = { - type: ValidationTypes.CONDITIONAL_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraints: [ - function (object, value) { - return object[propertyName] !== null && object[propertyName] !== undefined; - }, - ], - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; - } - - /** - * Registers custom validator class. - */ - function ValidatorConstraint(options) { - return function (target) { - var isAsync = options && options.async; - var name = options && options.name ? options.name : ''; - if (!name) { - name = target.name; - if (!name) - // generate name if it was not given - name = name.replace(/\.?([A-Z]+)/g, function (x, y) { return '_' + y.toLowerCase(); }).replace(/^_/, ''); - } - var metadata = new ConstraintMetadata(target, name, isAsync); - getMetadataStorage().addConstraintMetadata(metadata); - }; - } - function Validate(constraintClass, constraintsOrValidationOptions, maybeValidationOptions) { - return function (object, propertyName) { - var args = { - type: ValidationTypes.CUSTOM_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraintCls: constraintClass, - constraints: constraintsOrValidationOptions instanceof Array ? constraintsOrValidationOptions : undefined, - validationOptions: !(constraintsOrValidationOptions instanceof Array) - ? constraintsOrValidationOptions - : maybeValidationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; - } - - /** - * Ignores the other validators on a property when the provided condition function returns false. - */ - function ValidateIf(condition, validationOptions) { - return function (object, propertyName) { - var args = { - type: ValidationTypes.CONDITIONAL_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraints: [condition], - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; - } - - var __assign = (undefined && undefined.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - }; - /** - * Objects / object arrays marked with this decorator will also be validated. - */ - function ValidateNested(validationOptions) { - var opts = __assign({}, validationOptions); - var eachPrefix = opts.each ? 'each value in ' : ''; - opts.message = opts.message || eachPrefix + 'nested property $property must be either object or array'; - return function (object, propertyName) { - var args = { - type: ValidationTypes.NESTED_VALIDATION, - target: object.constructor, - propertyName: propertyName, - validationOptions: opts, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; - } - - /** - * Resolve promise before validation - */ - function ValidatePromise(validationOptions) { - return function (object, propertyName) { - var args = { - type: ValidationTypes.PROMISE_VALIDATION, - target: object.constructor, - propertyName: propertyName, - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; - } - - function getDefaultExportFromCjs (x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; - } - - function createCommonjsModule(fn) { - var module = { exports: {} }; - return fn(module, module.exports), module.exports; - } - - var assertString_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = assertString; - - function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - - function assertString(input) { - var isString = typeof input === 'string' || input instanceof String; - - if (!isString) { - var invalidType = _typeof(input); - - if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name; - throw new TypeError("Expected a string but received a ".concat(invalidType)); - } - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var merge_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = merge; - - function merge() { - var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var defaults = arguments.length > 1 ? arguments[1] : undefined; - - for (var key in defaults) { - if (typeof obj[key] === 'undefined') { - obj[key] = defaults[key]; - } - } - - return obj; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isLatLong_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isLatLong; - - var _assertString = _interopRequireDefault(assertString_1); - - var _merge = _interopRequireDefault(merge_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var lat = /^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/; - var long = /^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/; - var latDMS = /^(([1-8]?\d)\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|90\D+0\D+0)\D+[NSns]?$/i; - var longDMS = /^\s*([1-7]?\d{1,2}\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|180\D+0\D+0)\D+[EWew]?$/i; - var defaultLatLongOptions = { - checkDMS: false - }; - - function isLatLong(str, options) { - (0, _assertString.default)(str); - options = (0, _merge.default)(options, defaultLatLongOptions); - if (!str.includes(',')) return false; - var pair = str.split(','); - if (pair[0].startsWith('(') && !pair[1].endsWith(')') || pair[1].endsWith(')') && !pair[0].startsWith('(')) return false; - - if (options.checkDMS) { - return latDMS.test(pair[0]) && longDMS.test(pair[1]); - } - - return lat.test(pair[0]) && long.test(pair[1]); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isLatLongValidator = /*@__PURE__*/getDefaultExportFromCjs(isLatLong_1); - - var IS_LATLONG = 'isLatLong'; - /** - * Checks if a value is string in format a "latitude,longitude". - */ - function isLatLong(value) { - return typeof value === 'string' && isLatLongValidator(value); - } - /** - * Checks if a value is string in format a "latitude,longitude". - */ - function IsLatLong(validationOptions) { - return ValidateBy({ - name: IS_LATLONG, - validator: { - validate: function (value, args) { return isLatLong(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a latitude,longitude string'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_LATITUDE = 'isLatitude'; - /** - * Checks if a given value is a latitude. - */ - function isLatitude(value) { - return (typeof value === 'number' || typeof value === 'string') && isLatLong(value + ",0"); - } - /** - * Checks if a given value is a latitude. - */ - function IsLatitude(validationOptions) { - return ValidateBy({ - name: IS_LATITUDE, - validator: { - validate: function (value, args) { return isLatitude(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a latitude string or number'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_LONGITUDE = 'isLongitude'; - /** - * Checks if a given value is a longitude. - */ - function isLongitude(value) { - return (typeof value === 'number' || typeof value === 'string') && isLatLong("0," + value); - } - /** - * Checks if a given value is a longitude. - */ - function IsLongitude(validationOptions) { - return ValidateBy({ - name: IS_LONGITUDE, - validator: { - validate: function (value, args) { return isLongitude(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a longitude string or number'; }, validationOptions), - }, - }, validationOptions); - } - - var EQUALS = 'equals'; - /** - * Checks if value matches ("===") the comparison. - */ - function equals(value, comparison) { - return value === comparison; - } - /** - * Checks if value matches ("===") the comparison. - */ - function Equals(comparison, validationOptions) { - return ValidateBy({ - name: EQUALS, - constraints: [comparison], - validator: { - validate: function (value, args) { return equals(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be equal to $constraint1'; }, validationOptions), - }, - }, validationOptions); - } - - var NOT_EQUALS = 'notEquals'; - /** - * Checks if value does not match ("!==") the comparison. - */ - function notEquals(value, comparison) { - return value !== comparison; - } - /** - * Checks if value does not match ("!==") the comparison. - */ - function NotEquals(comparison, validationOptions) { - return ValidateBy({ - name: NOT_EQUALS, - constraints: [comparison], - validator: { - validate: function (value, args) { return notEquals(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be equal to $constraint1'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_EMPTY = 'isEmpty'; - /** - * Checks if given value is empty (=== '', === null, === undefined). - */ - function isEmpty(value) { - return value === '' || value === null || value === undefined; - } - /** - * Checks if given value is empty (=== '', === null, === undefined). - */ - function IsEmpty(validationOptions) { - return ValidateBy({ - name: IS_EMPTY, - validator: { - validate: function (value, args) { return isEmpty(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be empty'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_NOT_EMPTY = 'isNotEmpty'; - /** - * Checks if given value is not empty (!== '', !== null, !== undefined). - */ - function isNotEmpty(value) { - return value !== '' && value !== null && value !== undefined; - } - /** - * Checks if given value is not empty (!== '', !== null, !== undefined). - */ - function IsNotEmpty(validationOptions) { - return ValidateBy({ - name: IS_NOT_EMPTY, - validator: { - validate: function (value, args) { return isNotEmpty(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be empty'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_IN = 'isIn'; - /** - * Checks if given value is in a array of allowed values. - */ - function isIn(value, possibleValues) { - return !(possibleValues instanceof Array) || possibleValues.some(function (possibleValue) { return possibleValue === value; }); - } - /** - * Checks if given value is in a array of allowed values. - */ - function IsIn(values, validationOptions) { - return ValidateBy({ - name: IS_IN, - constraints: [values], - validator: { - validate: function (value, args) { return isIn(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be one of the following values: $constraint1'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_NOT_IN = 'isNotIn'; - /** - * Checks if given value not in a array of allowed values. - */ - function isNotIn(value, possibleValues) { - return !(possibleValues instanceof Array) || !possibleValues.some(function (possibleValue) { return possibleValue === value; }); - } - /** - * Checks if given value not in a array of allowed values. - */ - function IsNotIn(values, validationOptions) { - return ValidateBy({ - name: IS_NOT_IN, - constraints: [values], - validator: { - validate: function (value, args) { return isNotIn(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be one of the following values: $constraint1'; }, validationOptions), - }, - }, validationOptions); - } - - var alpha_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.commaDecimal = exports.dotDecimal = exports.farsiLocales = exports.arabicLocales = exports.englishLocales = exports.decimal = exports.alphanumeric = exports.alpha = void 0; - var alpha = { - 'en-US': /^[A-Z]+$/i, - 'az-AZ': /^[A-VXYZÇƏĞİıÖŞÜ]+$/i, - 'bg-BG': /^[А-Я]+$/i, - 'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i, - 'da-DK': /^[A-ZÆØÅ]+$/i, - 'de-DE': /^[A-ZÄÖÜß]+$/i, - 'el-GR': /^[Α-ώ]+$/i, - 'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i, - 'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i, - 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i, - 'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i, - 'nb-NO': /^[A-ZÆØÅ]+$/i, - 'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i, - 'nn-NO': /^[A-ZÆØÅ]+$/i, - 'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i, - 'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i, - 'pt-PT': /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i, - 'ru-RU': /^[А-ЯЁ]+$/i, - 'sl-SI': /^[A-ZČĆĐŠŽ]+$/i, - 'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i, - 'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i, - 'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i, - 'sv-SE': /^[A-ZÅÄÖ]+$/i, - 'th-TH': /^[ก-๐\s]+$/i, - 'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i, - 'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i, - 'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i, - 'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i, - ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/, - he: /^[א-ת]+$/, - fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i - }; - exports.alpha = alpha; - var alphanumeric = { - 'en-US': /^[0-9A-Z]+$/i, - 'az-AZ': /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i, - 'bg-BG': /^[0-9А-Я]+$/i, - 'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i, - 'da-DK': /^[0-9A-ZÆØÅ]+$/i, - 'de-DE': /^[0-9A-ZÄÖÜß]+$/i, - 'el-GR': /^[0-9Α-ω]+$/i, - 'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i, - 'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i, - 'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i, - 'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i, - 'nb-NO': /^[0-9A-ZÆØÅ]+$/i, - 'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i, - 'nn-NO': /^[0-9A-ZÆØÅ]+$/i, - 'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i, - 'pt-PT': /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i, - 'ru-RU': /^[0-9А-ЯЁ]+$/i, - 'sl-SI': /^[0-9A-ZČĆĐŠŽ]+$/i, - 'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i, - 'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i, - 'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i, - 'sv-SE': /^[0-9A-ZÅÄÖ]+$/i, - 'th-TH': /^[ก-๙\s]+$/i, - 'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i, - 'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i, - 'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i, - 'vi-VN': /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i, - ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/, - he: /^[0-9א-ת]+$/, - fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i - }; - exports.alphanumeric = alphanumeric; - var decimal = { - 'en-US': '.', - ar: '٫' - }; - exports.decimal = decimal; - var englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM']; - exports.englishLocales = englishLocales; - - for (var locale, i = 0; i < englishLocales.length; i++) { - locale = "en-".concat(englishLocales[i]); - alpha[locale] = alpha['en-US']; - alphanumeric[locale] = alphanumeric['en-US']; - decimal[locale] = decimal['en-US']; - } // Source: http://www.localeplanet.com/java/ - - - var arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE']; - exports.arabicLocales = arabicLocales; - - for (var _locale, _i = 0; _i < arabicLocales.length; _i++) { - _locale = "ar-".concat(arabicLocales[_i]); - alpha[_locale] = alpha.ar; - alphanumeric[_locale] = alphanumeric.ar; - decimal[_locale] = decimal.ar; - } - - var farsiLocales = ['IR', 'AF']; - exports.farsiLocales = farsiLocales; - - for (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) { - _locale2 = "fa-".concat(farsiLocales[_i2]); - alphanumeric[_locale2] = alphanumeric.fa; - decimal[_locale2] = decimal.ar; - } // Source: https://en.wikipedia.org/wiki/Decimal_mark - - - var dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY']; - exports.dotDecimal = dotDecimal; - var commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'es-ES', 'fr-CA', 'fr-FR', 'id-ID', 'it-IT', 'ku-IQ', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN']; - exports.commaDecimal = commaDecimal; - - for (var _i3 = 0; _i3 < dotDecimal.length; _i3++) { - decimal[dotDecimal[_i3]] = decimal['en-US']; - } - - for (var _i4 = 0; _i4 < commaDecimal.length; _i4++) { - decimal[commaDecimal[_i4]] = ','; - } - - alpha['fr-CA'] = alpha['fr-FR']; - alphanumeric['fr-CA'] = alphanumeric['fr-FR']; - alpha['pt-BR'] = alpha['pt-PT']; - alphanumeric['pt-BR'] = alphanumeric['pt-PT']; - decimal['pt-BR'] = decimal['pt-PT']; // see #862 - - alpha['pl-Pl'] = alpha['pl-PL']; - alphanumeric['pl-Pl'] = alphanumeric['pl-PL']; - decimal['pl-Pl'] = decimal['pl-PL']; // see #1455 - - alpha['fa-AF'] = alpha.fa; - }); - - var isFloat_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isFloat; - exports.locales = void 0; - - var _assertString = _interopRequireDefault(assertString_1); - - - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function isFloat(str, options) { - (0, _assertString.default)(str); - options = options || {}; - var float = new RegExp("^(?:[-+])?(?:[0-9]+)?(?:\\".concat(options.locale ? alpha_1.decimal[options.locale] : '.', "[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$")); - - if (str === '' || str === '.' || str === '-' || str === '+') { - return false; - } - - var value = parseFloat(str.replace(',', '.')); - return float.test(str) && (!options.hasOwnProperty('min') || value >= options.min) && (!options.hasOwnProperty('max') || value <= options.max) && (!options.hasOwnProperty('lt') || value < options.lt) && (!options.hasOwnProperty('gt') || value > options.gt); - } - - var locales = Object.keys(alpha_1.decimal); - exports.locales = locales; - }); - - var toFloat_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = toFloat; - - var _isFloat = _interopRequireDefault(isFloat_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function toFloat(str) { - if (!(0, _isFloat.default)(str)) return NaN; - return parseFloat(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isDivisibleBy_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isDivisibleBy; - - var _assertString = _interopRequireDefault(assertString_1); - - var _toFloat = _interopRequireDefault(toFloat_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function isDivisibleBy(str, num) { - (0, _assertString.default)(str); - return (0, _toFloat.default)(str) % parseInt(num, 10) === 0; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isDivisibleByValidator = /*@__PURE__*/getDefaultExportFromCjs(isDivisibleBy_1); - - var IS_DIVISIBLE_BY = 'isDivisibleBy'; - /** - * Checks if value is a number that's divisible by another. - */ - function isDivisibleBy(value, num) { - return typeof value === 'number' && typeof num === 'number' && isDivisibleByValidator(String(value), num); - } - /** - * Checks if value is a number that's divisible by another. - */ - function IsDivisibleBy(num, validationOptions) { - return ValidateBy({ - name: IS_DIVISIBLE_BY, - constraints: [num], - validator: { - validate: function (value, args) { return isDivisibleBy(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be divisible by $constraint1'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_POSITIVE = 'isPositive'; - /** - * Checks if the value is a positive number greater than zero. - */ - function isPositive(value) { - return typeof value === 'number' && value > 0; - } - /** - * Checks if the value is a positive number greater than zero. - */ - function IsPositive(validationOptions) { - return ValidateBy({ - name: IS_POSITIVE, - validator: { - validate: function (value, args) { return isPositive(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a positive number'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_NEGATIVE = 'isNegative'; - /** - * Checks if the value is a negative number smaller than zero. - */ - function isNegative(value) { - return typeof value === 'number' && value < 0; - } - /** - * Checks if the value is a negative number smaller than zero. - */ - function IsNegative(validationOptions) { - return ValidateBy({ - name: IS_NEGATIVE, - validator: { - validate: function (value, args) { return isNegative(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a negative number'; }, validationOptions), - }, - }, validationOptions); - } - - var MAX = 'max'; - /** - * Checks if the first number is less than or equal to the second. - */ - function max(num, max) { - return typeof num === 'number' && typeof max === 'number' && num <= max; - } - /** - * Checks if the first number is less than or equal to the second. - */ - function Max(maxValue, validationOptions) { - return ValidateBy({ - name: MAX, - constraints: [maxValue], - validator: { - validate: function (value, args) { return max(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must not be greater than $constraint1'; }, validationOptions), - }, - }, validationOptions); - } - - var MIN = 'min'; - /** - * Checks if the first number is greater than or equal to the second. - */ - function min(num, min) { - return typeof num === 'number' && typeof min === 'number' && num >= min; - } - /** - * Checks if the first number is greater than or equal to the second. - */ - function Min(minValue, validationOptions) { - return ValidateBy({ - name: MIN, - constraints: [minValue], - validator: { - validate: function (value, args) { return min(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must not be less than $constraint1'; }, validationOptions), - }, - }, validationOptions); - } - - var MIN_DATE = 'minDate'; - /** - * Checks if the value is a date that's after the specified date. - */ - function minDate(date, minDate) { - return date instanceof Date && date.getTime() >= minDate.getTime(); - } - /** - * Checks if the value is a date that's after the specified date. - */ - function MinDate(date, validationOptions) { - return ValidateBy({ - name: MIN_DATE, - constraints: [date], - validator: { - validate: function (value, args) { return minDate(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return 'minimal allowed date for ' + eachPrefix + '$property is $constraint1'; }, validationOptions), - }, - }, validationOptions); - } - - var MAX_DATE = 'maxDate'; - /** - * Checks if the value is a date that's before the specified date. - */ - function maxDate(date, maxDate) { - return date instanceof Date && date.getTime() <= maxDate.getTime(); - } - /** - * Checks if the value is a date that's after the specified date. - */ - function MaxDate(date, validationOptions) { - return ValidateBy({ - name: MAX_DATE, - constraints: [date], - validator: { - validate: function (value, args) { return maxDate(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return 'maximal allowed date for ' + eachPrefix + '$property is $constraint1'; }, validationOptions), - }, - }, validationOptions); - } - - var toString_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = toString; - - function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - - function toString(input) { - if (_typeof(input) === 'object' && input !== null) { - if (typeof input.toString === 'function') { - input = input.toString(); - } else { - input = '[object Object]'; - } - } else if (input === null || typeof input === 'undefined' || isNaN(input) && !input.length) { - input = ''; - } - - return String(input); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var contains_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = contains; - - var _assertString = _interopRequireDefault(assertString_1); - - var _toString = _interopRequireDefault(toString_1); - - var _merge = _interopRequireDefault(merge_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var defaulContainsOptions = { - ignoreCase: false - }; - - function contains(str, elem, options) { - (0, _assertString.default)(str); - options = (0, _merge.default)(options, defaulContainsOptions); - return options.ignoreCase ? str.toLowerCase().indexOf((0, _toString.default)(elem).toLowerCase()) >= 0 : str.indexOf((0, _toString.default)(elem)) >= 0; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var containsValidator = /*@__PURE__*/getDefaultExportFromCjs(contains_1); - - var CONTAINS = 'contains'; - /** - * Checks if the string contains the seed. - * If given value is not a string, then it returns false. - */ - function contains(value, seed) { - return typeof value === 'string' && containsValidator(value, seed); - } - /** - * Checks if the string contains the seed. - * If given value is not a string, then it returns false. - */ - function Contains(seed, validationOptions) { - return ValidateBy({ - name: CONTAINS, - constraints: [seed], - validator: { - validate: function (value, args) { return contains(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a $constraint1 string'; }, validationOptions), - }, - }, validationOptions); - } - - var NOT_CONTAINS = 'notContains'; - /** - * Checks if the string does not contain the seed. - * If given value is not a string, then it returns false. - */ - function notContains(value, seed) { - return typeof value === 'string' && !containsValidator(value, seed); - } - /** - * Checks if the string does not contain the seed. - * If given value is not a string, then it returns false. - */ - function NotContains(seed, validationOptions) { - return ValidateBy({ - name: NOT_CONTAINS, - constraints: [seed], - validator: { - validate: function (value, args) { return notContains(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not contain a $constraint1 string'; }, validationOptions), - }, - }, validationOptions); - } - - var isAlpha_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isAlpha; - exports.locales = void 0; - - var _assertString = _interopRequireDefault(assertString_1); - - - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function isAlpha(_str) { - var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US'; - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - (0, _assertString.default)(_str); - var str = _str; - var ignore = options.ignore; - - if (ignore) { - if (ignore instanceof RegExp) { - str = str.replace(ignore, ''); - } else if (typeof ignore === 'string') { - str = str.replace(new RegExp("[".concat(ignore.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g, '\\$&'), "]"), 'g'), ''); // escape regex for ignore - } else { - throw new Error('ignore should be instance of a String or RegExp'); - } - } - - if (locale in alpha_1.alpha) { - return alpha_1.alpha[locale].test(str); - } - - throw new Error("Invalid locale '".concat(locale, "'")); - } - - var locales = Object.keys(alpha_1.alpha); - exports.locales = locales; - }); - - var isAlphaValidator = /*@__PURE__*/getDefaultExportFromCjs(isAlpha_1); - - var IS_ALPHA = 'isAlpha'; - /** - * Checks if the string contains only letters (a-zA-Z). - * If given value is not a string, then it returns false. - */ - function isAlpha(value, locale) { - return typeof value === 'string' && isAlphaValidator(value, locale); - } - /** - * Checks if the string contains only letters (a-zA-Z). - * If given value is not a string, then it returns false. - */ - function IsAlpha(locale, validationOptions) { - return ValidateBy({ - name: IS_ALPHA, - constraints: [locale], - validator: { - validate: function (value, args) { return isAlpha(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only letters (a-zA-Z)'; }, validationOptions), - }, - }, validationOptions); - } - - var isAlphanumeric_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isAlphanumeric; - exports.locales = void 0; - - var _assertString = _interopRequireDefault(assertString_1); - - - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function isAlphanumeric(str) { - var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US'; - (0, _assertString.default)(str); - - if (locale in alpha_1.alphanumeric) { - return alpha_1.alphanumeric[locale].test(str); - } - - throw new Error("Invalid locale '".concat(locale, "'")); - } - - var locales = Object.keys(alpha_1.alphanumeric); - exports.locales = locales; - }); - - var isAlphanumericValidator = /*@__PURE__*/getDefaultExportFromCjs(isAlphanumeric_1); - - var IS_ALPHANUMERIC = 'isAlphanumeric'; - /** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ - function isAlphanumeric(value, locale) { - return typeof value === 'string' && isAlphanumericValidator(value, locale); - } - /** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ - function IsAlphanumeric(locale, validationOptions) { - return ValidateBy({ - name: IS_ALPHANUMERIC, - constraints: [locale], - validator: { - validate: function (value, args) { return isAlphanumeric(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only letters and numbers'; }, validationOptions), - }, - }, validationOptions); - } - - var includes_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = void 0; - - var includes = function includes(arr, val) { - return arr.some(function (arrVal) { - return val === arrVal; - }); - }; - - var _default = includes; - exports.default = _default; - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isDecimal_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isDecimal; - - var _merge = _interopRequireDefault(merge_1); - - var _assertString = _interopRequireDefault(assertString_1); - - var _includes = _interopRequireDefault(includes_1); - - - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function decimalRegExp(options) { - var regExp = new RegExp("^[-+]?([0-9]+)?(\\".concat(alpha_1.decimal[options.locale], "[0-9]{").concat(options.decimal_digits, "})").concat(options.force_decimal ? '' : '?', "$")); - return regExp; - } - - var default_decimal_options = { - force_decimal: false, - decimal_digits: '1,', - locale: 'en-US' - }; - var blacklist = ['', '-', '+']; - - function isDecimal(str, options) { - (0, _assertString.default)(str); - options = (0, _merge.default)(options, default_decimal_options); - - if (options.locale in alpha_1.decimal) { - return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str); - } - - throw new Error("Invalid locale '".concat(options.locale, "'")); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isDecimalValidator = /*@__PURE__*/getDefaultExportFromCjs(isDecimal_1); - - var IS_DECIMAL = 'isDecimal'; - /** - * Checks if the string is a valid decimal. - * If given value is not a string, then it returns false. - */ - function isDecimal(value, options) { - return typeof value === 'string' && isDecimalValidator(value, options); - } - /** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ - function IsDecimal(options, validationOptions) { - return ValidateBy({ - name: IS_DECIMAL, - constraints: [options], - validator: { - validate: function (value, args) { return isDecimal(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property is not a valid decimal number.'; }, validationOptions), - }, - }, validationOptions); - } - - var isAscii_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isAscii; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /* eslint-disable no-control-regex */ - var ascii = /^[\x00-\x7F]+$/; - /* eslint-enable no-control-regex */ - - function isAscii(str) { - (0, _assertString.default)(str); - return ascii.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isAsciiValidator = /*@__PURE__*/getDefaultExportFromCjs(isAscii_1); - - var IS_ASCII = 'isAscii'; - /** - * Checks if the string contains ASCII chars only. - * If given value is not a string, then it returns false. - */ - function isAscii(value) { - return typeof value === 'string' && isAsciiValidator(value); - } - /** - * Checks if the string contains ASCII chars only. - * If given value is not a string, then it returns false. - */ - function IsAscii(validationOptions) { - return ValidateBy({ - name: IS_ASCII, - validator: { - validate: function (value, args) { return isAscii(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only ASCII characters'; }, validationOptions), - }, - }, validationOptions); - } - - var isBase64_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isBase64; - - var _assertString = _interopRequireDefault(assertString_1); - - var _merge = _interopRequireDefault(merge_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var notBase64 = /[^A-Z0-9+\/=]/i; - var urlSafeBase64 = /^[A-Z0-9_\-]*$/i; - var defaultBase64Options = { - urlSafe: false - }; - - function isBase64(str, options) { - (0, _assertString.default)(str); - options = (0, _merge.default)(options, defaultBase64Options); - var len = str.length; - - if (options.urlSafe) { - return urlSafeBase64.test(str); - } - - if (len % 4 !== 0 || notBase64.test(str)) { - return false; - } - - var firstPaddingChar = str.indexOf('='); - return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '='; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isBase64Validator = /*@__PURE__*/getDefaultExportFromCjs(isBase64_1); - - var IS_BASE64 = 'isBase64'; - /** - * Checks if a string is base64 encoded. - * If given value is not a string, then it returns false. - */ - function isBase64(value) { - return typeof value === 'string' && isBase64Validator(value); - } - /** - * Checks if a string is base64 encoded. - * If given value is not a string, then it returns false. - */ - function IsBase64(validationOptions) { - return ValidateBy({ - name: IS_BASE64, - validator: { - validate: function (value, args) { return isBase64(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be base64 encoded'; }, validationOptions), - }, - }, validationOptions); - } - - var isByteLength_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isByteLength; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - - /* eslint-disable prefer-rest-params */ - function isByteLength(str, options) { - (0, _assertString.default)(str); - var min; - var max; - - if (_typeof(options) === 'object') { - min = options.min || 0; - max = options.max; - } else { - // backwards compatibility: isByteLength(str, min [, max]) - min = arguments[1]; - max = arguments[2]; - } - - var len = encodeURI(str).split(/%..|./).length - 1; - return len >= min && (typeof max === 'undefined' || len <= max); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isByteLengthValidator = /*@__PURE__*/getDefaultExportFromCjs(isByteLength_1); - - var IS_BYTE_LENGTH = 'isByteLength'; - /** - * Checks if the string's length (in bytes) falls in a range. - * If given value is not a string, then it returns false. - */ - function isByteLength(value, min, max) { - return typeof value === 'string' && isByteLengthValidator(value, { min: min, max: max }); - } - /** - * Checks if the string's length (in bytes) falls in a range. - * If given value is not a string, then it returns false. - */ - function IsByteLength(min, max, validationOptions) { - return ValidateBy({ - name: IS_BYTE_LENGTH, - constraints: [min, max], - validator: { - validate: function (value, args) { return isByteLength(value, args.constraints[0], args.constraints[1]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + "$property's byte length must fall into ($constraint1, $constraint2) range"; }, validationOptions), - }, - }, validationOptions); - } - - var isCreditCard_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isCreditCard; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /* eslint-disable max-len */ - var creditCard = /^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14})$/; - /* eslint-enable max-len */ - - function isCreditCard(str) { - (0, _assertString.default)(str); - var sanitized = str.replace(/[- ]+/g, ''); - - if (!creditCard.test(sanitized)) { - return false; - } - - var sum = 0; - var digit; - var tmpNum; - var shouldDouble; - - for (var i = sanitized.length - 1; i >= 0; i--) { - digit = sanitized.substring(i, i + 1); - tmpNum = parseInt(digit, 10); - - if (shouldDouble) { - tmpNum *= 2; - - if (tmpNum >= 10) { - sum += tmpNum % 10 + 1; - } else { - sum += tmpNum; - } - } else { - sum += tmpNum; - } - - shouldDouble = !shouldDouble; - } - - return !!(sum % 10 === 0 ? sanitized : false); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isCreditCardValidator = /*@__PURE__*/getDefaultExportFromCjs(isCreditCard_1); - - var IS_CREDIT_CARD = 'isCreditCard'; - /** - * Checks if the string is a credit card. - * If given value is not a string, then it returns false. - */ - function isCreditCard(value) { - return typeof value === 'string' && isCreditCardValidator(value); - } - /** - * Checks if the string is a credit card. - * If given value is not a string, then it returns false. - */ - function IsCreditCard(validationOptions) { - return ValidateBy({ - name: IS_CREDIT_CARD, - validator: { - validate: function (value, args) { return isCreditCard(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a credit card'; }, validationOptions), - }, - }, validationOptions); - } - - var isCurrency_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isCurrency; - - var _merge = _interopRequireDefault(merge_1); - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function currencyRegex(options) { - var decimal_digits = "\\d{".concat(options.digits_after_decimal[0], "}"); - options.digits_after_decimal.forEach(function (digit, index) { - if (index !== 0) decimal_digits = "".concat(decimal_digits, "|\\d{").concat(digit, "}"); - }); - var symbol = "(".concat(options.symbol.replace(/\W/, function (m) { - return "\\".concat(m); - }), ")").concat(options.require_symbol ? '' : '?'), - negative = '-?', - whole_dollar_amount_without_sep = '[1-9]\\d*', - whole_dollar_amount_with_sep = "[1-9]\\d{0,2}(\\".concat(options.thousands_separator, "\\d{3})*"), - valid_whole_dollar_amounts = ['0', whole_dollar_amount_without_sep, whole_dollar_amount_with_sep], - whole_dollar_amount = "(".concat(valid_whole_dollar_amounts.join('|'), ")?"), - decimal_amount = "(\\".concat(options.decimal_separator, "(").concat(decimal_digits, "))").concat(options.require_decimal ? '' : '?'); - var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : ''); // default is negative sign before symbol, but there are two other options (besides parens) - - if (options.allow_negatives && !options.parens_for_negatives) { - if (options.negative_sign_after_digits) { - pattern += negative; - } else if (options.negative_sign_before_digits) { - pattern = negative + pattern; - } - } // South African Rand, for example, uses R 123 (space) and R-123 (no space) - - - if (options.allow_negative_sign_placeholder) { - pattern = "( (?!\\-))?".concat(pattern); - } else if (options.allow_space_after_symbol) { - pattern = " ?".concat(pattern); - } else if (options.allow_space_after_digits) { - pattern += '( (?!$))?'; - } - - if (options.symbol_after_digits) { - pattern += symbol; - } else { - pattern = symbol + pattern; - } - - if (options.allow_negatives) { - if (options.parens_for_negatives) { - pattern = "(\\(".concat(pattern, "\\)|").concat(pattern, ")"); - } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) { - pattern = negative + pattern; - } - } // ensure there's a dollar and/or decimal amount, and that - // it doesn't start with a space or a negative sign followed by a space - - - return new RegExp("^(?!-? )(?=.*\\d)".concat(pattern, "$")); - } - - var default_currency_options = { - symbol: '$', - require_symbol: false, - allow_space_after_symbol: false, - symbol_after_digits: false, - allow_negatives: true, - parens_for_negatives: false, - negative_sign_before_digits: false, - negative_sign_after_digits: false, - allow_negative_sign_placeholder: false, - thousands_separator: ',', - decimal_separator: '.', - allow_decimal: true, - require_decimal: false, - digits_after_decimal: [2], - allow_space_after_digits: false - }; - - function isCurrency(str, options) { - (0, _assertString.default)(str); - options = (0, _merge.default)(options, default_currency_options); - return currencyRegex(options).test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isCurrencyValidator = /*@__PURE__*/getDefaultExportFromCjs(isCurrency_1); - - var IS_CURRENCY = 'isCurrency'; - /** - * Checks if the string is a valid currency amount. - * If given value is not a string, then it returns false. - */ - function isCurrency(value, options) { - return typeof value === 'string' && isCurrencyValidator(value, options); - } - /** - * Checks if the string is a valid currency amount. - * If given value is not a string, then it returns false. - */ - function IsCurrency(options, validationOptions) { - return ValidateBy({ - name: IS_CURRENCY, - constraints: [options], - validator: { - validate: function (value, args) { return isCurrency(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a currency'; }, validationOptions), - }, - }, validationOptions); - } - - var isFQDN_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isFQDN; - - var _assertString = _interopRequireDefault(assertString_1); - - var _merge = _interopRequireDefault(merge_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var default_fqdn_options = { - require_tld: true, - allow_underscores: false, - allow_trailing_dot: false, - allow_numeric_tld: false - }; - - function isFQDN(str, options) { - (0, _assertString.default)(str); - options = (0, _merge.default)(options, default_fqdn_options); - /* Remove the optional trailing dot before checking validity */ - - if (options.allow_trailing_dot && str[str.length - 1] === '.') { - str = str.substring(0, str.length - 1); - } - - var parts = str.split('.'); - var tld = parts[parts.length - 1]; - - if (options.require_tld) { - // disallow fqdns without tld - if (parts.length < 2) { - return false; - } - - if (!/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) { - return false; - } // disallow spaces && special characers - - - if (/[\s\u2002-\u200B\u202F\u205F\u3000\uFEFF\uDB40\uDC20\u00A9\uFFFD]/.test(tld)) { - return false; - } - } // reject numeric TLDs - - - if (!options.allow_numeric_tld && /^\d+$/.test(tld)) { - return false; - } - - return parts.every(function (part) { - if (part.length > 63) { - return false; - } - - if (!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(part)) { - return false; - } // disallow full-width chars - - - if (/[\uff01-\uff5e]/.test(part)) { - return false; - } // disallow parts starting or ending with hyphen - - - if (/^-|-$/.test(part)) { - return false; - } - - if (!options.allow_underscores && /_/.test(part)) { - return false; - } - - return true; - }); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isFqdnValidator = /*@__PURE__*/getDefaultExportFromCjs(isFQDN_1); - - var isIP_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isIP; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - 11.3. Examples - - The following addresses - - fe80::1234 (on the 1st link of the node) - ff02::5678 (on the 5th link of the node) - ff08::9abc (on the 10th organization of the node) - - would be represented as follows: - - fe80::1234%1 - ff02::5678%5 - ff08::9abc%10 - - (Here we assume a natural translation from a zone index to the - part, where the Nth zone of any scope is translated into - "N".) - - If we use interface names as , those addresses could also be - represented as follows: - - fe80::1234%ne0 - ff02::5678%pvc1.3 - ff08::9abc%interface10 - - where the interface "ne0" belongs to the 1st link, "pvc1.3" belongs - to the 5th link, and "interface10" belongs to the 10th organization. - * * */ - var ipv4Maybe = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/; - var ipv6Block = /^[0-9A-F]{1,4}$/i; - - function isIP(str) { - var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - (0, _assertString.default)(str); - version = String(version); - - if (!version) { - return isIP(str, 4) || isIP(str, 6); - } else if (version === '4') { - if (!ipv4Maybe.test(str)) { - return false; - } - - var parts = str.split('.').sort(function (a, b) { - return a - b; - }); - return parts[3] <= 255; - } else if (version === '6') { - var addressAndZone = [str]; // ipv6 addresses could have scoped architecture - // according to https://tools.ietf.org/html/rfc4007#section-11 - - if (str.includes('%')) { - addressAndZone = str.split('%'); - - if (addressAndZone.length !== 2) { - // it must be just two parts - return false; - } - - if (!addressAndZone[0].includes(':')) { - // the first part must be the address - return false; - } - - if (addressAndZone[1] === '') { - // the second part must not be empty - return false; - } - } - - var blocks = addressAndZone[0].split(':'); - var foundOmissionBlock = false; // marker to indicate :: - // At least some OS accept the last 32 bits of an IPv6 address - // (i.e. 2 of the blocks) in IPv4 notation, and RFC 3493 says - // that '::ffff:a.b.c.d' is valid for IPv4-mapped IPv6 addresses, - // and '::a.b.c.d' is deprecated, but also valid. - - var foundIPv4TransitionBlock = isIP(blocks[blocks.length - 1], 4); - var expectedNumberOfBlocks = foundIPv4TransitionBlock ? 7 : 8; - - if (blocks.length > expectedNumberOfBlocks) { - return false; - } // initial or final :: - - - if (str === '::') { - return true; - } else if (str.substr(0, 2) === '::') { - blocks.shift(); - blocks.shift(); - foundOmissionBlock = true; - } else if (str.substr(str.length - 2) === '::') { - blocks.pop(); - blocks.pop(); - foundOmissionBlock = true; - } - - for (var i = 0; i < blocks.length; ++i) { - // test for a :: which can not be at the string start/end - // since those cases have been handled above - if (blocks[i] === '' && i > 0 && i < blocks.length - 1) { - if (foundOmissionBlock) { - return false; // multiple :: in address - } - - foundOmissionBlock = true; - } else if (foundIPv4TransitionBlock && i === blocks.length - 1) ; else if (!ipv6Block.test(blocks[i])) { - return false; - } - } - - if (foundOmissionBlock) { - return blocks.length >= 1; - } - - return blocks.length === expectedNumberOfBlocks; - } - - return false; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isIPValidator = /*@__PURE__*/getDefaultExportFromCjs(isIP_1); - - var isEmail_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isEmail; - - var _assertString = _interopRequireDefault(assertString_1); - - var _merge = _interopRequireDefault(merge_1); - - var _isByteLength = _interopRequireDefault(isByteLength_1); - - var _isFQDN = _interopRequireDefault(isFQDN_1); - - var _isIP = _interopRequireDefault(isIP_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } - - function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - - function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - - function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - - function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - - function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - - var default_email_options = { - allow_display_name: false, - require_display_name: false, - allow_utf8_local_part: true, - require_tld: true, - blacklisted_chars: '', - ignore_max_length: false - }; - /* eslint-disable max-len */ - - /* eslint-disable no-control-regex */ - - var splitNameAddress = /^([^\x00-\x1F\x7F-\x9F\cX]+)<(.+)>$/i; - var emailUserPart = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i; - var gmailUserPart = /^[a-z\d]+$/; - var quotedEmailUser = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i; - var emailUserUtf8Part = /^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i; - var quotedEmailUserUtf8 = /^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i; - var defaultMaxEmailLength = 254; - /* eslint-enable max-len */ - - /* eslint-enable no-control-regex */ - - /** - * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2 - * @param {String} display_name - */ - - function validateDisplayName(display_name) { - var trim_quotes = display_name.match(/^"(.+)"$/i); - var display_name_without_quotes = trim_quotes ? trim_quotes[1] : display_name; // display name with only spaces is not valid - - if (!display_name_without_quotes.trim()) { - return false; - } // check whether display name contains illegal character - - - var contains_illegal = /[\.";<>]/.test(display_name_without_quotes); - - if (contains_illegal) { - // if contains illegal characters, - // must to be enclosed in double-quotes, otherwise it's not a valid display name - if (!trim_quotes) { - return false; - } // the quotes in display name must start with character symbol \ - - - var all_start_with_back_slash = display_name_without_quotes.split('"').length === display_name_without_quotes.split('\\"').length; - - if (!all_start_with_back_slash) { - return false; - } - } - - return true; - } - - function isEmail(str, options) { - (0, _assertString.default)(str); - options = (0, _merge.default)(options, default_email_options); - - if (options.require_display_name || options.allow_display_name) { - var display_email = str.match(splitNameAddress); - - if (display_email) { - var display_name; - - var _display_email = _slicedToArray(display_email, 3); - - display_name = _display_email[1]; - str = _display_email[2]; - - // sometimes need to trim the last space to get the display name - // because there may be a space between display name and email address - // eg. myname - // the display name is `myname` instead of `myname `, so need to trim the last space - if (display_name.endsWith(' ')) { - display_name = display_name.substr(0, display_name.length - 1); - } - - if (!validateDisplayName(display_name)) { - return false; - } - } else if (options.require_display_name) { - return false; - } - } - - if (!options.ignore_max_length && str.length > defaultMaxEmailLength) { - return false; - } - - var parts = str.split('@'); - var domain = parts.pop(); - var user = parts.join('@'); - var lower_domain = domain.toLowerCase(); - - if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) { - /* - Previously we removed dots for gmail addresses before validating. - This was removed because it allows `multiple..dots@gmail.com` - to be reported as valid, but it is not. - Gmail only normalizes single dots, removing them from here is pointless, - should be done in normalizeEmail - */ - user = user.toLowerCase(); // Removing sub-address from username before gmail validation - - var username = user.split('+')[0]; // Dots are not included in gmail length restriction - - if (!(0, _isByteLength.default)(username.replace('.', ''), { - min: 6, - max: 30 - })) { - return false; - } - - var _user_parts = username.split('.'); - - for (var i = 0; i < _user_parts.length; i++) { - if (!gmailUserPart.test(_user_parts[i])) { - return false; - } - } - } - - if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, { - max: 64 - }) || !(0, _isByteLength.default)(domain, { - max: 254 - }))) { - return false; - } - - if (!(0, _isFQDN.default)(domain, { - require_tld: options.require_tld - })) { - if (!options.allow_ip_domain) { - return false; - } - - if (!(0, _isIP.default)(domain)) { - if (!domain.startsWith('[') || !domain.endsWith(']')) { - return false; - } - - var noBracketdomain = domain.substr(1, domain.length - 2); - - if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) { - return false; - } - } - } - - if (user[0] === '"') { - user = user.slice(1, user.length - 1); - return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user); - } - - var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart; - var user_parts = user.split('.'); - - for (var _i2 = 0; _i2 < user_parts.length; _i2++) { - if (!pattern.test(user_parts[_i2])) { - return false; - } - } - - if (options.blacklisted_chars) { - if (user.search(new RegExp("[".concat(options.blacklisted_chars, "]+"), 'g')) !== -1) return false; - } - - return true; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isEmailValidator = /*@__PURE__*/getDefaultExportFromCjs(isEmail_1); - - var IS_EMAIL = 'isEmail'; - /** - * Checks if the string is an email. - * If given value is not a string, then it returns false. - */ - function isEmail(value, options) { - return typeof value === 'string' && isEmailValidator(value, options); - } - /** - * Checks if the string is an email. - * If given value is not a string, then it returns false. - */ - function IsEmail(options, validationOptions) { - return ValidateBy({ - name: IS_EMAIL, - constraints: [options], - validator: { - validate: function (value, args) { return isEmail(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an email'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_FQDN = 'isFqdn'; - /** - * Checks if the string is a fully qualified domain name (e.g. domain.com). - * If given value is not a string, then it returns false. - */ - function isFQDN(value, options) { - return typeof value === 'string' && isFqdnValidator(value, options); - } - /** - * Checks if the string is a fully qualified domain name (e.g. domain.com). - * If given value is not a string, then it returns false. - */ - function IsFQDN(options, validationOptions) { - return ValidateBy({ - name: IS_FQDN, - constraints: [options], - validator: { - validate: function (value, args) { return isFQDN(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid domain name'; }, validationOptions), - }, - }, validationOptions); - } - - var isFullWidth_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isFullWidth; - exports.fullWidth = void 0; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var fullWidth = /[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/; - exports.fullWidth = fullWidth; - - function isFullWidth(str) { - (0, _assertString.default)(str); - return fullWidth.test(str); - } - }); - - var isFullWidthValidator = /*@__PURE__*/getDefaultExportFromCjs(isFullWidth_1); - - var IS_FULL_WIDTH = 'isFullWidth'; - /** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ - function isFullWidth(value) { - return typeof value === 'string' && isFullWidthValidator(value); - } - /** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ - function IsFullWidth(validationOptions) { - return ValidateBy({ - name: IS_FULL_WIDTH, - validator: { - validate: function (value, args) { return isFullWidth(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a full-width characters'; }, validationOptions), - }, - }, validationOptions); - } - - var isHalfWidth_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isHalfWidth; - exports.halfWidth = void 0; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var halfWidth = /[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/; - exports.halfWidth = halfWidth; - - function isHalfWidth(str) { - (0, _assertString.default)(str); - return halfWidth.test(str); - } - }); - - var isHalfWidthValidator = /*@__PURE__*/getDefaultExportFromCjs(isHalfWidth_1); - - var IS_HALF_WIDTH = 'isHalfWidth'; - /** - * Checks if the string contains any half-width chars. - * If given value is not a string, then it returns false. - */ - function isHalfWidth(value) { - return typeof value === 'string' && isHalfWidthValidator(value); - } - /** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ - function IsHalfWidth(validationOptions) { - return ValidateBy({ - name: IS_HALF_WIDTH, - validator: { - validate: function (value, args) { return isHalfWidth(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a half-width characters'; }, validationOptions), - }, - }, validationOptions); - } - - var isVariableWidth_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isVariableWidth; - - var _assertString = _interopRequireDefault(assertString_1); - - - - - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function isVariableWidth(str) { - (0, _assertString.default)(str); - return isFullWidth_1.fullWidth.test(str) && isHalfWidth_1.halfWidth.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isVariableWidthValidator = /*@__PURE__*/getDefaultExportFromCjs(isVariableWidth_1); - - var IS_VARIABLE_WIDTH = 'isVariableWidth'; - /** - * Checks if the string contains variable-width chars. - * If given value is not a string, then it returns false. - */ - function isVariableWidth(value) { - return typeof value === 'string' && isVariableWidthValidator(value); - } - /** - * Checks if the string contains variable-width chars. - * If given value is not a string, then it returns false. - */ - function IsVariableWidth(validationOptions) { - return ValidateBy({ - name: IS_VARIABLE_WIDTH, - validator: { - validate: function (value, args) { return isVariableWidth(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a full-width and half-width characters'; }, validationOptions), - }, - }, validationOptions); - } - - var isHexColor_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isHexColor; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i; - - function isHexColor(str) { - (0, _assertString.default)(str); - return hexcolor.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isHexColorValidator = /*@__PURE__*/getDefaultExportFromCjs(isHexColor_1); - - var IS_HEX_COLOR = 'isHexColor'; - /** - * Checks if the string is a hexadecimal color. - * If given value is not a string, then it returns false. - */ - function isHexColor(value) { - return typeof value === 'string' && isHexColorValidator(value); - } - /** - * Checks if the string is a hexadecimal color. - * If given value is not a string, then it returns false. - */ - function IsHexColor(validationOptions) { - return ValidateBy({ - name: IS_HEX_COLOR, - validator: { - validate: function (value, args) { return isHexColor(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hexadecimal color'; }, validationOptions), - }, - }, validationOptions); - } - - var isHexadecimal_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isHexadecimal; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var hexadecimal = /^(0x|0h)?[0-9A-F]+$/i; - - function isHexadecimal(str) { - (0, _assertString.default)(str); - return hexadecimal.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isHexadecimalValidator = /*@__PURE__*/getDefaultExportFromCjs(isHexadecimal_1); - - var IS_HEXADECIMAL = 'isHexadecimal'; - /** - * Checks if the string is a hexadecimal number. - * If given value is not a string, then it returns false. - */ - function isHexadecimal(value) { - return typeof value === 'string' && isHexadecimalValidator(value); - } - /** - * Checks if the string is a hexadecimal number. - * If given value is not a string, then it returns false. - */ - function IsHexadecimal(validationOptions) { - return ValidateBy({ - name: IS_HEXADECIMAL, - validator: { - validate: function (value, args) { return isHexadecimal(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hexadecimal number'; }, validationOptions), - }, - }, validationOptions); - } - - function isValidationOptions(val) { - if (!val) { - return false; - } - return 'each' in val || 'message' in val || 'groups' in val || 'always' in val || 'context' in val; - } - - var isMACAddress_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isMACAddress; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var macAddress = /^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/; - var macAddressNoColons = /^([0-9a-fA-F]){12}$/; - var macAddressWithHyphen = /^([0-9a-fA-F][0-9a-fA-F]-){5}([0-9a-fA-F][0-9a-fA-F])$/; - var macAddressWithSpaces = /^([0-9a-fA-F][0-9a-fA-F]\s){5}([0-9a-fA-F][0-9a-fA-F])$/; - var macAddressWithDots = /^([0-9a-fA-F]{4}).([0-9a-fA-F]{4}).([0-9a-fA-F]{4})$/; - - function isMACAddress(str, options) { - (0, _assertString.default)(str); - - if (options && options.no_colons) { - return macAddressNoColons.test(str); - } - - return macAddress.test(str) || macAddressWithHyphen.test(str) || macAddressWithSpaces.test(str) || macAddressWithDots.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isMacAddressValidator = /*@__PURE__*/getDefaultExportFromCjs(isMACAddress_1); - - var IS_MAC_ADDRESS = 'isMacAddress'; - /** - * Check if the string is a MAC address. - * If given value is not a string, then it returns false. - */ - function isMACAddress(value, options) { - return typeof value === 'string' && isMacAddressValidator(value, options); - } - function IsMACAddress(optionsOrValidationOptionsArg, validationOptionsArg) { - var options = !isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : undefined; - var validationOptions = isValidationOptions(optionsOrValidationOptionsArg) - ? optionsOrValidationOptionsArg - : validationOptionsArg; - return ValidateBy({ - name: IS_MAC_ADDRESS, - constraints: [options], - validator: { - validate: function (value, args) { return isMACAddress(value, options); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a MAC Address'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_IP = 'isIp'; - /** - * Checks if the string is an IP (version 4 or 6). - * If given value is not a string, then it returns false. - */ - function isIP(value, version) { - var versionStr = version ? "" + version : undefined; - return typeof value === 'string' && isIPValidator(value, versionStr); - } - /** - * Checks if the string is an IP (version 4 or 6). - * If given value is not a string, then it returns false. - */ - function IsIP(version, validationOptions) { - return ValidateBy({ - name: IS_IP, - constraints: [version], - validator: { - validate: function (value, args) { return isIP(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ip address'; }, validationOptions), - }, - }, validationOptions); - } - - var isInt_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isInt; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/; - var intLeadingZeroes = /^[-+]?[0-9]+$/; - - function isInt(str, options) { - (0, _assertString.default)(str); - options = options || {}; // Get the regex to use for testing, based on whether - // leading zeroes are allowed or not. - - var regex = options.hasOwnProperty('allow_leading_zeroes') && !options.allow_leading_zeroes ? int : intLeadingZeroes; // Check min/max/lt/gt - - var minCheckPassed = !options.hasOwnProperty('min') || str >= options.min; - var maxCheckPassed = !options.hasOwnProperty('max') || str <= options.max; - var ltCheckPassed = !options.hasOwnProperty('lt') || str < options.lt; - var gtCheckPassed = !options.hasOwnProperty('gt') || str > options.gt; - return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isPort_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isPort; - - var _isInt = _interopRequireDefault(isInt_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function isPort(str) { - return (0, _isInt.default)(str, { - min: 0, - max: 65535 - }); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isPortValidator = /*@__PURE__*/getDefaultExportFromCjs(isPort_1); - - var IS_PORT = 'isPort'; - /** - * Check if the string is a valid port number. - */ - function isPort(value) { - return typeof value === 'string' && isPortValidator(value); - } - /** - * Check if the string is a valid port number. - */ - function IsPort(validationOptions) { - return ValidateBy({ - name: IS_PORT, - validator: { - validate: function (value, args) { return isPort(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a port'; }, validationOptions), - }, - }, validationOptions); - } - - var isISBN_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isISBN; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var isbn10Maybe = /^(?:[0-9]{9}X|[0-9]{10})$/; - var isbn13Maybe = /^(?:[0-9]{13})$/; - var factor = [1, 3]; - - function isISBN(str) { - var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - (0, _assertString.default)(str); - version = String(version); - - if (!version) { - return isISBN(str, 10) || isISBN(str, 13); - } - - var sanitized = str.replace(/[\s-]+/g, ''); - var checksum = 0; - var i; - - if (version === '10') { - if (!isbn10Maybe.test(sanitized)) { - return false; - } - - for (i = 0; i < 9; i++) { - checksum += (i + 1) * sanitized.charAt(i); - } - - if (sanitized.charAt(9) === 'X') { - checksum += 10 * 10; - } else { - checksum += 10 * sanitized.charAt(9); - } - - if (checksum % 11 === 0) { - return !!sanitized; - } - } else if (version === '13') { - if (!isbn13Maybe.test(sanitized)) { - return false; - } - - for (i = 0; i < 12; i++) { - checksum += factor[i % 2] * sanitized.charAt(i); - } - - if (sanitized.charAt(12) - (10 - checksum % 10) % 10 === 0) { - return !!sanitized; - } - } - - return false; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isIsbnValidator = /*@__PURE__*/getDefaultExportFromCjs(isISBN_1); - - var IS_ISBN = 'isIsbn'; - /** - * Checks if the string is an ISBN (version 10 or 13). - * If given value is not a string, then it returns false. - */ - function isISBN(value, version) { - var versionStr = version ? "" + version : undefined; - return typeof value === 'string' && isIsbnValidator(value, versionStr); - } - /** - * Checks if the string is an ISBN (version 10 or 13). - * If given value is not a string, then it returns false. - */ - function IsISBN(version, validationOptions) { - return ValidateBy({ - name: IS_ISBN, - constraints: [version], - validator: { - validate: function (value, args) { return isISBN(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISBN'; }, validationOptions), - }, - }, validationOptions); - } - - var isISIN_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isISIN; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/; - - function isISIN(str) { - (0, _assertString.default)(str); - - if (!isin.test(str)) { - return false; - } - - var checksumStr = str.replace(/[A-Z]/g, function (character) { - return parseInt(character, 36); - }); - var sum = 0; - var digit; - var tmpNum; - var shouldDouble = true; - - for (var i = checksumStr.length - 2; i >= 0; i--) { - digit = checksumStr.substring(i, i + 1); - tmpNum = parseInt(digit, 10); - - if (shouldDouble) { - tmpNum *= 2; - - if (tmpNum >= 10) { - sum += tmpNum + 1; - } else { - sum += tmpNum; - } - } else { - sum += tmpNum; - } - - shouldDouble = !shouldDouble; - } - - return parseInt(str.substr(str.length - 1), 10) === (10000 - sum) % 10; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isIsinValidator = /*@__PURE__*/getDefaultExportFromCjs(isISIN_1); - - var IS_ISIN = 'isIsin'; - /** - * Checks if the string is an ISIN (stock/security identifier). - * If given value is not a string, then it returns false. - */ - function isISIN(value) { - return typeof value === 'string' && isIsinValidator(value); - } - /** - * Checks if the string is an ISIN (stock/security identifier). - * If given value is not a string, then it returns false. - */ - function IsISIN(validationOptions) { - return ValidateBy({ - name: IS_ISIN, - validator: { - validate: function (value, args) { return isISIN(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISIN (stock/security identifier)'; }, validationOptions), - }, - }, validationOptions); - } - - var isISO8601_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isISO8601; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /* eslint-disable max-len */ - // from http://goo.gl/0ejHHW - var iso8601 = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/; // same as above, except with a strict 'T' separator between date and time - - var iso8601StrictSeparator = /^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/; - /* eslint-enable max-len */ - - var isValidDate = function isValidDate(str) { - // str must have passed the ISO8601 check - // this check is meant to catch invalid dates - // like 2009-02-31 - // first check for ordinal dates - var ordinalMatch = str.match(/^(\d{4})-?(\d{3})([ T]{1}\.*|$)/); - - if (ordinalMatch) { - var oYear = Number(ordinalMatch[1]); - var oDay = Number(ordinalMatch[2]); // if is leap year - - if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366; - return oDay <= 365; - } - - var match = str.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number); - var year = match[1]; - var month = match[2]; - var day = match[3]; - var monthString = month ? "0".concat(month).slice(-2) : month; - var dayString = day ? "0".concat(day).slice(-2) : day; // create a date object and compare - - var d = new Date("".concat(year, "-").concat(monthString || '01', "-").concat(dayString || '01')); - - if (month && day) { - return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day; - } - - return true; - }; - - function isISO8601(str) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - (0, _assertString.default)(str); - var check = options.strictSeparator ? iso8601StrictSeparator.test(str) : iso8601.test(str); - if (check && options.strict) return isValidDate(str); - return check; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isIso8601Validator = /*@__PURE__*/getDefaultExportFromCjs(isISO8601_1); - - var IS_ISO8601 = 'isIso8601'; - /** - * Checks if the string is a valid ISO 8601 date. - * If given value is not a string, then it returns false. - * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29. - */ - function isISO8601(value, options) { - return typeof value === 'string' && isIso8601Validator(value, options); - } - /** - * Checks if the string is a valid ISO 8601 date. - * If given value is not a string, then it returns false. - * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29. - */ - function IsISO8601(options, validationOptions) { - return ValidateBy({ - name: IS_ISO8601, - constraints: [options], - validator: { - validate: function (value, args) { return isISO8601(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO 8601 date string'; }, validationOptions), - }, - }, validationOptions); - } - - var isJSON_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isJSON; - - var _assertString = _interopRequireDefault(assertString_1); - - var _merge = _interopRequireDefault(merge_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - - var default_json_options = { - allow_primitives: false - }; - - function isJSON(str, options) { - (0, _assertString.default)(str); - - try { - options = (0, _merge.default)(options, default_json_options); - var primitives = []; - - if (options.allow_primitives) { - primitives = [null, false, true]; - } - - var obj = JSON.parse(str); - return primitives.includes(obj) || !!obj && _typeof(obj) === 'object'; - } catch (e) { - /* ignore */ - } - - return false; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isJSONValidator = /*@__PURE__*/getDefaultExportFromCjs(isJSON_1); - - var IS_JSON = 'isJson'; - /** - * Checks if the string is valid JSON (note: uses JSON.parse). - * If given value is not a string, then it returns false. - */ - function isJSON(value) { - return typeof value === 'string' && isJSONValidator(value); - } - /** - * Checks if the string is valid JSON (note: uses JSON.parse). - * If given value is not a string, then it returns false. - */ - function IsJSON(validationOptions) { - return ValidateBy({ - name: IS_JSON, - validator: { - validate: function (value, args) { return isJSON(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a json string'; }, validationOptions), - }, - }, validationOptions); - } - - var isJWT_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isJWT; - - var _assertString = _interopRequireDefault(assertString_1); - - var _isBase = _interopRequireDefault(isBase64_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function isJWT(str) { - (0, _assertString.default)(str); - var dotSplit = str.split('.'); - var len = dotSplit.length; - - if (len > 3 || len < 2) { - return false; - } - - return dotSplit.reduce(function (acc, currElem) { - return acc && (0, _isBase.default)(currElem, { - urlSafe: true - }); - }, true); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isJwtValidator = /*@__PURE__*/getDefaultExportFromCjs(isJWT_1); - - var IS_JWT = 'isJwt'; - /** - * Checks if the string is valid JWT token. - * If given value is not a string, then it returns false. - */ - function isJWT(value) { - return typeof value === 'string' && isJwtValidator(value); - } - /** - * Checks if the string is valid JWT token. - * If given value is not a string, then it returns false. - */ - function IsJWT(validationOptions) { - return ValidateBy({ - name: IS_JWT, - validator: { - validate: function (value, args) { return isJWT(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a jwt string'; }, validationOptions), - }, - }, validationOptions); - } - - var isLowercase_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isLowercase; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function isLowercase(str) { - (0, _assertString.default)(str); - return str === str.toLowerCase(); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isLowercaseValidator = /*@__PURE__*/getDefaultExportFromCjs(isLowercase_1); - - var IS_LOWERCASE = 'isLowercase'; - /** - * Checks if the string is lowercase. - * If given value is not a string, then it returns false. - */ - function isLowercase(value) { - return typeof value === 'string' && isLowercaseValidator(value); - } - /** - * Checks if the string is lowercase. - * If given value is not a string, then it returns false. - */ - function IsLowercase(validationOptions) { - return ValidateBy({ - name: IS_LOWERCASE, - validator: { - validate: function (value, args) { return isLowercase(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a lowercase string'; }, validationOptions), - }, - }, validationOptions); - } - - var isMobilePhone_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isMobilePhone; - exports.locales = void 0; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /* eslint-disable max-len */ - var phones = { - 'am-AM': /^(\+?374|0)((10|[9|7][0-9])\d{6}$|[2-4]\d{7}$)/, - 'ar-AE': /^((\+?971)|0)?5[024568]\d{7}$/, - 'ar-BH': /^(\+?973)?(3|6)\d{7}$/, - 'ar-DZ': /^(\+?213|0)(5|6|7)\d{8}$/, - 'ar-LB': /^(\+?961)?((3|81)\d{6}|7\d{7})$/, - 'ar-EG': /^((\+?20)|0)?1[0125]\d{8}$/, - 'ar-IQ': /^(\+?964|0)?7[0-9]\d{8}$/, - 'ar-JO': /^(\+?962|0)?7[789]\d{7}$/, - 'ar-KW': /^(\+?965)[569]\d{7}$/, - 'ar-LY': /^((\+?218)|0)?(9[1-6]\d{7}|[1-8]\d{7,9})$/, - 'ar-MA': /^(?:(?:\+|00)212|0)[5-7]\d{8}$/, - 'ar-SA': /^(!?(\+?966)|0)?5\d{8}$/, - 'ar-SY': /^(!?(\+?963)|0)?9\d{8}$/, - 'ar-TN': /^(\+?216)?[2459]\d{7}$/, - 'az-AZ': /^(\+994|0)(5[015]|7[07]|99)\d{7}$/, - 'bs-BA': /^((((\+|00)3876)|06))((([0-3]|[5-6])\d{6})|(4\d{7}))$/, - 'be-BY': /^(\+?375)?(24|25|29|33|44)\d{7}$/, - 'bg-BG': /^(\+?359|0)?8[789]\d{7}$/, - 'bn-BD': /^(\+?880|0)1[13456789][0-9]{8}$/, - 'ca-AD': /^(\+376)?[346]\d{5}$/, - 'cs-CZ': /^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/, - 'da-DK': /^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/, - 'de-DE': /^(\+49)?0?[1|3]([0|5][0-45-9]\d|6([23]|0\d?)|7([0-57-9]|6\d))\d{7}$/, - 'de-AT': /^(\+43|0)\d{1,4}\d{3,12}$/, - 'de-CH': /^(\+41|0)(7[5-9])\d{1,7}$/, - 'de-LU': /^(\+352)?((6\d1)\d{6})$/, - 'el-GR': /^(\+?30|0)?(69\d{8})$/, - 'en-AU': /^(\+?61|0)4\d{8}$/, - 'en-GB': /^(\+?44|0)7\d{9}$/, - 'en-GG': /^(\+?44|0)1481\d{6}$/, - 'en-GH': /^(\+233|0)(20|50|24|54|27|57|26|56|23|28)\d{7}$/, - 'en-HK': /^(\+?852[-\s]?)?[456789]\d{3}[-\s]?\d{4}$/, - 'en-MO': /^(\+?853[-\s]?)?[6]\d{3}[-\s]?\d{4}$/, - 'en-IE': /^(\+?353|0)8[356789]\d{7}$/, - 'en-IN': /^(\+?91|0)?[6789]\d{9}$/, - 'en-KE': /^(\+?254|0)(7|1)\d{8}$/, - 'en-MT': /^(\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/, - 'en-MU': /^(\+?230|0)?\d{8}$/, - 'en-NG': /^(\+?234|0)?[789]\d{9}$/, - 'en-NZ': /^(\+?64|0)[28]\d{7,9}$/, - 'en-PK': /^((\+92)|(0092))-{0,1}\d{3}-{0,1}\d{7}$|^\d{11}$|^\d{4}-\d{7}$/, - 'en-PH': /^(09|\+639)\d{9}$/, - 'en-RW': /^(\+?250|0)?[7]\d{8}$/, - 'en-SG': /^(\+65)?[689]\d{7}$/, - 'en-SL': /^(?:0|94|\+94)?(7(0|1|2|5|6|7|8)( |-)?\d)\d{6}$/, - 'en-TZ': /^(\+?255|0)?[67]\d{8}$/, - 'en-UG': /^(\+?256|0)?[7]\d{8}$/, - 'en-US': /^((\+1|1)?( |-)?)?(\([2-9][0-9]{2}\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/, - 'en-ZA': /^(\+?27|0)\d{9}$/, - 'en-ZM': /^(\+?26)?09[567]\d{7}$/, - 'en-ZW': /^(\+263)[0-9]{9}$/, - 'es-AR': /^\+?549(11|[2368]\d)\d{8}$/, - 'es-BO': /^(\+?591)?(6|7)\d{7}$/, - 'es-CO': /^(\+?57)?([1-8]{1}|3[0-9]{2})?[2-9]{1}\d{6}$/, - 'es-CL': /^(\+?56|0)[2-9]\d{1}\d{7}$/, - 'es-CR': /^(\+506)?[2-8]\d{7}$/, - 'es-DO': /^(\+?1)?8[024]9\d{7}$/, - 'es-HN': /^(\+?504)?[9|8]\d{7}$/, - 'es-EC': /^(\+?593|0)([2-7]|9[2-9])\d{7}$/, - 'es-ES': /^(\+?34)?[6|7]\d{8}$/, - 'es-PE': /^(\+?51)?9\d{8}$/, - 'es-MX': /^(\+?52)?(1|01)?\d{10,11}$/, - 'es-PA': /^(\+?507)\d{7,8}$/, - 'es-PY': /^(\+?595|0)9[9876]\d{7}$/, - 'es-UY': /^(\+598|0)9[1-9][\d]{6}$/, - 'et-EE': /^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/, - 'fa-IR': /^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/, - 'fi-FI': /^(\+?358|0)\s?(4(0|1|2|4|5|6)?|50)\s?(\d\s?){4,8}\d$/, - 'fj-FJ': /^(\+?679)?\s?\d{3}\s?\d{4}$/, - 'fo-FO': /^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/, - 'fr-FR': /^(\+?33|0)[67]\d{8}$/, - 'fr-GF': /^(\+?594|0|00594)[67]\d{8}$/, - 'fr-GP': /^(\+?590|0|00590)[67]\d{8}$/, - 'fr-MQ': /^(\+?596|0|00596)[67]\d{8}$/, - 'fr-RE': /^(\+?262|0|00262)[67]\d{8}$/, - 'he-IL': /^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}$/, - 'hu-HU': /^(\+?36)(20|30|70)\d{7}$/, - 'id-ID': /^(\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\s?|\d]{5,11})$/, - 'it-IT': /^(\+?39)?\s?3\d{2} ?\d{6,7}$/, - 'it-SM': /^((\+378)|(0549)|(\+390549)|(\+3780549))?6\d{5,9}$/, - 'ja-JP': /^(\+81[ \-]?(\(0\))?|0)[6789]0[ \-]?\d{4}[ \-]?\d{4}$/, - 'ka-GE': /^(\+?995)?(5|79)\d{7}$/, - 'kk-KZ': /^(\+?7|8)?7\d{9}$/, - 'kl-GL': /^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/, - 'ko-KR': /^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/, - 'lt-LT': /^(\+370|8)\d{8}$/, - 'ms-MY': /^(\+?6?01){1}(([0145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/, - 'nb-NO': /^(\+?47)?[49]\d{7}$/, - 'ne-NP': /^(\+?977)?9[78]\d{8}$/, - 'nl-BE': /^(\+?32|0)4?\d{8}$/, - 'nl-NL': /^(((\+|00)?31\(0\))|((\+|00)?31)|0)6{1}\d{8}$/, - 'nn-NO': /^(\+?47)?[49]\d{7}$/, - 'pl-PL': /^(\+?48)? ?[5-8]\d ?\d{3} ?\d{2} ?\d{2}$/, - 'pt-BR': /^((\+?55\ ?[1-9]{2}\ ?)|(\+?55\ ?\([1-9]{2}\)\ ?)|(0[1-9]{2}\ ?)|(\([1-9]{2}\)\ ?)|([1-9]{2}\ ?))((\d{4}\-?\d{4})|(9[2-9]{1}\d{3}\-?\d{4}))$/, - 'pt-PT': /^(\+?351)?9[1236]\d{7}$/, - 'ro-RO': /^(\+?4?0)\s?7\d{2}(\/|\s|\.|\-)?\d{3}(\s|\.|\-)?\d{3}$/, - 'ru-RU': /^(\+?7|8)?9\d{9}$/, - 'sl-SI': /^(\+386\s?|0)(\d{1}\s?\d{3}\s?\d{2}\s?\d{2}|\d{2}\s?\d{3}\s?\d{3})$/, - 'sk-SK': /^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/, - 'sq-AL': /^(\+355|0)6[789]\d{6}$/, - 'sr-RS': /^(\+3816|06)[- \d]{5,9}$/, - 'sv-SE': /^(\+?46|0)[\s\-]?7[\s\-]?[02369]([\s\-]?\d){7}$/, - 'th-TH': /^(\+66|66|0)\d{9}$/, - 'tr-TR': /^(\+?90|0)?5\d{9}$/, - 'uk-UA': /^(\+?38|8)?0\d{9}$/, - 'uz-UZ': /^(\+?998)?(6[125-79]|7[1-69]|88|9\d)\d{7}$/, - 'vi-VN': /^(\+?84|0)((3([2-9]))|(5([2689]))|(7([0|6-9]))|(8([1-6|89]))|(9([0-9])))([0-9]{7})$/, - 'zh-CN': /^((\+|00)86)?1([3568][0-9]|4[579]|6[67]|7[01235678]|9[012356789])[0-9]{8}$/, - 'zh-TW': /^(\+?886\-?|0)?9\d{8}$/ - }; - /* eslint-enable max-len */ - // aliases - - phones['en-CA'] = phones['en-US']; - phones['fr-CA'] = phones['en-CA']; - phones['fr-BE'] = phones['nl-BE']; - phones['zh-HK'] = phones['en-HK']; - phones['zh-MO'] = phones['en-MO']; - phones['ga-IE'] = phones['en-IE']; - - function isMobilePhone(str, locale, options) { - (0, _assertString.default)(str); - - if (options && options.strictMode && !str.startsWith('+')) { - return false; - } - - if (Array.isArray(locale)) { - return locale.some(function (key) { - // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes - // istanbul ignore else - if (phones.hasOwnProperty(key)) { - var phone = phones[key]; - - if (phone.test(str)) { - return true; - } - } - - return false; - }); - } else if (locale in phones) { - return phones[locale].test(str); // alias falsey locale as 'any' - } else if (!locale || locale === 'any') { - for (var key in phones) { - // istanbul ignore else - if (phones.hasOwnProperty(key)) { - var phone = phones[key]; - - if (phone.test(str)) { - return true; - } - } - } - - return false; - } - - throw new Error("Invalid locale '".concat(locale, "'")); - } - - var locales = Object.keys(phones); - exports.locales = locales; - }); - - var isMobilePhoneValidator = /*@__PURE__*/getDefaultExportFromCjs(isMobilePhone_1); - - var IS_MOBILE_PHONE = 'isMobilePhone'; - /** - * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS']) - * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY', - * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK', - * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG', - * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE', - * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID', - * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL', - * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN', - * 'zh-HK', 'zh-MO', 'zh-TW'] - * If given value is not a string, then it returns false. - */ - function isMobilePhone(value, locale, options) { - return typeof value === 'string' && isMobilePhoneValidator(value, locale, options); - } - /** - * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS']) - * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY', - * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK', - * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG', - * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE', - * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID', - * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL', - * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN', - * 'zh-HK', 'zh-MO', 'zh-TW'] - * If given value is not a string, then it returns false. - */ - function IsMobilePhone(locale, options, validationOptions) { - return ValidateBy({ - name: IS_MOBILE_PHONE, - constraints: [locale, options], - validator: { - validate: function (value, args) { return isMobilePhone(value, args.constraints[0], args.constraints[1]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a phone number'; }, validationOptions), - }, - }, validationOptions); - } - - var isISO31661Alpha2_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isISO31661Alpha2; - - var _assertString = _interopRequireDefault(assertString_1); - - var _includes = _interopRequireDefault(includes_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - // from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 - var validISO31661Alpha2CountriesCodes = ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW']; - - function isISO31661Alpha2(str) { - (0, _assertString.default)(str); - return (0, _includes.default)(validISO31661Alpha2CountriesCodes, str.toUpperCase()); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isISO31661Alpha2Validator = /*@__PURE__*/getDefaultExportFromCjs(isISO31661Alpha2_1); - - var IS_ISO31661_ALPHA_2 = 'isISO31661Alpha2'; - /** - * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code. - */ - function isISO31661Alpha2(value) { - return typeof value === 'string' && isISO31661Alpha2Validator(value); - } - /** - * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code. - */ - function IsISO31661Alpha2(validationOptions) { - return ValidateBy({ - name: IS_ISO31661_ALPHA_2, - validator: { - validate: function (value, args) { return isISO31661Alpha2(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO31661 Alpha2 code'; }, validationOptions), - }, - }, validationOptions); - } - - var isISO31661Alpha3_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isISO31661Alpha3; - - var _assertString = _interopRequireDefault(assertString_1); - - var _includes = _interopRequireDefault(includes_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - // from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3 - var validISO31661Alpha3CountriesCodes = ['AFG', 'ALA', 'ALB', 'DZA', 'ASM', 'AND', 'AGO', 'AIA', 'ATA', 'ATG', 'ARG', 'ARM', 'ABW', 'AUS', 'AUT', 'AZE', 'BHS', 'BHR', 'BGD', 'BRB', 'BLR', 'BEL', 'BLZ', 'BEN', 'BMU', 'BTN', 'BOL', 'BES', 'BIH', 'BWA', 'BVT', 'BRA', 'IOT', 'BRN', 'BGR', 'BFA', 'BDI', 'KHM', 'CMR', 'CAN', 'CPV', 'CYM', 'CAF', 'TCD', 'CHL', 'CHN', 'CXR', 'CCK', 'COL', 'COM', 'COG', 'COD', 'COK', 'CRI', 'CIV', 'HRV', 'CUB', 'CUW', 'CYP', 'CZE', 'DNK', 'DJI', 'DMA', 'DOM', 'ECU', 'EGY', 'SLV', 'GNQ', 'ERI', 'EST', 'ETH', 'FLK', 'FRO', 'FJI', 'FIN', 'FRA', 'GUF', 'PYF', 'ATF', 'GAB', 'GMB', 'GEO', 'DEU', 'GHA', 'GIB', 'GRC', 'GRL', 'GRD', 'GLP', 'GUM', 'GTM', 'GGY', 'GIN', 'GNB', 'GUY', 'HTI', 'HMD', 'VAT', 'HND', 'HKG', 'HUN', 'ISL', 'IND', 'IDN', 'IRN', 'IRQ', 'IRL', 'IMN', 'ISR', 'ITA', 'JAM', 'JPN', 'JEY', 'JOR', 'KAZ', 'KEN', 'KIR', 'PRK', 'KOR', 'KWT', 'KGZ', 'LAO', 'LVA', 'LBN', 'LSO', 'LBR', 'LBY', 'LIE', 'LTU', 'LUX', 'MAC', 'MKD', 'MDG', 'MWI', 'MYS', 'MDV', 'MLI', 'MLT', 'MHL', 'MTQ', 'MRT', 'MUS', 'MYT', 'MEX', 'FSM', 'MDA', 'MCO', 'MNG', 'MNE', 'MSR', 'MAR', 'MOZ', 'MMR', 'NAM', 'NRU', 'NPL', 'NLD', 'NCL', 'NZL', 'NIC', 'NER', 'NGA', 'NIU', 'NFK', 'MNP', 'NOR', 'OMN', 'PAK', 'PLW', 'PSE', 'PAN', 'PNG', 'PRY', 'PER', 'PHL', 'PCN', 'POL', 'PRT', 'PRI', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 'BLM', 'SHN', 'KNA', 'LCA', 'MAF', 'SPM', 'VCT', 'WSM', 'SMR', 'STP', 'SAU', 'SEN', 'SRB', 'SYC', 'SLE', 'SGP', 'SXM', 'SVK', 'SVN', 'SLB', 'SOM', 'ZAF', 'SGS', 'SSD', 'ESP', 'LKA', 'SDN', 'SUR', 'SJM', 'SWZ', 'SWE', 'CHE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', 'TLS', 'TGO', 'TKL', 'TON', 'TTO', 'TUN', 'TUR', 'TKM', 'TCA', 'TUV', 'UGA', 'UKR', 'ARE', 'GBR', 'USA', 'UMI', 'URY', 'UZB', 'VUT', 'VEN', 'VNM', 'VGB', 'VIR', 'WLF', 'ESH', 'YEM', 'ZMB', 'ZWE']; - - function isISO31661Alpha3(str) { - (0, _assertString.default)(str); - return (0, _includes.default)(validISO31661Alpha3CountriesCodes, str.toUpperCase()); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isISO31661Alpha3Validator = /*@__PURE__*/getDefaultExportFromCjs(isISO31661Alpha3_1); - - var IS_ISO31661_ALPHA_3 = 'isISO31661Alpha3'; - /** - * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code. - */ - function isISO31661Alpha3(value) { - return typeof value === 'string' && isISO31661Alpha3Validator(value); - } - /** - * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code. - */ - function IsISO31661Alpha3(validationOptions) { - return ValidateBy({ - name: IS_ISO31661_ALPHA_3, - validator: { - validate: function (value, args) { return isISO31661Alpha3(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO31661 Alpha3 code'; }, validationOptions), - }, - }, validationOptions); - } - - var isMongoId_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isMongoId; - - var _assertString = _interopRequireDefault(assertString_1); - - var _isHexadecimal = _interopRequireDefault(isHexadecimal_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function isMongoId(str) { - (0, _assertString.default)(str); - return (0, _isHexadecimal.default)(str) && str.length === 24; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isMongoIdValidator = /*@__PURE__*/getDefaultExportFromCjs(isMongoId_1); - - var IS_MONGO_ID = 'isMongoId'; - /** - * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. - * If given value is not a string, then it returns false. - */ - function isMongoId(value) { - return typeof value === 'string' && isMongoIdValidator(value); - } - /** - * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. - * If given value is not a string, then it returns false. - */ - function IsMongoId(validationOptions) { - return ValidateBy({ - name: IS_MONGO_ID, - validator: { - validate: function (value, args) { return isMongoId(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a mongodb id'; }, validationOptions), - }, - }, validationOptions); - } - - var isMultibyte_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isMultibyte; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /* eslint-disable no-control-regex */ - var multibyte = /[^\x00-\x7F]/; - /* eslint-enable no-control-regex */ - - function isMultibyte(str) { - (0, _assertString.default)(str); - return multibyte.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isMultibyteValidator = /*@__PURE__*/getDefaultExportFromCjs(isMultibyte_1); - - var IS_MULTIBYTE = 'isMultibyte'; - /** - * Checks if the string contains one or more multibyte chars. - * If given value is not a string, then it returns false. - */ - function isMultibyte(value) { - return typeof value === 'string' && isMultibyteValidator(value); - } - /** - * Checks if the string contains one or more multibyte chars. - * If given value is not a string, then it returns false. - */ - function IsMultibyte(validationOptions) { - return ValidateBy({ - name: IS_MULTIBYTE, - validator: { - validate: function (value, args) { return isMultibyte(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain one or more multibyte chars'; }, validationOptions), - }, - }, validationOptions); - } - - var isSurrogatePair_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isSurrogatePair; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var surrogatePair = /[\uD800-\uDBFF][\uDC00-\uDFFF]/; - - function isSurrogatePair(str) { - (0, _assertString.default)(str); - return surrogatePair.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isSurrogatePairValidator = /*@__PURE__*/getDefaultExportFromCjs(isSurrogatePair_1); - - var IS_SURROGATE_PAIR = 'isSurrogatePair'; - /** - * Checks if the string contains any surrogate pairs chars. - * If given value is not a string, then it returns false. - */ - function isSurrogatePair(value) { - return typeof value === 'string' && isSurrogatePairValidator(value); - } - /** - * Checks if the string contains any surrogate pairs chars. - * If given value is not a string, then it returns false. - */ - function IsSurrogatePair(validationOptions) { - return ValidateBy({ - name: IS_SURROGATE_PAIR, - validator: { - validate: function (value, args) { return isSurrogatePair(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain any surrogate pairs chars'; }, validationOptions), - }, - }, validationOptions); - } - - var isURL_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isURL; - - var _assertString = _interopRequireDefault(assertString_1); - - var _isFQDN = _interopRequireDefault(isFQDN_1); - - var _isIP = _interopRequireDefault(isIP_1); - - var _merge = _interopRequireDefault(merge_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /* - options for isURL method - - require_protocol - if set as true isURL will return false if protocol is not present in the URL - require_valid_protocol - isURL will check if the URL's protocol is present in the protocols option - protocols - valid protocols can be modified with this option - require_host - if set as false isURL will not check if host is present in the URL - require_port - if set as true isURL will check if port is present in the URL - allow_protocol_relative_urls - if set as true protocol relative URLs will be allowed - validate_length - if set as false isURL will skip string length validation (IE maximum is 2083) - - */ - var default_url_options = { - protocols: ['http', 'https', 'ftp'], - require_tld: true, - require_protocol: false, - require_host: true, - require_port: false, - require_valid_protocol: true, - allow_underscores: false, - allow_trailing_dot: false, - allow_protocol_relative_urls: false, - validate_length: true - }; - var wrapped_ipv6 = /^\[([^\]]+)\](?::([0-9]+))?$/; - - function isRegExp(obj) { - return Object.prototype.toString.call(obj) === '[object RegExp]'; - } - - function checkHost(host, matches) { - for (var i = 0; i < matches.length; i++) { - var match = matches[i]; - - if (host === match || isRegExp(match) && match.test(host)) { - return true; - } - } - - return false; - } - - function isURL(url, options) { - (0, _assertString.default)(url); - - if (!url || /[\s<>]/.test(url)) { - return false; - } - - if (url.indexOf('mailto:') === 0) { - return false; - } - - options = (0, _merge.default)(options, default_url_options); - - if (options.validate_length && url.length >= 2083) { - return false; - } - - var protocol, auth, host, hostname, port, port_str, split, ipv6; - split = url.split('#'); - url = split.shift(); - split = url.split('?'); - url = split.shift(); - split = url.split('://'); - - if (split.length > 1) { - protocol = split.shift().toLowerCase(); - - if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) { - return false; - } - } else if (options.require_protocol) { - return false; - } else if (url.substr(0, 2) === '//') { - if (!options.allow_protocol_relative_urls) { - return false; - } - - split[0] = url.substr(2); - } - - url = split.join('://'); - - if (url === '') { - return false; - } - - split = url.split('/'); - url = split.shift(); - - if (url === '' && !options.require_host) { - return true; - } - - split = url.split('@'); - - if (split.length > 1) { - if (options.disallow_auth) { - return false; - } - - auth = split.shift(); - - if (auth.indexOf(':') === -1 || auth.indexOf(':') >= 0 && auth.split(':').length > 2) { - return false; - } - } - - hostname = split.join('@'); - port_str = null; - ipv6 = null; - var ipv6_match = hostname.match(wrapped_ipv6); - - if (ipv6_match) { - host = ''; - ipv6 = ipv6_match[1]; - port_str = ipv6_match[2] || null; - } else { - split = hostname.split(':'); - host = split.shift(); - - if (split.length) { - port_str = split.join(':'); - } - } - - if (port_str !== null) { - port = parseInt(port_str, 10); - - if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) { - return false; - } - } else if (options.require_port) { - return false; - } - - if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) { - return false; - } - - host = host || ipv6; - - if (options.host_whitelist && !checkHost(host, options.host_whitelist)) { - return false; - } - - if (options.host_blacklist && checkHost(host, options.host_blacklist)) { - return false; - } - - return true; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isUrlValidator = /*@__PURE__*/getDefaultExportFromCjs(isURL_1); - - var IS_URL = 'isUrl'; - /** - * Checks if the string is an url. - * If given value is not a string, then it returns false. - */ - function isURL(value, options) { - return typeof value === 'string' && isUrlValidator(value, options); - } - /** - * Checks if the string is an url. - * If given value is not a string, then it returns false. - */ - function IsUrl(options, validationOptions) { - return ValidateBy({ - name: IS_URL, - constraints: [options], - validator: { - validate: function (value, args) { return isURL(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an URL address'; }, validationOptions), - }, - }, validationOptions); - } - - var isUUID_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isUUID; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var uuid = { - 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i, - 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, - 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i, - all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i - }; - - function isUUID(str) { - var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'all'; - (0, _assertString.default)(str); - var pattern = uuid[version]; - return pattern && pattern.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isUuidValidator = /*@__PURE__*/getDefaultExportFromCjs(isUUID_1); - - var IS_UUID = 'isUuid'; - /** - * Checks if the string is a UUID (version 3, 4 or 5). - * If given value is not a string, then it returns false. - */ - function isUUID(value, version) { - return typeof value === 'string' && isUuidValidator(value, version); - } - /** - * Checks if the string is a UUID (version 3, 4 or 5). - * If given value is not a string, then it returns false. - */ - function IsUUID(version, validationOptions) { - return ValidateBy({ - name: IS_UUID, - constraints: [version], - validator: { - validate: function (value, args) { return isUUID(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a UUID'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_FIREBASE_PUSH_ID = 'IsFirebasePushId'; - /** - * Checks if the string is a Firebase Push Id - * If given value is not a Firebase Push Id, it returns false - */ - function isFirebasePushId(value) { - var webSafeRegex = /^[a-zA-Z0-9_-]*$/; - return typeof value === 'string' && value.length === 20 && webSafeRegex.test(value); - } - /** - * Checks if the string is a Firebase Push Id - * If given value is not a Firebase Push Id, it returns false - */ - function IsFirebasePushId(validationOptions) { - return ValidateBy({ - name: IS_FIREBASE_PUSH_ID, - validator: { - validate: function (value, args) { return isFirebasePushId(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Firebase Push Id'; }, validationOptions), - }, - }, validationOptions); - } - - var isUppercase_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isUppercase; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function isUppercase(str) { - (0, _assertString.default)(str); - return str === str.toUpperCase(); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isUppercaseValidator = /*@__PURE__*/getDefaultExportFromCjs(isUppercase_1); - - var IS_UPPERCASE = 'isUppercase'; - /** - * Checks if the string is uppercase. - * If given value is not a string, then it returns false. - */ - function isUppercase(value) { - return typeof value === 'string' && isUppercaseValidator(value); - } - /** - * Checks if the string is uppercase. - * If given value is not a string, then it returns false. - */ - function IsUppercase(validationOptions) { - return ValidateBy({ - name: IS_UPPERCASE, - validator: { - validate: function (value, args) { return isUppercase(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be uppercase'; }, validationOptions), - }, - }, validationOptions); - } - - var isLength_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isLength; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - - /* eslint-disable prefer-rest-params */ - function isLength(str, options) { - (0, _assertString.default)(str); - var min; - var max; - - if (_typeof(options) === 'object') { - min = options.min || 0; - max = options.max; - } else { - // backwards compatibility: isLength(str, min [, max]) - min = arguments[1] || 0; - max = arguments[2]; - } - - var surrogatePairs = str.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g) || []; - var len = str.length - surrogatePairs.length; - return len >= min && (typeof max === 'undefined' || len <= max); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isLengthValidator = /*@__PURE__*/getDefaultExportFromCjs(isLength_1); - - var IS_LENGTH = 'isLength'; - /** - * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ - function length(value, min, max) { - return typeof value === 'string' && isLengthValidator(value, { min: min, max: max }); - } - /** - * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ - function Length(min, max, validationOptions) { - return ValidateBy({ - name: IS_LENGTH, - constraints: [min, max], - validator: { - validate: function (value, args) { return length(value, args.constraints[0], args.constraints[1]); }, - defaultMessage: buildMessage(function (eachPrefix, args) { - var isMinLength = args.constraints[0] !== null && args.constraints[0] !== undefined; - var isMaxLength = args.constraints[1] !== null && args.constraints[1] !== undefined; - if (isMinLength && (!args.value || args.value.length < args.constraints[0])) { - return eachPrefix + '$property must be longer than or equal to $constraint1 characters'; - } - else if (isMaxLength && args.value.length > args.constraints[1]) { - return eachPrefix + '$property must be shorter than or equal to $constraint2 characters'; - } - return (eachPrefix + - '$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters'); - }, validationOptions), - }, - }, validationOptions); - } - - var MAX_LENGTH = 'maxLength'; - /** - * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ - function maxLength(value, max) { - return typeof value === 'string' && isLengthValidator(value, { min: 0, max: max }); - } - /** - * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ - function MaxLength(max, validationOptions) { - return ValidateBy({ - name: MAX_LENGTH, - constraints: [max], - validator: { - validate: function (value, args) { return maxLength(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be shorter than or equal to $constraint1 characters'; }, validationOptions), - }, - }, validationOptions); - } - - var MIN_LENGTH = 'minLength'; - /** - * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ - function minLength(value, min) { - return typeof value === 'string' && isLengthValidator(value, { min: min }); - } - /** - * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ - function MinLength(min, validationOptions) { - return ValidateBy({ - name: MIN_LENGTH, - constraints: [min], - validator: { - validate: function (value, args) { return minLength(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be longer than or equal to $constraint1 characters'; }, validationOptions), - }, - }, validationOptions); - } - - var matches_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = matches; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function matches(str, pattern, modifiers) { - (0, _assertString.default)(str); - - if (Object.prototype.toString.call(pattern) !== '[object RegExp]') { - pattern = new RegExp(pattern, modifiers); - } - - return pattern.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var matchesValidator = /*@__PURE__*/getDefaultExportFromCjs(matches_1); - - var MATCHES = 'matches'; - function matches(value, pattern, modifiers) { - return typeof value === 'string' && matchesValidator(value, pattern, modifiers); - } - function Matches(pattern, modifiersOrAnnotationOptions, validationOptions) { - var modifiers; - if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) { - validationOptions = modifiersOrAnnotationOptions; - } - else { - modifiers = modifiersOrAnnotationOptions; - } - return ValidateBy({ - name: MATCHES, - constraints: [pattern, modifiers], - validator: { - validate: function (value, args) { return matches(value, args.constraints[0], args.constraints[1]); }, - defaultMessage: buildMessage(function (eachPrefix, args) { return eachPrefix + '$property must match $constraint1 regular expression'; }, validationOptions), - }, - }, validationOptions); - } - - // This file is a workaround for a bug in web browsers' "native" - // ES6 importing system which is uncapable of importing "*.json" files. - // https://github.com/catamphetamine/libphonenumber-js/issues/239 - var metadata = {"version":4,"country_calling_codes":{"1":["US","AG","AI","AS","BB","BM","BS","CA","DM","DO","GD","GU","JM","KN","KY","LC","MP","MS","PR","SX","TC","TT","VC","VG","VI"],"7":["RU","KZ"],"20":["EG"],"27":["ZA"],"30":["GR"],"31":["NL"],"32":["BE"],"33":["FR"],"34":["ES"],"36":["HU"],"39":["IT","VA"],"40":["RO"],"41":["CH"],"43":["AT"],"44":["GB","GG","IM","JE"],"45":["DK"],"46":["SE"],"47":["NO","SJ"],"48":["PL"],"49":["DE"],"51":["PE"],"52":["MX"],"53":["CU"],"54":["AR"],"55":["BR"],"56":["CL"],"57":["CO"],"58":["VE"],"60":["MY"],"61":["AU","CC","CX"],"62":["ID"],"63":["PH"],"64":["NZ"],"65":["SG"],"66":["TH"],"81":["JP"],"82":["KR"],"84":["VN"],"86":["CN"],"90":["TR"],"91":["IN"],"92":["PK"],"93":["AF"],"94":["LK"],"95":["MM"],"98":["IR"],"211":["SS"],"212":["MA","EH"],"213":["DZ"],"216":["TN"],"218":["LY"],"220":["GM"],"221":["SN"],"222":["MR"],"223":["ML"],"224":["GN"],"225":["CI"],"226":["BF"],"227":["NE"],"228":["TG"],"229":["BJ"],"230":["MU"],"231":["LR"],"232":["SL"],"233":["GH"],"234":["NG"],"235":["TD"],"236":["CF"],"237":["CM"],"238":["CV"],"239":["ST"],"240":["GQ"],"241":["GA"],"242":["CG"],"243":["CD"],"244":["AO"],"245":["GW"],"246":["IO"],"247":["AC"],"248":["SC"],"249":["SD"],"250":["RW"],"251":["ET"],"252":["SO"],"253":["DJ"],"254":["KE"],"255":["TZ"],"256":["UG"],"257":["BI"],"258":["MZ"],"260":["ZM"],"261":["MG"],"262":["RE","YT"],"263":["ZW"],"264":["NA"],"265":["MW"],"266":["LS"],"267":["BW"],"268":["SZ"],"269":["KM"],"290":["SH","TA"],"291":["ER"],"297":["AW"],"298":["FO"],"299":["GL"],"350":["GI"],"351":["PT"],"352":["LU"],"353":["IE"],"354":["IS"],"355":["AL"],"356":["MT"],"357":["CY"],"358":["FI","AX"],"359":["BG"],"370":["LT"],"371":["LV"],"372":["EE"],"373":["MD"],"374":["AM"],"375":["BY"],"376":["AD"],"377":["MC"],"378":["SM"],"380":["UA"],"381":["RS"],"382":["ME"],"383":["XK"],"385":["HR"],"386":["SI"],"387":["BA"],"389":["MK"],"420":["CZ"],"421":["SK"],"423":["LI"],"500":["FK"],"501":["BZ"],"502":["GT"],"503":["SV"],"504":["HN"],"505":["NI"],"506":["CR"],"507":["PA"],"508":["PM"],"509":["HT"],"590":["GP","BL","MF"],"591":["BO"],"592":["GY"],"593":["EC"],"594":["GF"],"595":["PY"],"596":["MQ"],"597":["SR"],"598":["UY"],"599":["CW","BQ"],"670":["TL"],"672":["NF"],"673":["BN"],"674":["NR"],"675":["PG"],"676":["TO"],"677":["SB"],"678":["VU"],"679":["FJ"],"680":["PW"],"681":["WF"],"682":["CK"],"683":["NU"],"685":["WS"],"686":["KI"],"687":["NC"],"688":["TV"],"689":["PF"],"690":["TK"],"691":["FM"],"692":["MH"],"850":["KP"],"852":["HK"],"853":["MO"],"855":["KH"],"856":["LA"],"880":["BD"],"886":["TW"],"960":["MV"],"961":["LB"],"962":["JO"],"963":["SY"],"964":["IQ"],"965":["KW"],"966":["SA"],"967":["YE"],"968":["OM"],"970":["PS"],"971":["AE"],"972":["IL"],"973":["BH"],"974":["QA"],"975":["BT"],"976":["MN"],"977":["NP"],"992":["TJ"],"993":["TM"],"994":["AZ"],"995":["GE"],"996":["KG"],"998":["UZ"]},"countries":{"AC":["247","00","(?:[01589]\\d|[46])\\d{4}",[5,6]],"AD":["376","00","(?:1|6\\d)\\d{7}|[135-9]\\d{5}",[6,8,9],[["(\\d{3})(\\d{3})","$1 $2",["[135-9]"]],["(\\d{4})(\\d{4})","$1 $2",["1"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]]],"AE":["971","00","(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}",[5,6,7,8,9,10,11,12],[["(\\d{3})(\\d{2,9})","$1 $2",["60|8"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[236]|[479][2-8]"],"0$1"],["(\\d{3})(\\d)(\\d{5})","$1 $2 $3",["[479]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"]],"0"],"AF":["93","00","[2-7]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"]],"0"],"AG":["1","011","(?:268|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([457]\\d{6})$","268$1",0,"268"],"AI":["1","011","(?:264|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2457]\\d{6})$","264$1",0,"264"],"AL":["355","00","(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}",[6,7,8,9],[["(\\d{3})(\\d{3,4})","$1 $2",["80|9"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2358][2-5]|4"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["[23578]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["6"],"0$1"]],"0"],"AM":["374","00","(?:[1-489]\\d|55|60|77)\\d{6}",[8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[89]0"],"0 $1"],["(\\d{3})(\\d{5})","$1 $2",["2|3[12]"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["1|47"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[3-9]"],"0$1"]],"0"],"AO":["244","00","[29]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[29]"]]]],"AR":["54","00","11\\d{8}|(?:[2368]|9\\d)\\d{9}",[10,11],[["(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])","2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["[23]"],"0$1",1],["(\\d)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))","9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",0,"$1 $2 $3-$4"],["(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 15-$3-$4",["91"],"0$1",0,"$1 $2 $3-$4"],["(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9"],"0$1",0,"$1 $2 $3-$4"]],"0",0,"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?","9$1"],"AS":["1","011","(?:[58]\\d\\d|684|900)\\d{7}",[10],0,"1",0,"1|([267]\\d{6})$","684$1",0,"684"],"AT":["43","00","1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}",[4,5,6,7,8,9,10,11,12,13],[["(\\d)(\\d{3,12})","$1 $2",["1(?:11|[2-9])"],"0$1"],["(\\d{3})(\\d{2})","$1 $2",["517"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["5[079]"],"0$1"],["(\\d{3})(\\d{3,10})","$1 $2",["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"],"0$1"],["(\\d{4})(\\d{3,9})","$1 $2",["[2-467]|5[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["5"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,7})","$1 $2 $3",["5"],"0$1"]],"0"],"AU":["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{7,8}|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,4})","$1 $2",["16"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,4})","$1 $2 $3",["16"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["14|4"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"],"(0$1)"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:30|[89])"]]],"0",0,"0|(183[12])",0,0,0,[["8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-7]|3[2-4]|[4-6]\\d))|91(?:[0-57-9]\\d|6[0135-9])\\d)\\d{3}|(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8])|8(?:6[0-8]|[78]\\d|9[02-9]))\\d{6}",[9]],["4(?:83[0-38]|93[0-4])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,["163\\d{2,6}",[5,6,7,8,9]],["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}",[6,8,10]]],"0011"],"AW":["297","00","(?:[25-79]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[25-9]"]]]],"AX":["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}",[5,6,7,8,9,10,11,12],0,"0",0,0,0,0,"18",0,"00"],"AZ":["994","00","365\\d{6}|(?:[124579]\\d|60|88)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]|2|365|46","1[28]|2|365|46","1[28]|2|365(?:[0-46-9]|5[0-35-9])|46"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-9]"],"0$1"]],"0"],"BA":["387","00","6\\d{8}|(?:[35689]\\d|49|70)\\d{6}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["6[1-3]|[7-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3",["[3-5]|6[56]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["6"],"0$1"]],"0"],"BB":["1","011","(?:246|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","246$1",0,"246"],"BD":["880","00","1\\d{9}|2\\d{7,8}|88\\d{4,6}|(?:8[0-79]|9\\d)\\d{4,8}|(?:[346]\\d|[57])\\d{5,8}",[6,7,8,9,10],[["(\\d{2})(\\d{4,6})","$1-$2",["31[5-8]|[459]1"],"0$1"],["(\\d{3})(\\d{3,7})","$1-$2",["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"],"0$1"],["(\\d{4})(\\d{3,6})","$1-$2",["[13-9]"],"0$1"],["(\\d)(\\d{7,8})","$1-$2",["2"],"0$1"]],"0"],"BE":["32","00","4\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:80|9)0"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[239]|4[23]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[15-8]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4"],"0$1"]],"0"],"BF":["226","00","[025-7]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[025-7]"]]]],"BG":["359","00","[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}",[6,7,8,9],[["(\\d)(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["43[1-6]|70[1-9]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:70|8)0"],"0$1"],["(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[1-7]|7"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[48]|9[08]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"]],"0"],"BH":["973","00","[136-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[13679]|8[047]"]]]],"BI":["257","00","(?:[267]\\d|31)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2367]"]]]],"BJ":["229","00","(?:[2689]\\d|51)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[25689]"]]]],"BL":["590","00","(?:590|69\\d|976)\\d{6}",[9],0,"0",0,0,0,0,0,[["590(?:2[7-9]|5[12]|87)\\d{4}"],["69(?:0\\d\\d|1(?:2[29]|3[0-5]))\\d{4}"],0,0,0,0,0,0,["976[01]\\d{5}"]]],"BM":["1","011","(?:441|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-8]\\d{6})$","441$1",0,"441"],"BN":["673","00","[2-578]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-578]"]]]],"BO":["591","00(?:1\\d)?","(?:[2-467]\\d\\d|8001)\\d{5}",[8,9],[["(\\d)(\\d{7})","$1 $2",["[23]|4[46]"]],["(\\d{8})","$1",["[67]"]],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["8"]]],"0",0,"0(1\\d)?"],"BQ":["599","00","(?:[34]1|7\\d)\\d{5}",[7],0,0,0,0,0,0,"[347]"],"BR":["55","00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)","(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-24679]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}",[8,9,10,11],[["(\\d{4})(\\d{4})","$1-$2",["300|4(?:0[02]|37)","4(?:02|37)0|[34]00"]],["(\\d{3})(\\d{2,3})(\\d{4})","$1 $2 $3",["(?:[358]|90)0"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"],"($1)"],["(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[16][1-9]|[2-57-9]"],"($1)"]],"0",0,"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?","$2"],"BS":["1","011","(?:242|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([3-8]\\d{6})$","242$1",0,"242"],"BT":["975","00","[17]\\d{7}|[2-8]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-68]|7[246]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[67]|7"]]]],"BW":["267","00","90\\d{5}|(?:0800|[2-6]|7\\d)\\d{6}",[7,8,10],[["(\\d{2})(\\d{5})","$1 $2",["90"]],["(\\d{3})(\\d{4})","$1 $2",["[2-6]"]],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["0"]]]],"BY":["375","810","(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3})","$1 $2",["800"],"8 $1"],["(\\d{3})(\\d{2})(\\d{2,4})","$1 $2 $3",["800"],"8 $1"],["(\\d{4})(\\d{2})(\\d{3})","$1 $2-$3",["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])","1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"],"8 0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["1(?:[56]|7[467])|2[1-3]"],"8 0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-4]"],"8 0$1"],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["[89]"],"8 $1"]],"8",0,"0|80?",0,0,0,0,"8~10"],"BZ":["501","00","(?:0800\\d|[2-8])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1-$2",["[2-8]"]],["(\\d)(\\d{3})(\\d{4})(\\d{3})","$1-$2-$3-$4",["0"]]]],"CA":["1","011","(?:[2-8]\\d|90)\\d{8}",[10],0,"1",0,0,0,0,0,[["(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[57])|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}"],[""],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[12]|33|44|66|77|88)|622)[2-9]\\d{6}"],0,0,0,["600[2-9]\\d{6}"]]],"CC":["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d|8[0-24-9])\\d{7}|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10],0,"0",0,"0|([59]\\d{7})$","8$1",0,0,[["8(?:51(?:0(?:02|31|60|89)|118)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}",[9]],["4(?:83[0-38]|93[0-4])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,0,["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}",[6,8,10]]],"0011"],"CD":["243","00","[189]\\d{8}|[1-68]\\d{6}",[7,9],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["[1-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"],"0$1"]],"0"],"CF":["236","00","(?:[27]\\d{3}|8776)\\d{4}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[278]"]]]],"CG":["242","00","222\\d{6}|(?:0\\d|80)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["801"]],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["8"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[02]"]]]],"CH":["41","00","8\\d{11}|[2-9]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8[047]|90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-79]|81"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["8"],"0$1"]],"0"],"CI":["225","00","[02-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[02-9]"]]]],"CK":["682","00","[2-578]\\d{4}",[5],[["(\\d{2})(\\d{3})","$1 $2",["[2-578]"]]]],"CL":["56","(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0","12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}",[9,10,11],[["(\\d{5})(\\d{4})","$1 $2",["219","2196"],"($1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["44"]],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[1-3]"],"($1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9[2-9]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"],"($1)"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{3})(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"]]]],"CM":["237","00","(?:[26]\\d\\d|88)\\d{6}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["88"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[26]"]]]],"CN":["86","00|1(?:[12]\\d|79)\\d\\d00","1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}",[7,8,9,10,11,12],[["(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2[0-57-9])[19]","(?:10|2[0-57-9])(?:10|9[56])","(?:10|2[0-57-9])(?:100|9[56])"],"0$1"],["(\\d{3})(\\d{5,6})","$1 $2",["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]","(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]","85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])","85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["(?:4|80)0"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|2(?:[02-57-9]|1[1-9])","10|2(?:[02-57-9]|1[1-9])","10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"],"0$1",1],["(\\d{3})(\\d{7,8})","$1 $2",["9"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["80"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[3-578]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-9]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["[12]"],"0$1",1]],"0",0,"0|(1(?:[12]\\d|79)\\d\\d)",0,0,0,0,"00"],"CO":["57","00(?:4(?:[14]4|56)|[579])","(?:1\\d|3)\\d{9}|[124-8]\\d{7}",[8,10,11],[["(\\d)(\\d{7})","$1 $2",["[14][2-9]|[25-8]"],"($1)"],["(\\d{3})(\\d{7})","$1 $2",["3"]],["(\\d)(\\d{3})(\\d{7})","$1-$2-$3",["1"],"0$1",0,"$1 $2 $3"]],"0",0,"0([3579]|4(?:[14]4|56))?"],"CR":["506","00","(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}",[8,10],[["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[3-9]"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]"]]],0,0,"(19(?:0[0-2468]|1[09]|20|66|77|99))"],"CU":["53","119","[27]\\d{6,7}|[34]\\d{5,7}|(?:5|8\\d\\d)\\d{7}",[6,7,8,10],[["(\\d{2})(\\d{4,6})","$1 $2",["2[1-4]|[34]"],"(0$1)"],["(\\d)(\\d{6,7})","$1 $2",["7"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["5"],"0$1"],["(\\d{3})(\\d{7})","$1 $2",["8"],"0$1"]],"0"],"CV":["238","0","(?:[2-59]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2-589]"]]]],"CW":["599","00","(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[3467]"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["9[4-8]"]]],0,0,0,0,0,"[69]"],"CX":["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d|8[0-24-9])\\d{7}|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10],0,"0",0,"0|([59]\\d{7})$","8$1",0,0,[["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|235)|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}",[9]],["4(?:83[0-38]|93[0-4])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,0,["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}",[6,8,10]]],"0011"],"CY":["357","00","(?:[279]\\d|[58]0)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[257-9]"]]]],"CZ":["420","00","(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]|9[015-7]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]]],"DE":["49","00","[2579]\\d{5,14}|49(?:[05]\\d{10}|[46][1-8]\\d{4,9})|49(?:[0-25]\\d|3[1-689]|7[1-7])\\d{4,8}|49(?:[0-2579]\\d|[34][1-9]|6[0-8])\\d{3}|49\\d{3,4}|(?:1|[368]\\d|4[0-8])\\d{3,13}",[4,5,6,7,8,9,10,11,12,13,14,15],[["(\\d{2})(\\d{3,13})","$1 $2",["3[02]|40|[68]9"],"0$1"],["(\\d{3})(\\d{3,12})","$1 $2",["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1","2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"],"0$1"],["(\\d{4})(\\d{2,11})","$1 $2",["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]","[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["138"],"0$1"],["(\\d{5})(\\d{2,10})","$1 $2",["3"],"0$1"],["(\\d{3})(\\d{5,11})","$1 $2",["181"],"0$1"],["(\\d{3})(\\d)(\\d{4,10})","$1 $2 $3",["1(?:3|80)|9"],"0$1"],["(\\d{3})(\\d{7,8})","$1 $2",["1[67]"],"0$1"],["(\\d{3})(\\d{7,12})","$1 $2",["8"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["185","1850","18500"],"0$1"],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["18[68]"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["15[0568]"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["15[1279]"],"0$1"],["(\\d{3})(\\d{8})","$1 $2",["18"],"0$1"],["(\\d{3})(\\d{2})(\\d{7,8})","$1 $2 $3",["1(?:6[023]|7)"],"0$1"],["(\\d{4})(\\d{2})(\\d{7})","$1 $2 $3",["15[279]"],"0$1"],["(\\d{3})(\\d{2})(\\d{8})","$1 $2 $3",["15"],"0$1"]],"0"],"DJ":["253","00","(?:2\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[27]"]]]],"DK":["45","00","[2-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-9]"]]]],"DM":["1","011","(?:[58]\\d\\d|767|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","767$1",0,"767"],"DO":["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,0,0,0,"8[024]9"],"DZ":["213","00","(?:[1-4]|[5-79]\\d|80)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-8]"],"0$1"]],"0"],"EC":["593","00","1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}",[8,9,10,11],[["(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-7]"],"(0$1)",0,"$1-$2-$3"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]]],"0"],"EE":["372","00","8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88","[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]],["(\\d{4})(\\d{3,4})","$1 $2",["[45]|8(?:00|[1-49])","[45]|8(?:00[1-9]|[1-49])"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]]],"EG":["20","00","[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}",[8,9,10],[["(\\d)(\\d{7,8})","$1 $2",["[23]"],"0$1"],["(\\d{2})(\\d{6,7})","$1 $2",["1[35]|[4-6]|8[2468]|9[235-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[189]"],"0$1"]],"0"],"EH":["212","00","[5-8]\\d{8}",[9],0,"0",0,0,0,0,"528[89]"],"ER":["291","00","[178]\\d{6}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[178]"],"0$1"]],"0"],"ES":["34","00","[5-9]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]00"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-9]"]]]],"ET":["251","00","(?:11|[2-59]\\d)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-59]"],"0$1"]],"0"],"FI":["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}",[5,6,7,8,9,10,11,12],[["(\\d)(\\d{4,9})","$1 $2",["[2568][1-8]|3(?:0[1-9]|[1-9])|9"],"0$1"],["(\\d{3})(\\d{3,7})","$1 $2",["[12]00|[368]|70[07-9]"],"0$1"],["(\\d{2})(\\d{4,8})","$1 $2",["[1245]|7[135]"],"0$1"],["(\\d{2})(\\d{6,10})","$1 $2",["7"],"0$1"]],"0",0,0,0,0,"1[03-79]|[2-9]",0,"00"],"FJ":["679","0(?:0|52)","45\\d{5}|(?:0800\\d|[235-9])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1 $2",["[235-9]|45"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]]],0,0,0,0,0,0,0,"00"],"FK":["500","00","[2-7]\\d{4}",[5]],"FM":["691","00","(?:[39]\\d\\d|820)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[389]"]]]],"FO":["298","00","[2-9]\\d{5}",[6],[["(\\d{6})","$1",["[2-9]"]]],0,0,"(10(?:01|[12]0|88))"],"FR":["33","00","[1-9]\\d{8}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"]],"0"],"GA":["241","00","(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}",[7,8],[["(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-7]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["11|[67]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]]],0,0,"0(11\\d{6}|6[256]\\d{6}|7[47]\\d{6})","$1"],"GB":["44","00","[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}",[7,9,10],[["(\\d{3})(\\d{4})","$1 $2",["800","8001","80011","800111","8001111"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["845","8454","84546","845464"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["800"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["1(?:38|5[23]|69|76|94)","1(?:(?:38|69)7|5(?:24|39)|768|946)","1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["1(?:[2-69][02-9]|[78])"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[25]|7(?:0|6[02-9])","[25]|7(?:0|6(?:[03-9]|2[356]))"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[1389]"],"0$1"]],"0",0,0,0,0,0,[["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[03])|(?:4[0-5]|5[0-26-9]|6[0-4]|[78][0-49])\\d\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[02]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}",[9,10]],["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}",[10]],["80[08]\\d{7}|800\\d{6}|8001111"],["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d",[7,10]],["70\\d{8}",[10]],0,["(?:3[0347]|55)\\d{8}",[10]],["76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\d{6}",[10]],["56\\d{8}",[10]]],0," x"],"GD":["1","011","(?:473|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","473$1",0,"473"],"GE":["995","00","(?:[3-57]\\d\\d|800)\\d{6}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["32"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[57]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[348]"],"0$1"]],"0"],"GF":["594","00","(?:[56]94|976)\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"]],"0"],"GG":["44","00","(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?",[7,9,10],0,"0",0,"0|([25-9]\\d{5})$","1481$1",0,0,[["1481[25-9]\\d{5}",[10]],["7(?:(?:781|839)\\d|911[17])\\d{5}",[10]],["80[08]\\d{7}|800\\d{6}|8001111"],["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d",[7,10]],["70\\d{8}",[10]],0,["(?:3[0347]|55)\\d{8}",[10]],["76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\d{6}",[10]],["56\\d{8}",[10]]]],"GH":["233","00","(?:[235]\\d{3}|800)\\d{5}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"],"0$1"]],"0"],"GI":["350","00","[256]\\d{7}",[8],[["(\\d{3})(\\d{5})","$1 $2",["2"]]]],"GL":["299","00","(?:19|[2-689]\\d)\\d{4}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["19|[2-689]"]]]],"GM":["220","00","[2-9]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]]],"GN":["224","00","722\\d{6}|(?:3|6\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["3"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[67]"]]]],"GP":["590","00","(?:590|69\\d|976)\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"]],"0",0,0,0,0,0,[["590(?:0[1-68]|1[0-2]|2[0-68]|3[1289]|4[0-24-9]|5[3-579]|6[0189]|7[08]|8[0-689]|9\\d)\\d{4}"],["69(?:0\\d\\d|1(?:2[29]|3[0-5]))\\d{4}"],0,0,0,0,0,0,["976[01]\\d{5}"]]],"GQ":["240","00","222\\d{6}|(?:3\\d|55|[89]0)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235]"]],["(\\d{3})(\\d{6})","$1 $2",["[89]"]]]],"GR":["30","00","5005000\\d{3}|(?:[2689]\\d|70)\\d{8}",[10],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["21|7"]],["(\\d{4})(\\d{6})","$1 $2",["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2689]"]]]],"GT":["502","00","(?:1\\d{3}|[2-7])\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1 $2",["[2-7]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]]],"GU":["1","011","(?:[58]\\d\\d|671|900)\\d{7}",[10],0,"1",0,"1|([3-9]\\d{6})$","671$1",0,"671"],"GW":["245","00","[49]\\d{8}|4\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["40"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"]]]],"GY":["592","001","(?:862\\d|9008)\\d{3}|(?:[2-46]\\d|77)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-46-9]"]]]],"HK":["852","00(?:30|5[09]|[126-9]?)","8[0-46-9]\\d{6,7}|9\\d{4}(?:\\d(?:\\d(?:\\d{4})?)?)?|(?:[235-79]\\d|46)\\d{6}",[5,6,7,8,9,11],[["(\\d{3})(\\d{2,5})","$1 $2",["900","9003"]],["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],["(\\d{3})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],0,0,0,0,0,0,0,"00"],"HN":["504","00","8\\d{10}|[237-9]\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1-$2",["[237-9]"]]]],"HR":["385","00","(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}",[6,7,8,9],[["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["6[01]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{4})(\\d{3})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[67]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-5]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"]],"0"],"HT":["509","00","[2-489]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[2-489]"]]]],"HU":["36","00","[235-7]\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"06 $1"]],"06"],"ID":["62","00[89]","(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}",[7,8,9,10,11,12,13],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["15"]],["(\\d{2})(\\d{5,9})","$1 $2",["2[124]|[36]1"],"(0$1)"],["(\\d{3})(\\d{5,7})","$1 $2",["800"],"0$1"],["(\\d{3})(\\d{5,8})","$1 $2",["[2-79]"],"(0$1)"],["(\\d{3})(\\d{3,4})(\\d{3})","$1-$2-$3",["8[1-35-9]"],"0$1"],["(\\d{3})(\\d{6,8})","$1 $2",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["804"],"0$1"],["(\\d{3})(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4",["80"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["8"],"0$1"]],"0"],"IE":["353","00","(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["2[24-9]|47|58|6[237-9]|9[35-9]"],"(0$1)"],["(\\d{3})(\\d{5})","$1 $2",["[45]0"],"(0$1)"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["1"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2569]|4[1-69]|7[14]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["81"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[78]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["4"],"(0$1)"],["(\\d{2})(\\d)(\\d{3})(\\d{4})","$1 $2 $3 $4",["8"],"0$1"]],"0"],"IL":["972","0(?:0|1[2-9])","1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}",[7,8,9,10,11,12],[["(\\d{4})(\\d{3})","$1-$2",["125"]],["(\\d{4})(\\d{2})(\\d{2})","$1-$2-$3",["121"]],["(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-489]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1-$2-$3",["12"]],["(\\d{4})(\\d{6})","$1-$2",["159"]],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3-$4",["1[7-9]"]],["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})","$1-$2 $3-$4",["15"]]],"0"],"IM":["44","00","1624\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"0|([5-8]\\d{5})$","1624$1",0,"74576|(?:16|7[56])24"],"IN":["91","00","(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}",[8,9,10,11,12,13],[["(\\d{8})","$1",["5(?:0|2[23]|3[03]|[67]1|88)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"],0,1],["(\\d{4})(\\d{4,5})","$1 $2",["180","1800"],0,1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["140"],0,1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79[1-7]|80[2-46]","11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])","11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"],"0$1",1],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807","1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]","1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"],"0$1",1],["(\\d{5})(\\d{5})","$1 $2",["[6-9]"],"0$1",1],["(\\d{4})(\\d{2,4})(\\d{4})","$1 $2 $3",["1(?:6|8[06])","1(?:6|8[06]0)"],0,1],["(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["18"],0,1]],"0"],"IO":["246","00","3\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["3"]]]],"IQ":["964","00","(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-6]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"]],"0"],"IR":["98","00","[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}",[4,5,6,7,10],[["(\\d{4,5})","$1",["96"],"0$1"],["(\\d{2})(\\d{4,5})","$1 $2",["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[1-8]"],"0$1"]],"0"],"IS":["354","00|1(?:0(?:01|[12]0)|100)","(?:38\\d|[4-9])\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["[4-9]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["3"]]],0,0,0,0,0,0,0,"00"],"IT":["39","00","0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",[6,7,8,9,10,11],[["(\\d{2})(\\d{4,6})","$1 $2",["0[26]"]],["(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[245])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))"]],["(\\d{4})(\\d{2,6})","$1 $2",["0(?:[13-579][2-46-8]|8[236-8])"]],["(\\d{4})(\\d{4})","$1 $2",["894"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|5"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["1[4679]|[38]"]],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]"]],["(\\d{2})(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["3"]]],0,0,0,0,0,0,[["0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}"],["3[1-9]\\d{8}|3[2-9]\\d{7}",[9,10]],["80(?:0\\d{3}|3)\\d{3}",[6,9]],["(?:0878\\d\\d|89(?:2|4[5-9]\\d))\\d{3}|89[45][0-4]\\d\\d|(?:1(?:44|6[346])|89(?:5[5-9]|9))\\d{6}",[6,8,9,10]],["1(?:78\\d|99)\\d{6}",[9,10]],0,0,0,["55\\d{8}",[10]],["84(?:[08]\\d{3}|[17])\\d{3}",[6,9]]]],"JE":["44","00","1534\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"0|([0-24-8]\\d{5})$","1534$1",0,0,[["1534[0-24-8]\\d{5}"],["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97[7-9]))\\d{5}"],["80(?:07(?:35|81)|8901)\\d{4}"],["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"],["701511\\d{4}"],0,["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"],["76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\d{6}"],["56\\d{8}"]]],"JM":["1","011","(?:[58]\\d\\d|658|900)\\d{7}",[10],0,"1",0,0,0,0,"658|876"],"JO":["962","00","(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]|87"],"(0$1)"],["(\\d{3})(\\d{5,6})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["70"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"]],"0"],"JP":["81","010","00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}",[8,9,10,11,12,13,14,15,16,17],[["(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],["(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["[36]|4(?:2[09]|7[01])","[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"],"0$1"],["(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["[14]|[289][2-9]|5[3-9]|7[2-4679]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[257-9]"],"0$1"]],"0"],"KE":["254","000","(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}",[7,8,9,10],[["(\\d{2})(\\d{5,7})","$1 $2",["[24-6]"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[17]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0"],"KG":["996","00","8\\d{9}|(?:[235-8]\\d|99)\\d{7}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["3(?:1[346]|[24-79])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235-79]|88"],"0$1"],["(\\d{3})(\\d{3})(\\d)(\\d{2,3})","$1 $2 $3 $4",["8"],"0$1"]],"0"],"KH":["855","00[14-9]","1\\d{9}|[1-9]\\d{7,8}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0"],"KI":["686","00","(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}",[5,8],0,"0"],"KM":["269","00","[3478]\\d{6}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[3478]"]]]],"KN":["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","869$1",0,"869"],"KP":["850","00|99","85\\d{6}|(?:19\\d|[2-7])\\d{7}",[8,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"]],"0"],"KR":["82","00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))","00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}",[5,6,8,9,10,11,12,13,14],[["(\\d{2})(\\d{3,4})","$1-$2",["(?:3[1-3]|[46][1-4]|5[1-5])1"],"0$1"],["(\\d{4})(\\d{4})","$1-$2",["1"]],["(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60|8"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["[1346]|5[1-5]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{2})(\\d{5})(\\d{4})","$1-$2-$3",["5"],"0$1"]],"0",0,"0(8(?:[1-46-8]|5\\d\\d))?"],"KW":["965","00","(?:18|[2569]\\d\\d)\\d{5}",[7,8],[["(\\d{4})(\\d{3,4})","$1 $2",["[169]|2(?:[235]|4[1-35-9])|52"]],["(\\d{3})(\\d{5})","$1 $2",["[25]"]]]],"KY":["1","011","(?:345|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","345$1",0,"345"],"KZ":["7","810","33622\\d{5}|(?:7\\d|80)\\d{8}",[10],0,"8",0,0,0,0,"33|7",0,"8~10"],"LA":["856","00","[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2[13]|3[14]|[4-8]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["30[013-9]"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[23]"],"0$1"]],"0"],"LB":["961","00","[7-9]\\d{7}|[13-9]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"]]],"0"],"LC":["1","011","(?:[58]\\d\\d|758|900)\\d{7}",[10],0,"1",0,"1|([2-8]\\d{6})$","758$1",0,"758"],"LI":["423","00","90\\d{5}|(?:[2378]|6\\d\\d)\\d{6}",[7,9],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[237-9]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["69"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],"0",0,"0|(1001)"],"LK":["94","00","[1-9]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[1-689]"],"0$1"]],"0"],"LR":["231","00","(?:2|33|5\\d|77|88)\\d{7}|[4-6]\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[4-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3578]"],"0$1"]],"0"],"LS":["266","00","(?:[256]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2568]"]]]],"LT":["370","00","(?:[3469]\\d|52|[78]0)\\d{6}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["52[0-7]"],"(8-$1)",1],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[7-9]"],"8 $1",1],["(\\d{2})(\\d{6})","$1 $2",["37|4(?:[15]|6[1-8])"],"(8-$1)",1],["(\\d{3})(\\d{5})","$1 $2",["[3-6]"],"(8-$1)",1]],"8",0,"[08]"],"LU":["352","00","35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}",[4,5,6,7,8,9,10,11],[["(\\d{2})(\\d{3})","$1 $2",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["20[2-689]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4",["2(?:[0367]|4[3-8])"]],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["80[01]|90[015]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["20"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4 $5",["2(?:[0367]|4[3-8])"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})","$1 $2 $3 $4",["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]]],0,0,"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)"],"LV":["371","00","(?:[268]\\d|90)\\d{6}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[269]|8[01]"]]]],"LY":["218","00","[2-9]\\d{8}",[9],[["(\\d{2})(\\d{7})","$1-$2",["[2-9]"],"0$1"]],"0"],"MA":["212","00","[5-8]\\d{8}",[9],[["(\\d{5})(\\d{4})","$1-$2",["5(?:29|38)","5(?:29|38)[89]","5(?:29|38)[89]0"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5[45]"],"0$1"],["(\\d{4})(\\d{5})","$1-$2",["5(?:2[2-489]|3[5-9]|9)|892","5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892"],"0$1"],["(\\d{2})(\\d{7})","$1-$2",["8"],"0$1"],["(\\d{3})(\\d{6})","$1-$2",["[5-7]"],"0$1"]],"0",0,0,0,0,0,[["5(?:29(?:[189][05]|2[29]|3[01])|38[89][05])\\d{4}|5(?:2(?:[015-7]\\d|2[02-9]|3[0-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\d|5[02-9]|6[02-8]|80|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"],["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:0[0-8]|6[1267]|7[0-37]))\\d{6}"],["80\\d{7}"],["89\\d{7}"],0,0,0,0,["592(?:4[0-2]|93)\\d{4}"]]],"MC":["377","00","870\\d{5}|(?:[349]|6\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[39]"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["6"],"0$1"]],"0"],"MD":["373","00","(?:[235-7]\\d|[89]0)\\d{6}",[8],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["22|3"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[25-7]"],"0$1"]],"0"],"ME":["382","00","(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"0$1"]],"0"],"MF":["590","00","(?:590|69\\d|976)\\d{6}",[9],0,"0",0,0,0,0,0,[["590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\d{4}"],["69(?:0\\d\\d|1(?:2[29]|3[0-5]))\\d{4}"],0,0,0,0,0,0,["976[01]\\d{5}"]]],"MG":["261","00","[23]\\d{8}",[9],[["(\\d{2})(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3 $4",["[23]"],"0$1"]],"0",0,"0|([24-9]\\d{6})$","20$1"],"MH":["692","011","329\\d{4}|(?:[256]\\d|45)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1-$2",["[2-6]"]]],"1"],"MK":["389","00","[2-578]\\d{7}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[347]"],"0$1"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["[58]"],"0$1"]],"0"],"ML":["223","00","[24-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-9]"]]]],"MM":["95","00","1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}",[6,7,8,9,10],[["(\\d)(\\d{2})(\\d{3})","$1 $2 $3",["16|2"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[4-7]|8[1-35]"],"0$1"],["(\\d)(\\d{3})(\\d{4,6})","$1 $2 $3",["9(?:2[0-4]|[35-9]|4[137-9])"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["92"],"0$1"],["(\\d)(\\d{5})(\\d{4})","$1 $2 $3",["9"],"0$1"]],"0"],"MN":["976","001","[12]\\d{7,9}|[57-9]\\d{7}",[8,9,10],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[12]1"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[57-9]"]],["(\\d{3})(\\d{5,6})","$1 $2",["[12]2[1-3]"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["[12](?:27|3[2-8]|4[2-68]|5[1-4689])","[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["[12]"],"0$1"]],"0"],"MO":["853","00","(?:28|[68]\\d)\\d{6}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[268]"]]]],"MP":["1","011","[58]\\d{9}|(?:67|90)0\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","670$1",0,"670"],"MQ":["596","00","69\\d{7}|(?:59|97)6\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"]],"0"],"MR":["222","00","(?:[2-4]\\d\\d|800)\\d{5}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-48]"]]]],"MS":["1","011","(?:[58]\\d\\d|664|900)\\d{7}",[10],0,"1",0,"1|([34]\\d{6})$","664$1",0,"664"],"MT":["356","00","3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2357-9]"]]]],"MU":["230","0(?:0|[24-7]0|3[03])","(?:[2-468]|5\\d)\\d{6}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[2-46]|8[013]"]],["(\\d{4})(\\d{4})","$1 $2",["5"]]],0,0,0,0,0,0,0,"020"],"MV":["960","0(?:0|19)","(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}",[7,10],[["(\\d{3})(\\d{4})","$1-$2",["[3467]|9[13-9]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"]]],0,0,0,0,0,0,0,"00"],"MW":["265","00","1\\d{6}(?:\\d{2})?|(?:[23]1|77|88|99)\\d{7}",[7,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["1[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[137-9]"],"0$1"]],"0"],"MX":["52","0[09]","(?:1(?:[01467]\\d|[2359][1-9]|8[1-79])|[2-9]\\d)\\d{8}",[10,11],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|5[56]|81"],0,1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2-9]"],0,1],["(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 $3 $4",["1(?:33|5[56]|81)"],0,1],["(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 $3 $4",["1"],0,1]],"01",0,"0(?:[12]|4[45])|1",0,0,0,0,"00"],"MY":["60","00","1\\d{8,9}|(?:3\\d|[4-9])\\d{7}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["[4-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1-$2 $3",["1(?:[02469]|[378][1-9])|8"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2 $3",["3"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3-$4",["1[36-8]"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2 $3",["15"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2 $3",["1"],"0$1"]],"0"],"MZ":["258","00","(?:2|8\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[2-79]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]]],"NA":["264","00","[68]\\d{7,8}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["87"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0"],"NC":["687","00","[2-57-9]\\d{5}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",["[2-57-9]"]]]],"NE":["227","00","[027-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["08"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[089]|2[013]|7[04]"]]]],"NF":["672","00","[13]\\d{5}",[6],[["(\\d{2})(\\d{4})","$1 $2",["1[0-3]"]],["(\\d)(\\d{5})","$1 $2",["[13]"]]],0,0,"([0-258]\\d{4})$","3$1"],"NG":["234","009","(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}",[7,8,10,11,12,13,14],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["78"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]|9(?:0[3-9]|[1-9])"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[3-7]|8[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[7-9]"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["[78]"],"0$1"],["(\\d{3})(\\d{5})(\\d{5,6})","$1 $2 $3",["[78]"],"0$1"]],"0"],"NI":["505","00","(?:1800|[25-8]\\d{3})\\d{4}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[125-8]"]]]],"NL":["31","00","(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|[89]\\d{6,9}|1\\d{4,5}",[5,6,7,8,9,10],[["(\\d{3})(\\d{4,7})","$1 $2",["[89]0"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["66"],"0$1"],["(\\d)(\\d{8})","$1 $2",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-57-9]"],"0$1"]],"0"],"NO":["47","00","(?:0|[2-9]\\d{3})\\d{4}",[5,8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[489]|5[89]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[235-7]"]]],0,0,0,0,0,"[02-689]|7[0-8]"],"NP":["977","00","(?:1\\d|9)\\d{9}|[1-9]\\d{7}",[8,10,11],[["(\\d)(\\d{7})","$1-$2",["1[2-6]"],"0$1"],["(\\d{2})(\\d{6})","$1-$2",["1[01]|[2-8]|9(?:[1-579]|6[2-6])"],"0$1"],["(\\d{3})(\\d{7})","$1-$2",["9"]]],"0"],"NR":["674","00","(?:444|(?:55|8\\d)\\d|666)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[4-68]"]]]],"NU":["683","00","(?:[47]|888\\d)\\d{3}",[4,7],[["(\\d{3})(\\d{4})","$1 $2",["8"]]]],"NZ":["64","0(?:0|161)","[29]\\d{7,9}|50\\d{5}(?:\\d{2,3})?|6[0-35-9]\\d{6}|7\\d{7,8}|8\\d{4,9}|(?:11\\d|[34])\\d{7}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,8})","$1 $2",["8[1-579]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["50[036-8]|[89]0","50(?:[0367]|88)|[89]0"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["24|[346]|7[2-57-9]|9[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:10|74)|[59]|80"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["1|2[028]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,5})","$1 $2 $3",["2(?:[169]|7[0-35-9])|7|86"],"0$1"]],"0",0,0,0,0,0,0,"00"],"OM":["968","00","(?:1505|[279]\\d{3}|500)\\d{4}|8007\\d{4,5}",[7,8,9],[["(\\d{3})(\\d{4,6})","$1 $2",["[58]"]],["(\\d{2})(\\d{6})","$1 $2",["2"]],["(\\d{4})(\\d{4})","$1 $2",["[179]"]]]],"PA":["507","00","8\\d{9}|[68]\\d{7}|[1-57-9]\\d{6}",[7,8,10],[["(\\d{3})(\\d{4})","$1-$2",["[1-57-9]"]],["(\\d{4})(\\d{4})","$1-$2",["[68]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]]],"PE":["51","19(?:1[124]|77|90)00","(?:[14-8]|9\\d)\\d{7}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["80"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["1"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[4-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"]]],"0",0,0,0,0,0,0,0," Anexo "],"PF":["689","00","[48]\\d{7}|4\\d{5}",[6,8],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["44"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[48]"]]]],"PG":["675","00|140[1-3]","(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["18|[2-69]|85"]],["(\\d{4})(\\d{4})","$1 $2",["[78]"]]],0,0,0,0,0,0,0,"00"],"PH":["63","00","1800\\d{7,9}|(?:2|[89]\\d{4})\\d{5}|[2-8]\\d{8}|[28]\\d{7}",[6,8,9,10,11,12,13],[["(\\d)(\\d{5})","$1 $2",["2"],"(0$1)"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"(0$1)"],["(\\d{4})(\\d{4,6})","$1 $2",["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2","3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"],"(0$1)"],["(\\d{5})(\\d{4})","$1 $2",["346|4(?:27|9[35])|883","3469|4(?:279|9(?:30|56))|8834"],"(0$1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|8[2-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1"]]],"0"],"PK":["92","00","122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}",[8,9,10,11,12],[["(\\d{3})(\\d{3})(\\d{2,7})","$1 $2 $3",["[89]0"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["1"]],["(\\d{3})(\\d{6,7})","$1 $2",["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])","9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"],"(0$1)"],["(\\d{2})(\\d{7,8})","$1 $2",["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"],"(0$1)"],["(\\d{5})(\\d{5})","$1 $2",["58"],"(0$1)"],["(\\d{3})(\\d{7})","$1 $2",["3"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[24-9]"],"(0$1)"]],"0"],"PL":["48","00","6\\d{5}(?:\\d{2})?|8\\d{9}|[1-9]\\d{6}(?:\\d{2})?",[6,7,8,9,10],[["(\\d{5})","$1",["19"]],["(\\d{3})(\\d{3})","$1 $2",["11|64"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1","(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["64"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[2-8]|[2-7]|8[1-79]|9[145]"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["8"]]]],"PM":["508","00","[45]\\d{5}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[45]"],"0$1"]],"0"],"PR":["1","011","(?:[589]\\d\\d|787)\\d{7}",[10],0,"1",0,0,0,0,"787|939"],"PS":["970","00","[2489]2\\d{6}|(?:1\\d|5)\\d{8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2489]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["5"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0"],"PT":["351","00","(?:[26-9]\\d|30)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["2[12]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[236-9]"]]]],"PW":["680","01[12]","(?:[24-8]\\d\\d|345|900)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]]],"PY":["595","00","59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3,6})","$1 $2",["[2-9]0"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"],"(0$1)"],["(\\d{3})(\\d{4,5})","$1 $2",["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["87"]],["(\\d{3})(\\d{6})","$1 $2",["9(?:[5-79]|8[1-6])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["9"]]],"0"],"QA":["974","00","[2-7]\\d{7}|(?:2\\d\\d|800)\\d{4}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["2[126]|8"]],["(\\d{4})(\\d{4})","$1 $2",["[2-7]"]]]],"RE":["262","00","9769\\d{5}|(?:26|[68]\\d)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2689]"],"0$1"]],"0",0,0,0,0,"26[23]|69|[89]"],"RO":["40","00","(?:[237]\\d|[89]0)\\d{7}|[23]\\d{5}",[6,9],[["(\\d{3})(\\d{3})","$1 $2",["2[3-6]","2[3-6]\\d9"],"0$1"],["(\\d{2})(\\d{4})","$1 $2",["219|31"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23]1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[237-9]"],"0$1"]],"0",0,0,0,0,0,0,0," int "],"RS":["381","00","38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}",[6,7,8,9,10,11,12],[["(\\d{3})(\\d{3,9})","$1 $2",["(?:2[389]|39)0|[7-9]"],"0$1"],["(\\d{2})(\\d{5,10})","$1 $2",["[1-36]"],"0$1"]],"0"],"RU":["7","810","[347-9]\\d{9}",[10],[["(\\d{4})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-8]|2[1-9])","7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))","7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"],"8 ($1)",1],["(\\d{5})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-68]|2[1-9])","7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))","7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[3489]"],"8 ($1)",1]],"8",0,0,0,0,"3[04-689]|[489]",0,"8~10"],"RW":["250","00","(?:06|[27]\\d\\d|[89]00)\\d{6}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"]]],"0"],"SA":["966","00","92\\d{7}|(?:[15]|8\\d)\\d{8}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["9"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["81"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],"0"],"SB":["677","0[01]","(?:[1-6]|[7-9]\\d\\d)\\d{4}",[5,7],[["(\\d{2})(\\d{5})","$1 $2",["7|8[4-9]|9(?:[1-8]|9[0-8])"]]]],"SC":["248","010|0[0-2]","8000\\d{3}|(?:[249]\\d|64)\\d{5}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[246]|9[57]"]]],0,0,0,0,0,0,0,"00"],"SD":["249","00","[19]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[19]"],"0$1"]],"0"],"SE":["46","00","(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}",[6,7,8,9,10],[["(\\d{2})(\\d{2,3})(\\d{2})","$1-$2 $3",["20"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{4})","$1-$2",["9(?:00|39|44)"],"0$1",0,"$1 $2"],["(\\d{2})(\\d{3})(\\d{2})","$1-$2 $3",["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3"],["(\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2,3})(\\d{2})","$1-$2 $3",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{2,3})(\\d{3})","$1-$2 $3",["9(?:00|39|44)"],"0$1",0,"$1 $2 $3"],["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3 $4"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["10|7"],"0$1",0,"$1 $2 $3 $4"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1-$2 $3 $4",["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{3})","$1-$2 $3 $4",["9"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4 $5",["[26]"],"0$1",0,"$1 $2 $3 $4 $5"]],"0"],"SG":["65","0[0-3]\\d","(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}",[8,10,11],[["(\\d{4})(\\d{4})","$1 $2",["[369]|8(?:0[1-3]|[1-9])"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]],["(\\d{4})(\\d{4})(\\d{3})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]]],"SH":["290","00","(?:[256]\\d|8)\\d{3}",[4,5],0,0,0,0,0,0,"[256]"],"SI":["386","00|10(?:22|66|88|99)","[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}",[5,6,7,8],[["(\\d{2})(\\d{3,6})","$1 $2",["8[09]|9"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["59|8"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37][01]|4[0139]|51|6"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-57]"],"(0$1)"]],"0",0,0,0,0,0,0,"00"],"SJ":["47","00","0\\d{4}|(?:[4589]\\d|79)\\d{6}",[5,8],0,0,0,0,0,0,"79"],"SK":["421","00","[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}",[6,7,9],[["(\\d)(\\d{2})(\\d{3,4})","$1 $2 $3",["21"],"0$1"],["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["[3-5][1-8]1","[3-5][1-8]1[67]"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[689]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4",["[3-5]"],"0$1"]],"0"],"SL":["232","00","(?:[2378]\\d|66|99)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[236-9]"],"(0$1)"]],"0"],"SM":["378","00","(?:0549|[5-7]\\d)\\d{6}",[8,10],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],["(\\d{4})(\\d{6})","$1 $2",["0"]]],0,0,"([89]\\d{5})$","0549$1"],"SN":["221","00","(?:[378]\\d{4}|93330)\\d{4}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[379]"]]]],"SO":["252","00","[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}",[6,7,8,9],[["(\\d{2})(\\d{4})","$1 $2",["8[125]"]],["(\\d{6})","$1",["[134]"]],["(\\d)(\\d{6})","$1 $2",["[15]|2[0-79]|3[0-46-8]|4[0-7]"]],["(\\d)(\\d{7})","$1 $2",["24|[67]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[3478]|64|90"]],["(\\d{2})(\\d{5,7})","$1 $2",["1|28|6[1-35-9]|9[2-9]"]]],"0"],"SR":["597","00","(?:[2-5]|68|[78]\\d)\\d{5}",[6,7],[["(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3",["56"]],["(\\d{3})(\\d{3})","$1-$2",["[2-5]"]],["(\\d{3})(\\d{4})","$1-$2",["[6-8]"]]]],"SS":["211","00","[19]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[19]"],"0$1"]],"0"],"ST":["239","00","(?:22|9\\d)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[29]"]]]],"SV":["503","00","[267]\\d{7}|[89]00\\d{4}(?:\\d{4})?",[7,8,11],[["(\\d{3})(\\d{4})","$1 $2",["[89]"]],["(\\d{4})(\\d{4})","$1 $2",["[267]"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[89]"]]]],"SX":["1","011","7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|(5\\d{6})$","721$1",0,"721"],"SY":["963","00","[1-39]\\d{8}|[1-5]\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-5]"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1",1]],"0"],"SZ":["268","00","0800\\d{4}|(?:[237]\\d|900)\\d{6}",[8,9],[["(\\d{4})(\\d{4})","$1 $2",["[0237]"]],["(\\d{5})(\\d{4})","$1 $2",["9"]]]],"TA":["290","00","8\\d{3}",[4],0,0,0,0,0,0,"8"],"TC":["1","011","(?:[58]\\d\\d|649|900)\\d{7}",[10],0,"1",0,"1|([2-479]\\d{6})$","649$1",0,"649"],"TD":["235","00|16","(?:22|[69]\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2679]"]]],0,0,0,0,0,0,0,"00"],"TG":["228","00","[279]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[279]"]]]],"TH":["66","00[1-9]","1\\d{9}|[1689]\\d{8}|[1-57]\\d{7}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0"],"TJ":["992","810","(?:[02]0|11|[3-57-9]\\d)\\d{7}",[9],[["(\\d{6})(\\d)(\\d{2})","$1 $2 $3",["331","3317"],0,1],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[34]7|91[78]"],0,1],["(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["3"],0,1],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[02457-9]|11"],0,1]],"8",0,0,0,0,0,0,"8~10"],"TK":["690","00","[2-47]\\d{3,6}",[4,5,6,7]],"TL":["670","00","7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[2-489]|70"]],["(\\d{4})(\\d{4})","$1 $2",["7"]]]],"TM":["993","810","[1-6]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["12"],"(8 $1)"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-5]"],"(8 $1)"],["(\\d{2})(\\d{6})","$1 $2",["6"],"8 $1"]],"8",0,0,0,0,0,0,"8~10"],"TN":["216","00","[2-57-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-57-9]"]]]],"TO":["676","00","(?:0800|[5-8]\\d{3})\\d{3}|[2-8]\\d{4}",[5,7],[["(\\d{2})(\\d{3})","$1-$2",["[2-4]|50|6[09]|7[0-24-69]|8[05]"]],["(\\d{4})(\\d{3})","$1 $2",["0"]],["(\\d{3})(\\d{4})","$1 $2",["[5-8]"]]]],"TR":["90","00","4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}",[7,10,12,13],[["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["512|8[0589]|90"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5(?:[0-59]|61)","5(?:[0-59]|616)","5(?:[0-59]|6161)"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24][1-8]|3[1-9]"],"(0$1)",1],["(\\d{3})(\\d{3})(\\d{6,7})","$1 $2 $3",["80"],"0$1",1]],"0"],"TT":["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-46-8]\\d{6})$","868$1",0,"868"],"TV":["688","00","(?:2|7\\d\\d|90)\\d{4}",[5,6,7],[["(\\d{2})(\\d{3})","$1 $2",["2"]],["(\\d{2})(\\d{4})","$1 $2",["90"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]]],"TW":["886","0(?:0[25-79]|19)","[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}",[7,8,9,10,11],[["(\\d{2})(\\d)(\\d{4})","$1 $2 $3",["202"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[258]0"],"0$1"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]","[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,5})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,0,0,"#"],"TZ":["255","00[056]","(?:[26-8]\\d|41|90)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[24]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[67]"],"0$1"]],"0"],"UA":["380","00","[89]\\d{9}|[3-9]\\d{8}",[9,10],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]","6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["4[45][0-5]|5(?:0|6[37])|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]","4[45][0-5]|5(?:0|6(?:3[14-7]|7))|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["[3-6]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0",0,0,0,0,0,0,"0~0"],"UG":["256","00[057]","800\\d{6}|(?:[29]0|[347]\\d)\\d{7}",[9],[["(\\d{4})(\\d{5})","$1 $2",["202","2024"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[27-9]|4(?:6[45]|[7-9])"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[34]"],"0$1"]],"0"],"US":["1","011","[2-9]\\d{9}",[10],[["(\\d{3})(\\d{3})(\\d{4})","($1) $2-$3",["[2-9]"],0,1,"$1-$2-$3"]],"1",0,0,0,0,0,[["(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-289]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[0179]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}"],[""],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}"]]],"UY":["598","0(?:0|1[3-9]\\d)","4\\d{9}|[249]\\d{7}|(?:[49]\\d|80)\\d{5}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["405|8|90"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[24]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["4"],"0$1"]],"0",0,0,0,0,0,0,"00"," int. "],"UZ":["998","810","55501\\d{4}|(?:33|[679]\\d|88)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[35-9]"],"8 $1"]],"8",0,0,0,0,0,0,"8~10"],"VA":["39","00","0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",[6,7,8,9,10,11],0,0,0,0,0,0,"06698"],"VC":["1","011","(?:[58]\\d\\d|784|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","784$1",0,"784"],"VE":["58","00","[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}",[10],[["(\\d{3})(\\d{7})","$1-$2",["[24-689]"],"0$1"]],"0"],"VG":["1","011","(?:284|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-578]\\d{6})$","284$1",0,"284"],"VI":["1","011","[58]\\d{9}|(?:34|90)0\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","340$1",0,"340"],"VN":["84","00","[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["80"],"0$1",1],["(\\d{4})(\\d{4,6})","$1 $2",["1"],0,1],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[69]"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[3578]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2[48]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["2"],"0$1",1]],"0"],"VU":["678","00","(?:[23]\\d|[48]8)\\d{3}|(?:[57]\\d|90)\\d{5}",[5,7],[["(\\d{3})(\\d{4})","$1 $2",["[579]"]]]],"WF":["681","00","(?:[45]0|68|72|8\\d)\\d{4}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[4-8]"]]]],"WS":["685","0","(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}",[5,6,7,10],[["(\\d{5})","$1",["[2-5]|6[1-9]"]],["(\\d{3})(\\d{3,7})","$1 $2",["[68]"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]]],"XK":["383","00","[23]\\d{7,8}|(?:4\\d\\d|[89]00)\\d{5}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[23]"],"0$1"]],"0"],"YE":["967","00","(?:1|7\\d)\\d{7}|[1-7]\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-6]|7[24-68]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"],"0$1"]],"0"],"YT":["262","00","80\\d{7}|(?:26|63)9\\d{6}",[9],0,"0",0,0,0,0,"269|63"],"ZA":["27","00","[1-79]\\d{8}|8\\d{4,9}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,4})","$1 $2",["8[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["8[1-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["860"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0"],"ZM":["260","00","(?:63|80)0\\d{6}|(?:21|[79]\\d)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[28]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[79]"],"0$1"]],"0"],"ZW":["263","00","2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}",[5,6,7,8,9,10],[["(\\d{3})(\\d{3,5})","$1 $2",["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"],"0$1"],["(\\d)(\\d{3})(\\d{2,4})","$1 $2 $3",["[49]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["80"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2","2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)","2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["29[013-9]|39|54"],"0$1"],["(\\d{4})(\\d{3,5})","$1 $2",["(?:25|54)8","258|5483"],"0$1"]],"0"]},"nonGeographic":{"800":["800",0,"[1-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[1-9]"]]],0,0,0,0,0,0,[0,0,["[1-9]\\d{7}"]]],"808":["808",0,"[1-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[1-9]"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,["[1-9]\\d{7}"]]],"870":["870",0,"[35-7]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[35-7]"]]],0,0,0,0,0,0,[0,["(?:[356]\\d|7[6-8])\\d{7}"]]],"878":["878",0,"10\\d{10}",[12],[["(\\d{2})(\\d{5})(\\d{5})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["10\\d{10}"]]],"881":["881",0,"[0-36-9]\\d{8}",[9],[["(\\d)(\\d{3})(\\d{5})","$1 $2 $3",["[0-36-9]"]]],0,0,0,0,0,0,[0,["[0-36-9]\\d{8}"]]],"882":["882",0,"[13]\\d{6}(?:\\d{2,5})?|285\\d{9}|[19]\\d{7}",[7,8,9,10,11,12],[["(\\d{2})(\\d{5})","$1 $2",["16|342"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[19]"]],["(\\d{2})(\\d{4})(\\d{3})","$1 $2 $3",["3[23]"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["1"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["34[57]"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["34"]],["(\\d{2})(\\d{4,5})(\\d{5})","$1 $2 $3",["[1-3]"]]],0,0,0,0,0,0,[0,["3(?:37\\d\\d|42)\\d{4}|3(?:2|47|7\\d{3})\\d{7}",[7,9,10,12]],0,0,0,0,0,0,["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:(?:285\\d\\d|3(?:45|[69]\\d{3}))\\d|9[89])\\d{6}"]]],"883":["883",0,"51\\d{7}(?:\\d{3})?",[9,12],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["510"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["510"]],["(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3",["5"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["51[013]0\\d{8}|5100\\d{5}"]]],"888":["888",0,"\\d{11}",[11],[["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3"]],0,0,0,0,0,0,[0,0,0,0,0,0,["\\d{11}"]]],"979":["979",0,"[1359]\\d{8}",[9],[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[1359]"]]],0,0,0,0,0,0,[0,0,0,["[1359]\\d{8}"]]]}}; - - // Importing from `.json.js` a workaround for a bug in web browsers' "native" - - function withMetadata(func, _arguments) { - var args = Array.prototype.slice.call(_arguments); - args.push(metadata); - return func.apply(this, args) - } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - // https://stackoverflow.com/a/46971044/970769 - var ParseError = function ParseError(code) { - _classCallCheck(this, ParseError); - - this.name = this.constructor.name; - this.message = code; - this.stack = new Error(code).stack; - }; - ParseError.prototype = Object.create(Error.prototype); - ParseError.prototype.constructor = ParseError; - - // The minimum length of the national significant number. - var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15, - // but one can find longer numbers in Germany. - - var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code. - - var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers - // (ascii, fullwidth, arabic-indic, and eastern arabic digits). - - var VALID_DIGITS = "0-9\uFF10-\uFF19\u0660-\u0669\u06F0-\u06F9"; // `DASHES` will be right after the opening square bracket of the "character class" - - var DASHES = "-\u2010-\u2015\u2212\u30FC\uFF0D"; - var SLASHES = "\uFF0F/"; - var DOTS = "\uFF0E."; - var WHITESPACE = " \xA0\xAD\u200B\u2060\u3000"; - var BRACKETS = "()\uFF08\uFF09\uFF3B\uFF3D\\[\\]"; // export const OPENING_BRACKETS = '(\uFF08\uFF3B\\\[' - - var TILDES = "~\u2053\u223C\uFF5E"; // Regular expression of acceptable punctuation found in phone numbers. This - // excludes punctuation found as a leading character only. This consists of dash - // characters, white space characters, full stops, slashes, square brackets, - // parentheses and tildes. Full-width variants are also present. - - var VALID_PUNCTUATION = "".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES); - var PLUS_CHARS = "+\uFF0B"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+') - - // Copy-pasted from: - // https://github.com/substack/semver-compare/blob/master/index.js - // - // Inlining this function because some users reported issues with - // importing from `semver-compare` in a browser with ES6 "native" modules. - // - // Fixes `semver-compare` not being able to compare versions with alpha/beta/etc "tags". - // https://github.com/catamphetamine/libphonenumber-js/issues/381 - function compare (a, b) { - a = a.split('-'); - b = b.split('-'); - var pa = a[0].split('.'); - var pb = b[0].split('.'); - - for (var i = 0; i < 3; i++) { - var na = Number(pa[i]); - var nb = Number(pb[i]); - if (na > nb) return 1; - if (nb > na) return -1; - if (!isNaN(na) && isNaN(nb)) return 1; - if (isNaN(na) && !isNaN(nb)) return -1; - } - - if (a[1] && b[1]) { - return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0; - } - - return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0; - } - - function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - - function _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - - function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - - var V3 = '1.2.0'; // Moved `001` country code to "nonGeographic" section of metadata. - - var V4 = '1.7.35'; - var DEFAULT_EXT_PREFIX = ' ext. '; - var CALLING_CODE_REG_EXP = /^\d+$/; - /** - * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md - */ - - var Metadata = - /*#__PURE__*/ - function () { - function Metadata(metadata) { - _classCallCheck$1(this, Metadata); - - validateMetadata(metadata); - this.metadata = metadata; - setVersion.call(this, metadata); - } - - _createClass(Metadata, [{ - key: "getCountries", - value: function getCountries() { - return Object.keys(this.metadata.countries).filter(function (_) { - return _ !== '001'; - }); - } - }, { - key: "getCountryMetadata", - value: function getCountryMetadata(countryCode) { - return this.metadata.countries[countryCode]; - } - }, { - key: "nonGeographic", - value: function nonGeographic() { - if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo. - // It's present in metadata generated from `1.7.35` to `1.7.37`. - - return this.metadata.nonGeographic || this.metadata.nonGeographical; - } - }, { - key: "hasCountry", - value: function hasCountry(country) { - return this.getCountryMetadata(country) !== undefined; - } - }, { - key: "hasCallingCode", - value: function hasCallingCode(callingCode) { - if (this.getCountryCodesForCallingCode(callingCode)) { - return true; - } - - if (this.nonGeographic()) { - if (this.nonGeographic()[callingCode]) { - return true; - } - } else { - // A hacky workaround for old custom metadata (generated before V4). - var countryCodes = this.countryCallingCodes()[callingCode]; - - if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') { - return true; - } - } - } - }, { - key: "isNonGeographicCallingCode", - value: function isNonGeographicCallingCode(callingCode) { - if (this.nonGeographic()) { - return this.nonGeographic()[callingCode] ? true : false; - } else { - return this.getCountryCodesForCallingCode(callingCode) ? false : true; - } - } // Deprecated. - - }, { - key: "country", - value: function country(countryCode) { - return this.selectNumberingPlan(countryCode); - } - }, { - key: "selectNumberingPlan", - value: function selectNumberingPlan(countryCode, callingCode) { - // Supports just passing `callingCode` as the first argument. - if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) { - callingCode = countryCode; - countryCode = null; - } - - if (countryCode && countryCode !== '001') { - if (!this.hasCountry(countryCode)) { - throw new Error("Unknown country: ".concat(countryCode)); - } - - this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this); - } else if (callingCode) { - if (!this.hasCallingCode(callingCode)) { - throw new Error("Unknown calling code: ".concat(callingCode)); - } - - this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this); - } else { - this.numberingPlan = undefined; - } - - return this; - } - }, { - key: "getCountryCodesForCallingCode", - value: function getCountryCodesForCallingCode(callingCode) { - var countryCodes = this.countryCallingCodes()[callingCode]; - - if (countryCodes) { - // Metadata before V4 included "non-geographic entity" calling codes - // inside `country_calling_codes` (for example, `"881":["001"]`). - // Now the semantics of `country_calling_codes` has changed: - // it's specifically for "countries" now. - // Older versions of custom metadata will simply skip parsing - // "non-geographic entity" phone numbers with new versions - // of this library: it's not considered a bug, - // because such numbers are extremely rare, - // and developers extremely rarely use custom metadata. - if (countryCodes.length === 1 && countryCodes[0].length === 3) { - return; - } - - return countryCodes; - } - } - }, { - key: "getCountryCodeForCallingCode", - value: function getCountryCodeForCallingCode(callingCode) { - var countryCodes = this.getCountryCodesForCallingCode(callingCode); - - if (countryCodes) { - return countryCodes[0]; - } - } - }, { - key: "getNumberingPlanMetadata", - value: function getNumberingPlanMetadata(callingCode) { - var countryCode = this.getCountryCodeForCallingCode(callingCode); - - if (countryCode) { - return this.getCountryMetadata(countryCode); - } - - if (this.nonGeographic()) { - var metadata = this.nonGeographic()[callingCode]; - - if (metadata) { - return metadata; - } - } else { - // A hacky workaround for old custom metadata (generated before V4). - var countryCodes = this.countryCallingCodes()[callingCode]; - - if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') { - return this.metadata.countries['001']; - } - } - } // Deprecated. - - }, { - key: "countryCallingCode", - value: function countryCallingCode() { - return this.numberingPlan.callingCode(); - } // Deprecated. - - }, { - key: "IDDPrefix", - value: function IDDPrefix() { - return this.numberingPlan.IDDPrefix(); - } // Deprecated. - - }, { - key: "defaultIDDPrefix", - value: function defaultIDDPrefix() { - return this.numberingPlan.defaultIDDPrefix(); - } // Deprecated. - - }, { - key: "nationalNumberPattern", - value: function nationalNumberPattern() { - return this.numberingPlan.nationalNumberPattern(); - } // Deprecated. - - }, { - key: "possibleLengths", - value: function possibleLengths() { - return this.numberingPlan.possibleLengths(); - } // Deprecated. - - }, { - key: "formats", - value: function formats() { - return this.numberingPlan.formats(); - } // Deprecated. - - }, { - key: "nationalPrefixForParsing", - value: function nationalPrefixForParsing() { - return this.numberingPlan.nationalPrefixForParsing(); - } // Deprecated. - - }, { - key: "nationalPrefixTransformRule", - value: function nationalPrefixTransformRule() { - return this.numberingPlan.nationalPrefixTransformRule(); - } // Deprecated. - - }, { - key: "leadingDigits", - value: function leadingDigits() { - return this.numberingPlan.leadingDigits(); - } // Deprecated. - - }, { - key: "hasTypes", - value: function hasTypes() { - return this.numberingPlan.hasTypes(); - } // Deprecated. - - }, { - key: "type", - value: function type(_type) { - return this.numberingPlan.type(_type); - } // Deprecated. - - }, { - key: "ext", - value: function ext() { - return this.numberingPlan.ext(); - } - }, { - key: "countryCallingCodes", - value: function countryCallingCodes() { - if (this.v1) return this.metadata.country_phone_code_to_countries; - return this.metadata.country_calling_codes; - } // Deprecated. - - }, { - key: "chooseCountryByCountryCallingCode", - value: function chooseCountryByCountryCallingCode(callingCode) { - return this.selectNumberingPlan(callingCode); - } - }, { - key: "hasSelectedNumberingPlan", - value: function hasSelectedNumberingPlan() { - return this.numberingPlan !== undefined; - } - }]); - - return Metadata; - }(); - - var NumberingPlan = - /*#__PURE__*/ - function () { - function NumberingPlan(metadata, globalMetadataObject) { - _classCallCheck$1(this, NumberingPlan); - - this.globalMetadataObject = globalMetadataObject; - this.metadata = metadata; - setVersion.call(this, globalMetadataObject.metadata); - } - - _createClass(NumberingPlan, [{ - key: "callingCode", - value: function callingCode() { - return this.metadata[0]; - } // Formatting information for regions which share - // a country calling code is contained by only one region - // for performance reasons. For example, for NANPA region - // ("North American Numbering Plan Administration", - // which includes USA, Canada, Cayman Islands, Bahamas, etc) - // it will be contained in the metadata for `US`. - - }, { - key: "getDefaultCountryMetadataForRegion", - value: function getDefaultCountryMetadataForRegion() { - return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode()); - } - }, { - key: "IDDPrefix", - value: function IDDPrefix() { - if (this.v1 || this.v2) return; - return this.metadata[1]; - } - }, { - key: "defaultIDDPrefix", - value: function defaultIDDPrefix() { - if (this.v1 || this.v2) return; - return this.metadata[12]; - } - }, { - key: "nationalNumberPattern", - value: function nationalNumberPattern() { - if (this.v1 || this.v2) return this.metadata[1]; - return this.metadata[2]; - } - }, { - key: "possibleLengths", - value: function possibleLengths() { - if (this.v1) return; - return this.metadata[this.v2 ? 2 : 3]; - } - }, { - key: "_getFormats", - value: function _getFormats(metadata) { - return metadata[this.v1 ? 2 : this.v2 ? 3 : 4]; - } // For countries of the same region (e.g. NANPA) - // formats are all stored in the "main" country for that region. - // E.g. "RU" and "KZ", "US" and "CA". - - }, { - key: "formats", - value: function formats() { - var _this = this; - - var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || []; - return formats.map(function (_) { - return new Format(_, _this); - }); - } - }, { - key: "nationalPrefix", - value: function nationalPrefix() { - return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5]; - } - }, { - key: "_getNationalPrefixFormattingRule", - value: function _getNationalPrefixFormattingRule(metadata) { - return metadata[this.v1 ? 4 : this.v2 ? 5 : 6]; - } // For countries of the same region (e.g. NANPA) - // national prefix formatting rule is stored in the "main" country for that region. - // E.g. "RU" and "KZ", "US" and "CA". - - }, { - key: "nationalPrefixFormattingRule", - value: function nationalPrefixFormattingRule() { - return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion()); - } - }, { - key: "_nationalPrefixForParsing", - value: function _nationalPrefixForParsing() { - return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7]; - } - }, { - key: "nationalPrefixForParsing", - value: function nationalPrefixForParsing() { - // If `national_prefix_for_parsing` is not set explicitly, - // then infer it from `national_prefix` (if any) - return this._nationalPrefixForParsing() || this.nationalPrefix(); - } - }, { - key: "nationalPrefixTransformRule", - value: function nationalPrefixTransformRule() { - return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8]; - } - }, { - key: "_getNationalPrefixIsOptionalWhenFormatting", - value: function _getNationalPrefixIsOptionalWhenFormatting() { - return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9]; - } // For countries of the same region (e.g. NANPA) - // "national prefix is optional when formatting" flag is - // stored in the "main" country for that region. - // E.g. "RU" and "KZ", "US" and "CA". - - }, { - key: "nationalPrefixIsOptionalWhenFormattingInNationalFormat", - value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() { - return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion()); - } - }, { - key: "leadingDigits", - value: function leadingDigits() { - return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10]; - } - }, { - key: "types", - value: function types() { - return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11]; - } - }, { - key: "hasTypes", - value: function hasTypes() { - // Versions 1.2.0 - 1.2.4: can be `[]`. - - /* istanbul ignore next */ - if (this.types() && this.types().length === 0) { - return false; - } // Versions <= 1.2.4: can be `undefined`. - // Version >= 1.2.5: can be `0`. - - - return !!this.types(); - } - }, { - key: "type", - value: function type(_type2) { - if (this.hasTypes() && getType(this.types(), _type2)) { - return new Type(getType(this.types(), _type2), this); - } - } - }, { - key: "ext", - value: function ext() { - if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX; - return this.metadata[13] || DEFAULT_EXT_PREFIX; - } - }]); - - return NumberingPlan; - }(); - - var Format = - /*#__PURE__*/ - function () { - function Format(format, metadata) { - _classCallCheck$1(this, Format); - - this._format = format; - this.metadata = metadata; - } - - _createClass(Format, [{ - key: "pattern", - value: function pattern() { - return this._format[0]; - } - }, { - key: "format", - value: function format() { - return this._format[1]; - } - }, { - key: "leadingDigitsPatterns", - value: function leadingDigitsPatterns() { - return this._format[2] || []; - } - }, { - key: "nationalPrefixFormattingRule", - value: function nationalPrefixFormattingRule() { - return this._format[3] || this.metadata.nationalPrefixFormattingRule(); - } - }, { - key: "nationalPrefixIsOptionalWhenFormattingInNationalFormat", - value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() { - return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat(); - } - }, { - key: "nationalPrefixIsMandatoryWhenFormattingInNationalFormat", - value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() { - // National prefix is omitted if there's no national prefix formatting rule - // set for this country, or when the national prefix formatting rule - // contains no national prefix itself, or when this rule is set but - // national prefix is optional for this phone number format - // (and it is not enforced explicitly) - return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat(); - } // Checks whether national prefix formatting rule contains national prefix. - - }, { - key: "usesNationalPrefix", - value: function usesNationalPrefix() { - return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a "dummy" one. - !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0` - // when `national_prefix_formatting_rule` is not present. - // So, `true` or `false` are returned explicitly here, so that - // `0` number isn't returned. - ? true : false; - } - }, { - key: "internationalFormat", - value: function internationalFormat() { - return this._format[5] || this.format(); - } - }]); - - return Format; - }(); - /** - * A pattern that is used to determine if the national prefix formatting rule - * has the first group only, i.e., does not start with the national prefix. - * Note that the pattern explicitly allows for unbalanced parentheses. - */ - - - var FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\(?\$1\)?$/; - - var Type = - /*#__PURE__*/ - function () { - function Type(type, metadata) { - _classCallCheck$1(this, Type); - - this.type = type; - this.metadata = metadata; - } - - _createClass(Type, [{ - key: "pattern", - value: function pattern() { - if (this.metadata.v1) return this.type; - return this.type[0]; - } - }, { - key: "possibleLengths", - value: function possibleLengths() { - if (this.metadata.v1) return; - return this.type[1] || this.metadata.possibleLengths(); - } - }]); - - return Type; - }(); - - function getType(types, type) { - switch (type) { - case 'FIXED_LINE': - return types[0]; - - case 'MOBILE': - return types[1]; - - case 'TOLL_FREE': - return types[2]; - - case 'PREMIUM_RATE': - return types[3]; - - case 'PERSONAL_NUMBER': - return types[4]; - - case 'VOICEMAIL': - return types[5]; - - case 'UAN': - return types[6]; - - case 'PAGER': - return types[7]; - - case 'VOIP': - return types[8]; - - case 'SHARED_COST': - return types[9]; - } - } - - function validateMetadata(metadata) { - if (!metadata) { - throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.'); - } // `country_phone_code_to_countries` was renamed to - // `country_calling_codes` in `1.0.18`. - - - if (!is_object(metadata) || !is_object(metadata.countries)) { - throw new Error("[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got ".concat(is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata, ".")); - } - } // Babel transforms `typeof` into some "branches" - // so istanbul will show this as "branch not covered". - - /* istanbul ignore next */ - - var is_object = function is_object(_) { - return _typeof(_) === 'object'; - }; // Babel transforms `typeof` into some "branches" - // so istanbul will show this as "branch not covered". - - /* istanbul ignore next */ - - - var type_of = function type_of(_) { - return _typeof(_); - }; - /** - * Returns "country calling code" for a country. - * Throws an error if the country doesn't exist or isn't supported by this library. - * @param {string} country - * @param {object} metadata - * @return {string} - * @example - * // Returns "44" - * getCountryCallingCode("GB") - */ - - function getCountryCallingCode(country, metadata) { - metadata = new Metadata(metadata); - - if (metadata.hasCountry(country)) { - return metadata.country(country).countryCallingCode(); - } - - throw new Error("Unknown country: ".concat(country)); - } - function isSupportedCountry(country, metadata) { - // metadata = new Metadata(metadata) - // return metadata.hasCountry(country) - return metadata.countries[country] !== undefined; - } - - function setVersion(metadata) { - var version = metadata.version; - - if (typeof version === 'number') { - this.v1 = version === 1; - this.v2 = version === 2; - this.v3 = version === 3; - this.v4 = version === 4; - } else { - if (!version) { - this.v1 = true; - } else if (compare(version, V3) === -1) { - this.v2 = true; - } else if (compare(version, V4) === -1) { - this.v3 = true; - } else { - this.v4 = true; - } - } - } // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/ - // function isCountryCode(countryCode) { - // return ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode) - // } - - var RFC3966_EXTN_PREFIX = ';ext='; - /** - * Helper method for constructing regular expressions for parsing. Creates - * an expression that captures up to max_length digits. - * @return {string} RegEx pattern to capture extension digits. - */ - - var getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) { - return "([".concat(VALID_DIGITS, "]{1,").concat(maxLength, "})"); - }; - /** - * Helper initialiser method to create the regular-expression pattern to match - * extensions. - * Copy-pasted from Google's `libphonenumber`: - * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766 - * @return {string} RegEx pattern to capture extensions. - */ - - - function createExtensionPattern(purpose) { - // We cap the maximum length of an extension based on the ambiguity of the way - // the extension is prefixed. As per ITU, the officially allowed length for - // extensions is actually 40, but we don't support this since we haven't seen real - // examples and this introduces many false interpretations as the extension labels - // are not standardized. - - /** @type {string} */ - var extLimitAfterExplicitLabel = '20'; - /** @type {string} */ - - var extLimitAfterLikelyLabel = '15'; - /** @type {string} */ - - var extLimitAfterAmbiguousChar = '9'; - /** @type {string} */ - - var extLimitWhenNotSure = '6'; - /** @type {string} */ - - var possibleSeparatorsBetweenNumberAndExtLabel = "[ \xA0\\t,]*"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas. - - /** @type {string} */ - - var possibleCharsAfterExtLabel = "[:\\.\uFF0E]?[ \xA0\\t,-]*"; - /** @type {string} */ - - var optionalExtnSuffix = "#?"; // Here the extension is called out in more explicit way, i.e mentioning it obvious - // patterns like "ext.". - - /** @type {string} */ - - var explicitExtLabels = "(?:e?xt(?:ensi(?:o\u0301?|\xF3))?n?|\uFF45?\uFF58\uFF54\uFF4E?|\u0434\u043E\u0431|anexo)"; // One-character symbols that can be used to indicate an extension, and less - // commonly used or more ambiguous extension labels. - - /** @type {string} */ - - var ambiguousExtLabels = "(?:[x\uFF58#\uFF03~\uFF5E]|int|\uFF49\uFF4E\uFF54)"; // When extension is not separated clearly. - - /** @type {string} */ - - var ambiguousSeparator = "[- ]+"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching - // comma as extension label may have it. - - /** @type {string} */ - - var possibleSeparatorsNumberExtLabelNoComma = "[ \xA0\\t]*"; // ",," is commonly used for auto dialling the extension when connected. First - // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do - // not repeat it here. Semi-colon works in Iphone and Android also to pop up a - // button with the extension number following. - - /** @type {string} */ - - var autoDiallingAndExtLabelsFound = "(?:,{2}|;)"; - /** @type {string} */ - - var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel); - /** @type {string} */ - - var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix; - /** @type {string} */ - - var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; - /** @type {string} */ - - var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + "#"; - /** @type {string} */ - - var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix; - /** @type {string} */ - - var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + "(?:,)+" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added - // using ";ext=". The second more generic where extension is mentioned with explicit - // labels like "ext:". In both the above cases we allow more numbers in extension than - // any other extension labels. The third one captures when single character extension - // labels or less commonly used labels are used. In such cases we capture fewer - // extension digits in order to reduce the chance of falsely interpreting two - // numbers beside each other as a number + extension. The fourth one covers the - // special case of American numbers where the extension is written with a hash - // at the end, such as "- 503#". The fifth one is exclusively for extension - // autodialling formats which are used when dialling and in this case we accept longer - // extensions. The last one is more liberal on the number of commas that acts as - // extension labels, so we have a strict cap on the number of digits in such extensions. - - return rfcExtn + "|" + explicitExtn + "|" + ambiguousExtn + "|" + americanStyleExtnWithSuffix + "|" + autoDiallingExtn + "|" + onlyCommasExtn; - } - - // Checks we have at least three leading digits, and only valid punctuation, - // alpha characters and digits in the phone number. Does not include extension - // data. The symbol 'x' is allowed here as valid punctuation since it is often - // used as a placeholder for carrier codes, for example in Brazilian phone - // numbers. We also allow multiple '+' characters at the start. - // - // Corresponds to the following: - // [digits]{minLengthNsn}| - // plus_sign* - // (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])* - // - // The first reg-ex is to allow short numbers (two digits long) to be parsed if - // they are entered as "15" etc, but only if there is no punctuation in them. - // The second expression restricts the number of digits to three or more, but - // then allows them to be in international form, and to have alpha-characters - // and punctuation. We split up the two reg-exes here and combine them when - // creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it - // with ^ and append $ to each branch. - // - // "Note VALID_PUNCTUATION starts with a -, - // so must be the first in the range" (c) Google devs. - // (wtf did they mean by saying that; probably nothing) - // - - var MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; // - // And this is the second reg-exp: - // (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp) - // - - var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*'; - var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions - '(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers: - // - - var VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number - '^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters) - '^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at - // all. At the moment, checks to see that the string begins with at least 2 - // digits, ignoring any punctuation commonly found in phone numbers. This method - // does not require the number to be normalized in advance - but does assume - // that leading non-number symbols have been removed, such as by the method - // `extract_possible_number`. - // - - function isViablePhoneNumber(number) { - return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number); - } - - // 1 or more valid digits, for use when parsing. - - var EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is - // connected, usually indicated with extn, ext, x or similar) from the end of - // the number, and returns it. - - function extractExtension(number) { - var start = number.search(EXTN_PATTERN); - - if (start < 0) { - return {}; - } // If we find a potential extension, and the number preceding this is a viable - // number, we assume it is an extension. - - - var numberWithoutExtension = number.slice(0, start); - var matches = number.match(EXTN_PATTERN); - var i = 1; - - while (i < matches.length) { - if (matches[i]) { - return { - number: numberWithoutExtension, - ext: matches[i] - }; - } - - i++; - } - } - - // These mappings map a character (key) to a specific digit that should - // replace it for normalization purposes. Non-European digits that - // may be used in phone numbers are mapped to a European equivalent. - // - // E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`. - // - var DIGITS = { - '0': '0', - '1': '1', - '2': '2', - '3': '3', - '4': '4', - '5': '5', - '6': '6', - '7': '7', - '8': '8', - '9': '9', - "\uFF10": '0', - // Fullwidth digit 0 - "\uFF11": '1', - // Fullwidth digit 1 - "\uFF12": '2', - // Fullwidth digit 2 - "\uFF13": '3', - // Fullwidth digit 3 - "\uFF14": '4', - // Fullwidth digit 4 - "\uFF15": '5', - // Fullwidth digit 5 - "\uFF16": '6', - // Fullwidth digit 6 - "\uFF17": '7', - // Fullwidth digit 7 - "\uFF18": '8', - // Fullwidth digit 8 - "\uFF19": '9', - // Fullwidth digit 9 - "\u0660": '0', - // Arabic-indic digit 0 - "\u0661": '1', - // Arabic-indic digit 1 - "\u0662": '2', - // Arabic-indic digit 2 - "\u0663": '3', - // Arabic-indic digit 3 - "\u0664": '4', - // Arabic-indic digit 4 - "\u0665": '5', - // Arabic-indic digit 5 - "\u0666": '6', - // Arabic-indic digit 6 - "\u0667": '7', - // Arabic-indic digit 7 - "\u0668": '8', - // Arabic-indic digit 8 - "\u0669": '9', - // Arabic-indic digit 9 - "\u06F0": '0', - // Eastern-Arabic digit 0 - "\u06F1": '1', - // Eastern-Arabic digit 1 - "\u06F2": '2', - // Eastern-Arabic digit 2 - "\u06F3": '3', - // Eastern-Arabic digit 3 - "\u06F4": '4', - // Eastern-Arabic digit 4 - "\u06F5": '5', - // Eastern-Arabic digit 5 - "\u06F6": '6', - // Eastern-Arabic digit 6 - "\u06F7": '7', - // Eastern-Arabic digit 7 - "\u06F8": '8', - // Eastern-Arabic digit 8 - "\u06F9": '9' // Eastern-Arabic digit 9 - - }; - function parseDigit(character) { - return DIGITS[character]; - } - - /** - * Parses phone number characters from a string. - * Drops all punctuation leaving only digits and the leading `+` sign (if any). - * Also converts wide-ascii and arabic-indic numerals to conventional numerals. - * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`. - * @param {string} string - * @return {string} - * @example - * ```js - * // Outputs '8800555'. - * parseIncompletePhoneNumber('8 (800) 555') - * // Outputs '+7800555'. - * parseIncompletePhoneNumber('+7 800 555') - * ``` - */ - - function parseIncompletePhoneNumber(string) { - var result = ''; // Using `.split('')` here instead of normal `for ... of` - // because the importing application doesn't neccessarily include an ES6 polyfill. - // The `.split('')` approach discards "exotic" UTF-8 characters - // (the ones consisting of four bytes) but digits - // (including non-European ones) don't fall into that range - // so such "exotic" characters would be discarded anyway. - - for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var character = _ref; - result += parsePhoneNumberCharacter(character, result) || ''; - } - - return result; - } - /** - * Parses next character while parsing phone number digits (including a `+`) - * from text: discards everything except `+` and digits, and `+` is only allowed - * at the start of a phone number. - * For example, is used in `react-phone-number-input` where it uses - * [`input-format`](https://gitlab.com/catamphetamine/input-format). - * @param {string} character - Yet another character from raw input string. - * @param {string?} prevParsedCharacters - Previous parsed characters. - * @param {object} meta - Optional custom use-case-specific metadata. - * @return {string?} The parsed character. - */ - - function parsePhoneNumberCharacter(character, prevParsedCharacters) { - // Only allow a leading `+`. - if (character === '+') { - // If this `+` is not the first parsed character - // then discard it. - if (prevParsedCharacters) { - return; - } - - return '+'; - } // Allow digits. - - - return parseDigit(character); - } - - /** - * Merges two arrays. - * @param {*} a - * @param {*} b - * @return {*} - */ - function mergeArrays(a, b) { - var merged = a.slice(); - - for (var _iterator = b, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var element = _ref; - - if (a.indexOf(element) < 0) { - merged.push(element); - } - } - - return merged.sort(function (a, b) { - return a - b; - }); // ES6 version, requires Set polyfill. - // let merged = new Set(a) - // for (const element of b) { - // merged.add(i) - // } - // return Array.from(merged).sort((a, b) => a - b) - } - - function checkNumberLength(nationalNumber, metadata) { - return checkNumberLengthForType(nationalNumber, undefined, metadata); - } // Checks whether a number is possible for the country based on its length. - // Should only be called for the "new" metadata which has "possible lengths". - - function checkNumberLengthForType(nationalNumber, type, metadata) { - var type_info = metadata.type(type); // There should always be "" set for every type element. - // This is declared in the XML schema. - // For size efficiency, where a sub-description (e.g. fixed-line) - // has the same "" as the "general description", this is missing, - // so we fall back to the "general description". Where no numbers of the type - // exist at all, there is one possible length (-1) which is guaranteed - // not to match the length of any real phone number. - - var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal() - // Metadata before version `1.0.18` didn't contain `possible_lengths`. - - if (!possible_lengths) { - return 'IS_POSSIBLE'; - } - - if (type === 'FIXED_LINE_OR_MOBILE') { - // No such country in metadata. - - /* istanbul ignore next */ - if (!metadata.type('FIXED_LINE')) { - // The rare case has been encountered where no fixedLine data is available - // (true for some non-geographic entities), so we just check mobile. - return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata); - } - - var mobile_type = metadata.type('MOBILE'); - - if (mobile_type) { - // Merge the mobile data in if there was any. "Concat" creates a new - // array, it doesn't edit possible_lengths in place, so we don't need a copy. - // Note that when adding the possible lengths from mobile, we have - // to again check they aren't empty since if they are this indicates - // they are the same as the general desc and should be obtained from there. - possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and - // re-sort (duplicates are okay). Sorting isn't so expensive because - // the lists are very small. - // if (local_lengths) { - // local_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal()) - // } else { - // local_lengths = mobile_type.possibleLengthsLocal() - // } - } - } // If the type doesn't exist then return 'INVALID_LENGTH'. - else if (type && !type_info) { - return 'INVALID_LENGTH'; - } - - var actual_length = nationalNumber.length; // In `libphonenumber-js` all "local-only" formats are dropped for simplicity. - // // This is safe because there is never an overlap beween the possible lengths - // // and the local-only lengths; this is checked at build time. - // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0) - // { - // return 'IS_POSSIBLE_LOCAL_ONLY' - // } - - var minimum_length = possible_lengths[0]; - - if (minimum_length === actual_length) { - return 'IS_POSSIBLE'; - } - - if (minimum_length > actual_length) { - return 'TOO_SHORT'; - } - - if (possible_lengths[possible_lengths.length - 1] < actual_length) { - return 'TOO_LONG'; - } // We skip the first element since we've already checked it. - - - return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH'; - } - - function isPossiblePhoneNumber(input, options, metadata) { - /* istanbul ignore if */ - if (options === undefined) { - options = {}; - } - - metadata = new Metadata(metadata); - - if (options.v2) { - if (!input.countryCallingCode) { - throw new Error('Invalid phone number object passed'); - } - - metadata.selectNumberingPlan(input.countryCallingCode); - } else { - if (!input.phone) { - return false; - } - - if (input.country) { - if (!metadata.hasCountry(input.country)) { - throw new Error("Unknown country: ".concat(input.country)); - } - - metadata.country(input.country); - } else { - if (!input.countryCallingCode) { - throw new Error('Invalid phone number object passed'); - } - - metadata.selectNumberingPlan(input.countryCallingCode); - } - } - - if (metadata.possibleLengths()) { - return isPossibleNumber(input.phone || input.nationalNumber, metadata); - } else { - // There was a bug between `1.7.35` and `1.7.37` where "possible_lengths" - // were missing for "non-geographical" numbering plans. - // Just assume the number is possible in such cases: - // it's unlikely that anyone generated their custom metadata - // in that short period of time (one day). - // This code can be removed in some future major version update. - if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) { - // "Non-geographic entities" did't have `possibleLengths` - // due to a bug in metadata generation process. - return true; - } else { - throw new Error('Missing "possibleLengths" in metadata. Perhaps the metadata has been generated before v1.0.18.'); - } - } - } - function isPossibleNumber(nationalNumber, metadata) { - //, isInternational) { - switch (checkNumberLength(nationalNumber, metadata)) { - case 'IS_POSSIBLE': - return true; - // This library ignores "local-only" phone numbers (for simplicity). - // See the readme for more info on what are "local-only" phone numbers. - // case 'IS_POSSIBLE_LOCAL_ONLY': - // return !isInternational - - default: - return false; - } - } - - function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - - function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - - function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - - function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - - /** - * @param {string} text - Phone URI (RFC 3966). - * @return {object} `{ ?number, ?ext }`. - */ - - function parseRFC3966(text) { - var number; - var ext; // Replace "tel:" with "tel=" for parsing convenience. - - text = text.replace(/^tel:/, 'tel='); - - for (var _iterator = text.split(';'), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var part = _ref; - - var _part$split = part.split('='), - _part$split2 = _slicedToArray(_part$split, 2), - name = _part$split2[0], - value = _part$split2[1]; - - switch (name) { - case 'tel': - number = value; - break; - - case 'ext': - ext = value; - break; - - case 'phone-context': - // Only "country contexts" are supported. - // "Domain contexts" are ignored. - if (value[0] === '+') { - number = value + number; - } - - break; - } - } // If the phone number is not viable, then abort. - - - if (!isViablePhoneNumber(number)) { - return {}; - } - - var result = { - number: number - }; - - if (ext) { - result.ext = ext; - } - - return result; - } - /** - * @param {object} - `{ ?number, ?extension }`. - * @return {string} Phone URI (RFC 3966). - */ - - function formatRFC3966(_ref2) { - var number = _ref2.number, - ext = _ref2.ext; - - if (!number) { - return ''; - } - - if (number[0] !== '+') { - throw new Error("\"formatRFC3966()\" expects \"number\" to be in E.164 format."); - } - - return "tel:".concat(number).concat(ext ? ';ext=' + ext : ''); - } - - /** - * Checks whether the entire input sequence can be matched - * against the regular expression. - * @return {boolean} - */ - function matchesEntirely(text, regular_expression) { - // If assigning the `''` default value is moved to the arguments above, - // code coverage would decrease for some weird reason. - text = text || ''; - return new RegExp('^(?:' + regular_expression + ')$').test(text); - } - - var NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc) - - function getNumberType(input, options, metadata) { - // If assigning the `{}` default value is moved to the arguments above, - // code coverage would decrease for some weird reason. - options = options || {}; // When `parse()` returned `{}` - // meaning that the phone number is not a valid one. - - if (!input.country) { - return; - } - - metadata = new Metadata(metadata); - metadata.selectNumberingPlan(input.country, input.countryCallingCode); - var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function: - // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835 - // Is this national number even valid for this country - - if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) { - return; - } // Is it fixed line number - - - if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) { - // Because duplicate regular expressions are removed - // to reduce metadata size, if "mobile" pattern is "" - // then it means it was removed due to being a duplicate of the fixed-line pattern. - // - if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') { - return 'FIXED_LINE_OR_MOBILE'; - } // v1 metadata. - // Legacy. - // Deprecated. - - - if (!metadata.type('MOBILE')) { - return 'FIXED_LINE_OR_MOBILE'; - } // Check if the number happens to qualify as both fixed line and mobile. - // (no such country in the minimal metadata set) - - /* istanbul ignore if */ - - - if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) { - return 'FIXED_LINE_OR_MOBILE'; - } - - return 'FIXED_LINE'; - } - - for (var _i = 0, _NON_FIXED_LINE_PHONE = NON_FIXED_LINE_PHONE_TYPES; _i < _NON_FIXED_LINE_PHONE.length; _i++) { - var type = _NON_FIXED_LINE_PHONE[_i]; - - if (isNumberTypeEqualTo(nationalNumber, type, metadata)) { - return type; - } - } - } - function isNumberTypeEqualTo(nationalNumber, type, metadata) { - type = metadata.type(type); - - if (!type || !type.pattern()) { - return false; - } // Check if any possible number lengths are present; - // if so, we use them to avoid checking - // the validation pattern if they don't match. - // If they are absent, this means they match - // the general description, which we have - // already checked before a specific number type. - - - if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) { - return false; - } - - return matchesEntirely(nationalNumber, type.pattern()); - } - - /** - * Checks if a given phone number is valid. - * - * If the `number` is a string, it will be parsed to an object, - * but only if it contains only valid phone number characters (including punctuation). - * If the `number` is an object, it is used as is. - * - * The optional `defaultCountry` argument is the default country. - * I.e. it does not restrict to just that country, - * e.g. in those cases where several countries share - * the same phone numbering rules (NANPA, Britain, etc). - * For example, even though the number `07624 369230` - * belongs to the Isle of Man ("IM" country code) - * calling `isValidNumber('07624369230', 'GB', metadata)` - * still returns `true` because the country is not restricted to `GB`, - * it's just that `GB` is the default one for the phone numbering rules. - * For restricting the country see `isValidNumberForRegion()` - * though restricting a country might not be a good idea. - * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion - * - * Examples: - * - * ```js - * isValidNumber('+78005553535', metadata) - * isValidNumber('8005553535', 'RU', metadata) - * isValidNumber('88005553535', 'RU', metadata) - * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata) - * ``` - */ - - function isValidNumber(input, options, metadata) { - // If assigning the `{}` default value is moved to the arguments above, - // code coverage would decrease for some weird reason. - options = options || {}; - metadata = new Metadata(metadata); // This is just to support `isValidNumber({})` - // for cases when `parseNumber()` returns `{}`. - - if (!input.country) { - return false; - } - - metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for - // distinguishing different countries having the same `countryCallingCode`. - - if (metadata.hasTypes()) { - return getNumberType(input, options, metadata.metadata) !== undefined; - } // If there are no type regexps for this country in metadata then use - // `nationalNumberPattern` as a "better than nothing" replacement. - - - var national_number = options.v2 ? input.nationalNumber : input.phone; - return matchesEntirely(national_number, metadata.nationalNumberPattern()); - } - - // - // E.g. "(999) 111-22-33" -> "999 111 22 33" - // - // For some reason Google's metadata contains ``s with brackets and dashes. - // Meanwhile, there's no single opinion about using punctuation in international phone numbers. - // - // For example, Google's `` for USA is `+1 213-373-4253`. - // And here's a quote from WikiPedia's "North American Numbering Plan" page: - // https://en.wikipedia.org/wiki/North_American_Numbering_Plan - // - // "The country calling code for all countries participating in the NANP is 1. - // In international format, an NANP number should be listed as +1 301 555 01 00, - // where 301 is an area code (Maryland)." - // - // I personally prefer the international format without any punctuation. - // For example, brackets are remnants of the old age, meaning that the - // phone number part in brackets (so called "area code") can be omitted - // if dialing within the same "area". - // And hyphens were clearly introduced for splitting local numbers into memorizable groups. - // For example, remembering "5553535" is difficult but "555-35-35" is much simpler. - // Imagine a man taking a bus from home to work and seeing an ad with a phone number. - // He has a couple of seconds to memorize that number until it passes by. - // If it were spaces instead of hyphens the man wouldn't necessarily get it, - // but with hyphens instead of spaces the grouping is more explicit. - // I personally think that hyphens introduce visual clutter, - // so I prefer replacing them with spaces in international numbers. - // In the modern age all output is done on displays where spaces are clearly distinguishable - // so hyphens can be safely replaced with spaces without losing any legibility. - // - - function applyInternationalSeparatorStyle(formattedNumber) { - return formattedNumber.replace(new RegExp("[".concat(VALID_PUNCTUATION, "]+"), 'g'), ' ').trim(); - } - - // first group is not used in the national pattern (e.g. Argentina) so the $1 - // group does not match correctly. Therefore, we use `\d`, so that the first - // group actually used in the pattern will be matched. - - var FIRST_GROUP_PATTERN = /(\$\d)/; - function formatNationalNumberUsingFormat(number, format, _ref) { - var useInternationalFormat = _ref.useInternationalFormat, - withNationalPrefix = _ref.withNationalPrefix, - carrierCode = _ref.carrierCode, - metadata = _ref.metadata; - var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`, - // because that one is only used when formatting phone numbers - // for dialing from a mobile phone, and this is not a dialing library. - // carrierCode && format.domesticCarrierCodeFormattingRule() - // // First, replace the $CC in the formatting rule with the desired carrier code. - // // Then, replace the $FG in the formatting rule with the first group - // // and the carrier code combined in the appropriate way. - // ? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode)) - // : ( - // withNationalPrefix && format.nationalPrefixFormattingRule() - // ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) - // : format.format() - // ) - withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format()); - - if (useInternationalFormat) { - return applyInternationalSeparatorStyle(formattedNumber); - } - - return formattedNumber; - } - - /** - * Pattern that makes it easy to distinguish whether a region has a single - * international dialing prefix or not. If a region has a single international - * prefix (e.g. 011 in USA), it will be represented as a string that contains - * a sequence of ASCII digits, and possibly a tilde, which signals waiting for - * the tone. If there are multiple available international prefixes in a - * region, they will be represented as a regex string that always contains one - * or more characters that are not ASCII digits or a tilde. - */ - - var SINGLE_IDD_PREFIX_REG_EXP = /^[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?$/; // For regions that have multiple IDD prefixes - // a preferred IDD prefix is returned. - - function getIddPrefix(country, callingCode, metadata) { - var countryMetadata = new Metadata(metadata); - countryMetadata.selectNumberingPlan(country, callingCode); - - if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) { - return countryMetadata.IDDPrefix(); - } - - return countryMetadata.defaultIDDPrefix(); - } - - function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } - - function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - var DEFAULT_OPTIONS = { - formatExtension: function formatExtension(formattedNumber, extension, metadata) { - return "".concat(formattedNumber).concat(metadata.ext()).concat(extension); - } // Formats a phone number - // - // Example use cases: - // - // ```js - // formatNumber('8005553535', 'RU', 'INTERNATIONAL') - // formatNumber('8005553535', 'RU', 'INTERNATIONAL', metadata) - // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL') - // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', metadata) - // formatNumber('+78005553535', 'NATIONAL') - // formatNumber('+78005553535', 'NATIONAL', metadata) - // ``` - // - - }; - function formatNumber(input, format, options, metadata) { - // Apply default options. - if (options) { - options = _objectSpread({}, DEFAULT_OPTIONS, options); - } else { - options = DEFAULT_OPTIONS; - } - - metadata = new Metadata(metadata); - - if (input.country && input.country !== '001') { - // Validate `input.country`. - if (!metadata.hasCountry(input.country)) { - throw new Error("Unknown country: ".concat(input.country)); - } - - metadata.country(input.country); - } else if (input.countryCallingCode) { - metadata.selectNumberingPlan(input.countryCallingCode); - } else return input.phone || ''; - - var countryCallingCode = metadata.countryCallingCode(); - var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s - // but Babel has a bug and it says "duplicate variable declaration". - - var number; - - switch (format) { - case 'NATIONAL': - // Legacy argument support. - // (`{ country: ..., phone: '' }`) - if (!nationalNumber) { - return ''; - } - - number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options); - return addExtension(number, input.ext, metadata, options.formatExtension); - - case 'INTERNATIONAL': - // Legacy argument support. - // (`{ country: ..., phone: '' }`) - if (!nationalNumber) { - return "+".concat(countryCallingCode); - } - - number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options); - number = "+".concat(countryCallingCode, " ").concat(number); - return addExtension(number, input.ext, metadata, options.formatExtension); - - case 'E.164': - // `E.164` doesn't define "phone number extensions". - return "+".concat(countryCallingCode).concat(nationalNumber); - - case 'RFC3966': - return formatRFC3966({ - number: "+".concat(countryCallingCode).concat(nationalNumber), - ext: input.ext - }); - // For reference, here's Google's IDD formatter: - // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546 - // Not saying that this IDD formatter replicates it 1:1, but it seems to work. - // Who would even need to format phone numbers in IDD format anyway? - - case 'IDD': - if (!options.fromCountry) { - return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.') - } - - var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata); - return addExtension(formattedNumber, input.ext, metadata, options.formatExtension); - - default: - throw new Error("Unknown \"format\" argument passed to \"formatNumber()\": \"".concat(format, "\"")); - } - } - - function formatNationalNumber(number, carrierCode, formatAs, metadata, options) { - var format = chooseFormatForNumber(metadata.formats(), number); - - if (!format) { - return number; - } - - return formatNationalNumberUsingFormat(number, format, { - useInternationalFormat: formatAs === 'INTERNATIONAL', - withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true, - carrierCode: carrierCode, - metadata: metadata - }); - } - - function chooseFormatForNumber(availableFormats, nationalNnumber) { - for (var _iterator = availableFormats, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var format = _ref; - - // Validate leading digits - if (format.leadingDigitsPatterns().length > 0) { - // The last leading_digits_pattern is used here, as it is the most detailed - var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format - - if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) { - continue; - } - } // Check that the national number matches the phone number format regular expression - - - if (matchesEntirely(nationalNnumber, format.pattern())) { - return format; - } - } - } - - function addExtension(formattedNumber, ext, metadata, formatExtension) { - return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber; - } - - function formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) { - var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code. - - if (fromCountryCallingCode === countryCallingCode) { - var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions - // but prefix it with the country calling code. - - if (countryCallingCode === '1') { - return countryCallingCode + ' ' + formattedNumber; - } // If regions share a country calling code, the country calling code need - // not be dialled. This also applies when dialling within a region, so this - // if clause covers both these cases. Technically this is the case for - // dialling from La Reunion to other overseas departments of France (French - // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover - // this edge case for now and for those cases return the version including - // country calling code. Details here: - // http://www.petitfute.com/voyage/225-info-pratiques-reunion - // - - - return formattedNumber; - } - - var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata); - - if (iddPrefix) { - return "".concat(iddPrefix, " ").concat(countryCallingCode, " ").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata)); - } - } - - function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$1(target, key, source[key]); }); } return target; } - - function _defineProperty$1(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - - function _classCallCheck$2(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - function _defineProperties$1(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - - function _createClass$1(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties$1(Constructor.prototype, protoProps); if (staticProps) _defineProperties$1(Constructor, staticProps); return Constructor; } - - var PhoneNumber = - /*#__PURE__*/ - function () { - function PhoneNumber(countryCallingCode, nationalNumber, metadata) { - _classCallCheck$2(this, PhoneNumber); - - if (!countryCallingCode) { - throw new TypeError('`country` or `countryCallingCode` not passed'); - } - - if (!nationalNumber) { - throw new TypeError('`nationalNumber` not passed'); - } - - var _metadata = new Metadata(metadata); // If country code is passed then derive `countryCallingCode` from it. - // Also store the country code as `.country`. - - - if (isCountryCode(countryCallingCode)) { - this.country = countryCallingCode; - - _metadata.country(countryCallingCode); - - countryCallingCode = _metadata.countryCallingCode(); - } - - this.countryCallingCode = countryCallingCode; - this.nationalNumber = nationalNumber; - this.number = '+' + this.countryCallingCode + this.nationalNumber; - this.metadata = metadata; - } - - _createClass$1(PhoneNumber, [{ - key: "isPossible", - value: function isPossible() { - return isPossiblePhoneNumber(this, { - v2: true - }, this.metadata); - } - }, { - key: "isValid", - value: function isValid() { - return isValidNumber(this, { - v2: true - }, this.metadata); - } - }, { - key: "isNonGeographic", - value: function isNonGeographic() { - var metadata = new Metadata(this.metadata); - return metadata.isNonGeographicCallingCode(this.countryCallingCode); - } - }, { - key: "isEqual", - value: function isEqual(phoneNumber) { - return this.number === phoneNumber.number && this.ext === phoneNumber.ext; - } // // Is just an alias for `this.isValid() && this.country === country`. - // // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion - // isValidForRegion(country) { - // return isValidNumberForRegion(this, country, { v2: true }, this.metadata) - // } - - }, { - key: "getType", - value: function getType() { - return getNumberType(this, { - v2: true - }, this.metadata); - } - }, { - key: "format", - value: function format(_format, options) { - return formatNumber(this, _format, options ? _objectSpread$1({}, options, { - v2: true - }) : { - v2: true - }, this.metadata); - } - }, { - key: "formatNational", - value: function formatNational(options) { - return this.format('NATIONAL', options); - } - }, { - key: "formatInternational", - value: function formatInternational(options) { - return this.format('INTERNATIONAL', options); - } - }, { - key: "getURI", - value: function getURI(options) { - return this.format('RFC3966', options); - } - }]); - - return PhoneNumber; - }(); - - var isCountryCode = function isCountryCode(value) { - return /^[A-Z]{2}$/.test(value); - }; - - var CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])'); - function stripIddPrefix(number, country, callingCode, metadata) { - if (!country) { - return; - } // Check if the number is IDD-prefixed. - - - var countryMetadata = new Metadata(metadata); - countryMetadata.selectNumberingPlan(country, callingCode); - var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix()); - - if (number.search(IDDPrefixPattern) !== 0) { - return; - } // Strip IDD prefix. - - - number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix, - // then those digits are a country calling code. - // Since no country code starts with a `0`, - // the code below validates that the next digit (if present) is not `0`. - - var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN); - - if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) { - if (matchedGroups[1] === '0') { - return; - } - } - - return number; - } - - /** - * Strips any national prefix (such as 0, 1) present in a - * (possibly incomplete) number provided. - * "Carrier codes" are only used in Colombia and Brazil, - * and only when dialing within those countries from a mobile phone to a fixed line number. - * Sometimes it won't actually strip national prefix - * and will instead prepend some digits to the `number`: - * for example, when number `2345678` is passed with `VI` country selected, - * it will return `{ number: "3402345678" }`, because `340` area code is prepended. - * @param {string} number — National number digits. - * @param {object} metadata — Metadata with country selected. - * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`. - */ - function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) { - if (number && metadata.numberingPlan.nationalPrefixForParsing()) { - // See METADATA.md for the description of - // `national_prefix_for_parsing` and `national_prefix_transform_rule`. - // Attempt to parse the first digits as a national prefix. - var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')'); - var prefixMatch = prefixPattern.exec(number); - - if (prefixMatch) { - var nationalNumber; - var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule - // If a `national_prefix_for_parsing` has any "capturing groups" - // then it means that the national (significant) number is equal to - // those "capturing groups" transformed via `national_prefix_transform_rule`, - // and nothing could be said about the actual national prefix: - // what is it and was it even there. - // If a `national_prefix_for_parsing` doesn't have any "capturing groups", - // then everything it matches is a national prefix. - // To determine whether `national_prefix_for_parsing` matched any - // "capturing groups", the value of the result of calling `.exec()` - // is looked at, and if it has non-undefined values where there're - // "capturing groups" in the regular expression, then it means - // that "capturing groups" have been matched. - // It's not possible to tell whether there'll be any "capturing gropus" - // before the matching process, because a `national_prefix_for_parsing` - // could exhibit both behaviors. - - var capturedGroupsCount = prefixMatch.length - 1; - var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount]; - - if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) { - nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group, - // then carrier code is the second one. - - if (capturedGroupsCount > 1) { - carrierCode = prefixMatch[1]; - } - } // If there're no "capturing groups", - // or if there're "capturing groups" but no - // `national_prefix_transform_rule`, - // then just strip the national prefix from the number, - // and possibly a carrier code. - // Seems like there could be more. - else { - // `prefixBeforeNationalNumber` is the whole substring matched by - // the `national_prefix_for_parsing` regular expression. - // There seem to be no guarantees that it's just a national prefix. - // For example, if there's a carrier code, it's gonna be a - // part of `prefixBeforeNationalNumber` too. - var prefixBeforeNationalNumber = prefixMatch[0]; - nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group, - // then carrier code is the first one. - - if (hasCapturedGroups) { - carrierCode = prefixMatch[1]; - } - } // Tries to guess whether a national prefix was present in the input. - // This is not something copy-pasted from Google's library: - // they don't seem to have an equivalent for that. - // So this isn't an "officially approved" way of doing something like that. - // But since there seems no other existing method, this library uses it. - - - var nationalPrefix; - - if (hasCapturedGroups) { - var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]); - var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`. - // `prefixMatch[0]` is `01115`, and `$1` is `11`, - // and the rest of the phone number is `23456789`. - // The national number is transformed via `9$1` to `91123456789`. - // National prefix `0` is detected being present at the start. - // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) { - - if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) { - nationalPrefix = metadata.numberingPlan.nationalPrefix(); - } - } else { - nationalPrefix = prefixMatch[0]; - } - - return { - nationalNumber: nationalNumber, - nationalPrefix: nationalPrefix, - carrierCode: carrierCode - }; - } - } - - return { - nationalNumber: number - }; - } - - /** - * Strips national prefix and carrier code from a complete phone number. - * The difference from the non-"FromCompleteNumber" function is that - * it won't extract national prefix if the resultant number is too short - * to be a complete number for the selected phone numbering plan. - * @param {string} number — Complete phone number digits. - * @param {Metadata} metadata — Metadata with a phone numbering plan selected. - * @return {object} `{ nationalNumber: string, carrierCode: string? }`. - */ - - function extractNationalNumber(number, metadata) { - // Parsing national prefixes and carrier codes - // is only required for local phone numbers - // but some people don't understand that - // and sometimes write international phone numbers - // with national prefixes (or maybe even carrier codes). - // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html - // Google's original library forgives such mistakes - // and so does this library, because it has been requested: - // https://github.com/catamphetamine/libphonenumber-js/issues/127 - var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata), - nationalNumber = _extractNationalNumbe.nationalNumber, - carrierCode = _extractNationalNumbe.carrierCode; - - if (!shouldExtractNationalPrefix(number, nationalNumber, metadata)) { - // Don't strip the national prefix. - return { - nationalNumber: number - }; - } // If a national prefix has been extracted, check to see - // if the resultant number isn't too short. - // Same code in Google's `libphonenumber`: - // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3291-L3302 - // For some reason, they do this check right after the `national_number_pattern` check - // this library does in `shouldExtractNationalPrefix()` function. - // Why is there a second "resultant" number validity check? - // They don't provide an explanation. - // This library just copies the behavior. - - - if (number.length !== nationalNumber.length + (carrierCode ? carrierCode.length : 0)) { - // If not using legacy generated metadata (before version `1.0.18`) - // then it has "possible lengths", so use those to validate the number length. - if (metadata.possibleLengths()) { - // "We require that the NSN remaining after stripping the national prefix and - // carrier code be long enough to be a possible length for the region. - // Otherwise, we don't do the stripping, since the original number could be - // a valid short number." - // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250 - switch (checkNumberLength(nationalNumber, metadata)) { - case 'TOO_SHORT': - case 'INVALID_LENGTH': - // case 'IS_POSSIBLE_LOCAL_ONLY': - // Don't strip the national prefix. - return { - nationalNumber: number - }; - } - } - } - - return { - nationalNumber: nationalNumber, - carrierCode: carrierCode - }; - } // In some countries, the same digit could be a national prefix - // or a leading digit of a valid phone number. - // For example, in Russia, national prefix is `8`, - // and also `800 555 35 35` is a valid number - // in which `8` is not a national prefix, but the first digit - // of a national (significant) number. - // Same's with Belarus: - // `82004910060` is a valid national (significant) number, - // but `2004910060` is not. - // To support such cases (to prevent the code from always stripping - // national prefix), a condition is imposed: a national prefix - // is not extracted when the original number is "viable" and the - // resultant number is not, a "viable" national number being the one - // that matches `national_number_pattern`. - - function shouldExtractNationalPrefix(number, nationalSignificantNumber, metadata) { - // The equivalent in Google's code is: - // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004 - if (matchesEntirely(number, metadata.nationalNumberPattern()) && !matchesEntirely(nationalSignificantNumber, metadata.nationalNumberPattern())) { - return false; - } // Just "possible" number check would be more relaxed, so it's not used. - // if (isPossibleNumber(number, metadata) && - // !isPossibleNumber(numberWithNationalPrefixExtracted, metadata)) { - // return false - // } - - - return true; - } - - /** - * Sometimes some people incorrectly input international phone numbers - * without the leading `+`. This function corrects such input. - * @param {string} number — Phone number digits. - * @param {string?} country - * @param {string?} callingCode - * @param {object} metadata - * @return {object} `{ countryCallingCode: string?, number: string }`. - */ - - function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) { - var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode; - - if (number.indexOf(countryCallingCode) === 0) { - metadata = new Metadata(metadata); - metadata.selectNumberingPlan(country, callingCode); - var possibleShorterNumber = number.slice(countryCallingCode.length); - - var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata), - possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber; - - var _extractNationalNumbe2 = extractNationalNumber(number, metadata), - nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now, - // or if it was too long before, we consider the number - // with the country calling code stripped to be a better result - // and keep that instead. - // For example, in Germany (+49), `49` is a valid area code, - // so if a number starts with `49`, it could be both a valid - // national German number or an international number without - // a leading `+`. - - - if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') { - return { - countryCallingCode: countryCallingCode, - number: possibleShorterNumber - }; - } - } - - return { - number: number - }; - } - - /** - * Converts a phone number digits (possibly with a `+`) - * into a calling code and the rest phone number digits. - * The "rest phone number digits" could include - * a national prefix, carrier code, and national - * (significant) number. - * @param {string} number — Phone number digits (possibly with a `+`). - * @param {string} [country] — Default country. - * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic). - * @param {object} metadata - * @return {object} `{ countryCallingCode: string?, number: string }` - * @example - * // Returns `{ countryCallingCode: "1", number: "2133734253" }`. - * extractCountryCallingCode('2133734253', 'US', null, metadata) - * extractCountryCallingCode('2133734253', null, '1', metadata) - * extractCountryCallingCode('+12133734253', null, null, metadata) - * extractCountryCallingCode('+12133734253', 'RU', null, metadata) - */ - - function extractCountryCallingCode(number, country, callingCode, metadata) { - if (!number) { - return {}; - } // If this is not an international phone number, - // then either extract an "IDD" prefix, or extract a - // country calling code from a number by autocorrecting it - // by prepending a leading `+` in cases when it starts - // with the country calling code. - // https://wikitravel.org/en/International_dialling_prefix - // https://github.com/catamphetamine/libphonenumber-js/issues/376 - - - if (number[0] !== '+') { - // Convert an "out-of-country" dialing phone number - // to a proper international phone number. - var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then - // convert the number to international one - // for subsequent parsing. - - if (numberWithoutIDD && numberWithoutIDD !== number) { - number = '+' + numberWithoutIDD; - } else { - // Check to see if the number starts with the country calling code - // for the default country. If so, we remove the country calling code, - // and do some checks on the validity of the number before and after. - // https://github.com/catamphetamine/libphonenumber-js/issues/376 - if (country || callingCode) { - var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata), - countryCallingCode = _extractCountryCallin.countryCallingCode, - shorterNumber = _extractCountryCallin.number; - - if (countryCallingCode) { - return { - countryCallingCode: countryCallingCode, - number: shorterNumber - }; - } - } - - return { - number: number - }; - } - } // Fast abortion: country codes do not begin with a '0' - - - if (number[1] === '0') { - return {}; - } - - metadata = new Metadata(metadata); // The thing with country phone codes - // is that they are orthogonal to each other - // i.e. there's no such country phone code A - // for which country phone code B exists - // where B starts with A. - // Therefore, while scanning digits, - // if a valid country code is found, - // that means that it is the country code. - // - - var i = 2; - - while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) { - var _countryCallingCode = number.slice(1, i); - - if (metadata.hasCallingCode(_countryCallingCode)) { - metadata.selectNumberingPlan(_countryCallingCode); - return { - countryCallingCode: _countryCallingCode, - number: number.slice(i) - }; - } - - i++; - } - - return {}; - } - - function getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata) { - - - var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode); - - if (!possibleCountries) { - return; - } // If there's just one country corresponding to the country code, - // then just return it, without further phone number digits validation. - - - if (possibleCountries.length === 1) { - return possibleCountries[0]; - } - - return selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata.metadata); - } - - function selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata) { - // Re-create `metadata` because it will be selecting a `country`. - metadata = new Metadata(metadata); - - for (var _iterator = possibleCountries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { - var _ref; - - if (_isArray) { - if (_i >= _iterator.length) break; - _ref = _iterator[_i++]; - } else { - _i = _iterator.next(); - if (_i.done) break; - _ref = _i.value; - } - - var country = _ref; - metadata.country(country); // Leading digits check would be the simplest one - - if (metadata.leadingDigits()) { - if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) { - return country; - } - } // Else perform full validation with all of those - // fixed-line/mobile/etc regular expressions. - else if (getNumberType({ - phone: nationalPhoneNumber, - country: country - }, undefined, metadata.metadata)) { - return country; - } - } - } - - // This is a port of Google Android `libphonenumber`'s - // This prevents malicious input from consuming CPU. - - var MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits. - - var PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove. - // A trailing `#` is sometimes used when writing phone numbers with extensions in US. - // Example: "+1 (645) 123 1234-910#" number has extension "910". - - var AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$'); - // { - // country: - // { - // restrict - (a two-letter country code) - // the phone number must be in this country - // - // default - (a two-letter country code) - // default country to use for phone number parsing and validation - // (if no country code could be derived from the phone number) - // } - // } - // - // Returns `{ country, number }` - // - // Example use cases: - // - // ```js - // parse('8 (800) 555-35-35', 'RU') - // parse('8 (800) 555-35-35', 'RU', metadata) - // parse('8 (800) 555-35-35', { country: { default: 'RU' } }) - // parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata) - // parse('+7 800 555 35 35') - // parse('+7 800 555 35 35', metadata) - // ``` - // - - function parse(text, options, metadata) { - // If assigning the `{}` default value is moved to the arguments above, - // code coverage would decrease for some weird reason. - options = options || {}; - metadata = new Metadata(metadata); // Validate `defaultCountry`. - - if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) { - if (options.v2) { - throw new ParseError('INVALID_COUNTRY'); - } - - throw new Error("Unknown country: ".concat(options.defaultCountry)); - } // Parse the phone number. - - - var _parseInput = parseInput(text, options.v2), - formattedPhoneNumber = _parseInput.number, - ext = _parseInput.ext; // If the phone number is not viable then return nothing. - - - if (!formattedPhoneNumber) { - if (options.v2) { - throw new ParseError('NOT_A_NUMBER'); - } - - return {}; - } - - var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata), - country = _parsePhoneNumber.country, - nationalNumber = _parsePhoneNumber.nationalNumber, - countryCallingCode = _parsePhoneNumber.countryCallingCode, - carrierCode = _parsePhoneNumber.carrierCode; - - if (!metadata.hasSelectedNumberingPlan()) { - if (options.v2) { - throw new ParseError('INVALID_COUNTRY'); - } - - return {}; - } // Validate national (significant) number length. - - - if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) { - // Won't throw here because the regexp already demands length > 1. - - /* istanbul ignore if */ - if (options.v2) { - throw new ParseError('TOO_SHORT'); - } // Google's demo just throws an error in this case. - - - return {}; - } // Validate national (significant) number length. - // - // A sidenote: - // - // They say that sometimes national (significant) numbers - // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany). - // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36 - // Such numbers will just be discarded. - // - - - if (nationalNumber.length > MAX_LENGTH_FOR_NSN) { - if (options.v2) { - throw new ParseError('TOO_LONG'); - } // Google's demo just throws an error in this case. - - - return {}; - } - - if (options.v2) { - var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata); - - if (country) { - phoneNumber.country = country; - } - - if (carrierCode) { - phoneNumber.carrierCode = carrierCode; - } - - if (ext) { - phoneNumber.ext = ext; - } - - return phoneNumber; - } // Check if national phone number pattern matches the number. - // National number pattern is different for each country, - // even for those ones which are part of the "NANPA" group. - - - var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false; - - if (!options.extended) { - return valid ? result(country, nationalNumber, ext) : {}; - } // isInternational: countryCallingCode !== undefined - - - return { - country: country, - countryCallingCode: countryCallingCode, - carrierCode: carrierCode, - valid: valid, - possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false, - phone: nationalNumber, - ext: ext - }; - } - /** - * Extracts a formatted phone number from text. - * Doesn't guarantee that the extracted phone number - * is a valid phone number (for example, doesn't validate its length). - * @param {string} text - * @param {boolean} throwOnError — By default, it won't throw if the text is too long. - * @return {string} - * @example - * // Returns "(213) 373-4253". - * extractFormattedPhoneNumber("Call (213) 373-4253 for assistance.") - */ - - function extractFormattedPhoneNumber(text, throwOnError) { - if (!text) { - return; - } - - if (text.length > MAX_INPUT_STRING_LENGTH) { - if (throwOnError) { - throw new ParseError('TOO_LONG'); - } - - return; - } // Attempt to extract a possible number from the string passed in - - - var startsAt = text.search(PHONE_NUMBER_START_PATTERN); - - if (startsAt < 0) { - return; - } - - return text // Trim everything to the left of the phone number - .slice(startsAt) // Remove trailing non-numerical characters - .replace(AFTER_PHONE_NUMBER_END_PATTERN, ''); - } - /** - * @param {string} text - Input. - * @return {object} `{ ?number, ?ext }`. - */ - - function parseInput(text, v2) { - // Parse RFC 3966 phone number URI. - if (text && text.indexOf('tel:') === 0) { - return parseRFC3966(text); - } - - var number = extractFormattedPhoneNumber(text, v2); // If the phone number is not viable, then abort. - - if (!number || !isViablePhoneNumber(number)) { - return {}; - } // Attempt to parse extension first, since it doesn't require region-specific - // data and we want to have the non-normalised number here. - - - var withExtensionStripped = extractExtension(number); - - if (withExtensionStripped.ext) { - return withExtensionStripped; - } - - return { - number: number - }; - } - /** - * Creates `parse()` result object. - */ - - - function result(country, nationalNumber, ext) { - var result = { - country: country, - phone: nationalNumber - }; - - if (ext) { - result.ext = ext; - } - - return result; - } - /** - * Parses a viable phone number. - * @param {string} formattedPhoneNumber — Example: "(213) 373-4253". - * @param {string} [defaultCountry] - * @param {string} [defaultCallingCode] - * @param {Metadata} metadata - * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`. - */ - - - function parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) { - // Extract calling code from phone number. - var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata), - countryCallingCode = _extractCountryCallin.countryCallingCode, - number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`. - - - var country; - - if (countryCallingCode) { - metadata.selectNumberingPlan(countryCallingCode); - } // If `formattedPhoneNumber` is in "national" format - // then `number` is defined and `countryCallingCode` isn't. - else if (number && (defaultCountry || defaultCallingCode)) { - metadata.selectNumberingPlan(defaultCountry, defaultCallingCode); - - if (defaultCountry) { - country = defaultCountry; - } - - countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata); - } else return {}; - - if (!number) { - return { - countryCallingCode: countryCallingCode - }; - } - - var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata), - nationalNumber = _extractNationalNumbe.nationalNumber, - carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries - // corresponding to the same country phone code - // (e.g. NANPA countries all having `1` country phone code). - // Therefore, to reliably determine the exact country, - // national (significant) number should have been parsed first. - // - // When `metadata.json` is generated, all "ambiguous" country phone codes - // get their countries populated with the full set of - // "phone number type" regular expressions. - // - - - var exactCountry = getCountryByCallingCode(countryCallingCode, nationalNumber, metadata); - - if (exactCountry) { - country = exactCountry; - /* istanbul ignore if */ - - if (exactCountry === '001') ; else { - metadata.country(country); - } - } - - return { - country: country, - countryCallingCode: countryCallingCode, - nationalNumber: nationalNumber, - carrierCode: carrierCode - }; - } - - function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$2(target, key, source[key]); }); } return target; } - - function _defineProperty$2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - function parsePhoneNumber$1(text, options, metadata) { - return parse(text, _objectSpread$2({}, options, { - v2: true - }), metadata); - } - - function _typeof$1(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof$1(obj); } - - function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$3(target, key, source[key]); }); } return target; } - - function _defineProperty$3(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - - function _slicedToArray$1(arr, i) { return _arrayWithHoles$1(arr) || _iterableToArrayLimit$1(arr, i) || _nonIterableRest$1(); } - - function _nonIterableRest$1() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - - function _iterableToArrayLimit$1(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - - function _arrayWithHoles$1(arr) { if (Array.isArray(arr)) return arr; } - function normalizeArguments(args) { - var _Array$prototype$slic = Array.prototype.slice.call(args), - _Array$prototype$slic2 = _slicedToArray$1(_Array$prototype$slic, 4), - arg_1 = _Array$prototype$slic2[0], - arg_2 = _Array$prototype$slic2[1], - arg_3 = _Array$prototype$slic2[2], - arg_4 = _Array$prototype$slic2[3]; - - var text; - var options; - var metadata; // If the phone number is passed as a string. - // `parsePhoneNumber('88005553535', ...)`. - - if (typeof arg_1 === 'string') { - text = arg_1; - } else throw new TypeError('A text for parsing must be a string.'); // If "default country" argument is being passed then move it to `options`. - // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`. - - - if (!arg_2 || typeof arg_2 === 'string') { - if (arg_4) { - options = arg_3; - metadata = arg_4; - } else { - options = undefined; - metadata = arg_3; - } - - if (arg_2) { - options = _objectSpread$3({ - defaultCountry: arg_2 - }, options); - } - } // `defaultCountry` is not passed. - // Example: `parsePhoneNumber('+78005553535', [options], metadata)`. - else if (isObject(arg_2)) { - if (arg_3) { - options = arg_2; - metadata = arg_3; - } else { - metadata = arg_2; - } - } else throw new Error("Invalid second argument: ".concat(arg_2)); - - return { - text: text, - options: options, - metadata: metadata - }; - } // Otherwise istanbul would show this as "branch not covered". - - /* istanbul ignore next */ - - var isObject = function isObject(_) { - return _typeof$1(_) === 'object'; - }; - - function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty$4(target, key, source[key]); }); } return target; } - - function _defineProperty$4(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - function parsePhoneNumberFromString(text, options, metadata) { - // Validate `defaultCountry`. - if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) { - options = _objectSpread$4({}, options, { - defaultCountry: undefined - }); - } // Parse phone number. - - - try { - return parsePhoneNumber$1(text, options, metadata); - } catch (error) { - /* istanbul ignore else */ - if (error instanceof ParseError) ; else { - throw error; - } - } - } - - function parsePhoneNumberFromString$1() { - var _normalizeArguments = normalizeArguments(arguments), - text = _normalizeArguments.text, - options = _normalizeArguments.options, - metadata = _normalizeArguments.metadata; - - return parsePhoneNumberFromString(text, options, metadata); - } - - function parsePhoneNumberFromString$2() { - return withMetadata(parsePhoneNumberFromString$1, arguments) - } - - var IS_PHONE_NUMBER = 'isPhoneNumber'; - /** - * Checks if the string is a valid phone number. To successfully validate any phone number the text must include - * the intl. calling code, if the calling code wont be provided then the region must be set. - * - * @param value the potential phone number string to test - * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation. - * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter. - */ - function isPhoneNumber(value, region) { - try { - var phoneNum = parsePhoneNumberFromString$2(value, region); - var result = phoneNum === null || phoneNum === void 0 ? void 0 : phoneNum.isValid(); - return !!result; - } - catch (error) { - // logging? - return false; - } - } - /** - * Checks if the string is a valid phone number. To successfully validate any phone number the text must include - * the intl. calling code, if the calling code wont be provided then the region must be set. - * - * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation. - * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter. - */ - function IsPhoneNumber(region, validationOptions) { - return ValidateBy({ - name: IS_PHONE_NUMBER, - constraints: [region], - validator: { - validate: function (value, args) { return isPhoneNumber(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid phone number'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_MILITARY_TIME = 'isMilitaryTime'; - /** - * Checks if the string represents a time without a given timezone in the format HH:MM (military) - * If the given value does not match the pattern HH:MM, then it returns false. - */ - function isMilitaryTime(value) { - var militaryTimeRegex = /^([01]\d|2[0-3]):?([0-5]\d)$/; - return typeof value === 'string' && matchesValidator(value, militaryTimeRegex); - } - /** - * Checks if the string represents a time without a given timezone in the format HH:MM (military) - * If the given value does not match the pattern HH:MM, then it returns false. - */ - function IsMilitaryTime(validationOptions) { - return ValidateBy({ - name: IS_MILITARY_TIME, - validator: { - validate: function (value, args) { return isMilitaryTime(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid representation of military time in the format HH:MM'; }, validationOptions), - }, - }, validationOptions); - } - - var isHash_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isHash; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var lengths = { - md5: 32, - md4: 32, - sha1: 40, - sha256: 64, - sha384: 96, - sha512: 128, - ripemd128: 32, - ripemd160: 40, - tiger128: 32, - tiger160: 40, - tiger192: 48, - crc32: 8, - crc32b: 8 - }; - - function isHash(str, algorithm) { - (0, _assertString.default)(str); - var hash = new RegExp("^[a-fA-F0-9]{".concat(lengths[algorithm], "}$")); - return hash.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isHashValidator = /*@__PURE__*/getDefaultExportFromCjs(isHash_1); - - var IS_HASH = 'isHash'; - /** - * Check if the string is a hash of type algorithm. - * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', - * 'tiger160', 'tiger192', 'crc32', 'crc32b'] - */ - function isHash(value, algorithm) { - return typeof value === 'string' && isHashValidator(value, algorithm); - } - /** - * Check if the string is a hash of type algorithm. - * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', - * 'tiger160', 'tiger192', 'crc32', 'crc32b'] - */ - function IsHash(algorithm, validationOptions) { - return ValidateBy({ - name: IS_HASH, - constraints: [algorithm], - validator: { - validate: function (value, args) { return isHash(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hash of type $constraint1'; }, validationOptions), - }, - }, validationOptions); - } - - var isISSN_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isISSN; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var issn = '^\\d{4}-?\\d{3}[\\dX]$'; - - function isISSN(str) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - (0, _assertString.default)(str); - var testIssn = issn; - testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn; - testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i'); - - if (!testIssn.test(str)) { - return false; - } - - var digits = str.replace('-', '').toUpperCase(); - var checksum = 0; - - for (var i = 0; i < digits.length; i++) { - var digit = digits[i]; - checksum += (digit === 'X' ? 10 : +digit) * (8 - i); - } - - return checksum % 11 === 0; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isISSNValidator = /*@__PURE__*/getDefaultExportFromCjs(isISSN_1); - - var IS_ISSN = 'isISSN'; - /** - * Checks if the string is a ISSN. - * If given value is not a string, then it returns false. - */ - function isISSN(value, options) { - return typeof value === 'string' && isISSNValidator(value, options); - } - /** - * Checks if the string is a ISSN. - * If given value is not a string, then it returns false. - */ - function IsISSN(options, validationOptions) { - return ValidateBy({ - name: IS_ISSN, - constraints: [options], - validator: { - validate: function (value, args) { return isISSN(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a ISSN'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_DATE_STRING = 'isDateString'; - /** - * Alias for IsISO8601 validator - */ - function isDateString(value, options) { - return isISO8601(value, options); - } - /** - * Alias for IsISO8601 validator - */ - function IsDateString(options, validationOptions) { - return ValidateBy({ - name: IS_DATE_STRING, - constraints: [options], - validator: { - validate: function (value, args) { return isDateString(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO 8601 date string'; }, validationOptions), - }, - }, validationOptions); - } - - var isBoolean_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isBoolean; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - function isBoolean(str) { - (0, _assertString.default)(str); - return ['true', 'false', '1', '0'].indexOf(str) >= 0; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isBooleanValidator = /*@__PURE__*/getDefaultExportFromCjs(isBoolean_1); - - var IS_BOOLEAN_STRING = 'isBooleanString'; - /** - * Checks if a string is a boolean. - * If given value is not a string, then it returns false. - */ - function isBooleanString(value) { - return typeof value === 'string' && isBooleanValidator(value); - } - /** - * Checks if a string is a boolean. - * If given value is not a string, then it returns false. - */ - function IsBooleanString(validationOptions) { - return ValidateBy({ - name: IS_BOOLEAN_STRING, - validator: { - validate: function (value, args) { return isBooleanString(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a boolean string'; }, validationOptions), - }, - }, validationOptions); - } - - var isNumeric_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isNumeric; - - var _assertString = _interopRequireDefault(assertString_1); - - - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var numericNoSymbols = /^[0-9]+$/; - - function isNumeric(str, options) { - (0, _assertString.default)(str); - - if (options && options.no_symbols) { - return numericNoSymbols.test(str); - } - - return new RegExp("^[+-]?([0-9]*[".concat((options || {}).locale ? alpha_1.decimal[options.locale] : '.', "])?[0-9]+$")).test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isNumericValidator = /*@__PURE__*/getDefaultExportFromCjs(isNumeric_1); - - var IS_NUMBER_STRING = 'isNumberString'; - /** - * Checks if the string is numeric. - * If given value is not a string, then it returns false. - */ - function isNumberString(value, options) { - return typeof value === 'string' && isNumericValidator(value, options); - } - /** - * Checks if the string is numeric. - * If given value is not a string, then it returns false. - */ - function IsNumberString(options, validationOptions) { - return ValidateBy({ - name: IS_NUMBER_STRING, - constraints: [options], - validator: { - validate: function (value, args) { return isNumberString(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a number string'; }, validationOptions), - }, - }, validationOptions); - } - - var isBase32_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isBase32; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var base32 = /^[A-Z2-7]+=*$/; - - function isBase32(str) { - (0, _assertString.default)(str); - var len = str.length; - - if (len % 8 === 0 && base32.test(str)) { - return true; - } - - return false; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isBase32Validator = /*@__PURE__*/getDefaultExportFromCjs(isBase32_1); - - var IS_BASE32 = 'isBase32'; - /** - * Checks if a string is base32 encoded. - * If given value is not a string, then it returns false. - */ - function isBase32(value) { - return typeof value === 'string' && isBase32Validator(value); - } - /** - * Check if a string is base32 encoded. - * If given value is not a string, then it returns false. - */ - function IsBase32(validationOptions) { - return ValidateBy({ - name: IS_BASE32, - validator: { - validate: function (value, args) { return isBase32(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be base32 encoded'; }, validationOptions), - }, - }, validationOptions); - } - - var isBIC_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isBIC; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var isBICReg = /^[A-z]{4}[A-z]{2}\w{2}(\w{3})?$/; - - function isBIC(str) { - (0, _assertString.default)(str); - return isBICReg.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isBICValidator = /*@__PURE__*/getDefaultExportFromCjs(isBIC_1); - - var IS_BIC = 'isBIC'; - /** - * Check if a string is a BIC (Bank Identification Code) or SWIFT code. - * If given value is not a string, then it returns false. - */ - function isBIC(value) { - return typeof value === 'string' && isBICValidator(value); - } - /** - * Check if a string is a BIC (Bank Identification Code) or SWIFT code. - * If given value is not a string, then it returns false. - */ - function IsBIC(validationOptions) { - return ValidateBy({ - name: IS_BIC, - validator: { - validate: function (value, args) { return isBIC(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a BIC or SWIFT code'; }, validationOptions), - }, - }, validationOptions); - } - - var isBtcAddress_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isBtcAddress; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - // supports Bech32 addresses - var btc = /^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/; - - function isBtcAddress(str) { - (0, _assertString.default)(str); - return btc.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isBtcAddressValidator = /*@__PURE__*/getDefaultExportFromCjs(isBtcAddress_1); - - var IS_BTC_ADDRESS = 'isBtcAddress'; - /** - * Check if the string is a valid BTC address. - * If given value is not a string, then it returns false. - */ - function isBtcAddress(value) { - return typeof value === 'string' && isBtcAddressValidator(value); - } - /** - * Check if the string is a valid BTC address. - * If given value is not a string, then it returns false. - */ - function IsBtcAddress(validationOptions) { - return ValidateBy({ - name: IS_BTC_ADDRESS, - validator: { - validate: function (value, args) { return isBtcAddress(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a BTC address'; }, validationOptions), - }, - }, validationOptions); - } - - var isDataURI_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isDataURI; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var validMediaType = /^[a-z]+\/[a-z0-9\-\+]+$/i; - var validAttribute = /^[a-z\-]+=[a-z0-9\-]+$/i; - var validData = /^[a-z0-9!\$&'\(\)\*\+,;=\-\._~:@\/\?%\s]*$/i; - - function isDataURI(str) { - (0, _assertString.default)(str); - var data = str.split(','); - - if (data.length < 2) { - return false; - } - - var attributes = data.shift().trim().split(';'); - var schemeAndMediaType = attributes.shift(); - - if (schemeAndMediaType.substr(0, 5) !== 'data:') { - return false; - } - - var mediaType = schemeAndMediaType.substr(5); - - if (mediaType !== '' && !validMediaType.test(mediaType)) { - return false; - } - - for (var i = 0; i < attributes.length; i++) { - if (i === attributes.length - 1 && attributes[i].toLowerCase() === 'base64') ; else if (!validAttribute.test(attributes[i])) { - return false; - } - } - - for (var _i = 0; _i < data.length; _i++) { - if (!validData.test(data[_i])) { - return false; - } - } - - return true; - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isDataURIValidator = /*@__PURE__*/getDefaultExportFromCjs(isDataURI_1); - - var IS_DATA_URI = 'isDataURI'; - /** - * Check if the string is a data uri format. - * If given value is not a string, then it returns false. - */ - function isDataURI(value) { - return typeof value === 'string' && isDataURIValidator(value); - } - /** - * Check if the string is a data uri format. - * If given value is not a string, then it returns false. - */ - function IsDataURI(validationOptions) { - return ValidateBy({ - name: IS_DATA_URI, - validator: { - validate: function (value, args) { return isDataURI(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a data uri format'; }, validationOptions), - }, - }, validationOptions); - } - - var isEAN_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isEAN; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * The most commonly used EAN standard is - * the thirteen-digit EAN-13, while the - * less commonly used 8-digit EAN-8 barcode was - * introduced for use on small packages. - * EAN consists of: - * GS1 prefix, manufacturer code, product code and check digit - * Reference: https://en.wikipedia.org/wiki/International_Article_Number - */ - - /** - * Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13 - * and Regular Expression for valid EANs (EAN-8, EAN-13), - * with exact numberic matching of 8 or 13 digits [0-9] - */ - var LENGTH_EAN_8 = 8; - var validEanRegex = /^(\d{8}|\d{13})$/; - /** - * Get position weight given: - * EAN length and digit index/position - * - * @param {number} length - * @param {number} index - * @return {number} - */ - - function getPositionWeightThroughLengthAndIndex(length, index) { - if (length === LENGTH_EAN_8) { - return index % 2 === 0 ? 3 : 1; - } - - return index % 2 === 0 ? 1 : 3; - } - /** - * Calculate EAN Check Digit - * Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit - * - * @param {string} ean - * @return {number} - */ - - - function calculateCheckDigit(ean) { - var checksum = ean.slice(0, -1).split('').map(function (char, index) { - return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index); - }).reduce(function (acc, partialSum) { - return acc + partialSum; - }, 0); - var remainder = 10 - checksum % 10; - return remainder < 10 ? remainder : 0; - } - /** - * Check if string is valid EAN: - * Matches EAN-8/EAN-13 regex - * Has valid check digit. - * - * @param {string} str - * @return {boolean} - */ - - - function isEAN(str) { - (0, _assertString.default)(str); - var actualCheckDigit = Number(str.slice(-1)); - return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isEANValidator = /*@__PURE__*/getDefaultExportFromCjs(isEAN_1); - - var IS_EAN = 'isEAN'; - /** - * Check if the string is an EAN (European Article Number). - * If given value is not a string, then it returns false. - */ - function isEAN(value) { - return typeof value === 'string' && isEANValidator(value); - } - /** - * Check if the string is an EAN (European Article Number). - * If given value is not a string, then it returns false. - */ - function IsEAN(validationOptions) { - return ValidateBy({ - name: IS_EAN, - validator: { - validate: function (value, args) { return isEAN(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an EAN (European Article Number)'; }, validationOptions), - }, - }, validationOptions); - } - - var isEthereumAddress_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isEthereumAddress; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var eth = /^(0x)[0-9a-f]{40}$/i; - - function isEthereumAddress(str) { - (0, _assertString.default)(str); - return eth.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isEthereumAddressValidator = /*@__PURE__*/getDefaultExportFromCjs(isEthereumAddress_1); - - var IS_ETHEREUM_ADDRESS = 'isEthereumAddress'; - /** - * Check if the string is an Ethereum address using basic regex. Does not validate address checksums. - * If given value is not a string, then it returns false. - */ - function isEthereumAddress(value) { - return typeof value === 'string' && isEthereumAddressValidator(value); - } - /** - * Check if the string is an Ethereum address using basic regex. Does not validate address checksums. - * If given value is not a string, then it returns false. - */ - function IsEthereumAddress(validationOptions) { - return ValidateBy({ - name: IS_ETHEREUM_ADDRESS, - validator: { - validate: function (value, args) { return isEthereumAddress(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an Ethereum address'; }, validationOptions), - }, - }, validationOptions); - } - - var isHSL_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isHSL; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var hslcomma = /^(hsl)a?\(\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn|\s*)(\s*,\s*(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s*(,\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s*)?\)$/i; - var hslspace = /^(hsl)a?\(\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn|\s)(\s*(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s*(\/\s*((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s*)?\)$/i; - - function isHSL(str) { - (0, _assertString.default)(str); - return hslcomma.test(str) || hslspace.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isHSLValidator = /*@__PURE__*/getDefaultExportFromCjs(isHSL_1); - - var IS_HSL = 'isHSL'; - /** - * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification. - * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)). - * If given value is not a string, then it returns false. - */ - function isHSL(value) { - return typeof value === 'string' && isHSLValidator(value); - } - /** - * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification. - * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)). - * If given value is not a string, then it returns false. - */ - function IsHSL(validationOptions) { - return ValidateBy({ - name: IS_HSL, - validator: { - validate: function (value, args) { return isHSL(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a HSL color'; }, validationOptions), - }, - }, validationOptions); - } - - var isIBAN_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isIBAN; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * List of country codes with - * corresponding IBAN regular expression - * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number - */ - var ibanRegexThroughCountryCode = { - AD: /^(AD[0-9]{2})\d{8}[A-Z0-9]{12}$/, - AE: /^(AE[0-9]{2})\d{3}\d{16}$/, - AL: /^(AL[0-9]{2})\d{8}[A-Z0-9]{16}$/, - AT: /^(AT[0-9]{2})\d{16}$/, - AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\d{20}$/, - BA: /^(BA[0-9]{2})\d{16}$/, - BE: /^(BE[0-9]{2})\d{12}$/, - BG: /^(BG[0-9]{2})[A-Z]{4}\d{6}[A-Z0-9]{8}$/, - BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/, - BR: /^(BR[0-9]{2})\d{23}[A-Z]{1}[A-Z0-9]{1}$/, - BY: /^(BY[0-9]{2})[A-Z0-9]{4}\d{20}$/, - CH: /^(CH[0-9]{2})\d{5}[A-Z0-9]{12}$/, - CR: /^(CR[0-9]{2})\d{18}$/, - CY: /^(CY[0-9]{2})\d{8}[A-Z0-9]{16}$/, - CZ: /^(CZ[0-9]{2})\d{20}$/, - DE: /^(DE[0-9]{2})\d{18}$/, - DK: /^(DK[0-9]{2})\d{14}$/, - DO: /^(DO[0-9]{2})[A-Z]{4}\d{20}$/, - EE: /^(EE[0-9]{2})\d{16}$/, - EG: /^(EG[0-9]{2})\d{25}$/, - ES: /^(ES[0-9]{2})\d{20}$/, - FI: /^(FI[0-9]{2})\d{14}$/, - FO: /^(FO[0-9]{2})\d{14}$/, - FR: /^(FR[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/, - GB: /^(GB[0-9]{2})[A-Z]{4}\d{14}$/, - GE: /^(GE[0-9]{2})[A-Z0-9]{2}\d{16}$/, - GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/, - GL: /^(GL[0-9]{2})\d{14}$/, - GR: /^(GR[0-9]{2})\d{7}[A-Z0-9]{16}$/, - GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/, - HR: /^(HR[0-9]{2})\d{17}$/, - HU: /^(HU[0-9]{2})\d{24}$/, - IE: /^(IE[0-9]{2})[A-Z0-9]{4}\d{14}$/, - IL: /^(IL[0-9]{2})\d{19}$/, - IQ: /^(IQ[0-9]{2})[A-Z]{4}\d{15}$/, - IR: /^(IR[0-9]{2})0\d{2}0\d{18}$/, - IS: /^(IS[0-9]{2})\d{22}$/, - IT: /^(IT[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/, - JO: /^(JO[0-9]{2})[A-Z]{4}\d{22}$/, - KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/, - KZ: /^(KZ[0-9]{2})\d{3}[A-Z0-9]{13}$/, - LB: /^(LB[0-9]{2})\d{4}[A-Z0-9]{20}$/, - LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/, - LI: /^(LI[0-9]{2})\d{5}[A-Z0-9]{12}$/, - LT: /^(LT[0-9]{2})\d{16}$/, - LU: /^(LU[0-9]{2})\d{3}[A-Z0-9]{13}$/, - LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/, - MC: /^(MC[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/, - MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/, - ME: /^(ME[0-9]{2})\d{18}$/, - MK: /^(MK[0-9]{2})\d{3}[A-Z0-9]{10}\d{2}$/, - MR: /^(MR[0-9]{2})\d{23}$/, - MT: /^(MT[0-9]{2})[A-Z]{4}\d{5}[A-Z0-9]{18}$/, - MU: /^(MU[0-9]{2})[A-Z]{4}\d{19}[A-Z]{3}$/, - NL: /^(NL[0-9]{2})[A-Z]{4}\d{10}$/, - NO: /^(NO[0-9]{2})\d{11}$/, - PK: /^(PK[0-9]{2})[A-Z0-9]{4}\d{16}$/, - PL: /^(PL[0-9]{2})\d{24}$/, - PS: /^(PS[0-9]{2})[A-Z0-9]{4}\d{21}$/, - PT: /^(PT[0-9]{2})\d{21}$/, - QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/, - RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/, - RS: /^(RS[0-9]{2})\d{18}$/, - SA: /^(SA[0-9]{2})\d{2}[A-Z0-9]{18}$/, - SC: /^(SC[0-9]{2})[A-Z]{4}\d{20}[A-Z]{3}$/, - SE: /^(SE[0-9]{2})\d{20}$/, - SI: /^(SI[0-9]{2})\d{15}$/, - SK: /^(SK[0-9]{2})\d{20}$/, - SM: /^(SM[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/, - SV: /^(SV[0-9]{2})[A-Z0-9]{4}\d{20}$/, - TL: /^(TL[0-9]{2})\d{19}$/, - TN: /^(TN[0-9]{2})\d{20}$/, - TR: /^(TR[0-9]{2})\d{5}[A-Z0-9]{17}$/, - UA: /^(UA[0-9]{2})\d{6}[A-Z0-9]{19}$/, - VA: /^(VA[0-9]{2})\d{18}$/, - VG: /^(VG[0-9]{2})[A-Z0-9]{4}\d{16}$/, - XK: /^(XK[0-9]{2})\d{16}$/ - }; - /** - * Check whether string has correct universal IBAN format - * The IBAN consists of up to 34 alphanumeric characters, as follows: - * Country Code using ISO 3166-1 alpha-2, two letters - * check digits, two digits and - * Basic Bank Account Number (BBAN), up to 30 alphanumeric characters. - * NOTE: Permitted IBAN characters are: digits [0-9] and the 26 latin alphabetic [A-Z] - * - * @param {string} str - string under validation - * @return {boolean} - */ - - function hasValidIbanFormat(str) { - // Strip white spaces and hyphens - var strippedStr = str.replace(/[\s\-]+/gi, '').toUpperCase(); - var isoCountryCode = strippedStr.slice(0, 2).toUpperCase(); - return isoCountryCode in ibanRegexThroughCountryCode && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr); - } - /** - * Check whether string has valid IBAN Checksum - * by performing basic mod-97 operation and - * the remainder should equal 1 - * -- Start by rearranging the IBAN by moving the four initial characters to the end of the string - * -- Replace each letter in the string with two digits, A -> 10, B = 11, Z = 35 - * -- Interpret the string as a decimal integer and - * -- compute the remainder on division by 97 (mod 97) - * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number - * - * @param {string} str - * @return {boolean} - */ - - - function hasValidIbanChecksum(str) { - var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic - - var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4); - var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function (char) { - return char.charCodeAt(0) - 55; - }); - var remainder = alphaCapsReplacedWithDigits.match(/\d{1,7}/g).reduce(function (acc, value) { - return Number(acc + value) % 97; - }, ''); - return remainder === 1; - } - - function isIBAN(str) { - (0, _assertString.default)(str); - return hasValidIbanFormat(str) && hasValidIbanChecksum(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isIBANValidator = /*@__PURE__*/getDefaultExportFromCjs(isIBAN_1); - - var IS_IBAN = 'isIBAN'; - /** - * Check if a string is a IBAN (International Bank Account Number). - * If given value is not a string, then it returns false. - */ - function isIBAN(value) { - return typeof value === 'string' && isIBANValidator(value); - } - /** - * Check if a string is a IBAN (International Bank Account Number). - * If given value is not a string, then it returns false. - */ - function IsIBAN(validationOptions) { - return ValidateBy({ - name: IS_IBAN, - validator: { - validate: function (value, args) { return isIBAN(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an IBAN'; }, validationOptions), - }, - }, validationOptions); - } - - var isIdentityCard_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isIdentityCard; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var validators = { - ES: function ES(str) { - (0, _assertString.default)(str); - var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/; - var charsValue = { - X: 0, - Y: 1, - Z: 2 - }; - var controlDigits = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E']; // sanitize user input - - var sanitized = str.trim().toUpperCase(); // validate the data structure - - if (!DNI.test(sanitized)) { - return false; - } // validate the control digit - - - var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function (char) { - return charsValue[char]; - }); - return sanitized.endsWith(controlDigits[number % 23]); - }, - IN: function IN(str) { - var DNI = /^[1-9]\d{3}\s?\d{4}\s?\d{4}$/; // multiplication table - - var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]]; // permutation table - - var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; // sanitize user input - - var sanitized = str.trim(); // validate the data structure - - if (!DNI.test(sanitized)) { - return false; - } - - var c = 0; - var invertedArray = sanitized.replace(/\s/g, '').split('').map(Number).reverse(); - invertedArray.forEach(function (val, i) { - c = d[c][p[i % 8][val]]; - }); - return c === 0; - }, - IT: function IT(str) { - if (str.length !== 9) return false; - if (str === 'CA00000AA') return false; // https://it.wikipedia.org/wiki/Carta_d%27identit%C3%A0_elettronica_italiana - - return str.search(/C[A-Z][0-9]{5}[A-Z]{2}/i) > -1; - }, - NO: function NO(str) { - var sanitized = str.trim(); - if (isNaN(Number(sanitized))) return false; - if (sanitized.length !== 11) return false; - if (sanitized === '00000000000') return false; // https://no.wikipedia.org/wiki/F%C3%B8dselsnummer - - var f = sanitized.split('').map(Number); - var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11; - var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11; - if (k1 !== f[9] || k2 !== f[10]) return false; - return true; - }, - 'he-IL': function heIL(str) { - var DNI = /^\d{9}$/; // sanitize user input - - var sanitized = str.trim(); // validate the data structure - - if (!DNI.test(sanitized)) { - return false; - } - - var id = sanitized; - var sum = 0, - incNum; - - for (var i = 0; i < id.length; i++) { - incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2 - - sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total - } - - return sum % 10 === 0; - }, - 'ar-TN': function arTN(str) { - var DNI = /^\d{8}$/; // sanitize user input - - var sanitized = str.trim(); // validate the data structure - - if (!DNI.test(sanitized)) { - return false; - } - - return true; - }, - 'zh-CN': function zhCN(str) { - var provincesAndCities = ['11', // 北京 - '12', // 天津 - '13', // 河北 - '14', // 山西 - '15', // 内蒙古 - '21', // 辽宁 - '22', // 吉林 - '23', // 黑龙江 - '31', // 上海 - '32', // 江苏 - '33', // 浙江 - '34', // 安徽 - '35', // 福建 - '36', // 江西 - '37', // 山东 - '41', // 河南 - '42', // 湖北 - '43', // 湖南 - '44', // 广东 - '45', // 广西 - '46', // 海南 - '50', // 重庆 - '51', // 四川 - '52', // 贵州 - '53', // 云南 - '54', // 西藏 - '61', // 陕西 - '62', // 甘肃 - '63', // 青海 - '64', // 宁夏 - '65', // 新疆 - '71', // 台湾 - '81', // 香港 - '82', // 澳门 - '91' // 国外 - ]; - var powers = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2']; - var parityBit = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; - - var checkAddressCode = function checkAddressCode(addressCode) { - return provincesAndCities.includes(addressCode); - }; - - var checkBirthDayCode = function checkBirthDayCode(birDayCode) { - var yyyy = parseInt(birDayCode.substring(0, 4), 10); - var mm = parseInt(birDayCode.substring(4, 6), 10); - var dd = parseInt(birDayCode.substring(6), 10); - var xdata = new Date(yyyy, mm - 1, dd); - - if (xdata > new Date()) { - return false; // eslint-disable-next-line max-len - } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) { - return true; - } - - return false; - }; - - var getParityBit = function getParityBit(idCardNo) { - var id17 = idCardNo.substring(0, 17); - var power = 0; - - for (var i = 0; i < 17; i++) { - power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10); - } - - var mod = power % 11; - return parityBit[mod]; - }; - - var checkParityBit = function checkParityBit(idCardNo) { - return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase(); - }; - - var check15IdCardNo = function check15IdCardNo(idCardNo) { - var check = /^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(idCardNo); - if (!check) return false; - var addressCode = idCardNo.substring(0, 2); - check = checkAddressCode(addressCode); - if (!check) return false; - var birDayCode = "19".concat(idCardNo.substring(6, 12)); - check = checkBirthDayCode(birDayCode); - if (!check) return false; - return true; - }; - - var check18IdCardNo = function check18IdCardNo(idCardNo) { - var check = /^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(idCardNo); - if (!check) return false; - var addressCode = idCardNo.substring(0, 2); - check = checkAddressCode(addressCode); - if (!check) return false; - var birDayCode = idCardNo.substring(6, 14); - check = checkBirthDayCode(birDayCode); - if (!check) return false; - return checkParityBit(idCardNo); - }; - - var checkIdCardNo = function checkIdCardNo(idCardNo) { - var check = /^\d{15}|(\d{17}(\d|x|X))$/.test(idCardNo); - if (!check) return false; - - if (idCardNo.length === 15) { - return check15IdCardNo(idCardNo); - } - - return check18IdCardNo(idCardNo); - }; - - return checkIdCardNo(str); - }, - 'zh-TW': function zhTW(str) { - var ALPHABET_CODES = { - A: 10, - B: 11, - C: 12, - D: 13, - E: 14, - F: 15, - G: 16, - H: 17, - I: 34, - J: 18, - K: 19, - L: 20, - M: 21, - N: 22, - O: 35, - P: 23, - Q: 24, - R: 25, - S: 26, - T: 27, - U: 28, - V: 29, - W: 32, - X: 30, - Y: 31, - Z: 33 - }; - var sanitized = str.trim().toUpperCase(); - if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false; - return Array.from(sanitized).reduce(function (sum, number, index) { - if (index === 0) { - var code = ALPHABET_CODES[number]; - return code % 10 * 9 + Math.floor(code / 10); - } - - if (index === 9) { - return (10 - sum % 10 - Number(number)) % 10 === 0; - } - - return sum + Number(number) * (9 - index); - }, 0); - } - }; - - function isIdentityCard(str, locale) { - (0, _assertString.default)(str); - - if (locale in validators) { - return validators[locale](str); - } else if (locale === 'any') { - for (var key in validators) { - // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes - // istanbul ignore else - if (validators.hasOwnProperty(key)) { - var validator = validators[key]; - - if (validator(str)) { - return true; - } - } - } - - return false; - } - - throw new Error("Invalid locale '".concat(locale, "'")); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isIdentityCardValidator = /*@__PURE__*/getDefaultExportFromCjs(isIdentityCard_1); - - var IS_IDENTITY_CARD = 'isIdentityCard'; - /** - * Check if the string is a valid identity card code. - * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match. - * Defaults to 'any'. - * If given value is not a string, then it returns false. - */ - function isIdentityCard(value, locale) { - return typeof value === 'string' && isIdentityCardValidator(value, locale); - } - /** - * Check if the string is a valid identity card code. - * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match. - * Defaults to 'any'. - * If given value is not a string, then it returns false. - */ - function IsIdentityCard(locale, validationOptions) { - return ValidateBy({ - name: IS_IDENTITY_CARD, - constraints: [locale], - validator: { - validate: function (value, args) { return isIdentityCard(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a identity card number'; }, validationOptions), - }, - }, validationOptions); - } - - var isISRC_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isISRC; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - // see http://isrc.ifpi.org/en/isrc-standard/code-syntax - var isrc = /^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/; - - function isISRC(str) { - (0, _assertString.default)(str); - return isrc.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isISRCValidator = /*@__PURE__*/getDefaultExportFromCjs(isISRC_1); - - var IS_ISRC = 'isISRC'; - /** - * Check if the string is a ISRC. - * If given value is not a string, then it returns false. - */ - function isISRC(value) { - return typeof value === 'string' && isISRCValidator(value); - } - /** - * Check if the string is a ISRC. - * If given value is not a string, then it returns false. - */ - function IsISRC(validationOptions) { - return ValidateBy({ - name: IS_ISRC, - validator: { - validate: function (value, args) { return isISRC(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISRC'; }, validationOptions), - }, - }, validationOptions); - } - - var isLocale_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isLocale; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var localeReg = /^[A-z]{2,4}([_-]([A-z]{4}|[\d]{3}))?([_-]([A-z]{2}|[\d]{3}))?$/; - - function isLocale(str) { - (0, _assertString.default)(str); - - if (str === 'en_US_POSIX' || str === 'ca_ES_VALENCIA') { - return true; - } - - return localeReg.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isLocaleValidator = /*@__PURE__*/getDefaultExportFromCjs(isLocale_1); - - var IS_LOCALE = 'isLocale'; - /** - * Check if the string is a locale. - * If given value is not a string, then it returns false. - */ - function isLocale(value) { - return typeof value === 'string' && isLocaleValidator(value); - } - /** - * Check if the string is a locale. - * If given value is not a string, then it returns false. - */ - function IsLocale(validationOptions) { - return ValidateBy({ - name: IS_LOCALE, - validator: { - validate: function (value, args) { return isLocale(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be locale'; }, validationOptions), - }, - }, validationOptions); - } - - var isMagnetURI_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isMagnetURI; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var magnetURI = /^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}&dn=.+&tr=.+$/i; - - function isMagnetURI(url) { - (0, _assertString.default)(url); - return magnetURI.test(url.trim()); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isMagnetURIValidator = /*@__PURE__*/getDefaultExportFromCjs(isMagnetURI_1); - - var IS_MAGNET_URI = 'isMagnetURI'; - /** - * Check if the string is a magnet uri format. - * If given value is not a string, then it returns false. - */ - function isMagnetURI(value) { - return typeof value === 'string' && isMagnetURIValidator(value); - } - /** - * Check if the string is a magnet uri format. - * If given value is not a string, then it returns false. - */ - function IsMagnetURI(validationOptions) { - return ValidateBy({ - name: IS_MAGNET_URI, - validator: { - validate: function (value, args) { return isMagnetURI(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be magnet uri format'; }, validationOptions), - }, - }, validationOptions); - } - - var isMimeType_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isMimeType; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /* - Checks if the provided string matches to a correct Media type format (MIME type) - - This function only checks is the string format follows the - etablished rules by the according RFC specifications. - This function supports 'charset' in textual media types - (https://tools.ietf.org/html/rfc6657). - - This function does not check against all the media types listed - by the IANA (https://www.iana.org/assignments/media-types/media-types.xhtml) - because of lightness purposes : it would require to include - all these MIME types in this librairy, which would weigh it - significantly. This kind of effort maybe is not worth for the use that - this function has in this entire librairy. - - More informations in the RFC specifications : - - https://tools.ietf.org/html/rfc2045 - - https://tools.ietf.org/html/rfc2046 - - https://tools.ietf.org/html/rfc7231#section-3.1.1.1 - - https://tools.ietf.org/html/rfc7231#section-3.1.1.5 - */ - // Match simple MIME types - // NB : - // Subtype length must not exceed 100 characters. - // This rule does not comply to the RFC specs (what is the max length ?). - var mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+]{1,100}$/i; // eslint-disable-line max-len - // Handle "charset" in "text/*" - - var mimeTypeText = /^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i; // eslint-disable-line max-len - // Handle "boundary" in "multipart/*" - - var mimeTypeMultipart = /^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i; // eslint-disable-line max-len - - function isMimeType(str) { - (0, _assertString.default)(str); - return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isMimeTypeValidator = /*@__PURE__*/getDefaultExportFromCjs(isMimeType_1); - - var IS_MIME_TYPE = 'isMimeType'; - /** - * Check if the string matches to a valid MIME type format - * If given value is not a string, then it returns false. - */ - function isMimeType(value) { - return typeof value === 'string' && isMimeTypeValidator(value); - } - /** - * Check if the string matches to a valid MIME type format - * If given value is not a string, then it returns false. - */ - function IsMimeType(validationOptions) { - return ValidateBy({ - name: IS_MIME_TYPE, - validator: { - validate: function (value, args) { return isMimeType(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be MIME type format'; }, validationOptions), - }, - }, validationOptions); - } - - var isOctal_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isOctal; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var octal = /^(0o)?[0-7]+$/i; - - function isOctal(str) { - (0, _assertString.default)(str); - return octal.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isOctalValidator = /*@__PURE__*/getDefaultExportFromCjs(isOctal_1); - - var IS_OCTAL = 'isOctal'; - /** - * Check if the string is a valid octal number. - * If given value is not a string, then it returns false. - */ - function isOctal(value) { - return typeof value === 'string' && isOctalValidator(value); - } - /** - * Check if the string is a valid octal number. - * If given value is not a string, then it returns false. - */ - function IsOctal(validationOptions) { - return ValidateBy({ - name: IS_OCTAL, - validator: { - validate: function (value, args) { return isOctal(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be valid octal number'; }, validationOptions), - }, - }, validationOptions); - } - - var isPassportNumber_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isPassportNumber; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * Reference: - * https://en.wikipedia.org/ -- Wikipedia - * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number - * https://countrycode.org/ -- Country Codes - */ - var passportRegexByCountryCode = { - AM: /^[A-Z]{2}\d{7}$/, - // ARMENIA - AR: /^[A-Z]{3}\d{6}$/, - // ARGENTINA - AT: /^[A-Z]\d{7}$/, - // AUSTRIA - AU: /^[A-Z]\d{7}$/, - // AUSTRALIA - BE: /^[A-Z]{2}\d{6}$/, - // BELGIUM - BG: /^\d{9}$/, - // BULGARIA - BY: /^[A-Z]{2}\d{7}$/, - // BELARUS - CA: /^[A-Z]{2}\d{6}$/, - // CANADA - CH: /^[A-Z]\d{7}$/, - // SWITZERLAND - CN: /^[GE]\d{8}$/, - // CHINA [G=Ordinary, E=Electronic] followed by 8-digits - CY: /^[A-Z](\d{6}|\d{8})$/, - // CYPRUS - CZ: /^\d{8}$/, - // CZECH REPUBLIC - DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/, - // GERMANY - DK: /^\d{9}$/, - // DENMARK - DZ: /^\d{9}$/, - // ALGERIA - EE: /^([A-Z]\d{7}|[A-Z]{2}\d{7})$/, - // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits - ES: /^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/, - // SPAIN - FI: /^[A-Z]{2}\d{7}$/, - // FINLAND - FR: /^\d{2}[A-Z]{2}\d{5}$/, - // FRANCE - GB: /^\d{9}$/, - // UNITED KINGDOM - GR: /^[A-Z]{2}\d{7}$/, - // GREECE - HR: /^\d{9}$/, - // CROATIA - HU: /^[A-Z]{2}(\d{6}|\d{7})$/, - // HUNGARY - IE: /^[A-Z0-9]{2}\d{7}$/, - // IRELAND - IN: /^[A-Z]{1}-?\d{7}$/, - // INDIA - IS: /^(A)\d{7}$/, - // ICELAND - IT: /^[A-Z0-9]{2}\d{7}$/, - // ITALY - JP: /^[A-Z]{2}\d{7}$/, - // JAPAN - KR: /^[MS]\d{8}$/, - // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports] - LT: /^[A-Z0-9]{8}$/, - // LITHUANIA - LU: /^[A-Z0-9]{8}$/, - // LUXEMBURG - LV: /^[A-Z0-9]{2}\d{7}$/, - // LATVIA - MT: /^\d{7}$/, - // MALTA - NL: /^[A-Z]{2}[A-Z0-9]{6}\d$/, - // NETHERLANDS - PO: /^[A-Z]{2}\d{7}$/, - // POLAND - PT: /^[A-Z]\d{6}$/, - // PORTUGAL - RO: /^\d{8,9}$/, - // ROMANIA - RU: /^\d{2}\d{2}\d{6}$/, - // RUSSIAN FEDERATION - SE: /^\d{8}$/, - // SWEDEN - SL: /^(P)[A-Z]\d{7}$/, - // SLOVANIA - SK: /^[0-9A-Z]\d{7}$/, - // SLOVAKIA - TR: /^[A-Z]\d{8}$/, - // TURKEY - UA: /^[A-Z]{2}\d{6}$/, - // UKRAINE - US: /^\d{9}$/ // UNITED STATES - - }; - /** - * Check if str is a valid passport number - * relative to provided ISO Country Code. - * - * @param {string} str - * @param {string} countryCode - * @return {boolean} - */ - - function isPassportNumber(str, countryCode) { - (0, _assertString.default)(str); - /** Remove All Whitespaces, Convert to UPPERCASE */ - - var normalizedStr = str.replace(/\s/g, '').toUpperCase(); - return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isPassportNumberValidator = /*@__PURE__*/getDefaultExportFromCjs(isPassportNumber_1); - - var IS_PASSPORT_NUMBER = 'isPassportNumber'; - /** - * Check if the string is a valid passport number relative to a specific country code. - * If given value is not a string, then it returns false. - */ - function isPassportNumber(value, countryCode) { - return typeof value === 'string' && isPassportNumberValidator(value, countryCode); - } - /** - * Check if the string is a valid passport number relative to a specific country code. - * If given value is not a string, then it returns false. - */ - function IsPassportNumber(countryCode, validationOptions) { - return ValidateBy({ - name: IS_PASSPORT_NUMBER, - constraints: [countryCode], - validator: { - validate: function (value, args) { return isPassportNumber(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be valid passport number'; }, validationOptions), - }, - }, validationOptions); - } - - var isPostalCode_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isPostalCode; - exports.locales = void 0; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - // common patterns - var threeDigit = /^\d{3}$/; - var fourDigit = /^\d{4}$/; - var fiveDigit = /^\d{5}$/; - var sixDigit = /^\d{6}$/; - var patterns = { - AD: /^AD\d{3}$/, - AT: fourDigit, - AU: fourDigit, - AZ: /^AZ\d{4}$/, - BE: fourDigit, - BG: fourDigit, - BR: /^\d{5}-\d{3}$/, - BY: /2[1-4]{1}\d{4}$/, - CA: /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i, - CH: fourDigit, - CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\d{4}$/, - CZ: /^\d{3}\s?\d{2}$/, - DE: fiveDigit, - DK: fourDigit, - DO: fiveDigit, - DZ: fiveDigit, - EE: fiveDigit, - ES: /^(5[0-2]{1}|[0-4]{1}\d{1})\d{3}$/, - FI: fiveDigit, - FR: /^\d{2}\s?\d{3}$/, - GB: /^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i, - GR: /^\d{3}\s?\d{2}$/, - HR: /^([1-5]\d{4}$)/, - HT: /^HT\d{4}$/, - HU: fourDigit, - ID: fiveDigit, - IE: /^(?!.*(?:o))[A-z]\d[\dw]\s\w{4}$/i, - IL: /^(\d{5}|\d{7})$/, - IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/, - IR: /\b(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}\b/, - IS: threeDigit, - IT: fiveDigit, - JP: /^\d{3}\-\d{4}$/, - KE: fiveDigit, - LI: /^(948[5-9]|949[0-7])$/, - LT: /^LT\-\d{5}$/, - LU: fourDigit, - LV: /^LV\-\d{4}$/, - MX: fiveDigit, - MT: /^[A-Za-z]{3}\s{0,1}\d{4}$/, - MY: fiveDigit, - NL: /^\d{4}\s?[a-z]{2}$/i, - NO: fourDigit, - NP: /^(10|21|22|32|33|34|44|45|56|57)\d{3}$|^(977)$/i, - NZ: fourDigit, - PL: /^\d{2}\-\d{3}$/, - PR: /^00[679]\d{2}([ -]\d{4})?$/, - PT: /^\d{4}\-\d{3}?$/, - RO: sixDigit, - RU: sixDigit, - SA: fiveDigit, - SE: /^[1-9]\d{2}\s?\d{2}$/, - SG: sixDigit, - SI: fourDigit, - SK: /^\d{3}\s?\d{2}$/, - TH: fiveDigit, - TN: fourDigit, - TW: /^\d{3}(\d{2})?$/, - UA: fiveDigit, - US: /^\d{5}(-\d{4})?$/, - ZA: fourDigit, - ZM: fiveDigit - }; - var locales = Object.keys(patterns); - exports.locales = locales; - - function isPostalCode(str, locale) { - (0, _assertString.default)(str); - - if (locale in patterns) { - return patterns[locale].test(str); - } else if (locale === 'any') { - for (var key in patterns) { - // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes - // istanbul ignore else - if (patterns.hasOwnProperty(key)) { - var pattern = patterns[key]; - - if (pattern.test(str)) { - return true; - } - } - } - - return false; - } - - throw new Error("Invalid locale '".concat(locale, "'")); - } - }); - - var isPostalCodeValidator = /*@__PURE__*/getDefaultExportFromCjs(isPostalCode_1); - - var IS_POSTAL_CODE = 'isPostalCode'; - /** - * Check if the string is a postal code, - * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.). - * If given value is not a string, then it returns false. - */ - function isPostalCode(value, locale) { - return typeof value === 'string' && isPostalCodeValidator(value, locale); - } - /** - * Check if the string is a postal code, - * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.). - * If given value is not a string, then it returns false. - */ - function IsPostalCode(locale, validationOptions) { - return ValidateBy({ - name: IS_POSTAL_CODE, - constraints: [locale], - validator: { - validate: function (value, args) { return isPostalCode(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a postal code'; }, validationOptions), - }, - }, validationOptions); - } - - var isRFC3339_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isRFC3339; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */ - var dateFullYear = /[0-9]{4}/; - var dateMonth = /(0[1-9]|1[0-2])/; - var dateMDay = /([12]\d|0[1-9]|3[01])/; - var timeHour = /([01][0-9]|2[0-3])/; - var timeMinute = /[0-5][0-9]/; - var timeSecond = /([0-5][0-9]|60)/; - var timeSecFrac = /(\.[0-9]+)?/; - var timeNumOffset = new RegExp("[-+]".concat(timeHour.source, ":").concat(timeMinute.source)); - var timeOffset = new RegExp("([zZ]|".concat(timeNumOffset.source, ")")); - var partialTime = new RegExp("".concat(timeHour.source, ":").concat(timeMinute.source, ":").concat(timeSecond.source).concat(timeSecFrac.source)); - var fullDate = new RegExp("".concat(dateFullYear.source, "-").concat(dateMonth.source, "-").concat(dateMDay.source)); - var fullTime = new RegExp("".concat(partialTime.source).concat(timeOffset.source)); - var rfc3339 = new RegExp("".concat(fullDate.source, "[ tT]").concat(fullTime.source)); - - function isRFC3339(str) { - (0, _assertString.default)(str); - return rfc3339.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isRFC3339Validator = /*@__PURE__*/getDefaultExportFromCjs(isRFC3339_1); - - var IS_RFC_3339 = 'isRFC3339'; - /** - * Check if the string is a valid RFC 3339 date. - * If given value is not a string, then it returns false. - */ - function isRFC3339(value) { - return typeof value === 'string' && isRFC3339Validator(value); - } - /** - * Check if the string is a valid RFC 3339 date. - * If given value is not a string, then it returns false. - */ - function IsRFC3339(validationOptions) { - return ValidateBy({ - name: IS_RFC_3339, - validator: { - validate: function (value, args) { return isRFC3339(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be RFC 3339 date'; }, validationOptions), - }, - }, validationOptions); - } - - var isRgbColor_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isRgbColor; - - var _assertString = _interopRequireDefault(assertString_1); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - var rgbColor = /^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/; - var rgbaColor = /^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)$/; - var rgbColorPercent = /^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)/; - var rgbaColorPercent = /^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)/; - - function isRgbColor(str) { - var includePercentValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; - (0, _assertString.default)(str); - - if (!includePercentValues) { - return rgbColor.test(str) || rgbaColor.test(str); - } - - return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isRgbColorValidator = /*@__PURE__*/getDefaultExportFromCjs(isRgbColor_1); - - var IS_RGB_COLOR = 'isRgbColor'; - /** - * Check if the string is a rgb or rgba color. - * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false. - * If given value is not a string, then it returns false. - */ - function isRgbColor(value, includePercentValues) { - return typeof value === 'string' && isRgbColorValidator(value, includePercentValues); - } - /** - * Check if the string is a rgb or rgba color. - * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false. - * If given value is not a string, then it returns false. - */ - function IsRgbColor(includePercentValues, validationOptions) { - return ValidateBy({ - name: IS_RGB_COLOR, - constraints: [includePercentValues], - validator: { - validate: function (value, args) { return isRgbColor(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be RGB color'; }, validationOptions), - }, - }, validationOptions); - } - - var multilineRegex = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = multilineRegexp; - - /** - * Build RegExp object from an array - * of multiple/multi-line regexp parts - * - * @param {string[]} parts - * @param {string} flags - * @return {object} - RegExp object - */ - function multilineRegexp(parts, flags) { - var regexpAsStringLiteral = parts.join(''); - return new RegExp(regexpAsStringLiteral, flags); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isSemVer_1 = createCommonjsModule(function (module, exports) { - - Object.defineProperty(exports, "__esModule", { - value: true - }); - exports.default = isSemVer; - - var _assertString = _interopRequireDefault(assertString_1); - - var _multilineRegex = _interopRequireDefault(multilineRegex); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - /** - * Regular Expression to match - * semantic versioning (SemVer) - * built from multi-line, multi-parts regexp - * Reference: https://semver.org/ - */ - var semanticVersioningRegex = (0, _multilineRegex.default)(['^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)', '(?:-((?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*))*))', '?(?:\\+([0-9a-z-]+(?:\\.[0-9a-z-]+)*))?$'], 'i'); - - function isSemVer(str) { - (0, _assertString.default)(str); - return semanticVersioningRegex.test(str); - } - - module.exports = exports.default; - module.exports.default = exports.default; - }); - - var isSemVerValidator = /*@__PURE__*/getDefaultExportFromCjs(isSemVer_1); - - var IS_SEM_VER = 'isSemVer'; - /** - * Check if the string is a Semantic Versioning Specification (SemVer). - * If given value is not a string, then it returns false. - */ - function isSemVer(value) { - return typeof value === 'string' && isSemVerValidator(value); - } - /** - * Check if the string is a Semantic Versioning Specification (SemVer). - * If given value is not a string, then it returns false. - */ - function IsSemVer(validationOptions) { - return ValidateBy({ - name: IS_SEM_VER, - validator: { - validate: function (value, args) { return isSemVer(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Semantic Versioning Specification'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_BOOLEAN = 'isBoolean'; - /** - * Checks if a given value is a boolean. - */ - function isBoolean(value) { - return value instanceof Boolean || typeof value === 'boolean'; - } - /** - * Checks if a value is a boolean. - */ - function IsBoolean(validationOptions) { - return ValidateBy({ - name: IS_BOOLEAN, - validator: { - validate: function (value, args) { return isBoolean(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a boolean value'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_DATE = 'isDate'; - /** - * Checks if a given value is a date. - */ - function isDate(value) { - return value instanceof Date && !isNaN(value.getTime()); - } - /** - * Checks if a value is a date. - */ - function IsDate(validationOptions) { - return ValidateBy({ - name: IS_DATE, - validator: { - validate: function (value, args) { return isDate(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Date instance'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_NUMBER = 'isNumber'; - /** - * Checks if a given value is a number. - */ - function isNumber(value, options) { - if (options === void 0) { options = {}; } - if (typeof value !== 'number') { - return false; - } - if (value === Infinity || value === -Infinity) { - return options.allowInfinity; - } - if (Number.isNaN(value)) { - return options.allowNaN; - } - if (options.maxDecimalPlaces !== undefined) { - var decimalPlaces = 0; - if (value % 1 !== 0) { - decimalPlaces = value.toString().split('.')[1].length; - } - if (decimalPlaces > options.maxDecimalPlaces) { - return false; - } - } - return Number.isFinite(value); - } - /** - * Checks if a value is a number. - */ - function IsNumber(options, validationOptions) { - if (options === void 0) { options = {}; } - return ValidateBy({ - name: IS_NUMBER, - constraints: [options], - validator: { - validate: function (value, args) { return isNumber(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a number conforming to the specified constraints'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_ENUM = 'isEnum'; - /** - * Checks if a given value is an enum - */ - function isEnum(value, entity) { - var enumValues = Object.keys(entity).map(function (k) { return entity[k]; }); - return enumValues.indexOf(value) >= 0; - } - /** - * Checks if a given value is an enum - */ - function IsEnum(entity, validationOptions) { - return ValidateBy({ - name: IS_ENUM, - constraints: [entity], - validator: { - validate: function (value, args) { return isEnum(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid enum value'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_INT = 'isInt'; - /** - * Checks if value is an integer. - */ - function isInt(val) { - return typeof val === 'number' && Number.isInteger(val); - } - /** - * Checks if value is an integer. - */ - function IsInt(validationOptions) { - return ValidateBy({ - name: IS_INT, - validator: { - validate: function (value, args) { return isInt(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an integer number'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_STRING = 'isString'; - /** - * Checks if a given value is a real string. - */ - function isString(value) { - return value instanceof String || typeof value === 'string'; - } - /** - * Checks if a given value is a real string. - */ - function IsString(validationOptions) { - return ValidateBy({ - name: IS_STRING, - validator: { - validate: function (value, args) { return isString(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a string'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_ARRAY = 'isArray'; - /** - * Checks if a given value is an array - */ - function isArray(value) { - return value instanceof Array; - } - /** - * Checks if a given value is an array - */ - function IsArray(validationOptions) { - return ValidateBy({ - name: IS_ARRAY, - validator: { - validate: function (value, args) { return isArray(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an array'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_OBJECT = 'isObject'; - /** - * Checks if the value is valid Object. - * Returns false if the value is not an object. - */ - function isObject$1(value) { - return value != null && (typeof value === 'object' || typeof value === 'function') && !Array.isArray(value); - } - /** - * Checks if the value is valid Object. - * Returns false if the value is not an object. - */ - function IsObject(validationOptions) { - return ValidateBy({ - name: IS_OBJECT, - validator: { - validate: function (value, args) { return isObject$1(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an object'; }, validationOptions), - }, - }, validationOptions); - } - - var ARRAY_CONTAINS = 'arrayContains'; - /** - * Checks if array contains all values from the given array of values. - * If null or undefined is given then this function returns false. - */ - function arrayContains(array, values) { - if (!(array instanceof Array)) - return false; - return values.every(function (value) { return array.indexOf(value) !== -1; }); - } - /** - * Checks if array contains all values from the given array of values. - * If null or undefined is given then this function returns false. - */ - function ArrayContains(values, validationOptions) { - return ValidateBy({ - name: ARRAY_CONTAINS, - constraints: [values], - validator: { - validate: function (value, args) { return arrayContains(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain $constraint1 values'; }, validationOptions), - }, - }, validationOptions); - } - - var ARRAY_NOT_CONTAINS = 'arrayNotContains'; - /** - * Checks if array does not contain any of the given values. - * If null or undefined is given then this function returns false. - */ - function arrayNotContains(array, values) { - if (!(array instanceof Array)) - return false; - return values.every(function (value) { return array.indexOf(value) === -1; }); - } - /** - * Checks if array does not contain any of the given values. - * If null or undefined is given then this function returns false. - */ - function ArrayNotContains(values, validationOptions) { - return ValidateBy({ - name: ARRAY_NOT_CONTAINS, - constraints: [values], - validator: { - validate: function (value, args) { return arrayNotContains(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not contain $constraint1 values'; }, validationOptions), - }, - }, validationOptions); - } - - var ARRAY_NOT_EMPTY = 'arrayNotEmpty'; - /** - * Checks if given array is not empty. - * If null or undefined is given then this function returns false. - */ - function arrayNotEmpty(array) { - return array instanceof Array && array.length > 0; - } - /** - * Checks if given array is not empty. - * If null or undefined is given then this function returns false. - */ - function ArrayNotEmpty(validationOptions) { - return ValidateBy({ - name: ARRAY_NOT_EMPTY, - validator: { - validate: function (value, args) { return arrayNotEmpty(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be empty'; }, validationOptions), - }, - }, validationOptions); - } - - var ARRAY_MIN_SIZE = 'arrayMinSize'; - /** - * Checks if the array's length is greater than or equal to the specified number. - * If null or undefined is given then this function returns false. - */ - function arrayMinSize(array, min) { - return array instanceof Array && array.length >= min; - } - /** - * Checks if the array's length is greater than or equal to the specified number. - * If null or undefined is given then this function returns false. - */ - function ArrayMinSize(min, validationOptions) { - return ValidateBy({ - name: ARRAY_MIN_SIZE, - constraints: [min], - validator: { - validate: function (value, args) { return arrayMinSize(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain at least $constraint1 elements'; }, validationOptions), - }, - }, validationOptions); - } - - var ARRAY_MAX_SIZE = 'arrayMaxSize'; - /** - * Checks if the array's length is less or equal to the specified number. - * If null or undefined is given then this function returns false. - */ - function arrayMaxSize(array, max) { - return array instanceof Array && array.length <= max; - } - /** - * Checks if the array's length is less or equal to the specified number. - * If null or undefined is given then this function returns false. - */ - function ArrayMaxSize(max, validationOptions) { - return ValidateBy({ - name: ARRAY_MAX_SIZE, - constraints: [max], - validator: { - validate: function (value, args) { return arrayMaxSize(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain not more than $constraint1 elements'; }, validationOptions), - }, - }, validationOptions); - } - - var ARRAY_UNIQUE = 'arrayUnique'; - /** - * Checks if all array's values are unique. Comparison for objects is reference-based. - * If null or undefined is given then this function returns false. - */ - function arrayUnique(array, identifier) { - if (!(array instanceof Array)) - return false; - if (identifier) { - array = array.map(function (o) { return (o != null ? identifier(o) : o); }); - } - var uniqueItems = array.filter(function (a, b, c) { return c.indexOf(a) === b; }); - return array.length === uniqueItems.length; - } - /** - * Checks if all array's values are unique. Comparison for objects is reference-based. - * If null or undefined is given then this function returns false. - */ - function ArrayUnique(identifierOrOptions, validationOptions) { - var identifier = typeof identifierOrOptions === 'function' ? identifierOrOptions : undefined; - var options = typeof identifierOrOptions !== 'function' ? identifierOrOptions : validationOptions; - return ValidateBy({ - name: ARRAY_UNIQUE, - validator: { - validate: function (value, args) { return arrayUnique(value, identifier); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + "All $property's elements must be unique"; }, options), - }, - }, options); - } - - var IS_NOT_EMPTY_OBJECT = 'isNotEmptyObject'; - /** - * Checks if the value is valid Object & not empty. - * Returns false if the value is not an object or an empty valid object. - */ - function isNotEmptyObject(value, options) { - if (!isObject$1(value)) { - return false; - } - if ((options === null || options === void 0 ? void 0 : options.nullable) === true) { - return !Object.values(value).every(function (propertyValue) { return propertyValue === null || propertyValue === undefined; }); - } - for (var key in value) { - if (value.hasOwnProperty(key)) { - return true; - } - } - return false; - } - /** - * Checks if the value is valid Object & not empty. - * Returns false if the value is not an object or an empty valid object. - */ - function IsNotEmptyObject(options, validationOptions) { - return ValidateBy({ - name: IS_NOT_EMPTY_OBJECT, - constraints: [options], - validator: { - validate: function (value, args) { return isNotEmptyObject(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a non-empty object'; }, validationOptions), - }, - }, validationOptions); - } - - var IS_INSTANCE = 'isInstance'; - /** - * Checks if the value is an instance of the specified object. - */ - function isInstance(object, targetTypeConstructor) { - return (targetTypeConstructor && typeof targetTypeConstructor === 'function' && object instanceof targetTypeConstructor); - } - /** - * Checks if the value is an instance of the specified object. - */ - function IsInstance(targetType, validationOptions) { - return ValidateBy({ - name: IS_INSTANCE, - constraints: [targetType], - validator: { - validate: function (value, args) { return isInstance(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix, args) { - if (args.constraints[0]) { - return eachPrefix + ("$property must be an instance of " + args.constraints[0].name); - } - else { - return eachPrefix + (IS_INSTANCE + " decorator expects and object as value, but got falsy value."); - } - }, validationOptions), - }, - }, validationOptions); - } - - /** - * Validates given object by object's decorators or given validation schema. - */ - function validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions); - } - } - /** - * Validates given object by object's decorators or given validation schema and reject on error. - */ - function validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions); - } - } - /** - * Validates given object by object's decorators or given validation schema. - * Note that this method completely ignores async validations. - * If you want to properly perform validation you need to call validate method instead. - */ - function validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions); - } - } - /** - * Registers a new validation schema. - */ - function registerSchema(schema) { - getMetadataStorage().addValidationSchema(schema); - } - - exports.ARRAY_CONTAINS = ARRAY_CONTAINS; - exports.ARRAY_MAX_SIZE = ARRAY_MAX_SIZE; - exports.ARRAY_MIN_SIZE = ARRAY_MIN_SIZE; - exports.ARRAY_NOT_CONTAINS = ARRAY_NOT_CONTAINS; - exports.ARRAY_NOT_EMPTY = ARRAY_NOT_EMPTY; - exports.ARRAY_UNIQUE = ARRAY_UNIQUE; - exports.Allow = Allow; - exports.ArrayContains = ArrayContains; - exports.ArrayMaxSize = ArrayMaxSize; - exports.ArrayMinSize = ArrayMinSize; - exports.ArrayNotContains = ArrayNotContains; - exports.ArrayNotEmpty = ArrayNotEmpty; - exports.ArrayUnique = ArrayUnique; - exports.CONTAINS = CONTAINS; - exports.Contains = Contains; - exports.EQUALS = EQUALS; - exports.Equals = Equals; - exports.IS_ALPHA = IS_ALPHA; - exports.IS_ALPHANUMERIC = IS_ALPHANUMERIC; - exports.IS_ARRAY = IS_ARRAY; - exports.IS_ASCII = IS_ASCII; - exports.IS_BASE32 = IS_BASE32; - exports.IS_BASE64 = IS_BASE64; - exports.IS_BIC = IS_BIC; - exports.IS_BOOLEAN = IS_BOOLEAN; - exports.IS_BOOLEAN_STRING = IS_BOOLEAN_STRING; - exports.IS_BTC_ADDRESS = IS_BTC_ADDRESS; - exports.IS_BYTE_LENGTH = IS_BYTE_LENGTH; - exports.IS_CREDIT_CARD = IS_CREDIT_CARD; - exports.IS_CURRENCY = IS_CURRENCY; - exports.IS_DATA_URI = IS_DATA_URI; - exports.IS_DATE = IS_DATE; - exports.IS_DATE_STRING = IS_DATE_STRING; - exports.IS_DECIMAL = IS_DECIMAL; - exports.IS_DEFINED = IS_DEFINED; - exports.IS_DIVISIBLE_BY = IS_DIVISIBLE_BY; - exports.IS_EAN = IS_EAN; - exports.IS_EMAIL = IS_EMAIL; - exports.IS_EMPTY = IS_EMPTY; - exports.IS_ENUM = IS_ENUM; - exports.IS_ETHEREUM_ADDRESS = IS_ETHEREUM_ADDRESS; - exports.IS_FIREBASE_PUSH_ID = IS_FIREBASE_PUSH_ID; - exports.IS_FQDN = IS_FQDN; - exports.IS_FULL_WIDTH = IS_FULL_WIDTH; - exports.IS_HALF_WIDTH = IS_HALF_WIDTH; - exports.IS_HASH = IS_HASH; - exports.IS_HEXADECIMAL = IS_HEXADECIMAL; - exports.IS_HEX_COLOR = IS_HEX_COLOR; - exports.IS_HSL = IS_HSL; - exports.IS_IBAN = IS_IBAN; - exports.IS_IDENTITY_CARD = IS_IDENTITY_CARD; - exports.IS_IN = IS_IN; - exports.IS_INSTANCE = IS_INSTANCE; - exports.IS_INT = IS_INT; - exports.IS_IP = IS_IP; - exports.IS_ISBN = IS_ISBN; - exports.IS_ISIN = IS_ISIN; - exports.IS_ISO31661_ALPHA_2 = IS_ISO31661_ALPHA_2; - exports.IS_ISO31661_ALPHA_3 = IS_ISO31661_ALPHA_3; - exports.IS_ISO8601 = IS_ISO8601; - exports.IS_ISRC = IS_ISRC; - exports.IS_ISSN = IS_ISSN; - exports.IS_JSON = IS_JSON; - exports.IS_JWT = IS_JWT; - exports.IS_LATITUDE = IS_LATITUDE; - exports.IS_LATLONG = IS_LATLONG; - exports.IS_LENGTH = IS_LENGTH; - exports.IS_LOCALE = IS_LOCALE; - exports.IS_LONGITUDE = IS_LONGITUDE; - exports.IS_LOWERCASE = IS_LOWERCASE; - exports.IS_MAC_ADDRESS = IS_MAC_ADDRESS; - exports.IS_MAGNET_URI = IS_MAGNET_URI; - exports.IS_MILITARY_TIME = IS_MILITARY_TIME; - exports.IS_MIME_TYPE = IS_MIME_TYPE; - exports.IS_MOBILE_PHONE = IS_MOBILE_PHONE; - exports.IS_MONGO_ID = IS_MONGO_ID; - exports.IS_MULTIBYTE = IS_MULTIBYTE; - exports.IS_NEGATIVE = IS_NEGATIVE; - exports.IS_NOT_EMPTY = IS_NOT_EMPTY; - exports.IS_NOT_EMPTY_OBJECT = IS_NOT_EMPTY_OBJECT; - exports.IS_NOT_IN = IS_NOT_IN; - exports.IS_NUMBER = IS_NUMBER; - exports.IS_NUMBER_STRING = IS_NUMBER_STRING; - exports.IS_OBJECT = IS_OBJECT; - exports.IS_OCTAL = IS_OCTAL; - exports.IS_PASSPORT_NUMBER = IS_PASSPORT_NUMBER; - exports.IS_PHONE_NUMBER = IS_PHONE_NUMBER; - exports.IS_PORT = IS_PORT; - exports.IS_POSITIVE = IS_POSITIVE; - exports.IS_POSTAL_CODE = IS_POSTAL_CODE; - exports.IS_RFC_3339 = IS_RFC_3339; - exports.IS_RGB_COLOR = IS_RGB_COLOR; - exports.IS_SEM_VER = IS_SEM_VER; - exports.IS_STRING = IS_STRING; - exports.IS_SURROGATE_PAIR = IS_SURROGATE_PAIR; - exports.IS_UPPERCASE = IS_UPPERCASE; - exports.IS_URL = IS_URL; - exports.IS_UUID = IS_UUID; - exports.IS_VARIABLE_WIDTH = IS_VARIABLE_WIDTH; - exports.IsAlpha = IsAlpha; - exports.IsAlphanumeric = IsAlphanumeric; - exports.IsArray = IsArray; - exports.IsAscii = IsAscii; - exports.IsBIC = IsBIC; - exports.IsBase32 = IsBase32; - exports.IsBase64 = IsBase64; - exports.IsBoolean = IsBoolean; - exports.IsBooleanString = IsBooleanString; - exports.IsBtcAddress = IsBtcAddress; - exports.IsByteLength = IsByteLength; - exports.IsCreditCard = IsCreditCard; - exports.IsCurrency = IsCurrency; - exports.IsDataURI = IsDataURI; - exports.IsDate = IsDate; - exports.IsDateString = IsDateString; - exports.IsDecimal = IsDecimal; - exports.IsDefined = IsDefined; - exports.IsDivisibleBy = IsDivisibleBy; - exports.IsEAN = IsEAN; - exports.IsEmail = IsEmail; - exports.IsEmpty = IsEmpty; - exports.IsEnum = IsEnum; - exports.IsEthereumAddress = IsEthereumAddress; - exports.IsFQDN = IsFQDN; - exports.IsFirebasePushId = IsFirebasePushId; - exports.IsFullWidth = IsFullWidth; - exports.IsHSL = IsHSL; - exports.IsHalfWidth = IsHalfWidth; - exports.IsHash = IsHash; - exports.IsHexColor = IsHexColor; - exports.IsHexadecimal = IsHexadecimal; - exports.IsIBAN = IsIBAN; - exports.IsIP = IsIP; - exports.IsISBN = IsISBN; - exports.IsISIN = IsISIN; - exports.IsISO31661Alpha2 = IsISO31661Alpha2; - exports.IsISO31661Alpha3 = IsISO31661Alpha3; - exports.IsISO8601 = IsISO8601; - exports.IsISRC = IsISRC; - exports.IsISSN = IsISSN; - exports.IsIdentityCard = IsIdentityCard; - exports.IsIn = IsIn; - exports.IsInstance = IsInstance; - exports.IsInt = IsInt; - exports.IsJSON = IsJSON; - exports.IsJWT = IsJWT; - exports.IsLatLong = IsLatLong; - exports.IsLatitude = IsLatitude; - exports.IsLocale = IsLocale; - exports.IsLongitude = IsLongitude; - exports.IsLowercase = IsLowercase; - exports.IsMACAddress = IsMACAddress; - exports.IsMagnetURI = IsMagnetURI; - exports.IsMilitaryTime = IsMilitaryTime; - exports.IsMimeType = IsMimeType; - exports.IsMobilePhone = IsMobilePhone; - exports.IsMongoId = IsMongoId; - exports.IsMultibyte = IsMultibyte; - exports.IsNegative = IsNegative; - exports.IsNotEmpty = IsNotEmpty; - exports.IsNotEmptyObject = IsNotEmptyObject; - exports.IsNotIn = IsNotIn; - exports.IsNumber = IsNumber; - exports.IsNumberString = IsNumberString; - exports.IsObject = IsObject; - exports.IsOctal = IsOctal; - exports.IsOptional = IsOptional; - exports.IsPassportNumber = IsPassportNumber; - exports.IsPhoneNumber = IsPhoneNumber; - exports.IsPort = IsPort; - exports.IsPositive = IsPositive; - exports.IsPostalCode = IsPostalCode; - exports.IsRFC3339 = IsRFC3339; - exports.IsRgbColor = IsRgbColor; - exports.IsSemVer = IsSemVer; - exports.IsString = IsString; - exports.IsSurrogatePair = IsSurrogatePair; - exports.IsUUID = IsUUID; - exports.IsUppercase = IsUppercase; - exports.IsUrl = IsUrl; - exports.IsVariableWidth = IsVariableWidth; - exports.Length = Length; - exports.MATCHES = MATCHES; - exports.MAX = MAX; - exports.MAX_DATE = MAX_DATE; - exports.MAX_LENGTH = MAX_LENGTH; - exports.MIN = MIN; - exports.MIN_DATE = MIN_DATE; - exports.MIN_LENGTH = MIN_LENGTH; - exports.Matches = Matches; - exports.Max = Max; - exports.MaxDate = MaxDate; - exports.MaxLength = MaxLength; - exports.MetadataStorage = MetadataStorage; - exports.Min = Min; - exports.MinDate = MinDate; - exports.MinLength = MinLength; - exports.NOT_CONTAINS = NOT_CONTAINS; - exports.NOT_EQUALS = NOT_EQUALS; - exports.NotContains = NotContains; - exports.NotEquals = NotEquals; - exports.Validate = Validate; - exports.ValidateBy = ValidateBy; - exports.ValidateIf = ValidateIf; - exports.ValidateNested = ValidateNested; - exports.ValidatePromise = ValidatePromise; - exports.ValidationError = ValidationError; - exports.ValidationTypes = ValidationTypes; - exports.Validator = Validator; - exports.ValidatorConstraint = ValidatorConstraint; - exports.arrayContains = arrayContains; - exports.arrayMaxSize = arrayMaxSize; - exports.arrayMinSize = arrayMinSize; - exports.arrayNotContains = arrayNotContains; - exports.arrayNotEmpty = arrayNotEmpty; - exports.arrayUnique = arrayUnique; - exports.buildMessage = buildMessage; - exports.contains = contains; - exports.equals = equals; - exports.getFromContainer = getFromContainer; - exports.getMetadataStorage = getMetadataStorage; - exports.isAlpha = isAlpha; - exports.isAlphanumeric = isAlphanumeric; - exports.isArray = isArray; - exports.isAscii = isAscii; - exports.isBIC = isBIC; - exports.isBase32 = isBase32; - exports.isBase64 = isBase64; - exports.isBoolean = isBoolean; - exports.isBooleanString = isBooleanString; - exports.isBtcAddress = isBtcAddress; - exports.isByteLength = isByteLength; - exports.isCreditCard = isCreditCard; - exports.isCurrency = isCurrency; - exports.isDataURI = isDataURI; - exports.isDate = isDate; - exports.isDateString = isDateString; - exports.isDecimal = isDecimal; - exports.isDefined = isDefined; - exports.isDivisibleBy = isDivisibleBy; - exports.isEAN = isEAN; - exports.isEmail = isEmail; - exports.isEmpty = isEmpty; - exports.isEnum = isEnum; - exports.isEthereumAddress = isEthereumAddress; - exports.isFQDN = isFQDN; - exports.isFirebasePushId = isFirebasePushId; - exports.isFullWidth = isFullWidth; - exports.isHSL = isHSL; - exports.isHalfWidth = isHalfWidth; - exports.isHash = isHash; - exports.isHexColor = isHexColor; - exports.isHexadecimal = isHexadecimal; - exports.isIBAN = isIBAN; - exports.isIP = isIP; - exports.isISBN = isISBN; - exports.isISIN = isISIN; - exports.isISO31661Alpha2 = isISO31661Alpha2; - exports.isISO31661Alpha3 = isISO31661Alpha3; - exports.isISO8601 = isISO8601; - exports.isISRC = isISRC; - exports.isISSN = isISSN; - exports.isIdentityCard = isIdentityCard; - exports.isIn = isIn; - exports.isInstance = isInstance; - exports.isInt = isInt; - exports.isJSON = isJSON; - exports.isJWT = isJWT; - exports.isLatLong = isLatLong; - exports.isLatitude = isLatitude; - exports.isLocale = isLocale; - exports.isLongitude = isLongitude; - exports.isLowercase = isLowercase; - exports.isMACAddress = isMACAddress; - exports.isMagnetURI = isMagnetURI; - exports.isMilitaryTime = isMilitaryTime; - exports.isMimeType = isMimeType; - exports.isMobilePhone = isMobilePhone; - exports.isMongoId = isMongoId; - exports.isMultibyte = isMultibyte; - exports.isNegative = isNegative; - exports.isNotEmpty = isNotEmpty; - exports.isNotEmptyObject = isNotEmptyObject; - exports.isNotIn = isNotIn; - exports.isNumber = isNumber; - exports.isNumberString = isNumberString; - exports.isObject = isObject$1; - exports.isOctal = isOctal; - exports.isPassportNumber = isPassportNumber; - exports.isPhoneNumber = isPhoneNumber; - exports.isPort = isPort; - exports.isPositive = isPositive; - exports.isPostalCode = isPostalCode; - exports.isRFC3339 = isRFC3339; - exports.isRgbColor = isRgbColor; - exports.isSemVer = isSemVer; - exports.isString = isString; - exports.isSurrogatePair = isSurrogatePair; - exports.isURL = isURL; - exports.isUUID = isUUID; - exports.isUppercase = isUppercase; - exports.isValidationOptions = isValidationOptions; - exports.isVariableWidth = isVariableWidth; - exports.length = length; - exports.matches = matches; - exports.max = max; - exports.maxDate = maxDate; - exports.maxLength = maxLength; - exports.min = min; - exports.minDate = minDate; - exports.minLength = minLength; - exports.notContains = notContains; - exports.notEquals = notEquals; - exports.registerDecorator = registerDecorator; - exports.registerSchema = registerSchema; - exports.useContainer = useContainer; - exports.validate = validate; - exports.validateOrReject = validateOrReject; - exports.validateSync = validateSync; - - Object.defineProperty(exports, '__esModule', { value: true }); - -}))); -//# sourceMappingURL=class-validator.umd.js.map diff --git a/views/node_modules/class-validator/bundles/class-validator.umd.js.map b/views/node_modules/class-validator/bundles/class-validator.umd.js.map deleted file mode 100644 index 344cbb6..0000000 --- a/views/node_modules/class-validator/bundles/class-validator.umd.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"class-validator.umd.js","sources":["../esm5/metadata/ValidationMetadata.js","../esm5/validation-schema/ValidationSchemaToMetadataTransformer.js","../esm5/utils/convert-to-array.util.js","../esm5/utils/get-global.util.js","../esm5/utils/is-promise.util.js","../esm5/metadata/MetadataStorage.js","../esm5/validation/ValidationError.js","../esm5/validation/ValidationTypes.js","../esm5/validation/ValidationUtils.js","../esm5/validation/ValidationExecutor.js","../esm5/validation/Validator.js","../esm5/container.js","../esm5/decorator/common/Allow.js","../esm5/metadata/ConstraintMetadata.js","../esm5/register-decorator.js","../esm5/decorator/common/ValidateBy.js","../esm5/decorator/common/IsDefined.js","../esm5/decorator/common/IsOptional.js","../esm5/decorator/common/Validate.js","../esm5/decorator/common/ValidateIf.js","../esm5/decorator/common/ValidateNested.js","../esm5/decorator/common/ValidatePromise.js","../../node_modules/validator/lib/util/assertString.js","../../node_modules/validator/lib/util/merge.js","../../node_modules/validator/lib/isLatLong.js","../esm5/decorator/common/IsLatLong.js","../esm5/decorator/common/IsLatitude.js","../esm5/decorator/common/IsLongitude.js","../esm5/decorator/common/Equals.js","../esm5/decorator/common/NotEquals.js","../esm5/decorator/common/IsEmpty.js","../esm5/decorator/common/IsNotEmpty.js","../esm5/decorator/common/IsIn.js","../esm5/decorator/common/IsNotIn.js","../../node_modules/validator/lib/alpha.js","../../node_modules/validator/lib/isFloat.js","../../node_modules/validator/lib/toFloat.js","../../node_modules/validator/lib/isDivisibleBy.js","../esm5/decorator/number/IsDivisibleBy.js","../esm5/decorator/number/IsPositive.js","../esm5/decorator/number/IsNegative.js","../esm5/decorator/number/Max.js","../esm5/decorator/number/Min.js","../esm5/decorator/date/MinDate.js","../esm5/decorator/date/MaxDate.js","../../node_modules/validator/lib/util/toString.js","../../node_modules/validator/lib/contains.js","../esm5/decorator/string/Contains.js","../esm5/decorator/string/NotContains.js","../../node_modules/validator/lib/isAlpha.js","../esm5/decorator/string/IsAlpha.js","../../node_modules/validator/lib/isAlphanumeric.js","../esm5/decorator/string/IsAlphanumeric.js","../../node_modules/validator/lib/util/includes.js","../../node_modules/validator/lib/isDecimal.js","../esm5/decorator/string/IsDecimal.js","../../node_modules/validator/lib/isAscii.js","../esm5/decorator/string/IsAscii.js","../../node_modules/validator/lib/isBase64.js","../esm5/decorator/string/IsBase64.js","../../node_modules/validator/lib/isByteLength.js","../esm5/decorator/string/IsByteLength.js","../../node_modules/validator/lib/isCreditCard.js","../esm5/decorator/string/IsCreditCard.js","../../node_modules/validator/lib/isCurrency.js","../esm5/decorator/string/IsCurrency.js","../../node_modules/validator/lib/isFQDN.js","../../node_modules/validator/lib/isIP.js","../../node_modules/validator/lib/isEmail.js","../esm5/decorator/string/IsEmail.js","../esm5/decorator/string/IsFQDN.js","../../node_modules/validator/lib/isFullWidth.js","../esm5/decorator/string/IsFullWidth.js","../../node_modules/validator/lib/isHalfWidth.js","../esm5/decorator/string/IsHalfWidth.js","../../node_modules/validator/lib/isVariableWidth.js","../esm5/decorator/string/IsVariableWidth.js","../../node_modules/validator/lib/isHexColor.js","../esm5/decorator/string/IsHexColor.js","../../node_modules/validator/lib/isHexadecimal.js","../esm5/decorator/string/IsHexadecimal.js","../esm5/decorator/ValidationOptions.js","../../node_modules/validator/lib/isMACAddress.js","../esm5/decorator/string/IsMacAddress.js","../esm5/decorator/string/IsIP.js","../../node_modules/validator/lib/isInt.js","../../node_modules/validator/lib/isPort.js","../esm5/decorator/string/IsPort.js","../../node_modules/validator/lib/isISBN.js","../esm5/decorator/string/IsISBN.js","../../node_modules/validator/lib/isISIN.js","../esm5/decorator/string/IsISIN.js","../../node_modules/validator/lib/isISO8601.js","../esm5/decorator/string/IsISO8601.js","../../node_modules/validator/lib/isJSON.js","../esm5/decorator/string/IsJSON.js","../../node_modules/validator/lib/isJWT.js","../esm5/decorator/string/IsJWT.js","../../node_modules/validator/lib/isLowercase.js","../esm5/decorator/string/IsLowercase.js","../../node_modules/validator/lib/isMobilePhone.js","../esm5/decorator/string/IsMobilePhone.js","../../node_modules/validator/lib/isISO31661Alpha2.js","../esm5/decorator/string/IsISO31661Alpha2.js","../../node_modules/validator/lib/isISO31661Alpha3.js","../esm5/decorator/string/IsISO31661Alpha3.js","../../node_modules/validator/lib/isMongoId.js","../esm5/decorator/string/IsMongoId.js","../../node_modules/validator/lib/isMultibyte.js","../esm5/decorator/string/IsMultibyte.js","../../node_modules/validator/lib/isSurrogatePair.js","../esm5/decorator/string/IsSurrogatePair.js","../../node_modules/validator/lib/isURL.js","../esm5/decorator/string/IsUrl.js","../../node_modules/validator/lib/isUUID.js","../esm5/decorator/string/IsUUID.js","../esm5/decorator/string/IsFirebasePushId.js","../../node_modules/validator/lib/isUppercase.js","../esm5/decorator/string/IsUppercase.js","../../node_modules/validator/lib/isLength.js","../esm5/decorator/string/Length.js","../esm5/decorator/string/MaxLength.js","../esm5/decorator/string/MinLength.js","../../node_modules/validator/lib/matches.js","../esm5/decorator/string/Matches.js","../../node_modules/libphonenumber-js/metadata.min.json.js","../../node_modules/libphonenumber-js/min/metadata.js","../../node_modules/libphonenumber-js/es6/ParseError.js","../../node_modules/libphonenumber-js/es6/constants.js","../../node_modules/libphonenumber-js/es6/tools/semver-compare.js","../../node_modules/libphonenumber-js/es6/metadata.js","../../node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","../../node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","../../node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","../../node_modules/libphonenumber-js/es6/helpers/parseDigits.js","../../node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","../../node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","../../node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","../../node_modules/libphonenumber-js/es6/isPossibleNumber_.js","../../node_modules/libphonenumber-js/es6/helpers/RFC3966.js","../../node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","../../node_modules/libphonenumber-js/es6/helpers/getNumberType.js","../../node_modules/libphonenumber-js/es6/validate_.js","../../node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","../../node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","../../node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","../../node_modules/libphonenumber-js/es6/format_.js","../../node_modules/libphonenumber-js/es6/PhoneNumber.js","../../node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","../../node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","../../node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","../../node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","../../node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","../../node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","../../node_modules/libphonenumber-js/es6/parse_.js","../../node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","../../node_modules/libphonenumber-js/es6/parsePhoneNumber.js","../../node_modules/libphonenumber-js/es6/parsePhoneNumberFromString_.js","../../node_modules/libphonenumber-js/es6/parsePhoneNumberFromString.js","../../node_modules/libphonenumber-js/min/exports/parsePhoneNumberFromString.js","../esm5/decorator/string/IsPhoneNumber.js","../esm5/decorator/string/IsMilitaryTime.js","../../node_modules/validator/lib/isHash.js","../esm5/decorator/string/IsHash.js","../../node_modules/validator/lib/isISSN.js","../esm5/decorator/string/IsISSN.js","../esm5/decorator/string/IsDateString.js","../../node_modules/validator/lib/isBoolean.js","../esm5/decorator/string/IsBooleanString.js","../../node_modules/validator/lib/isNumeric.js","../esm5/decorator/string/IsNumberString.js","../../node_modules/validator/lib/isBase32.js","../esm5/decorator/string/IsBase32.js","../../node_modules/validator/lib/isBIC.js","../esm5/decorator/string/IsBIC.js","../../node_modules/validator/lib/isBtcAddress.js","../esm5/decorator/string/IsBtcAddress.js","../../node_modules/validator/lib/isDataURI.js","../esm5/decorator/string/IsDataURI.js","../../node_modules/validator/lib/isEAN.js","../esm5/decorator/string/IsEAN.js","../../node_modules/validator/lib/isEthereumAddress.js","../esm5/decorator/string/IsEthereumAddress.js","../../node_modules/validator/lib/isHSL.js","../esm5/decorator/string/IsHSL.js","../../node_modules/validator/lib/isIBAN.js","../esm5/decorator/string/IsIBAN.js","../../node_modules/validator/lib/isIdentityCard.js","../esm5/decorator/string/IsIdentityCard.js","../../node_modules/validator/lib/isISRC.js","../esm5/decorator/string/IsISRC.js","../../node_modules/validator/lib/isLocale.js","../esm5/decorator/string/IsLocale.js","../../node_modules/validator/lib/isMagnetURI.js","../esm5/decorator/string/IsMagnetURI.js","../../node_modules/validator/lib/isMimeType.js","../esm5/decorator/string/IsMimeType.js","../../node_modules/validator/lib/isOctal.js","../esm5/decorator/string/IsOctal.js","../../node_modules/validator/lib/isPassportNumber.js","../esm5/decorator/string/IsPassportNumber.js","../../node_modules/validator/lib/isPostalCode.js","../esm5/decorator/string/IsPostalCode.js","../../node_modules/validator/lib/isRFC3339.js","../esm5/decorator/string/IsRFC3339.js","../../node_modules/validator/lib/isRgbColor.js","../esm5/decorator/string/IsRgbColor.js","../../node_modules/validator/lib/util/multilineRegex.js","../../node_modules/validator/lib/isSemVer.js","../esm5/decorator/string/IsSemVer.js","../esm5/decorator/typechecker/IsBoolean.js","../esm5/decorator/typechecker/IsDate.js","../esm5/decorator/typechecker/IsNumber.js","../esm5/decorator/typechecker/IsEnum.js","../esm5/decorator/typechecker/IsInt.js","../esm5/decorator/typechecker/IsString.js","../esm5/decorator/typechecker/IsArray.js","../esm5/decorator/typechecker/IsObject.js","../esm5/decorator/array/ArrayContains.js","../esm5/decorator/array/ArrayNotContains.js","../esm5/decorator/array/ArrayNotEmpty.js","../esm5/decorator/array/ArrayMinSize.js","../esm5/decorator/array/ArrayMaxSize.js","../esm5/decorator/array/ArrayUnique.js","../esm5/decorator/object/IsNotEmptyObject.js","../esm5/decorator/object/IsInstance.js","../esm5/index.js"],"sourcesContent":["/**\n * This metadata contains validation rules.\n */\nvar ValidationMetadata = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ValidationMetadata(args) {\n /**\n * Validation groups used for this validation.\n */\n this.groups = [];\n /**\n * Specifies if validated value is an array and each of its item must be validated.\n */\n this.each = false;\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n this.context = undefined;\n this.type = args.type;\n this.target = args.target;\n this.propertyName = args.propertyName;\n this.constraints = args.constraints;\n this.constraintCls = args.constraintCls;\n this.validationTypeOptions = args.validationTypeOptions;\n if (args.validationOptions) {\n this.message = args.validationOptions.message;\n this.groups = args.validationOptions.groups;\n this.always = args.validationOptions.always;\n this.each = args.validationOptions.each;\n this.context = args.validationOptions.context;\n }\n }\n return ValidationMetadata;\n}());\nexport { ValidationMetadata };\n//# sourceMappingURL=ValidationMetadata.js.map","import { ValidationMetadata } from '../metadata/ValidationMetadata';\n/**\n * Used to transform validation schemas to validation metadatas.\n */\nvar ValidationSchemaToMetadataTransformer = /** @class */ (function () {\n function ValidationSchemaToMetadataTransformer() {\n }\n ValidationSchemaToMetadataTransformer.prototype.transform = function (schema) {\n var metadatas = [];\n Object.keys(schema.properties).forEach(function (property) {\n schema.properties[property].forEach(function (validation) {\n var validationOptions = {\n message: validation.message,\n groups: validation.groups,\n always: validation.always,\n each: validation.each,\n };\n var args = {\n type: validation.type,\n target: schema.name,\n propertyName: property,\n constraints: validation.constraints,\n validationTypeOptions: validation.options,\n validationOptions: validationOptions,\n };\n metadatas.push(new ValidationMetadata(args));\n });\n });\n return metadatas;\n };\n return ValidationSchemaToMetadataTransformer;\n}());\nexport { ValidationSchemaToMetadataTransformer };\n//# sourceMappingURL=ValidationSchemaToMetadataTransformer.js.map","/**\n * Convert Map, Set to Array\n */\nexport function convertToArray(val) {\n if (val instanceof Map) {\n return Array.from(val.values());\n }\n return Array.isArray(val) ? val : Array.from(val);\n}\n//# sourceMappingURL=convert-to-array.util.js.map","/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n//# sourceMappingURL=get-global.util.js.map","// https://github.com/TylorS/typed-is-promise/blob/abf1514e1b6961adfc75765476b0debb96b2c3ae/src/index.ts\nexport function isPromise(p) {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n//# sourceMappingURL=is-promise.util.js.map","import { ValidationSchemaToMetadataTransformer } from '../validation-schema/ValidationSchemaToMetadataTransformer';\nimport { getGlobal } from '../utils';\n/**\n * Storage all metadatas.\n */\nvar MetadataStorage = /** @class */ (function () {\n function MetadataStorage() {\n // -------------------------------------------------------------------------\n // Private properties\n // -------------------------------------------------------------------------\n this.validationMetadatas = [];\n this.constraintMetadatas = [];\n }\n Object.defineProperty(MetadataStorage.prototype, \"hasValidationMetaData\", {\n get: function () {\n return !!this.validationMetadatas.length;\n },\n enumerable: false,\n configurable: true\n });\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Adds a new validation metadata.\n */\n MetadataStorage.prototype.addValidationSchema = function (schema) {\n var _this = this;\n var validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema);\n validationMetadatas.forEach(function (validationMetadata) { return _this.addValidationMetadata(validationMetadata); });\n };\n /**\n * Adds a new validation metadata.\n */\n MetadataStorage.prototype.addValidationMetadata = function (metadata) {\n this.validationMetadatas.push(metadata);\n };\n /**\n * Adds a new constraint metadata.\n */\n MetadataStorage.prototype.addConstraintMetadata = function (metadata) {\n this.constraintMetadatas.push(metadata);\n };\n /**\n * Groups metadata by their property names.\n */\n MetadataStorage.prototype.groupByPropertyName = function (metadata) {\n var grouped = {};\n metadata.forEach(function (metadata) {\n if (!grouped[metadata.propertyName])\n grouped[metadata.propertyName] = [];\n grouped[metadata.propertyName].push(metadata);\n });\n return grouped;\n };\n /**\n * Gets all validation metadatas for the given object with the given groups.\n */\n MetadataStorage.prototype.getTargetValidationMetadatas = function (targetConstructor, targetSchema, always, strictGroups, groups) {\n var includeMetadataBecauseOfAlwaysOption = function (metadata) {\n // `metadata.always` overrides global default.\n if (typeof metadata.always !== 'undefined')\n return metadata.always;\n // `metadata.groups` overrides global default.\n if (metadata.groups && metadata.groups.length)\n return false;\n // Use global default.\n return always;\n };\n var excludeMetadataBecauseOfStrictGroupsOption = function (metadata) {\n if (strictGroups) {\n // Validation is not using groups.\n if (!groups || !groups.length) {\n // `metadata.groups` has at least one group.\n if (metadata.groups && metadata.groups.length)\n return true;\n }\n }\n return false;\n };\n // get directly related to a target metadatas\n var originalMetadatas = this.validationMetadatas.filter(function (metadata) {\n if (metadata.target !== targetConstructor && metadata.target !== targetSchema)\n return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata))\n return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n return true;\n });\n // get metadatas for inherited classes\n var inheritedMetadatas = this.validationMetadatas.filter(function (metadata) {\n // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas\n if (typeof metadata.target === 'string')\n return false;\n if (metadata.target === targetConstructor)\n return false;\n if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target))\n return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata))\n return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n return true;\n });\n // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas\n var uniqueInheritedMetadatas = inheritedMetadatas.filter(function (inheritedMetadata) {\n return !originalMetadatas.find(function (originalMetadata) {\n return (originalMetadata.propertyName === inheritedMetadata.propertyName &&\n originalMetadata.type === inheritedMetadata.type);\n });\n });\n return originalMetadatas.concat(uniqueInheritedMetadatas);\n };\n /**\n * Gets all validator constraints for the given object.\n */\n MetadataStorage.prototype.getTargetValidatorConstraints = function (target) {\n return this.constraintMetadatas.filter(function (metadata) { return metadata.target === target; });\n };\n return MetadataStorage;\n}());\nexport { MetadataStorage };\n/**\n * Gets metadata storage.\n * Metadata storage follows the best practices and stores metadata in a global variable.\n */\nexport function getMetadataStorage() {\n var global = getGlobal();\n if (!global.classValidatorMetadataStorage) {\n global.classValidatorMetadataStorage = new MetadataStorage();\n }\n return global.classValidatorMetadataStorage;\n}\n//# sourceMappingURL=MetadataStorage.js.map","/**\n * Validation error description.\n */\nvar ValidationError = /** @class */ (function () {\n function ValidationError() {\n }\n /**\n *\n * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability\n * @param hasParent true when the error is a child of an another one\n * @param parentPath path as string to the parent of this property\n */\n ValidationError.prototype.toString = function (shouldDecorate, hasParent, parentPath) {\n var _this = this;\n if (shouldDecorate === void 0) { shouldDecorate = false; }\n if (hasParent === void 0) { hasParent = false; }\n if (parentPath === void 0) { parentPath = \"\"; }\n var boldStart = shouldDecorate ? \"\\u001B[1m\" : \"\";\n var boldEnd = shouldDecorate ? \"\\u001B[22m\" : \"\";\n var propConstraintFailed = function (propertyName) {\n return \" - property \" + boldStart + parentPath + propertyName + boldEnd + \" has failed the following constraints: \" + boldStart + Object.keys(_this.constraints).join(\", \") + boldEnd + \" \\n\";\n };\n if (!hasParent) {\n return (\"An instance of \" + boldStart + (this.target ? this.target.constructor.name : 'an object') + boldEnd + \" has failed the validation:\\n\" +\n (this.constraints ? propConstraintFailed(this.property) : \"\") +\n (this.children\n ? this.children.map(function (childError) { return childError.toString(shouldDecorate, true, _this.property); }).join(\"\")\n : \"\"));\n }\n else {\n // we format numbers as array indexes for better readability.\n var formattedProperty_1 = Number.isInteger(+this.property)\n ? \"[\" + this.property + \"]\"\n : \"\" + (parentPath ? \".\" : \"\") + this.property;\n if (this.constraints) {\n return propConstraintFailed(formattedProperty_1);\n }\n else {\n return this.children\n ? this.children\n .map(function (childError) { return childError.toString(shouldDecorate, true, \"\" + parentPath + formattedProperty_1); })\n .join(\"\")\n : \"\";\n }\n }\n };\n return ValidationError;\n}());\nexport { ValidationError };\n//# sourceMappingURL=ValidationError.js.map","/**\n * Validation types.\n */\nvar ValidationTypes = /** @class */ (function () {\n function ValidationTypes() {\n }\n /**\n * Checks if validation type is valid.\n */\n ValidationTypes.isValid = function (type) {\n var _this = this;\n return (type !== 'isValid' &&\n type !== 'getMessage' &&\n Object.keys(this)\n .map(function (key) { return _this[key]; })\n .indexOf(type) !== -1);\n };\n /* system */\n ValidationTypes.CUSTOM_VALIDATION = 'customValidation'; // done\n ValidationTypes.NESTED_VALIDATION = 'nestedValidation'; // done\n ValidationTypes.PROMISE_VALIDATION = 'promiseValidation'; // done\n ValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation'; // done\n ValidationTypes.WHITELIST = 'whitelistValidation'; // done\n ValidationTypes.IS_DEFINED = 'isDefined'; // done\n return ValidationTypes;\n}());\nexport { ValidationTypes };\n//# sourceMappingURL=ValidationTypes.js.map","/**\n * Convert the constraint to a string to be shown in an error\n */\nexport function constraintToString(constraint) {\n if (Array.isArray(constraint)) {\n return constraint.join(', ');\n }\n return \"\" + constraint;\n}\nvar ValidationUtils = /** @class */ (function () {\n function ValidationUtils() {\n }\n ValidationUtils.replaceMessageSpecialTokens = function (message, validationArguments) {\n var messageString;\n if (message instanceof Function) {\n messageString = message(validationArguments);\n }\n else if (typeof message === 'string') {\n messageString = message;\n }\n if (messageString && validationArguments.constraints instanceof Array) {\n validationArguments.constraints.forEach(function (constraint, index) {\n messageString = messageString.replace(new RegExp(\"\\\\$constraint\" + (index + 1), 'g'), constraintToString(constraint));\n });\n }\n if (messageString &&\n validationArguments.value !== undefined &&\n validationArguments.value !== null &&\n typeof validationArguments.value === 'string')\n messageString = messageString.replace(/\\$value/g, validationArguments.value);\n if (messageString)\n messageString = messageString.replace(/\\$property/g, validationArguments.property);\n if (messageString)\n messageString = messageString.replace(/\\$target/g, validationArguments.targetName);\n return messageString;\n };\n return ValidationUtils;\n}());\nexport { ValidationUtils };\n//# sourceMappingURL=ValidationUtils.js.map","import { ValidationError } from './ValidationError';\nimport { ValidationTypes } from './ValidationTypes';\nimport { ValidationUtils } from './ValidationUtils';\nimport { isPromise, convertToArray } from '../utils';\nimport { getMetadataStorage } from '../metadata/MetadataStorage';\n/**\n * Executes validation over given object.\n */\nvar ValidationExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ValidationExecutor(validator, validatorOptions) {\n this.validator = validator;\n this.validatorOptions = validatorOptions;\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n this.awaitingPromises = [];\n this.ignoreAsyncValidations = false;\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n this.metadataStorage = getMetadataStorage();\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n ValidationExecutor.prototype.execute = function (object, targetSchema, validationErrors) {\n var _this = this;\n var _a;\n /**\n * If there is no metadata registered it means possibly the dependencies are not flatterned and\n * more than one instance is used.\n *\n * TODO: This needs proper handling, forcing to use the same container or some other proper solution.\n */\n if (!this.metadataStorage.hasValidationMetaData && ((_a = this.validatorOptions) === null || _a === void 0 ? void 0 : _a.enableDebugMessages) === true) {\n console.warn(\"No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies.\");\n }\n var groups = this.validatorOptions ? this.validatorOptions.groups : undefined;\n var strictGroups = (this.validatorOptions && this.validatorOptions.strictGroups) || false;\n var always = (this.validatorOptions && this.validatorOptions.always) || false;\n var targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(object.constructor, targetSchema, always, strictGroups, groups);\n var groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas);\n if (this.validatorOptions && this.validatorOptions.forbidUnknownValues && !targetMetadatas.length) {\n var validationError = new ValidationError();\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true)\n validationError.target = object;\n validationError.value = undefined;\n validationError.property = undefined;\n validationError.children = [];\n validationError.constraints = { unknownValue: 'an unknown value was passed to the validate function' };\n validationErrors.push(validationError);\n return;\n }\n if (this.validatorOptions && this.validatorOptions.whitelist)\n this.whitelist(object, groupedMetadatas, validationErrors);\n // General validation\n Object.keys(groupedMetadatas).forEach(function (propertyName) {\n var value = object[propertyName];\n var definedMetadatas = groupedMetadatas[propertyName].filter(function (metadata) { return metadata.type === ValidationTypes.IS_DEFINED; });\n var metadatas = groupedMetadatas[propertyName].filter(function (metadata) { return metadata.type !== ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes.WHITELIST; });\n if (value instanceof Promise &&\n metadatas.find(function (metadata) { return metadata.type === ValidationTypes.PROMISE_VALIDATION; })) {\n _this.awaitingPromises.push(value.then(function (resolvedValue) {\n _this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors);\n }));\n }\n else {\n _this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors);\n }\n });\n };\n ValidationExecutor.prototype.whitelist = function (object, groupedMetadatas, validationErrors) {\n var _this = this;\n var notAllowedProperties = [];\n Object.keys(object).forEach(function (propertyName) {\n // does this property have no metadata?\n if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0)\n notAllowedProperties.push(propertyName);\n });\n if (notAllowedProperties.length > 0) {\n if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) {\n // throw errors\n notAllowedProperties.forEach(function (property) {\n var _a;\n var validationError = _this.generateValidationError(object, object[property], property);\n validationError.constraints = (_a = {}, _a[ValidationTypes.WHITELIST] = \"property \" + property + \" should not exist\", _a);\n validationError.children = undefined;\n validationErrors.push(validationError);\n });\n }\n else {\n // strip non allowed properties\n notAllowedProperties.forEach(function (property) { return delete object[property]; });\n }\n }\n };\n ValidationExecutor.prototype.stripEmptyErrors = function (errors) {\n var _this = this;\n return errors.filter(function (error) {\n if (error.children) {\n error.children = _this.stripEmptyErrors(error.children);\n }\n if (Object.keys(error.constraints).length === 0) {\n if (error.children.length === 0) {\n return false;\n }\n else {\n delete error.constraints;\n }\n }\n return true;\n });\n };\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n ValidationExecutor.prototype.performValidations = function (object, value, propertyName, definedMetadatas, metadatas, validationErrors) {\n var customValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.CUSTOM_VALIDATION; });\n var nestedValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.NESTED_VALIDATION; });\n var conditionalValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.CONDITIONAL_VALIDATION; });\n var validationError = this.generateValidationError(object, value, propertyName);\n validationErrors.push(validationError);\n var canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas);\n if (!canValidate) {\n return;\n }\n // handle IS_DEFINED validation type the special way - it should work no matter skipUndefinedProperties/skipMissingProperties is set or not\n this.customValidations(object, value, definedMetadatas, validationError);\n this.mapContexts(object, value, definedMetadatas, validationError);\n if (value === undefined && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) {\n return;\n }\n if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) {\n return;\n }\n if ((value === null || value === undefined) &&\n this.validatorOptions &&\n this.validatorOptions.skipMissingProperties === true) {\n return;\n }\n this.customValidations(object, value, customValidationMetadatas, validationError);\n this.nestedValidations(value, nestedValidationMetadatas, validationError.children);\n this.mapContexts(object, value, metadatas, validationError);\n this.mapContexts(object, value, customValidationMetadatas, validationError);\n };\n ValidationExecutor.prototype.generateValidationError = function (object, value, propertyName) {\n var validationError = new ValidationError();\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true)\n validationError.target = object;\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.value === undefined ||\n this.validatorOptions.validationError.value === true)\n validationError.value = value;\n validationError.property = propertyName;\n validationError.children = [];\n validationError.constraints = {};\n return validationError;\n };\n ValidationExecutor.prototype.conditionalValidations = function (object, value, metadatas) {\n return metadatas\n .map(function (metadata) { return metadata.constraints[0](object, value); })\n .reduce(function (resultA, resultB) { return resultA && resultB; }, true);\n };\n ValidationExecutor.prototype.customValidations = function (object, value, metadatas, error) {\n var _this = this;\n metadatas.forEach(function (metadata) {\n _this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls).forEach(function (customConstraintMetadata) {\n if (customConstraintMetadata.async && _this.ignoreAsyncValidations)\n return;\n if (_this.validatorOptions &&\n _this.validatorOptions.stopAtFirstError &&\n Object.keys(error.constraints || {}).length > 0)\n return;\n var validationArguments = {\n targetName: object.constructor ? object.constructor.name : undefined,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n if (!metadata.each || !(value instanceof Array || value instanceof Set || value instanceof Map)) {\n var validatedValue = customConstraintMetadata.instance.validate(value, validationArguments);\n if (isPromise(validatedValue)) {\n var promise = validatedValue.then(function (isValid) {\n if (!isValid) {\n var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1];\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n _this.awaitingPromises.push(promise);\n }\n else {\n if (!validatedValue) {\n var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1];\n error.constraints[type] = message;\n }\n }\n return;\n }\n // convert set and map into array\n var arrayValue = convertToArray(value);\n // Validation needs to be applied to each array item\n var validatedSubValues = arrayValue.map(function (subValue) {\n return customConstraintMetadata.instance.validate(subValue, validationArguments);\n });\n var validationIsAsync = validatedSubValues.some(function (validatedSubValue) {\n return isPromise(validatedSubValue);\n });\n if (validationIsAsync) {\n // Wrap plain values (if any) in promises, so that all are async\n var asyncValidatedSubValues = validatedSubValues.map(function (validatedSubValue) {\n return isPromise(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue);\n });\n var asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues).then(function (flatValidatedValues) {\n var validationResult = flatValidatedValues.every(function (isValid) { return isValid; });\n if (!validationResult) {\n var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1];\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n _this.awaitingPromises.push(asyncValidationIsFinishedPromise);\n return;\n }\n var validationResult = validatedSubValues.every(function (isValid) { return isValid; });\n if (!validationResult) {\n var _b = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _b[0], message = _b[1];\n error.constraints[type] = message;\n }\n });\n });\n };\n ValidationExecutor.prototype.nestedValidations = function (value, metadatas, errors) {\n var _this = this;\n if (value === void 0) {\n return;\n }\n metadatas.forEach(function (metadata) {\n var _a;\n if (metadata.type !== ValidationTypes.NESTED_VALIDATION && metadata.type !== ValidationTypes.PROMISE_VALIDATION) {\n return;\n }\n if (value instanceof Array || value instanceof Set || value instanceof Map) {\n // Treats Set as an array - as index of Set value is value itself and it is common case to have Object as value\n var arrayLikeValue = value instanceof Set ? Array.from(value) : value;\n arrayLikeValue.forEach(function (subValue, index) {\n _this.performValidations(value, subValue, index.toString(), [], metadatas, errors);\n });\n }\n else if (value instanceof Object) {\n var targetSchema = typeof metadata.target === 'string' ? metadata.target : metadata.target.name;\n _this.execute(value, targetSchema, errors);\n }\n else {\n var error = new ValidationError();\n error.value = value;\n error.property = metadata.propertyName;\n error.target = metadata.target;\n var _b = _this.createValidationError(metadata.target, value, metadata), type = _b[0], message = _b[1];\n error.constraints = (_a = {},\n _a[type] = message,\n _a);\n errors.push(error);\n }\n });\n };\n ValidationExecutor.prototype.mapContexts = function (object, value, metadatas, error) {\n var _this = this;\n return metadatas.forEach(function (metadata) {\n if (metadata.context) {\n var customConstraint = void 0;\n if (metadata.type === ValidationTypes.CUSTOM_VALIDATION) {\n var customConstraints = _this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls);\n customConstraint = customConstraints[0];\n }\n var type = _this.getConstraintType(metadata, customConstraint);\n if (error.constraints[type]) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n };\n ValidationExecutor.prototype.createValidationError = function (object, value, metadata, customValidatorMetadata) {\n var targetName = object.constructor ? object.constructor.name : undefined;\n var type = this.getConstraintType(metadata, customValidatorMetadata);\n var validationArguments = {\n targetName: targetName,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n var message = metadata.message || '';\n if (!metadata.message &&\n (!this.validatorOptions || (this.validatorOptions && !this.validatorOptions.dismissDefaultMessages))) {\n if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) {\n message = customValidatorMetadata.instance.defaultMessage(validationArguments);\n }\n }\n var messageString = ValidationUtils.replaceMessageSpecialTokens(message, validationArguments);\n return [type, messageString];\n };\n ValidationExecutor.prototype.getConstraintType = function (metadata, customValidatorMetadata) {\n var type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type;\n return type;\n };\n return ValidationExecutor;\n}());\nexport { ValidationExecutor };\n//# sourceMappingURL=ValidationExecutor.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { ValidationExecutor } from './ValidationExecutor';\n/**\n * Validator performs validation of the given object based on its metadata.\n */\nvar Validator = /** @class */ (function () {\n function Validator() {\n }\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n Validator.prototype.validate = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions);\n };\n /**\n * Performs validation of the given object based on decorators or validation schema and reject on error.\n */\n Validator.prototype.validateOrReject = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var errors;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions)];\n case 1:\n errors = _a.sent();\n if (errors.length)\n return [2 /*return*/, Promise.reject(errors)];\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n Validator.prototype.validateSync = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n var object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName;\n var options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions;\n var schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n var executor = new ValidationExecutor(this, options);\n executor.ignoreAsyncValidations = true;\n var validationErrors = [];\n executor.execute(object, schema, validationErrors);\n return executor.stripEmptyErrors(validationErrors);\n };\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n /**\n * Performs validation of the given object based on decorators or validation schema.\n * Common method for `validateOrReject` and `validate` methods.\n */\n Validator.prototype.coreValidate = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n var object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName;\n var options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions;\n var schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n var executor = new ValidationExecutor(this, options);\n var validationErrors = [];\n executor.execute(object, schema, validationErrors);\n return Promise.all(executor.awaitingPromises).then(function () {\n return executor.stripEmptyErrors(validationErrors);\n });\n };\n return Validator;\n}());\nexport { Validator };\n//# sourceMappingURL=Validator.js.map","/**\n * Container to be used by this library for inversion control. If container was not implicitly set then by default\n * container simply creates a new instance of the given class.\n */\nvar defaultContainer = new (/** @class */ (function () {\n function class_1() {\n this.instances = [];\n }\n class_1.prototype.get = function (someClass) {\n var instance = this.instances.find(function (instance) { return instance.type === someClass; });\n if (!instance) {\n instance = { type: someClass, object: new someClass() };\n this.instances.push(instance);\n }\n return instance.object;\n };\n return class_1;\n}()))();\nvar userContainer;\nvar userContainerOptions;\n/**\n * Sets container to be used by this library.\n */\nexport function useContainer(iocContainer, options) {\n userContainer = iocContainer;\n userContainerOptions = options;\n}\n/**\n * Gets the IOC container used by this library.\n */\nexport function getFromContainer(someClass) {\n if (userContainer) {\n try {\n var instance = userContainer.get(someClass);\n if (instance)\n return instance;\n if (!userContainerOptions || !userContainerOptions.fallback)\n return instance;\n }\n catch (error) {\n if (!userContainerOptions || !userContainerOptions.fallbackOnErrors)\n throw error;\n }\n }\n return defaultContainer.get(someClass);\n}\n//# sourceMappingURL=container.js.map","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * If object has both allowed and not allowed properties a validation error will be thrown.\n */\nexport function Allow(validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.WHITELIST,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=Allow.js.map","import { getFromContainer } from '../container';\n/**\n * This metadata interface contains information for custom validators.\n */\nvar ConstraintMetadata = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ConstraintMetadata(target, name, async) {\n if (async === void 0) { async = false; }\n this.target = target;\n this.name = name;\n this.async = async;\n }\n Object.defineProperty(ConstraintMetadata.prototype, \"instance\", {\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n /**\n * Instance of the target custom validation class which performs validation.\n */\n get: function () {\n return getFromContainer(this.target);\n },\n enumerable: false,\n configurable: true\n });\n return ConstraintMetadata;\n}());\nexport { ConstraintMetadata };\n//# sourceMappingURL=ConstraintMetadata.js.map","import { ConstraintMetadata } from './metadata/ConstraintMetadata';\nimport { ValidationMetadata } from './metadata/ValidationMetadata';\nimport { ValidationTypes } from './validation/ValidationTypes';\nimport { getFromContainer } from './container';\nimport { MetadataStorage, getMetadataStorage } from './metadata/MetadataStorage';\n/**\n * Registers a custom validation decorator.\n */\nexport function registerDecorator(options) {\n var constraintCls;\n if (options.validator instanceof Function) {\n constraintCls = options.validator;\n var constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator);\n if (constraintClasses.length > 1) {\n throw \"More than one implementation of ValidatorConstraintInterface found for validator on: \" + options.target.name + \":\" + options.propertyName;\n }\n }\n else {\n var validator_1 = options.validator;\n constraintCls = /** @class */ (function () {\n function CustomConstraint() {\n }\n CustomConstraint.prototype.validate = function (value, validationArguments) {\n return validator_1.validate(value, validationArguments);\n };\n CustomConstraint.prototype.defaultMessage = function (validationArguments) {\n if (validator_1.defaultMessage) {\n return validator_1.defaultMessage(validationArguments);\n }\n return '';\n };\n return CustomConstraint;\n }());\n getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async));\n }\n var validationMetadataArgs = {\n type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION,\n target: options.target,\n propertyName: options.propertyName,\n validationOptions: options.options,\n constraintCls: constraintCls,\n constraints: options.constraints,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs));\n}\n//# sourceMappingURL=register-decorator.js.map","import { registerDecorator } from '../../register-decorator';\nexport function buildMessage(impl, validationOptions) {\n return function (validationArguments) {\n var eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : '';\n return impl(eachPrefix, validationArguments);\n };\n}\nexport function ValidateBy(options, validationOptions) {\n return function (object, propertyName) {\n registerDecorator({\n name: options.name,\n target: object.constructor,\n propertyName: propertyName,\n options: validationOptions,\n constraints: options.constraints,\n validator: options.validator,\n });\n };\n}\n//# sourceMappingURL=ValidateBy.js.map","import { buildMessage, ValidateBy } from './ValidateBy';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\n// isDefined is (yet) a special case\nexport var IS_DEFINED = ValidationTypes.IS_DEFINED;\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function IsDefined(validationOptions) {\n return ValidateBy({\n name: IS_DEFINED,\n validator: {\n validate: function (value) { return isDefined(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be null or undefined'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDefined.js.map","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Checks if value is missing and if so, ignores all validators.\n */\nexport function IsOptional(validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [\n function (object, value) {\n return object[propertyName] !== null && object[propertyName] !== undefined;\n },\n ],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=IsOptional.js.map","import { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ConstraintMetadata } from '../../metadata/ConstraintMetadata';\n/**\n * Registers custom validator class.\n */\nexport function ValidatorConstraint(options) {\n return function (target) {\n var isAsync = options && options.async;\n var name = options && options.name ? options.name : '';\n if (!name) {\n name = target.name;\n if (!name)\n // generate name if it was not given\n name = name.replace(/\\.?([A-Z]+)/g, function (x, y) { return '_' + y.toLowerCase(); }).replace(/^_/, '');\n }\n var metadata = new ConstraintMetadata(target, name, isAsync);\n getMetadataStorage().addConstraintMetadata(metadata);\n };\n}\nexport function Validate(constraintClass, constraintsOrValidationOptions, maybeValidationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.CUSTOM_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraintCls: constraintClass,\n constraints: constraintsOrValidationOptions instanceof Array ? constraintsOrValidationOptions : undefined,\n validationOptions: !(constraintsOrValidationOptions instanceof Array)\n ? constraintsOrValidationOptions\n : maybeValidationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=Validate.js.map","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Ignores the other validators on a property when the provided condition function returns false.\n */\nexport function ValidateIf(condition, validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [condition],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=ValidateIf.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Objects / object arrays marked with this decorator will also be validated.\n */\nexport function ValidateNested(validationOptions) {\n var opts = __assign({}, validationOptions);\n var eachPrefix = opts.each ? 'each value in ' : '';\n opts.message = opts.message || eachPrefix + 'nested property $property must be either object or array';\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.NESTED_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: opts,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=ValidateNested.js.map","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Resolve promise before validation\n */\nexport function ValidatePromise(validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.PROMISE_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=ValidatePromise.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n\n if (!isString) {\n var invalidType = _typeof(input);\n\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\n\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLatLong;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar lat = /^\\(?[+-]?(90(\\.0+)?|[1-8]?\\d(\\.\\d+)?)$/;\nvar long = /^\\s?[+-]?(180(\\.0+)?|1[0-7]\\d(\\.\\d+)?|\\d{1,2}(\\.\\d+)?)\\)?$/;\nvar latDMS = /^(([1-8]?\\d)\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|90\\D+0\\D+0)\\D+[NSns]?$/i;\nvar longDMS = /^\\s*([1-7]?\\d{1,2}\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|180\\D+0\\D+0)\\D+[EWew]?$/i;\nvar defaultLatLongOptions = {\n checkDMS: false\n};\n\nfunction isLatLong(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultLatLongOptions);\n if (!str.includes(',')) return false;\n var pair = str.split(',');\n if (pair[0].startsWith('(') && !pair[1].endsWith(')') || pair[1].endsWith(')') && !pair[0].startsWith('(')) return false;\n\n if (options.checkDMS) {\n return latDMS.test(pair[0]) && longDMS.test(pair[1]);\n }\n\n return lat.test(pair[0]) && long.test(pair[1]);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from './ValidateBy';\nimport isLatLongValidator from 'validator/lib/isLatLong';\nexport var IS_LATLONG = 'isLatLong';\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function isLatLong(value) {\n return typeof value === 'string' && isLatLongValidator(value);\n}\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function IsLatLong(validationOptions) {\n return ValidateBy({\n name: IS_LATLONG,\n validator: {\n validate: function (value, args) { return isLatLong(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a latitude,longitude string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsLatLong.js.map","import { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\nexport var IS_LATITUDE = 'isLatitude';\n/**\n * Checks if a given value is a latitude.\n */\nexport function isLatitude(value) {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(value + \",0\");\n}\n/**\n * Checks if a given value is a latitude.\n */\nexport function IsLatitude(validationOptions) {\n return ValidateBy({\n name: IS_LATITUDE,\n validator: {\n validate: function (value, args) { return isLatitude(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a latitude string or number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsLatitude.js.map","import { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\nexport var IS_LONGITUDE = 'isLongitude';\n/**\n * Checks if a given value is a longitude.\n */\nexport function isLongitude(value) {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(\"0,\" + value);\n}\n/**\n * Checks if a given value is a longitude.\n */\nexport function IsLongitude(validationOptions) {\n return ValidateBy({\n name: IS_LONGITUDE,\n validator: {\n validate: function (value, args) { return isLongitude(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a longitude string or number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsLongitude.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var EQUALS = 'equals';\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function equals(value, comparison) {\n return value === comparison;\n}\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function Equals(comparison, validationOptions) {\n return ValidateBy({\n name: EQUALS,\n constraints: [comparison],\n validator: {\n validate: function (value, args) { return equals(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be equal to $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Equals.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var NOT_EQUALS = 'notEquals';\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function notEquals(value, comparison) {\n return value !== comparison;\n}\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function NotEquals(comparison, validationOptions) {\n return ValidateBy({\n name: NOT_EQUALS,\n constraints: [comparison],\n validator: {\n validate: function (value, args) { return notEquals(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be equal to $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=NotEquals.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_EMPTY = 'isEmpty';\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function isEmpty(value) {\n return value === '' || value === null || value === undefined;\n}\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function IsEmpty(validationOptions) {\n return ValidateBy({\n name: IS_EMPTY,\n validator: {\n validate: function (value, args) { return isEmpty(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be empty'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsEmpty.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_NOT_EMPTY = 'isNotEmpty';\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function isNotEmpty(value) {\n return value !== '' && value !== null && value !== undefined;\n}\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function IsNotEmpty(validationOptions) {\n return ValidateBy({\n name: IS_NOT_EMPTY,\n validator: {\n validate: function (value, args) { return isNotEmpty(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be empty'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNotEmpty.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_IN = 'isIn';\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function isIn(value, possibleValues) {\n return !(possibleValues instanceof Array) || possibleValues.some(function (possibleValue) { return possibleValue === value; });\n}\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function IsIn(values, validationOptions) {\n return ValidateBy({\n name: IS_IN,\n constraints: [values],\n validator: {\n validate: function (value, args) { return isIn(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be one of the following values: $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsIn.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_NOT_IN = 'isNotIn';\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function isNotIn(value, possibleValues) {\n return !(possibleValues instanceof Array) || !possibleValues.some(function (possibleValue) { return possibleValue === value; });\n}\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function IsNotIn(values, validationOptions) {\n return ValidateBy({\n name: IS_NOT_IN,\n constraints: [values],\n validator: {\n validate: function (value, args) { return isNotIn(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be one of the following values: $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNotIn.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.commaDecimal = exports.dotDecimal = exports.farsiLocales = exports.arabicLocales = exports.englishLocales = exports.decimal = exports.alphanumeric = exports.alpha = void 0;\nvar alpha = {\n 'en-US': /^[A-Z]+$/i,\n 'az-AZ': /^[A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[А-Я]+$/i,\n 'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[A-ZÆØÅ]+$/i,\n 'de-DE': /^[A-ZÄÖÜß]+$/i,\n 'el-GR': /^[Α-ώ]+$/i,\n 'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,\n 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'nb-NO': /^[A-ZÆØÅ]+$/i,\n 'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[A-ZÆØÅ]+$/i,\n 'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[А-ЯЁ]+$/i,\n 'sl-SI': /^[A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๐\\s]+$/i,\n 'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i,\n 'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n 'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[א-ת]+$/,\n fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i\n};\nexports.alpha = alpha;\nvar alphanumeric = {\n 'en-US': /^[0-9A-Z]+$/i,\n 'az-AZ': /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[0-9А-Я]+$/i,\n 'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[0-9A-ZÆØÅ]+$/i,\n 'de-DE': /^[0-9A-ZÄÖÜß]+$/i,\n 'el-GR': /^[0-9Α-ω]+$/i,\n 'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'nb-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[0-9А-ЯЁ]+$/i,\n 'sl-SI': /^[0-9A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๙\\s]+$/i,\n 'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,\n 'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n 'vi-VN': /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[0-9א-ת]+$/,\n fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i\n};\nexports.alphanumeric = alphanumeric;\nvar decimal = {\n 'en-US': '.',\n ar: '٫'\n};\nexports.decimal = decimal;\nvar englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];\nexports.englishLocales = englishLocales;\n\nfor (var locale, i = 0; i < englishLocales.length; i++) {\n locale = \"en-\".concat(englishLocales[i]);\n alpha[locale] = alpha['en-US'];\n alphanumeric[locale] = alphanumeric['en-US'];\n decimal[locale] = decimal['en-US'];\n} // Source: http://www.localeplanet.com/java/\n\n\nvar arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];\nexports.arabicLocales = arabicLocales;\n\nfor (var _locale, _i = 0; _i < arabicLocales.length; _i++) {\n _locale = \"ar-\".concat(arabicLocales[_i]);\n alpha[_locale] = alpha.ar;\n alphanumeric[_locale] = alphanumeric.ar;\n decimal[_locale] = decimal.ar;\n}\n\nvar farsiLocales = ['IR', 'AF'];\nexports.farsiLocales = farsiLocales;\n\nfor (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) {\n _locale2 = \"fa-\".concat(farsiLocales[_i2]);\n alphanumeric[_locale2] = alphanumeric.fa;\n decimal[_locale2] = decimal.ar;\n} // Source: https://en.wikipedia.org/wiki/Decimal_mark\n\n\nvar dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];\nexports.dotDecimal = dotDecimal;\nvar commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'es-ES', 'fr-CA', 'fr-FR', 'id-ID', 'it-IT', 'ku-IQ', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN'];\nexports.commaDecimal = commaDecimal;\n\nfor (var _i3 = 0; _i3 < dotDecimal.length; _i3++) {\n decimal[dotDecimal[_i3]] = decimal['en-US'];\n}\n\nfor (var _i4 = 0; _i4 < commaDecimal.length; _i4++) {\n decimal[commaDecimal[_i4]] = ',';\n}\n\nalpha['fr-CA'] = alpha['fr-FR'];\nalphanumeric['fr-CA'] = alphanumeric['fr-FR'];\nalpha['pt-BR'] = alpha['pt-PT'];\nalphanumeric['pt-BR'] = alphanumeric['pt-PT'];\ndecimal['pt-BR'] = decimal['pt-PT']; // see #862\n\nalpha['pl-Pl'] = alpha['pl-PL'];\nalphanumeric['pl-Pl'] = alphanumeric['pl-PL'];\ndecimal['pl-Pl'] = decimal['pl-PL']; // see #1455\n\nalpha['fa-AF'] = alpha.fa;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFloat;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isFloat(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n var float = new RegExp(\"^(?:[-+])?(?:[0-9]+)?(?:\\\\\".concat(options.locale ? _alpha.decimal[options.locale] : '.', \"[0-9]*)?(?:[eE][\\\\+\\\\-]?(?:[0-9]+))?$\"));\n\n if (str === '' || str === '.' || str === '-' || str === '+') {\n return false;\n }\n\n var value = parseFloat(str.replace(',', '.'));\n return float.test(str) && (!options.hasOwnProperty('min') || value >= options.min) && (!options.hasOwnProperty('max') || value <= options.max) && (!options.hasOwnProperty('lt') || value < options.lt) && (!options.hasOwnProperty('gt') || value > options.gt);\n}\n\nvar locales = Object.keys(_alpha.decimal);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toFloat;\n\nvar _isFloat = _interopRequireDefault(require(\"./isFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toFloat(str) {\n if (!(0, _isFloat.default)(str)) return NaN;\n return parseFloat(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDivisibleBy;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toFloat = _interopRequireDefault(require(\"./toFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isDivisibleBy(str, num) {\n (0, _assertString.default)(str);\n return (0, _toFloat.default)(str) % parseInt(num, 10) === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDivisibleByValidator from 'validator/lib/isDivisibleBy';\nexport var IS_DIVISIBLE_BY = 'isDivisibleBy';\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function isDivisibleBy(value, num) {\n return typeof value === 'number' && typeof num === 'number' && isDivisibleByValidator(String(value), num);\n}\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function IsDivisibleBy(num, validationOptions) {\n return ValidateBy({\n name: IS_DIVISIBLE_BY,\n constraints: [num],\n validator: {\n validate: function (value, args) { return isDivisibleBy(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be divisible by $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDivisibleBy.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_POSITIVE = 'isPositive';\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function isPositive(value) {\n return typeof value === 'number' && value > 0;\n}\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function IsPositive(validationOptions) {\n return ValidateBy({\n name: IS_POSITIVE,\n validator: {\n validate: function (value, args) { return isPositive(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a positive number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsPositive.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_NEGATIVE = 'isNegative';\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function isNegative(value) {\n return typeof value === 'number' && value < 0;\n}\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function IsNegative(validationOptions) {\n return ValidateBy({\n name: IS_NEGATIVE,\n validator: {\n validate: function (value, args) { return isNegative(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a negative number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNegative.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var MAX = 'max';\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function max(num, max) {\n return typeof num === 'number' && typeof max === 'number' && num <= max;\n}\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function Max(maxValue, validationOptions) {\n return ValidateBy({\n name: MAX,\n constraints: [maxValue],\n validator: {\n validate: function (value, args) { return max(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must not be greater than $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Max.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var MIN = 'min';\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function min(num, min) {\n return typeof num === 'number' && typeof min === 'number' && num >= min;\n}\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function Min(minValue, validationOptions) {\n return ValidateBy({\n name: MIN,\n constraints: [minValue],\n validator: {\n validate: function (value, args) { return min(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must not be less than $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Min.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var MIN_DATE = 'minDate';\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function minDate(date, minDate) {\n return date instanceof Date && date.getTime() >= minDate.getTime();\n}\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MinDate(date, validationOptions) {\n return ValidateBy({\n name: MIN_DATE,\n constraints: [date],\n validator: {\n validate: function (value, args) { return minDate(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return 'minimal allowed date for ' + eachPrefix + '$property is $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=MinDate.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var MAX_DATE = 'maxDate';\n/**\n * Checks if the value is a date that's before the specified date.\n */\nexport function maxDate(date, maxDate) {\n return date instanceof Date && date.getTime() <= maxDate.getTime();\n}\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MaxDate(date, validationOptions) {\n return ValidateBy({\n name: MAX_DATE,\n constraints: [date],\n validator: {\n validate: function (value, args) { return maxDate(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return 'maximal allowed date for ' + eachPrefix + '$property is $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=MaxDate.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction toString(input) {\n if (_typeof(input) === 'object' && input !== null) {\n if (typeof input.toString === 'function') {\n input = input.toString();\n } else {\n input = '[object Object]';\n }\n } else if (input === null || typeof input === 'undefined' || isNaN(input) && !input.length) {\n input = '';\n }\n\n return String(input);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = contains;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaulContainsOptions = {\n ignoreCase: false\n};\n\nfunction contains(str, elem, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaulContainsOptions);\n return options.ignoreCase ? str.toLowerCase().indexOf((0, _toString.default)(elem).toLowerCase()) >= 0 : str.indexOf((0, _toString.default)(elem)) >= 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\nexport var CONTAINS = 'contains';\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function contains(value, seed) {\n return typeof value === 'string' && containsValidator(value, seed);\n}\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function Contains(seed, validationOptions) {\n return ValidateBy({\n name: CONTAINS,\n constraints: [seed],\n validator: {\n validate: function (value, args) { return contains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a $constraint1 string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Contains.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\nexport var NOT_CONTAINS = 'notContains';\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function notContains(value, seed) {\n return typeof value === 'string' && !containsValidator(value, seed);\n}\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function NotContains(seed, validationOptions) {\n return ValidateBy({\n name: NOT_CONTAINS,\n constraints: [seed],\n validator: {\n validate: function (value, args) { return notContains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not contain a $constraint1 string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=NotContains.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlpha;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAlpha(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n\n if (locale in _alpha.alpha) {\n return _alpha.alpha[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alpha);\nexports.locales = locales;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphaValidator from 'validator/lib/isAlpha';\nexport var IS_ALPHA = 'isAlpha';\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function isAlpha(value, locale) {\n return typeof value === 'string' && isAlphaValidator(value, locale);\n}\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function IsAlpha(locale, validationOptions) {\n return ValidateBy({\n name: IS_ALPHA,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isAlpha(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only letters (a-zA-Z)'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsAlpha.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlphanumeric;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAlphanumeric(str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n (0, _assertString.default)(str);\n\n if (locale in _alpha.alphanumeric) {\n return _alpha.alphanumeric[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alphanumeric);\nexports.locales = locales;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphanumericValidator from 'validator/lib/isAlphanumeric';\nexport var IS_ALPHANUMERIC = 'isAlphanumeric';\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function isAlphanumeric(value, locale) {\n return typeof value === 'string' && isAlphanumericValidator(value, locale);\n}\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsAlphanumeric(locale, validationOptions) {\n return ValidateBy({\n name: IS_ALPHANUMERIC,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isAlphanumeric(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only letters and numbers'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsAlphanumeric.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar includes = function includes(arr, val) {\n return arr.some(function (arrVal) {\n return val === arrVal;\n });\n};\n\nvar _default = includes;\nexports.default = _default;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDecimal;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction decimalRegExp(options) {\n var regExp = new RegExp(\"^[-+]?([0-9]+)?(\\\\\".concat(_alpha.decimal[options.locale], \"[0-9]{\").concat(options.decimal_digits, \"})\").concat(options.force_decimal ? '' : '?', \"$\"));\n return regExp;\n}\n\nvar default_decimal_options = {\n force_decimal: false,\n decimal_digits: '1,',\n locale: 'en-US'\n};\nvar blacklist = ['', '-', '+'];\n\nfunction isDecimal(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_decimal_options);\n\n if (options.locale in _alpha.decimal) {\n return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(options.locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDecimalValidator from 'validator/lib/isDecimal';\nexport var IS_DECIMAL = 'isDecimal';\n/**\n * Checks if the string is a valid decimal.\n * If given value is not a string, then it returns false.\n */\nexport function isDecimal(value, options) {\n return typeof value === 'string' && isDecimalValidator(value, options);\n}\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsDecimal(options, validationOptions) {\n return ValidateBy({\n name: IS_DECIMAL,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isDecimal(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property is not a valid decimal number.'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDecimal.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAscii;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-control-regex */\nvar ascii = /^[\\x00-\\x7F]+$/;\n/* eslint-enable no-control-regex */\n\nfunction isAscii(str) {\n (0, _assertString.default)(str);\n return ascii.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAsciiValidator from 'validator/lib/isAscii';\nexport var IS_ASCII = 'isAscii';\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function isAscii(value) {\n return typeof value === 'string' && isAsciiValidator(value);\n}\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function IsAscii(validationOptions) {\n return ValidateBy({\n name: IS_ASCII,\n validator: {\n validate: function (value, args) { return isAscii(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only ASCII characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsAscii.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase64;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar notBase64 = /[^A-Z0-9+\\/=]/i;\nvar urlSafeBase64 = /^[A-Z0-9_\\-]*$/i;\nvar defaultBase64Options = {\n urlSafe: false\n};\n\nfunction isBase64(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase64Options);\n var len = str.length;\n\n if (options.urlSafe) {\n return urlSafeBase64.test(str);\n }\n\n if (len % 4 !== 0 || notBase64.test(str)) {\n return false;\n }\n\n var firstPaddingChar = str.indexOf('=');\n return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase64Validator from 'validator/lib/isBase64';\nexport var IS_BASE64 = 'isBase64';\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase64(value) {\n return typeof value === 'string' && isBase64Validator(value);\n}\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase64(validationOptions) {\n return ValidateBy({\n name: IS_BASE64,\n validator: {\n validate: function (value, args) { return isBase64(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be base64 encoded'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBase64.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isByteLengthValidator from 'validator/lib/isByteLength';\nexport var IS_BYTE_LENGTH = 'isByteLength';\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function isByteLength(value, min, max) {\n return typeof value === 'string' && isByteLengthValidator(value, { min: min, max: max });\n}\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function IsByteLength(min, max, validationOptions) {\n return ValidateBy({\n name: IS_BYTE_LENGTH,\n constraints: [min, max],\n validator: {\n validate: function (value, args) { return isByteLength(value, args.constraints[0], args.constraints[1]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property's byte length must fall into ($constraint1, $constraint2) range\"; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsByteLength.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar creditCard = /^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11}|6[27][0-9]{14})$/;\n/* eslint-enable max-len */\n\nfunction isCreditCard(str) {\n (0, _assertString.default)(str);\n var sanitized = str.replace(/[- ]+/g, '');\n\n if (!creditCard.test(sanitized)) {\n return false;\n }\n\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble;\n\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n\n if (shouldDouble) {\n tmpNum *= 2;\n\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n\n shouldDouble = !shouldDouble;\n }\n\n return !!(sum % 10 === 0 ? sanitized : false);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCreditCardValidator from 'validator/lib/isCreditCard';\nexport var IS_CREDIT_CARD = 'isCreditCard';\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function isCreditCard(value) {\n return typeof value === 'string' && isCreditCardValidator(value);\n}\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function IsCreditCard(validationOptions) {\n return ValidateBy({\n name: IS_CREDIT_CARD,\n validator: {\n validate: function (value, args) { return isCreditCard(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a credit card'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsCreditCard.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCurrency;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction currencyRegex(options) {\n var decimal_digits = \"\\\\d{\".concat(options.digits_after_decimal[0], \"}\");\n options.digits_after_decimal.forEach(function (digit, index) {\n if (index !== 0) decimal_digits = \"\".concat(decimal_digits, \"|\\\\d{\").concat(digit, \"}\");\n });\n var symbol = \"(\".concat(options.symbol.replace(/\\W/, function (m) {\n return \"\\\\\".concat(m);\n }), \")\").concat(options.require_symbol ? '' : '?'),\n negative = '-?',\n whole_dollar_amount_without_sep = '[1-9]\\\\d*',\n whole_dollar_amount_with_sep = \"[1-9]\\\\d{0,2}(\\\\\".concat(options.thousands_separator, \"\\\\d{3})*\"),\n valid_whole_dollar_amounts = ['0', whole_dollar_amount_without_sep, whole_dollar_amount_with_sep],\n whole_dollar_amount = \"(\".concat(valid_whole_dollar_amounts.join('|'), \")?\"),\n decimal_amount = \"(\\\\\".concat(options.decimal_separator, \"(\").concat(decimal_digits, \"))\").concat(options.require_decimal ? '' : '?');\n var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : ''); // default is negative sign before symbol, but there are two other options (besides parens)\n\n if (options.allow_negatives && !options.parens_for_negatives) {\n if (options.negative_sign_after_digits) {\n pattern += negative;\n } else if (options.negative_sign_before_digits) {\n pattern = negative + pattern;\n }\n } // South African Rand, for example, uses R 123 (space) and R-123 (no space)\n\n\n if (options.allow_negative_sign_placeholder) {\n pattern = \"( (?!\\\\-))?\".concat(pattern);\n } else if (options.allow_space_after_symbol) {\n pattern = \" ?\".concat(pattern);\n } else if (options.allow_space_after_digits) {\n pattern += '( (?!$))?';\n }\n\n if (options.symbol_after_digits) {\n pattern += symbol;\n } else {\n pattern = symbol + pattern;\n }\n\n if (options.allow_negatives) {\n if (options.parens_for_negatives) {\n pattern = \"(\\\\(\".concat(pattern, \"\\\\)|\").concat(pattern, \")\");\n } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) {\n pattern = negative + pattern;\n }\n } // ensure there's a dollar and/or decimal amount, and that\n // it doesn't start with a space or a negative sign followed by a space\n\n\n return new RegExp(\"^(?!-? )(?=.*\\\\d)\".concat(pattern, \"$\"));\n}\n\nvar default_currency_options = {\n symbol: '$',\n require_symbol: false,\n allow_space_after_symbol: false,\n symbol_after_digits: false,\n allow_negatives: true,\n parens_for_negatives: false,\n negative_sign_before_digits: false,\n negative_sign_after_digits: false,\n allow_negative_sign_placeholder: false,\n thousands_separator: ',',\n decimal_separator: '.',\n allow_decimal: true,\n require_decimal: false,\n digits_after_decimal: [2],\n allow_space_after_digits: false\n};\n\nfunction isCurrency(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_currency_options);\n return currencyRegex(options).test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCurrencyValidator from 'validator/lib/isCurrency';\nexport var IS_CURRENCY = 'isCurrency';\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function isCurrency(value, options) {\n return typeof value === 'string' && isCurrencyValidator(value, options);\n}\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function IsCurrency(options, validationOptions) {\n return ValidateBy({\n name: IS_CURRENCY,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isCurrency(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a currency'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsCurrency.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false\n};\n\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n\n if (!/^([a-z\\u00a1-\\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n } // disallow spaces && special characers\n\n\n if (/[\\s\\u2002-\\u200B\\u202F\\u205F\\u3000\\uFEFF\\uDB40\\uDC20\\u00A9\\uFFFD]/.test(tld)) {\n return false;\n }\n } // reject numeric TLDs\n\n\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n\n return parts.every(function (part) {\n if (part.length > 63) {\n return false;\n }\n\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n } // disallow parts starting or ending with hyphen\n\n\n if (/^-|-$/.test(part)) {\n return false;\n }\n\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n\n return true;\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar ipv4Maybe = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/;\nvar ipv6Block = /^[0-9A-F]{1,4}$/i;\n\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n } else if (version === '4') {\n if (!ipv4Maybe.test(str)) {\n return false;\n }\n\n var parts = str.split('.').sort(function (a, b) {\n return a - b;\n });\n return parts[3] <= 255;\n } else if (version === '6') {\n var addressAndZone = [str]; // ipv6 addresses could have scoped architecture\n // according to https://tools.ietf.org/html/rfc4007#section-11\n\n if (str.includes('%')) {\n addressAndZone = str.split('%');\n\n if (addressAndZone.length !== 2) {\n // it must be just two parts\n return false;\n }\n\n if (!addressAndZone[0].includes(':')) {\n // the first part must be the address\n return false;\n }\n\n if (addressAndZone[1] === '') {\n // the second part must not be empty\n return false;\n }\n }\n\n var blocks = addressAndZone[0].split(':');\n var foundOmissionBlock = false; // marker to indicate ::\n // At least some OS accept the last 32 bits of an IPv6 address\n // (i.e. 2 of the blocks) in IPv4 notation, and RFC 3493 says\n // that '::ffff:a.b.c.d' is valid for IPv4-mapped IPv6 addresses,\n // and '::a.b.c.d' is deprecated, but also valid.\n\n var foundIPv4TransitionBlock = isIP(blocks[blocks.length - 1], 4);\n var expectedNumberOfBlocks = foundIPv4TransitionBlock ? 7 : 8;\n\n if (blocks.length > expectedNumberOfBlocks) {\n return false;\n } // initial or final ::\n\n\n if (str === '::') {\n return true;\n } else if (str.substr(0, 2) === '::') {\n blocks.shift();\n blocks.shift();\n foundOmissionBlock = true;\n } else if (str.substr(str.length - 2) === '::') {\n blocks.pop();\n blocks.pop();\n foundOmissionBlock = true;\n }\n\n for (var i = 0; i < blocks.length; ++i) {\n // test for a :: which can not be at the string start/end\n // since those cases have been handled above\n if (blocks[i] === '' && i > 0 && i < blocks.length - 1) {\n if (foundOmissionBlock) {\n return false; // multiple :: in address\n }\n\n foundOmissionBlock = true;\n } else if (foundIPv4TransitionBlock && i === blocks.length - 1) {// it has been checked before that the last\n // block is a valid IPv4 address\n } else if (!ipv6Block.test(blocks[i])) {\n return false;\n }\n }\n\n if (foundOmissionBlock) {\n return blocks.length >= 1;\n }\n\n return blocks.length === expectedNumberOfBlocks;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false\n};\n/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)<(.+)>$/i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\n\nfunction validateDisplayName(display_name) {\n var trim_quotes = display_name.match(/^\"(.+)\"$/i);\n var display_name_without_quotes = trim_quotes ? trim_quotes[1] : display_name; // display name with only spaces is not valid\n\n if (!display_name_without_quotes.trim()) {\n return false;\n } // check whether display name contains illegal character\n\n\n var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (!trim_quotes) {\n return false;\n } // the quotes in display name must start with character symbol \\\n\n\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n\n if (display_email) {\n var display_name;\n\n var _display_email = _slicedToArray(display_email, 3);\n\n display_name = _display_email[1];\n str = _display_email[2];\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.substr(0, display_name.length - 1);\n }\n\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var user = parts.join('@');\n var lower_domain = domain.toLowerCase();\n\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace('.', ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.substr(1, domain.length - 2);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i2 = 0; _i2 < user_parts.length; _i2++) {\n if (!pattern.test(user_parts[_i2])) {\n return false;\n }\n }\n\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEmailValidator from 'validator/lib/isEmail';\nexport var IS_EMAIL = 'isEmail';\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function isEmail(value, options) {\n return typeof value === 'string' && isEmailValidator(value, options);\n}\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function IsEmail(options, validationOptions) {\n return ValidateBy({\n name: IS_EMAIL,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isEmail(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an email'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsEmail.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFqdnValidator from 'validator/lib/isFQDN';\nexport var IS_FQDN = 'isFqdn';\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function isFQDN(value, options) {\n return typeof value === 'string' && isFqdnValidator(value, options);\n}\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function IsFQDN(options, validationOptions) {\n return ValidateBy({\n name: IS_FQDN,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isFQDN(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid domain name'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsFQDN.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFullWidth;\nexports.fullWidth = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fullWidth = /[^\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.fullWidth = fullWidth;\n\nfunction isFullWidth(str) {\n (0, _assertString.default)(str);\n return fullWidth.test(str);\n}","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFullWidthValidator from 'validator/lib/isFullWidth';\nexport var IS_FULL_WIDTH = 'isFullWidth';\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isFullWidth(value) {\n return typeof value === 'string' && isFullWidthValidator(value);\n}\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsFullWidth(validationOptions) {\n return ValidateBy({\n name: IS_FULL_WIDTH,\n validator: {\n validate: function (value, args) { return isFullWidth(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a full-width characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsFullWidth.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHalfWidth;\nexports.halfWidth = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar halfWidth = /[\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.halfWidth = halfWidth;\n\nfunction isHalfWidth(str) {\n (0, _assertString.default)(str);\n return halfWidth.test(str);\n}","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHalfWidthValidator from 'validator/lib/isHalfWidth';\nexport var IS_HALF_WIDTH = 'isHalfWidth';\n/**\n * Checks if the string contains any half-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isHalfWidth(value) {\n return typeof value === 'string' && isHalfWidthValidator(value);\n}\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsHalfWidth(validationOptions) {\n return ValidateBy({\n name: IS_HALF_WIDTH,\n validator: {\n validate: function (value, args) { return isHalfWidth(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a half-width characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsHalfWidth.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVariableWidth;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFullWidth = require(\"./isFullWidth\");\n\nvar _isHalfWidth = require(\"./isHalfWidth\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isVariableWidth(str) {\n (0, _assertString.default)(str);\n return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isVariableWidthValidator from 'validator/lib/isVariableWidth';\nexport var IS_VARIABLE_WIDTH = 'isVariableWidth';\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isVariableWidth(value) {\n return typeof value === 'string' && isVariableWidthValidator(value);\n}\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsVariableWidth(validationOptions) {\n return ValidateBy({\n name: IS_VARIABLE_WIDTH,\n validator: {\n validate: function (value, args) { return isVariableWidth(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a full-width and half-width characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsVariableWidth.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\n\nfunction isHexColor(str) {\n (0, _assertString.default)(str);\n return hexcolor.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexColorValidator from 'validator/lib/isHexColor';\nexport var IS_HEX_COLOR = 'isHexColor';\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function isHexColor(value) {\n return typeof value === 'string' && isHexColorValidator(value);\n}\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexColor(validationOptions) {\n return ValidateBy({\n name: IS_HEX_COLOR,\n validator: {\n validate: function (value, args) { return isHexColor(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hexadecimal color'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsHexColor.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexadecimal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexadecimal = /^(0x|0h)?[0-9A-F]+$/i;\n\nfunction isHexadecimal(str) {\n (0, _assertString.default)(str);\n return hexadecimal.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexadecimalValidator from 'validator/lib/isHexadecimal';\nexport var IS_HEXADECIMAL = 'isHexadecimal';\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function isHexadecimal(value) {\n return typeof value === 'string' && isHexadecimalValidator(value);\n}\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexadecimal(validationOptions) {\n return ValidateBy({\n name: IS_HEXADECIMAL,\n validator: {\n validate: function (value, args) { return isHexadecimal(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hexadecimal number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsHexadecimal.js.map","export function isValidationOptions(val) {\n if (!val) {\n return false;\n }\n return 'each' in val || 'message' in val || 'groups' in val || 'always' in val || 'context' in val;\n}\n//# sourceMappingURL=ValidationOptions.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMACAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar macAddress = /^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/;\nvar macAddressNoColons = /^([0-9a-fA-F]){12}$/;\nvar macAddressWithHyphen = /^([0-9a-fA-F][0-9a-fA-F]-){5}([0-9a-fA-F][0-9a-fA-F])$/;\nvar macAddressWithSpaces = /^([0-9a-fA-F][0-9a-fA-F]\\s){5}([0-9a-fA-F][0-9a-fA-F])$/;\nvar macAddressWithDots = /^([0-9a-fA-F]{4}).([0-9a-fA-F]{4}).([0-9a-fA-F]{4})$/;\n\nfunction isMACAddress(str, options) {\n (0, _assertString.default)(str);\n\n if (options && options.no_colons) {\n return macAddressNoColons.test(str);\n }\n\n return macAddress.test(str) || macAddressWithHyphen.test(str) || macAddressWithSpaces.test(str) || macAddressWithDots.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { isValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMacAddressValidator from 'validator/lib/isMACAddress';\nexport var IS_MAC_ADDRESS = 'isMacAddress';\n/**\n * Check if the string is a MAC address.\n * If given value is not a string, then it returns false.\n */\nexport function isMACAddress(value, options) {\n return typeof value === 'string' && isMacAddressValidator(value, options);\n}\nexport function IsMACAddress(optionsOrValidationOptionsArg, validationOptionsArg) {\n var options = !isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : undefined;\n var validationOptions = isValidationOptions(optionsOrValidationOptionsArg)\n ? optionsOrValidationOptionsArg\n : validationOptionsArg;\n return ValidateBy({\n name: IS_MAC_ADDRESS,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isMACAddress(value, options); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a MAC Address'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMacAddress.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIPValidator from 'validator/lib/isIP';\nexport var IS_IP = 'isIp';\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function isIP(value, version) {\n var versionStr = version ? \"\" + version : undefined;\n return typeof value === 'string' && isIPValidator(value, versionStr);\n}\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function IsIP(version, validationOptions) {\n return ValidateBy({\n name: IS_IP,\n constraints: [version],\n validator: {\n validate: function (value, args) { return isIP(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ip address'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsIP.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isInt;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;\nvar intLeadingZeroes = /^[-+]?[0-9]+$/;\n\nfunction isInt(str, options) {\n (0, _assertString.default)(str);\n options = options || {}; // Get the regex to use for testing, based on whether\n // leading zeroes are allowed or not.\n\n var regex = options.hasOwnProperty('allow_leading_zeroes') && !options.allow_leading_zeroes ? int : intLeadingZeroes; // Check min/max/lt/gt\n\n var minCheckPassed = !options.hasOwnProperty('min') || str >= options.min;\n var maxCheckPassed = !options.hasOwnProperty('max') || str <= options.max;\n var ltCheckPassed = !options.hasOwnProperty('lt') || str < options.lt;\n var gtCheckPassed = !options.hasOwnProperty('gt') || str > options.gt;\n return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPort;\n\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isPort(str) {\n return (0, _isInt.default)(str, {\n min: 0,\n max: 65535\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPortValidator from 'validator/lib/isPort';\nexport var IS_PORT = 'isPort';\n/**\n * Check if the string is a valid port number.\n */\nexport function isPort(value) {\n return typeof value === 'string' && isPortValidator(value);\n}\n/**\n * Check if the string is a valid port number.\n */\nexport function IsPort(validationOptions) {\n return ValidateBy({\n name: IS_PORT,\n validator: {\n validate: function (value, args) { return isPort(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a port'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsPort.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISBN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isbn10Maybe = /^(?:[0-9]{9}X|[0-9]{10})$/;\nvar isbn13Maybe = /^(?:[0-9]{13})$/;\nvar factor = [1, 3];\n\nfunction isISBN(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isISBN(str, 10) || isISBN(str, 13);\n }\n\n var sanitized = str.replace(/[\\s-]+/g, '');\n var checksum = 0;\n var i;\n\n if (version === '10') {\n if (!isbn10Maybe.test(sanitized)) {\n return false;\n }\n\n for (i = 0; i < 9; i++) {\n checksum += (i + 1) * sanitized.charAt(i);\n }\n\n if (sanitized.charAt(9) === 'X') {\n checksum += 10 * 10;\n } else {\n checksum += 10 * sanitized.charAt(9);\n }\n\n if (checksum % 11 === 0) {\n return !!sanitized;\n }\n } else if (version === '13') {\n if (!isbn13Maybe.test(sanitized)) {\n return false;\n }\n\n for (i = 0; i < 12; i++) {\n checksum += factor[i % 2] * sanitized.charAt(i);\n }\n\n if (sanitized.charAt(12) - (10 - checksum % 10) % 10 === 0) {\n return !!sanitized;\n }\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsbnValidator from 'validator/lib/isISBN';\nexport var IS_ISBN = 'isIsbn';\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function isISBN(value, version) {\n var versionStr = version ? \"\" + version : undefined;\n return typeof value === 'string' && isIsbnValidator(value, versionStr);\n}\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function IsISBN(version, validationOptions) {\n return ValidateBy({\n name: IS_ISBN,\n constraints: [version],\n validator: {\n validate: function (value, args) { return isISBN(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISBN'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISBN.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISIN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;\n\nfunction isISIN(str) {\n (0, _assertString.default)(str);\n\n if (!isin.test(str)) {\n return false;\n }\n\n var checksumStr = str.replace(/[A-Z]/g, function (character) {\n return parseInt(character, 36);\n });\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble = true;\n\n for (var i = checksumStr.length - 2; i >= 0; i--) {\n digit = checksumStr.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n\n if (shouldDouble) {\n tmpNum *= 2;\n\n if (tmpNum >= 10) {\n sum += tmpNum + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n\n shouldDouble = !shouldDouble;\n }\n\n return parseInt(str.substr(str.length - 1), 10) === (10000 - sum) % 10;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsinValidator from 'validator/lib/isISIN';\nexport var IS_ISIN = 'isIsin';\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function isISIN(value) {\n return typeof value === 'string' && isIsinValidator(value);\n}\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function IsISIN(validationOptions) {\n return ValidateBy({\n name: IS_ISIN,\n validator: {\n validate: function (value, args) { return isISIN(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISIN (stock/security identifier)'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISIN.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO8601;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\n// from http://goo.gl/0ejHHW\nvar iso8601 = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/; // same as above, except with a strict 'T' separator between date and time\n\nvar iso8601StrictSeparator = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n/* eslint-enable max-len */\n\nvar isValidDate = function isValidDate(str) {\n // str must have passed the ISO8601 check\n // this check is meant to catch invalid dates\n // like 2009-02-31\n // first check for ordinal dates\n var ordinalMatch = str.match(/^(\\d{4})-?(\\d{3})([ T]{1}\\.*|$)/);\n\n if (ordinalMatch) {\n var oYear = Number(ordinalMatch[1]);\n var oDay = Number(ordinalMatch[2]); // if is leap year\n\n if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366;\n return oDay <= 365;\n }\n\n var match = str.match(/(\\d{4})-?(\\d{0,2})-?(\\d*)/).map(Number);\n var year = match[1];\n var month = match[2];\n var day = match[3];\n var monthString = month ? \"0\".concat(month).slice(-2) : month;\n var dayString = day ? \"0\".concat(day).slice(-2) : day; // create a date object and compare\n\n var d = new Date(\"\".concat(year, \"-\").concat(monthString || '01', \"-\").concat(dayString || '01'));\n\n if (month && day) {\n return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day;\n }\n\n return true;\n};\n\nfunction isISO8601(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var check = options.strictSeparator ? iso8601StrictSeparator.test(str) : iso8601.test(str);\n if (check && options.strict) return isValidDate(str);\n return check;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIso8601Validator from 'validator/lib/isISO8601';\nexport var IS_ISO8601 = 'isIso8601';\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function isISO8601(value, options) {\n return typeof value === 'string' && isIso8601Validator(value, options);\n}\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function IsISO8601(options, validationOptions) {\n return ValidateBy({\n name: IS_ISO8601,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isISO8601(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO 8601 date string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISO8601.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJSON;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar default_json_options = {\n allow_primitives: false\n};\n\nfunction isJSON(str, options) {\n (0, _assertString.default)(str);\n\n try {\n options = (0, _merge.default)(options, default_json_options);\n var primitives = [];\n\n if (options.allow_primitives) {\n primitives = [null, false, true];\n }\n\n var obj = JSON.parse(str);\n return primitives.includes(obj) || !!obj && _typeof(obj) === 'object';\n } catch (e) {\n /* ignore */\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJSONValidator from 'validator/lib/isJSON';\nexport var IS_JSON = 'isJson';\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function isJSON(value) {\n return typeof value === 'string' && isJSONValidator(value);\n}\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function IsJSON(validationOptions) {\n return ValidateBy({\n name: IS_JSON,\n validator: {\n validate: function (value, args) { return isJSON(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a json string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsJSON.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJWT;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isBase = _interopRequireDefault(require(\"./isBase64\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isJWT(str) {\n (0, _assertString.default)(str);\n var dotSplit = str.split('.');\n var len = dotSplit.length;\n\n if (len > 3 || len < 2) {\n return false;\n }\n\n return dotSplit.reduce(function (acc, currElem) {\n return acc && (0, _isBase.default)(currElem, {\n urlSafe: true\n });\n }, true);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJwtValidator from 'validator/lib/isJWT';\nexport var IS_JWT = 'isJwt';\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function isJWT(value) {\n return typeof value === 'string' && isJwtValidator(value);\n}\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function IsJWT(validationOptions) {\n return ValidateBy({\n name: IS_JWT,\n validator: {\n validate: function (value, args) { return isJWT(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a jwt string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsJWT.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLowercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isLowercase(str) {\n (0, _assertString.default)(str);\n return str === str.toLowerCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLowercaseValidator from 'validator/lib/isLowercase';\nexport var IS_LOWERCASE = 'isLowercase';\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function isLowercase(value) {\n return typeof value === 'string' && isLowercaseValidator(value);\n}\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsLowercase(validationOptions) {\n return ValidateBy({\n name: IS_LOWERCASE,\n validator: {\n validate: function (value, args) { return isLowercase(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a lowercase string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsLowercase.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMobilePhone;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar phones = {\n 'am-AM': /^(\\+?374|0)((10|[9|7][0-9])\\d{6}$|[2-4]\\d{7}$)/,\n 'ar-AE': /^((\\+?971)|0)?5[024568]\\d{7}$/,\n 'ar-BH': /^(\\+?973)?(3|6)\\d{7}$/,\n 'ar-DZ': /^(\\+?213|0)(5|6|7)\\d{8}$/,\n 'ar-LB': /^(\\+?961)?((3|81)\\d{6}|7\\d{7})$/,\n 'ar-EG': /^((\\+?20)|0)?1[0125]\\d{8}$/,\n 'ar-IQ': /^(\\+?964|0)?7[0-9]\\d{8}$/,\n 'ar-JO': /^(\\+?962|0)?7[789]\\d{7}$/,\n 'ar-KW': /^(\\+?965)[569]\\d{7}$/,\n 'ar-LY': /^((\\+?218)|0)?(9[1-6]\\d{7}|[1-8]\\d{7,9})$/,\n 'ar-MA': /^(?:(?:\\+|00)212|0)[5-7]\\d{8}$/,\n 'ar-SA': /^(!?(\\+?966)|0)?5\\d{8}$/,\n 'ar-SY': /^(!?(\\+?963)|0)?9\\d{8}$/,\n 'ar-TN': /^(\\+?216)?[2459]\\d{7}$/,\n 'az-AZ': /^(\\+994|0)(5[015]|7[07]|99)\\d{7}$/,\n 'bs-BA': /^((((\\+|00)3876)|06))((([0-3]|[5-6])\\d{6})|(4\\d{7}))$/,\n 'be-BY': /^(\\+?375)?(24|25|29|33|44)\\d{7}$/,\n 'bg-BG': /^(\\+?359|0)?8[789]\\d{7}$/,\n 'bn-BD': /^(\\+?880|0)1[13456789][0-9]{8}$/,\n 'ca-AD': /^(\\+376)?[346]\\d{5}$/,\n 'cs-CZ': /^(\\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'da-DK': /^(\\+?45)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'de-DE': /^(\\+49)?0?[1|3]([0|5][0-45-9]\\d|6([23]|0\\d?)|7([0-57-9]|6\\d))\\d{7}$/,\n 'de-AT': /^(\\+43|0)\\d{1,4}\\d{3,12}$/,\n 'de-CH': /^(\\+41|0)(7[5-9])\\d{1,7}$/,\n 'de-LU': /^(\\+352)?((6\\d1)\\d{6})$/,\n 'el-GR': /^(\\+?30|0)?(69\\d{8})$/,\n 'en-AU': /^(\\+?61|0)4\\d{8}$/,\n 'en-GB': /^(\\+?44|0)7\\d{9}$/,\n 'en-GG': /^(\\+?44|0)1481\\d{6}$/,\n 'en-GH': /^(\\+233|0)(20|50|24|54|27|57|26|56|23|28)\\d{7}$/,\n 'en-HK': /^(\\+?852[-\\s]?)?[456789]\\d{3}[-\\s]?\\d{4}$/,\n 'en-MO': /^(\\+?853[-\\s]?)?[6]\\d{3}[-\\s]?\\d{4}$/,\n 'en-IE': /^(\\+?353|0)8[356789]\\d{7}$/,\n 'en-IN': /^(\\+?91|0)?[6789]\\d{9}$/,\n 'en-KE': /^(\\+?254|0)(7|1)\\d{8}$/,\n 'en-MT': /^(\\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,\n 'en-MU': /^(\\+?230|0)?\\d{8}$/,\n 'en-NG': /^(\\+?234|0)?[789]\\d{9}$/,\n 'en-NZ': /^(\\+?64|0)[28]\\d{7,9}$/,\n 'en-PK': /^((\\+92)|(0092))-{0,1}\\d{3}-{0,1}\\d{7}$|^\\d{11}$|^\\d{4}-\\d{7}$/,\n 'en-PH': /^(09|\\+639)\\d{9}$/,\n 'en-RW': /^(\\+?250|0)?[7]\\d{8}$/,\n 'en-SG': /^(\\+65)?[689]\\d{7}$/,\n 'en-SL': /^(?:0|94|\\+94)?(7(0|1|2|5|6|7|8)( |-)?\\d)\\d{6}$/,\n 'en-TZ': /^(\\+?255|0)?[67]\\d{8}$/,\n 'en-UG': /^(\\+?256|0)?[7]\\d{8}$/,\n 'en-US': /^((\\+1|1)?( |-)?)?(\\([2-9][0-9]{2}\\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,\n 'en-ZA': /^(\\+?27|0)\\d{9}$/,\n 'en-ZM': /^(\\+?26)?09[567]\\d{7}$/,\n 'en-ZW': /^(\\+263)[0-9]{9}$/,\n 'es-AR': /^\\+?549(11|[2368]\\d)\\d{8}$/,\n 'es-BO': /^(\\+?591)?(6|7)\\d{7}$/,\n 'es-CO': /^(\\+?57)?([1-8]{1}|3[0-9]{2})?[2-9]{1}\\d{6}$/,\n 'es-CL': /^(\\+?56|0)[2-9]\\d{1}\\d{7}$/,\n 'es-CR': /^(\\+506)?[2-8]\\d{7}$/,\n 'es-DO': /^(\\+?1)?8[024]9\\d{7}$/,\n 'es-HN': /^(\\+?504)?[9|8]\\d{7}$/,\n 'es-EC': /^(\\+?593|0)([2-7]|9[2-9])\\d{7}$/,\n 'es-ES': /^(\\+?34)?[6|7]\\d{8}$/,\n 'es-PE': /^(\\+?51)?9\\d{8}$/,\n 'es-MX': /^(\\+?52)?(1|01)?\\d{10,11}$/,\n 'es-PA': /^(\\+?507)\\d{7,8}$/,\n 'es-PY': /^(\\+?595|0)9[9876]\\d{7}$/,\n 'es-UY': /^(\\+598|0)9[1-9][\\d]{6}$/,\n 'et-EE': /^(\\+?372)?\\s?(5|8[1-4])\\s?([0-9]\\s?){6,7}$/,\n 'fa-IR': /^(\\+?98[\\-\\s]?|0)9[0-39]\\d[\\-\\s]?\\d{3}[\\-\\s]?\\d{4}$/,\n 'fi-FI': /^(\\+?358|0)\\s?(4(0|1|2|4|5|6)?|50)\\s?(\\d\\s?){4,8}\\d$/,\n 'fj-FJ': /^(\\+?679)?\\s?\\d{3}\\s?\\d{4}$/,\n 'fo-FO': /^(\\+?298)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'fr-FR': /^(\\+?33|0)[67]\\d{8}$/,\n 'fr-GF': /^(\\+?594|0|00594)[67]\\d{8}$/,\n 'fr-GP': /^(\\+?590|0|00590)[67]\\d{8}$/,\n 'fr-MQ': /^(\\+?596|0|00596)[67]\\d{8}$/,\n 'fr-RE': /^(\\+?262|0|00262)[67]\\d{8}$/,\n 'he-IL': /^(\\+972|0)([23489]|5[012345689]|77)[1-9]\\d{6}$/,\n 'hu-HU': /^(\\+?36)(20|30|70)\\d{7}$/,\n 'id-ID': /^(\\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\\s?|\\d]{5,11})$/,\n 'it-IT': /^(\\+?39)?\\s?3\\d{2} ?\\d{6,7}$/,\n 'it-SM': /^((\\+378)|(0549)|(\\+390549)|(\\+3780549))?6\\d{5,9}$/,\n 'ja-JP': /^(\\+81[ \\-]?(\\(0\\))?|0)[6789]0[ \\-]?\\d{4}[ \\-]?\\d{4}$/,\n 'ka-GE': /^(\\+?995)?(5|79)\\d{7}$/,\n 'kk-KZ': /^(\\+?7|8)?7\\d{9}$/,\n 'kl-GL': /^(\\+?299)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'ko-KR': /^((\\+?82)[ \\-]?)?0?1([0|1|6|7|8|9]{1})[ \\-]?\\d{3,4}[ \\-]?\\d{4}$/,\n 'lt-LT': /^(\\+370|8)\\d{8}$/,\n 'ms-MY': /^(\\+?6?01){1}(([0145]{1}(\\-|\\s)?\\d{7,8})|([236789]{1}(\\s|\\-)?\\d{7}))$/,\n 'nb-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'ne-NP': /^(\\+?977)?9[78]\\d{8}$/,\n 'nl-BE': /^(\\+?32|0)4?\\d{8}$/,\n 'nl-NL': /^(((\\+|00)?31\\(0\\))|((\\+|00)?31)|0)6{1}\\d{8}$/,\n 'nn-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'pl-PL': /^(\\+?48)? ?[5-8]\\d ?\\d{3} ?\\d{2} ?\\d{2}$/,\n 'pt-BR': /^((\\+?55\\ ?[1-9]{2}\\ ?)|(\\+?55\\ ?\\([1-9]{2}\\)\\ ?)|(0[1-9]{2}\\ ?)|(\\([1-9]{2}\\)\\ ?)|([1-9]{2}\\ ?))((\\d{4}\\-?\\d{4})|(9[2-9]{1}\\d{3}\\-?\\d{4}))$/,\n 'pt-PT': /^(\\+?351)?9[1236]\\d{7}$/,\n 'ro-RO': /^(\\+?4?0)\\s?7\\d{2}(\\/|\\s|\\.|\\-)?\\d{3}(\\s|\\.|\\-)?\\d{3}$/,\n 'ru-RU': /^(\\+?7|8)?9\\d{9}$/,\n 'sl-SI': /^(\\+386\\s?|0)(\\d{1}\\s?\\d{3}\\s?\\d{2}\\s?\\d{2}|\\d{2}\\s?\\d{3}\\s?\\d{3})$/,\n 'sk-SK': /^(\\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'sq-AL': /^(\\+355|0)6[789]\\d{6}$/,\n 'sr-RS': /^(\\+3816|06)[- \\d]{5,9}$/,\n 'sv-SE': /^(\\+?46|0)[\\s\\-]?7[\\s\\-]?[02369]([\\s\\-]?\\d){7}$/,\n 'th-TH': /^(\\+66|66|0)\\d{9}$/,\n 'tr-TR': /^(\\+?90|0)?5\\d{9}$/,\n 'uk-UA': /^(\\+?38|8)?0\\d{9}$/,\n 'uz-UZ': /^(\\+?998)?(6[125-79]|7[1-69]|88|9\\d)\\d{7}$/,\n 'vi-VN': /^(\\+?84|0)((3([2-9]))|(5([2689]))|(7([0|6-9]))|(8([1-6|89]))|(9([0-9])))([0-9]{7})$/,\n 'zh-CN': /^((\\+|00)86)?1([3568][0-9]|4[579]|6[67]|7[01235678]|9[012356789])[0-9]{8}$/,\n 'zh-TW': /^(\\+?886\\-?|0)?9\\d{8}$/\n};\n/* eslint-enable max-len */\n// aliases\n\nphones['en-CA'] = phones['en-US'];\nphones['fr-CA'] = phones['en-CA'];\nphones['fr-BE'] = phones['nl-BE'];\nphones['zh-HK'] = phones['en-HK'];\nphones['zh-MO'] = phones['en-MO'];\nphones['ga-IE'] = phones['en-IE'];\n\nfunction isMobilePhone(str, locale, options) {\n (0, _assertString.default)(str);\n\n if (options && options.strictMode && !str.startsWith('+')) {\n return false;\n }\n\n if (Array.isArray(locale)) {\n return locale.some(function (key) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n\n if (phone.test(str)) {\n return true;\n }\n }\n\n return false;\n });\n } else if (locale in phones) {\n return phones[locale].test(str); // alias falsey locale as 'any'\n } else if (!locale || locale === 'any') {\n for (var key in phones) {\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n\n if (phone.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(phones);\nexports.locales = locales;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMobilePhoneValidator from 'validator/lib/isMobilePhone';\nexport var IS_MOBILE_PHONE = 'isMobilePhone';\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function isMobilePhone(value, locale, options) {\n return typeof value === 'string' && isMobilePhoneValidator(value, locale, options);\n}\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function IsMobilePhone(locale, options, validationOptions) {\n return ValidateBy({\n name: IS_MOBILE_PHONE,\n constraints: [locale, options],\n validator: {\n validate: function (value, args) { return isMobilePhone(value, args.constraints[0], args.constraints[1]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a phone number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMobilePhone.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha2;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\nvar validISO31661Alpha2CountriesCodes = ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW'];\n\nfunction isISO31661Alpha2(str) {\n (0, _assertString.default)(str);\n return (0, _includes.default)(validISO31661Alpha2CountriesCodes, str.toUpperCase());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha2Validator from 'validator/lib/isISO31661Alpha2';\nexport var IS_ISO31661_ALPHA_2 = 'isISO31661Alpha2';\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function isISO31661Alpha2(value) {\n return typeof value === 'string' && isISO31661Alpha2Validator(value);\n}\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function IsISO31661Alpha2(validationOptions) {\n return ValidateBy({\n name: IS_ISO31661_ALPHA_2,\n validator: {\n validate: function (value, args) { return isISO31661Alpha2(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO31661 Alpha2 code'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISO31661Alpha2.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha3;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3\nvar validISO31661Alpha3CountriesCodes = ['AFG', 'ALA', 'ALB', 'DZA', 'ASM', 'AND', 'AGO', 'AIA', 'ATA', 'ATG', 'ARG', 'ARM', 'ABW', 'AUS', 'AUT', 'AZE', 'BHS', 'BHR', 'BGD', 'BRB', 'BLR', 'BEL', 'BLZ', 'BEN', 'BMU', 'BTN', 'BOL', 'BES', 'BIH', 'BWA', 'BVT', 'BRA', 'IOT', 'BRN', 'BGR', 'BFA', 'BDI', 'KHM', 'CMR', 'CAN', 'CPV', 'CYM', 'CAF', 'TCD', 'CHL', 'CHN', 'CXR', 'CCK', 'COL', 'COM', 'COG', 'COD', 'COK', 'CRI', 'CIV', 'HRV', 'CUB', 'CUW', 'CYP', 'CZE', 'DNK', 'DJI', 'DMA', 'DOM', 'ECU', 'EGY', 'SLV', 'GNQ', 'ERI', 'EST', 'ETH', 'FLK', 'FRO', 'FJI', 'FIN', 'FRA', 'GUF', 'PYF', 'ATF', 'GAB', 'GMB', 'GEO', 'DEU', 'GHA', 'GIB', 'GRC', 'GRL', 'GRD', 'GLP', 'GUM', 'GTM', 'GGY', 'GIN', 'GNB', 'GUY', 'HTI', 'HMD', 'VAT', 'HND', 'HKG', 'HUN', 'ISL', 'IND', 'IDN', 'IRN', 'IRQ', 'IRL', 'IMN', 'ISR', 'ITA', 'JAM', 'JPN', 'JEY', 'JOR', 'KAZ', 'KEN', 'KIR', 'PRK', 'KOR', 'KWT', 'KGZ', 'LAO', 'LVA', 'LBN', 'LSO', 'LBR', 'LBY', 'LIE', 'LTU', 'LUX', 'MAC', 'MKD', 'MDG', 'MWI', 'MYS', 'MDV', 'MLI', 'MLT', 'MHL', 'MTQ', 'MRT', 'MUS', 'MYT', 'MEX', 'FSM', 'MDA', 'MCO', 'MNG', 'MNE', 'MSR', 'MAR', 'MOZ', 'MMR', 'NAM', 'NRU', 'NPL', 'NLD', 'NCL', 'NZL', 'NIC', 'NER', 'NGA', 'NIU', 'NFK', 'MNP', 'NOR', 'OMN', 'PAK', 'PLW', 'PSE', 'PAN', 'PNG', 'PRY', 'PER', 'PHL', 'PCN', 'POL', 'PRT', 'PRI', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 'BLM', 'SHN', 'KNA', 'LCA', 'MAF', 'SPM', 'VCT', 'WSM', 'SMR', 'STP', 'SAU', 'SEN', 'SRB', 'SYC', 'SLE', 'SGP', 'SXM', 'SVK', 'SVN', 'SLB', 'SOM', 'ZAF', 'SGS', 'SSD', 'ESP', 'LKA', 'SDN', 'SUR', 'SJM', 'SWZ', 'SWE', 'CHE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', 'TLS', 'TGO', 'TKL', 'TON', 'TTO', 'TUN', 'TUR', 'TKM', 'TCA', 'TUV', 'UGA', 'UKR', 'ARE', 'GBR', 'USA', 'UMI', 'URY', 'UZB', 'VUT', 'VEN', 'VNM', 'VGB', 'VIR', 'WLF', 'ESH', 'YEM', 'ZMB', 'ZWE'];\n\nfunction isISO31661Alpha3(str) {\n (0, _assertString.default)(str);\n return (0, _includes.default)(validISO31661Alpha3CountriesCodes, str.toUpperCase());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha3Validator from 'validator/lib/isISO31661Alpha3';\nexport var IS_ISO31661_ALPHA_3 = 'isISO31661Alpha3';\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function isISO31661Alpha3(value) {\n return typeof value === 'string' && isISO31661Alpha3Validator(value);\n}\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function IsISO31661Alpha3(validationOptions) {\n return ValidateBy({\n name: IS_ISO31661_ALPHA_3,\n validator: {\n validate: function (value, args) { return isISO31661Alpha3(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO31661 Alpha3 code'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISO31661Alpha3.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMongoId;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isHexadecimal = _interopRequireDefault(require(\"./isHexadecimal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isMongoId(str) {\n (0, _assertString.default)(str);\n return (0, _isHexadecimal.default)(str) && str.length === 24;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMongoIdValidator from 'validator/lib/isMongoId';\nexport var IS_MONGO_ID = 'isMongoId';\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function isMongoId(value) {\n return typeof value === 'string' && isMongoIdValidator(value);\n}\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function IsMongoId(validationOptions) {\n return ValidateBy({\n name: IS_MONGO_ID,\n validator: {\n validate: function (value, args) { return isMongoId(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a mongodb id'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMongoId.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMultibyte;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-control-regex */\nvar multibyte = /[^\\x00-\\x7F]/;\n/* eslint-enable no-control-regex */\n\nfunction isMultibyte(str) {\n (0, _assertString.default)(str);\n return multibyte.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMultibyteValidator from 'validator/lib/isMultibyte';\nexport var IS_MULTIBYTE = 'isMultibyte';\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function isMultibyte(value) {\n return typeof value === 'string' && isMultibyteValidator(value);\n}\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsMultibyte(validationOptions) {\n return ValidateBy({\n name: IS_MULTIBYTE,\n validator: {\n validate: function (value, args) { return isMultibyte(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain one or more multibyte chars'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMultibyte.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSurrogatePair;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/;\n\nfunction isSurrogatePair(str) {\n (0, _assertString.default)(str);\n return surrogatePair.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSurrogatePairValidator from 'validator/lib/isSurrogatePair';\nexport var IS_SURROGATE_PAIR = 'isSurrogatePair';\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function isSurrogatePair(value) {\n return typeof value === 'string' && isSurrogatePairValidator(value);\n}\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsSurrogatePair(validationOptions) {\n return ValidateBy({\n name: IS_SURROGATE_PAIR,\n validator: {\n validate: function (value, args) { return isSurrogatePair(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain any surrogate pairs chars'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsSurrogatePair.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation (IE maximum is 2083)\n\n*/\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n validate_length: true\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\n\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\n\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n\n options = (0, _merge.default)(options, default_url_options);\n\n if (options.validate_length && url.length >= 2083) {\n return false;\n }\n\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.substr(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n\n split[0] = url.substr(2);\n }\n\n url = split.join('://');\n\n if (url === '') {\n return false;\n }\n\n split = url.split('/');\n url = split.shift();\n\n if (url === '' && !options.require_host) {\n return true;\n }\n\n split = url.split('@');\n\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n\n auth = split.shift();\n\n if (auth.indexOf(':') === -1 || auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n }\n\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n\n if (split.length) {\n port_str = split.join(':');\n }\n }\n\n if (port_str !== null) {\n port = parseInt(port_str, 10);\n\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n\n host = host || ipv6;\n\n if (options.host_whitelist && !checkHost(host, options.host_whitelist)) {\n return false;\n }\n\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUrlValidator from 'validator/lib/isURL';\nexport var IS_URL = 'isUrl';\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function isURL(value, options) {\n return typeof value === 'string' && isUrlValidator(value, options);\n}\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function IsUrl(options, validationOptions) {\n return ValidateBy({\n name: IS_URL,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isURL(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an URL address'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsUrl.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUUID;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar uuid = {\n 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\n\nfunction isUUID(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'all';\n (0, _assertString.default)(str);\n var pattern = uuid[version];\n return pattern && pattern.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUuidValidator from 'validator/lib/isUUID';\nexport var IS_UUID = 'isUuid';\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function isUUID(value, version) {\n return typeof value === 'string' && isUuidValidator(value, version);\n}\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function IsUUID(version, validationOptions) {\n return ValidateBy({\n name: IS_UUID,\n constraints: [version],\n validator: {\n validate: function (value, args) { return isUUID(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a UUID'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsUUID.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_FIREBASE_PUSH_ID = 'IsFirebasePushId';\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function isFirebasePushId(value) {\n var webSafeRegex = /^[a-zA-Z0-9_-]*$/;\n return typeof value === 'string' && value.length === 20 && webSafeRegex.test(value);\n}\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function IsFirebasePushId(validationOptions) {\n return ValidateBy({\n name: IS_FIREBASE_PUSH_ID,\n validator: {\n validate: function (value, args) { return isFirebasePushId(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Firebase Push Id'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsFirebasePushId.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUppercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isUppercase(str) {\n (0, _assertString.default)(str);\n return str === str.toUpperCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUppercaseValidator from 'validator/lib/isUppercase';\nexport var IS_UPPERCASE = 'isUppercase';\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function isUppercase(value) {\n return typeof value === 'string' && isUppercaseValidator(value);\n}\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsUppercase(validationOptions) {\n return ValidateBy({\n name: IS_UPPERCASE,\n validator: {\n validate: function (value, args) { return isUppercase(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be uppercase'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsUppercase.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isLength(str, min [, max])\n min = arguments[1] || 0;\n max = arguments[2];\n }\n\n var surrogatePairs = str.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g) || [];\n var len = str.length - surrogatePairs.length;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\nexport var IS_LENGTH = 'isLength';\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function length(value, min, max) {\n return typeof value === 'string' && isLengthValidator(value, { min: min, max: max });\n}\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function Length(min, max, validationOptions) {\n return ValidateBy({\n name: IS_LENGTH,\n constraints: [min, max],\n validator: {\n validate: function (value, args) { return length(value, args.constraints[0], args.constraints[1]); },\n defaultMessage: buildMessage(function (eachPrefix, args) {\n var isMinLength = args.constraints[0] !== null && args.constraints[0] !== undefined;\n var isMaxLength = args.constraints[1] !== null && args.constraints[1] !== undefined;\n if (isMinLength && (!args.value || args.value.length < args.constraints[0])) {\n return eachPrefix + '$property must be longer than or equal to $constraint1 characters';\n }\n else if (isMaxLength && args.value.length > args.constraints[1]) {\n return eachPrefix + '$property must be shorter than or equal to $constraint2 characters';\n }\n return (eachPrefix +\n '$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters');\n }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Length.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\nexport var MAX_LENGTH = 'maxLength';\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function maxLength(value, max) {\n return typeof value === 'string' && isLengthValidator(value, { min: 0, max: max });\n}\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MaxLength(max, validationOptions) {\n return ValidateBy({\n name: MAX_LENGTH,\n constraints: [max],\n validator: {\n validate: function (value, args) { return maxLength(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be shorter than or equal to $constraint1 characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=MaxLength.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\nexport var MIN_LENGTH = 'minLength';\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function minLength(value, min) {\n return typeof value === 'string' && isLengthValidator(value, { min: min });\n}\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MinLength(min, validationOptions) {\n return ValidateBy({\n name: MIN_LENGTH,\n constraints: [min],\n validator: {\n validate: function (value, args) { return minLength(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be longer than or equal to $constraint1 characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=MinLength.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = matches;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction matches(str, pattern, modifiers) {\n (0, _assertString.default)(str);\n\n if (Object.prototype.toString.call(pattern) !== '[object RegExp]') {\n pattern = new RegExp(pattern, modifiers);\n }\n\n return pattern.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\nexport var MATCHES = 'matches';\nexport function matches(value, pattern, modifiers) {\n return typeof value === 'string' && matchesValidator(value, pattern, modifiers);\n}\nexport function Matches(pattern, modifiersOrAnnotationOptions, validationOptions) {\n var modifiers;\n if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) {\n validationOptions = modifiersOrAnnotationOptions;\n }\n else {\n modifiers = modifiersOrAnnotationOptions;\n }\n return ValidateBy({\n name: MATCHES,\n constraints: [pattern, modifiers],\n validator: {\n validate: function (value, args) { return matches(value, args.constraints[0], args.constraints[1]); },\n defaultMessage: buildMessage(function (eachPrefix, args) { return eachPrefix + '$property must match $constraint1 regular expression'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Matches.js.map","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([457]\\\\d{6})$\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2457]\\\\d{6})$\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"11\\\\d{8}|(?:[2368]|9\\\\d)\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([267]\\\\d{6})$\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7,8}|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"0|(183[12])\",0,0,0,[[\"8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-7]|3[2-4]|[4-6]\\\\d))|91(?:[0-57-9]\\\\d|6[0135-9])\\\\d)\\\\d{3}|(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\\\d|2[0-8])|8(?:6[0-8]|[78]\\\\d|9[02-9]))\\\\d{6}\",[9]],[\"4(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\",[6,8,10]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365|46\",\"1[28]|2|365(?:[0-46-9]|5[0-35-9])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"1\\\\d{9}|2\\\\d{7,8}|88\\\\d{4,6}|(?:8[0-79]|9\\\\d)\\\\d{4,8}|(?:[346]\\\\d|[57])\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[047]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:[2689]\\\\d|51)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[25689]\"]]]],\"BL\":[\"590\",\"00\",\"(?:590|69\\\\d|976)\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|5[12]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"],0,0,0,0,0,0,[\"976[01]\\\\d{5}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-8]\\\\d{6})$\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-24679]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([3-8]\\\\d{6})$\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"90\\\\d{5}|(?:0800|[2-6]|7\\\\d)\\\\d{6}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-6]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}\",[10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[57])|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[12]|33|44|66|77|88)|622)[2-9]\\\\d{6}\"],0,0,0,[\"600[2-9]\\\\d{6}\"]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10],0,\"0\",0,\"0|([59]\\\\d{7})$\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|118)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\",[6,8,10]]],\"0011\"],\"CD\":[\"243\",\"00\",\"[189]\\\\d{8}|[1-68]\\\\d{6}\",[7,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"801\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[02-9]\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-3]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"(?:[26]\\\\d\\\\d|88)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"(?:10|2[0-57-9])(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"0|(1(?:[12]\\\\d|79)\\\\d\\\\d)\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:1\\\\d|3)\\\\d{9}|[124-8]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[14][2-9]|[25-8]\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?:5|8\\\\d\\\\d)\\\\d{7}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10],0,\"0\",0,\"0|([59]\\\\d{7})$\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|235)|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\",[6,8,10]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[05]\\\\d{10}|[46][1-8]\\\\d{4,9})|49(?:[0-25]\\\\d|3[1-689]|7[1-7])\\\\d{4,8}|49(?:[0-2579]\\\\d|[34][1-9]|6[0-8])\\\\d{3}|49\\\\d{3,4}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[0568]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[189]\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-59]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-59]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[12]00|[368]|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[1245]|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]]],0,0,\"0(11\\\\d{6}|6[256]\\\\d{6}|7[47]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[03])|(?:4[0-5]|5[0-26-9]|6[0-4]|[78][0-49])\\\\d\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[02]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"(?:[56]94|976)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"0|([25-9]\\\\d{5})$\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"[256]\\\\d{7}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-689]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"(?:590|69\\\\d|976)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|1[0-2]|2[0-68]|3[1289]|4[0-24-9]|5[3-579]|6[0189]|7[08]|8[0-689]|9\\\\d)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"],0,0,0,0,0,0,[\"976[01]\\\\d{5}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|(?:[2689]\\\\d|70)\\\\d{8}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]]]],\"GT\":[\"502\",\"00\",\"(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([3-9]\\\\d{6})$\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:862\\\\d|9008)\\\\d{3}|(?:[2-46]\\\\d|77)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4}(?:\\\\d(?:\\\\d(?:\\\\d{4})?)?)?|(?:[235-79]\\\\d|46)\\\\d{6}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-5]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"[2-489]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-489]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"0|([5-8]\\\\d{5})$\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[245])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1[4679]|[38]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"],[\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d\\\\d|89(?:2|4[5-9]\\\\d))\\\\d{3}|89[45][0-4]\\\\d\\\\d|(?:1(?:44|6[346])|89(?:5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],0,0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"0|([0-24-8]\\\\d{5})$\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"(?:18|[2569]\\\\d\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[25]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"33622\\\\d{5}|(?:7\\\\d|80)\\\\d{8}\",[10],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[7-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-8]\\\\d{6})$\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"90\\\\d{5}|(?:[2378]|6\\\\d\\\\d)\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[237-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"0|(1001)\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:2|33|5\\\\d|77|88)\\\\d{7}|[4-6]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[4-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"8 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(8-$1)\",1]],\"8\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{5})(\\\\d{4})\",\"$1-$2\",[\"5(?:29|38)\",\"5(?:29|38)[89]\",\"5(?:29|38)[89]0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-489]|3[5-9]|9)|892\",\"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:29(?:[189][05]|2[29]|3[01])|38[89][05])\\\\d{4}|5(?:2(?:[015-7]\\\\d|2[02-9]|3[0-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|80|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:0[0-8]|6[1267]|7[0-37]))\\\\d{6}\"],[\"80\\\\d{7}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"592(?:4[0-2]|93)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"870\\\\d{5}|(?:[349]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[39]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"(?:590|69\\\\d|976)\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"],0,0,0,0,0,0,[\"976[01]\\\\d{5}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"0|([24-9]\\\\d{6})$\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[57-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"(?:28|[68]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"69\\\\d{7}|(?:59|97)6\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([34]\\\\d{6})$\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[2-468]|5\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"5\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[3467]|9[13-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"1\\\\d{6}(?:\\\\d{2})?|(?:[23]1|77|88|99)\\\\d{7}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"(?:1(?:[01467]\\\\d|[2359][1-9]|8[1-79])|[2-9]\\\\d)\\\\d{8}\",[10,11],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"],0,1],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 $3 $4\",[\"1(?:33|5[56]|81)\"],0,1],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 $3 $4\",[\"1\"],0,1]],\"01\",0,\"0(?:[12]|4[45])|1\",0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9])|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1[36-8]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"[2-57-9]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[2-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[04]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\",[7,8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"78\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|9(?:0[3-9]|[1-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-7]|8[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|[89]\\\\d{6,9}|1\\\\d{4,5}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-57-9]\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[489]|5[89]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-7]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-579]|6[2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[47]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[29]\\\\d{7,9}|50\\\\d{5}(?:\\\\d{2,3})?|6[0-35-9]\\\\d{6}|7\\\\d{7,8}|8\\\\d{4,9}|(?:11\\\\d|[34])\\\\d{7}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-579]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|[89]0\",\"50(?:[0367]|88)|[89]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[59]|80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7|86\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|8007\\\\d{4,5}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"8\\\\d{9}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,0,\" Anexo \"],\"PF\":[\"689\",\"00\",\"[48]\\\\d{7}|4\\\\d{5}\",[6,8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[48]\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"1800\\\\d{7,9}|(?:2|[89]\\\\d{4})\\\\d{5}|[2-8]\\\\d{8}|[28]\\\\d{7}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"6\\\\d{5}(?:\\\\d{2})?|8\\\\d{9}|[1-9]\\\\d{6}(?:\\\\d{2})?\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"[2-7]\\\\d{7}|(?:2\\\\d\\\\d|800)\\\\d{4}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[126]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]\"]]]],\"RE\":[\"262\",\"00\",\"9769\\\\d{5}|(?:26|[68]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,\"26[23]|69|[89]\"],\"RO\":[\"40\",\"00\",\"(?:[237]\\\\d|[89]0)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[237-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"[347-9]\\\\d{9}\",[10],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[3489]\"],\"8 ($1)\",1]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"8000\\\\d{3}|(?:[249]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-3]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[4589]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[2378]\\\\d|66|99)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d{4}|93330)\\\\d{4}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"24|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3478]|64|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[1-35-9]|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|(5\\\\d{6})$\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-479]\\\\d{6})$\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[69]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2679]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"1\\\\d{9}|[1689]\\\\d{8}|[1-57]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"(?:[02]0|11|[3-57-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"],0,1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[34]7|91[78]\"],0,1],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02457-9]|11\"],0,1]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"[1-6]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"6\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|[5-8]\\\\d{3})\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-8]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[0589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|616)\",\"5(?:[0-59]|6161)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-46-8]\\\\d{6})$\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[26-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[45][0-5]|5(?:0|6[37])|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\",\"4[45][0-5]|5(?:0|6(?:3[14-7]|7))|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-289]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[0179]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"4\\\\d{9}|[249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"405|8|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[24]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"810\",\"55501\\\\d{4}|(?:33|[679]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[35-9]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-578]\\\\d{6})$\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[69]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3578]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"(?:[23]\\\\d|[48]8)\\\\d{3}|(?:[57]\\\\d|90)\\\\d{5}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[579]\"]]]],\"WF\":[\"681\",\"00\",\"(?:[45]0|68|72|8\\\\d)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[4-8]\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[23]\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7[24-68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"80\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,\"269|63\"],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"(?:63|80)0\\\\d{6}|(?:21|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,[\"[1-9]\\\\d{7}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"[35-7]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]\\\\d|7[6-8])\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"[0-36-9]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-36-9]\"]]],0,0,0,0,0,0,[0,[\"[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|285\\\\d{9}|[19]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34[57]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-3]\"]]],0,0,0,0,0,0,[0,[\"3(?:37\\\\d\\\\d|42)\\\\d{4}|3(?:2|47|7\\\\d{3})\\\\d{7}\",[7,9,10,12]],0,0,0,0,0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:(?:285\\\\d\\\\d|3(?:45|[69]\\\\d{3}))\\\\d|9[89])\\\\d{6}\"]]],\"883\":[\"883\",0,\"51\\\\d{7}(?:\\\\d{3})?\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"510\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"51[013]0\\\\d{8}|5100\\\\d{5}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","// Importing from `.json.js` a workaround for a bug in web browsers' \"native\"\r\n// ES6 importing system which is uncapable of importing \"*.json\" files.\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\r\nimport metadata from '../metadata.min.json.js'\r\nexport default metadata\r\n\r\nexport function withMetadata(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// https://stackoverflow.com/a/46971044/970769\nvar ParseError = function ParseError(code) {\n _classCallCheck(this, ParseError);\n\n this.name = this.constructor.name;\n this.message = code;\n this.stack = new Error(code).stack;\n};\n\nexport { ParseError as default };\nParseError.prototype = Object.create(Error.prototype);\nParseError.prototype.constructor = ParseError;\n//# sourceMappingURL=ParseError.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport compare from './tools/semver-compare'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata =\n/*#__PURE__*/\nfunction () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan =\n/*#__PURE__*/\nfunction () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n }\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n }\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format =\n/*#__PURE__*/\nfunction () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type =\n/*#__PURE__*/\nfunction () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!is_object(metadata) || !is_object(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar is_object = function is_object(_) {\n return _typeof(_) === 'object';\n}; // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\n\nvar type_of = function type_of(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries[country] !== undefined;\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","import { VALID_DIGITS } from '../../constants'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants';\nimport createExtensionPattern from './extension/createExtensionPattern'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*';\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","import createExtensionPattern from './createExtensionPattern'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n//# sourceMappingURL=extractExtension.js.map","// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\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 \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var character = _ref;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","import { parseDigit } from './helpers/parseDigits';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var character = _ref;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object} meta - Optional custom use-case-specific metadata.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = b, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var element = _ref;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","import mergeArrays from './mergeArrays';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","import Metadata from './metadata';\nimport checkNumberLength from './helpers/checkNumberLength';\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n }\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossibleNumber_.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = text.split(';'), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var part = _ref;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref2) {\n var number = _ref2.number,\n ext = _ref2.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","import Metadata from '../metadata';\nimport matchesEntirely from './matchesEntirely';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returned `{}`\n // meaning that the phone number is not a valid one.\n\n if (!input.country) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // v1 metadata.\n // Legacy.\n // Deprecated.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _i = 0, _NON_FIXED_LINE_PHONE = NON_FIXED_LINE_PHONE_TYPES; _i < _NON_FIXED_LINE_PHONE.length; _i++) {\n var type = _NON_FIXED_LINE_PHONE[_i];\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","import Metadata from './metadata';\nimport matchesEntirely from './helpers/matchesEntirely';\nimport getNumberType from './helpers/getNumberType';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // This is just to support `isValidNumber({})`\n // for cases when `parseNumber()` returns `{}`.\n\n if (!input.country) {\n return false;\n }\n\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var national_number = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(national_number, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=validate_.js.map","import { VALID_PUNCTUATION } from '../constants'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains ``s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import Metadata from '../metadata';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n\n return countryMetadata.defaultIDDPrefix();\n}\n//# sourceMappingURL=getIddPrefix.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat';\nimport Metadata, { getCountryCallingCode } from './metadata';\nimport getIddPrefix from './helpers/getIddPrefix';\nimport { formatRFC3966 } from './helpers/RFC3966';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n } // Formats a phone number\n //\n // Example use cases:\n //\n // ```js\n // formatNumber('8005553535', 'RU', 'INTERNATIONAL')\n // formatNumber('8005553535', 'RU', 'INTERNATIONAL', metadata)\n // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL')\n // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', metadata)\n // formatNumber('+78005553535', 'NATIONAL')\n // formatNumber('+78005553535', 'NATIONAL', metadata)\n // ```\n //\n\n};\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread({}, DEFAULT_OPTIONS, options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = availableFormats, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var format = _ref;\n\n // Validate leading digits\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n//# sourceMappingURL=format_.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport Metadata from './metadata';\nimport isPossibleNumber from './isPossibleNumber_';\nimport isValidNumber from './validate_';\nimport isValidNumberForRegion from './isValidNumberForRegion_';\nimport getNumberType from './helpers/getNumberType';\nimport formatNumber from './format_';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber =\n/*#__PURE__*/\nfunction () {\n function PhoneNumber(countryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n var _metadata = new Metadata(metadata); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n\n if (isCountryCode(countryCallingCode)) {\n this.country = countryCallingCode;\n\n _metadata.country(countryCallingCode);\n\n countryCallingCode = _metadata.countryCallingCode();\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (_metadata.isNonGeographicCallingCode(countryCallingCode)) {\n this.country = '001';\n }\n }\n }\n\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber;\n this.metadata = metadata;\n }\n\n _createClass(PhoneNumber, [{\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.metadata);\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // // Is just an alias for `this.isValid() && this.country === country`.\n // // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\n // isValidForRegion(country) {\n // \treturn isValidNumberForRegion(this, country, { v2: true }, this.metadata)\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread({}, options, {\n v2: true\n }) : {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n//# sourceMappingURL=PhoneNumber.js.map","import Metadata from '../metadata';\nimport { VALID_DIGITS } from '../constants';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber';\nimport matchesEntirely from './matchesEntirely';\nimport checkNumberLength from './checkNumberLength';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n if (!shouldExtractNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // If a national prefix has been extracted, check to see\n // if the resultant number isn't too short.\n // Same code in Google's `libphonenumber`:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3291-L3302\n // For some reason, they do this check right after the `national_number_pattern` check\n // this library does in `shouldExtractNationalPrefix()` function.\n // Why is there a second \"resultant\" number validity check?\n // They don't provide an explanation.\n // This library just copies the behavior.\n\n\n if (number.length !== nationalNumber.length + (carrierCode ? carrierCode.length : 0)) {\n // If not using legacy generated metadata (before version `1.0.18`)\n // then it has \"possible lengths\", so use those to validate the number length.\n if (metadata.possibleLengths()) {\n // \"We require that the NSN remaining after stripping the national prefix and\n // carrier code be long enough to be a possible length for the region.\n // Otherwise, we don't do the stripping, since the original number could be\n // a valid short number.\"\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldExtractNationalPrefix(number, nationalSignificantNumber, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(number, metadata.nationalNumberPattern()) && !matchesEntirely(nationalSignificantNumber, metadata.nationalNumberPattern())) {\n return false;\n } // Just \"possible\" number check would be more relaxed, so it's not used.\n // if (isPossibleNumber(number, metadata) &&\n // \t!isPossibleNumber(numberWithNationalPrefixExtracted, metadata)) {\n // \treturn false\n // }\n\n\n return true;\n}\n//# sourceMappingURL=extractNationalNumber.js.map","import Metadata from '../metadata';\nimport matchesEntirely from './matchesEntirely';\nimport extractNationalNumber from './extractNationalNumber';\nimport checkNumberLength from './checkNumberLength';\nimport getCountryCallingCode from '../getCountryCallingCode';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","import stripIddPrefix from './stripIddPrefix';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign';\nimport Metadata from '../metadata';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n } // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n}\n//# sourceMappingURL=extractCountryCallingCode.js.map","import Metadata from '../metadata';\nimport getNumberType from './getNumberType';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n } // Is always non-empty, because `callingCode` is always valid\n\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata.metadata);\n}\n\nfunction selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata) {\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata);\n\n for (var _iterator = possibleCountries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var country = _ref;\n metadata.country(country); // Leading digits check would be the simplest one\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n return country;\n }\n }\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants';\nimport ParseError from './ParseError';\nimport Metadata from './metadata';\nimport isViablePhoneNumber from './helpers/isViablePhoneNumber';\nimport extractExtension from './helpers/extension/extractExtension';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber';\nimport getCountryCallingCode from './getCountryCallingCode';\nimport { isPossibleNumber } from './isPossibleNumber_';\nimport { parseRFC3966 } from './helpers/RFC3966';\nimport PhoneNumber from './PhoneNumber';\nimport matchesEntirely from './helpers/matchesEntirely';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign';\nimport extractNationalNumber from './helpers/extractNationalNumber';\nimport stripIddPrefix from './helpers/stripIddPrefix';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // `options`:\n// {\n// country:\n// {\n// restrict - (a two-letter country code)\n// the phone number must be in this country\n//\n// default - (a two-letter country code)\n// default country to use for phone number parsing and validation\n// (if no country code could be derived from the phone number)\n// }\n// }\n//\n// Returns `{ country, number }`\n//\n// Example use cases:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} throwOnError — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nexport function extractFormattedPhoneNumber(text, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nfunction parseInput(text, v2) {\n // Parse RFC 3966 phone number URI.\n if (text && text.indexOf('tel:') === 0) {\n return parseRFC3966(text);\n }\n\n var number = extractFormattedPhoneNumber(text, v2); // If the phone number is not viable, then abort.\n\n if (!number || !isViablePhoneNumber(number)) {\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is in \"national\" format\n // then `number` is defined and `countryCallingCode` isn't.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, nationalNumber, metadata);\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse_.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parseNumber from './parse_';\nexport default function parsePhoneNumber(text, options, metadata) {\n return parseNumber(text, _objectSpread({}, options, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport parsePhoneNumber_ from './parsePhoneNumber_';\nexport default function parsePhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumber_(text, options, metadata);\n}\nexport function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n} // Otherwise istanbul would show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar isObject = function isObject(_) {\n return _typeof(_) === 'object';\n};\n//# sourceMappingURL=parsePhoneNumber.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parsePhoneNumber from './parsePhoneNumber_';\nimport ParseError from './ParseError';\nimport { isSupportedCountry } from './metadata';\nexport default function parsePhoneNumberFromString(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n options = _objectSpread({}, options, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n\n try {\n return parsePhoneNumber(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof ParseError) {//\n } else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=parsePhoneNumberFromString_.js.map","import { normalizeArguments } from './parsePhoneNumber';\nimport parsePhoneNumberFromString_ from './parsePhoneNumberFromString_';\nexport default function parsePhoneNumberFromString() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumberFromString_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumberFromString.js.map","import { withMetadata } from '../metadata'\r\nimport { parsePhoneNumberFromString as _parsePhoneNumberFromString } from '../../core/index'\r\n\r\nexport function parsePhoneNumberFromString() {\r\n\treturn withMetadata(_parsePhoneNumberFromString, arguments)\r\n}","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { parsePhoneNumberFromString } from 'libphonenumber-js';\nexport var IS_PHONE_NUMBER = 'isPhoneNumber';\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param value the potential phone number string to test\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function isPhoneNumber(value, region) {\n try {\n var phoneNum = parsePhoneNumberFromString(value, region);\n var result = phoneNum === null || phoneNum === void 0 ? void 0 : phoneNum.isValid();\n return !!result;\n }\n catch (error) {\n // logging?\n return false;\n }\n}\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function IsPhoneNumber(region, validationOptions) {\n return ValidateBy({\n name: IS_PHONE_NUMBER,\n constraints: [region],\n validator: {\n validate: function (value, args) { return isPhoneNumber(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid phone number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsPhoneNumber.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\nexport var IS_MILITARY_TIME = 'isMilitaryTime';\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function isMilitaryTime(value) {\n var militaryTimeRegex = /^([01]\\d|2[0-3]):?([0-5]\\d)$/;\n return typeof value === 'string' && matchesValidator(value, militaryTimeRegex);\n}\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function IsMilitaryTime(validationOptions) {\n return ValidateBy({\n name: IS_MILITARY_TIME,\n validator: {\n validate: function (value, args) { return isMilitaryTime(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid representation of military time in the format HH:MM'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMilitaryTime.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHash;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar lengths = {\n md5: 32,\n md4: 32,\n sha1: 40,\n sha256: 64,\n sha384: 96,\n sha512: 128,\n ripemd128: 32,\n ripemd160: 40,\n tiger128: 32,\n tiger160: 40,\n tiger192: 48,\n crc32: 8,\n crc32b: 8\n};\n\nfunction isHash(str, algorithm) {\n (0, _assertString.default)(str);\n var hash = new RegExp(\"^[a-fA-F0-9]{\".concat(lengths[algorithm], \"}$\"));\n return hash.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHashValidator from 'validator/lib/isHash';\nexport var IS_HASH = 'isHash';\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function isHash(value, algorithm) {\n return typeof value === 'string' && isHashValidator(value, algorithm);\n}\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function IsHash(algorithm, validationOptions) {\n return ValidateBy({\n name: IS_HASH,\n constraints: [algorithm],\n validator: {\n validate: function (value, args) { return isHash(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hash of type $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsHash.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISSN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar issn = '^\\\\d{4}-?\\\\d{3}[\\\\dX]$';\n\nfunction isISSN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var testIssn = issn;\n testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn;\n testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i');\n\n if (!testIssn.test(str)) {\n return false;\n }\n\n var digits = str.replace('-', '').toUpperCase();\n var checksum = 0;\n\n for (var i = 0; i < digits.length; i++) {\n var digit = digits[i];\n checksum += (digit === 'X' ? 10 : +digit) * (8 - i);\n }\n\n return checksum % 11 === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISSNValidator from 'validator/lib/isISSN';\nexport var IS_ISSN = 'isISSN';\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function isISSN(value, options) {\n return typeof value === 'string' && isISSNValidator(value, options);\n}\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function IsISSN(options, validationOptions) {\n return ValidateBy({\n name: IS_ISSN,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isISSN(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a ISSN'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISSN.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { isISO8601 } from './IsISO8601';\nexport var IS_DATE_STRING = 'isDateString';\n/**\n * Alias for IsISO8601 validator\n */\nexport function isDateString(value, options) {\n return isISO8601(value, options);\n}\n/**\n * Alias for IsISO8601 validator\n */\nexport function IsDateString(options, validationOptions) {\n return ValidateBy({\n name: IS_DATE_STRING,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isDateString(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO 8601 date string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDateString.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBoolean;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isBoolean(str) {\n (0, _assertString.default)(str);\n return ['true', 'false', '1', '0'].indexOf(str) >= 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBooleanValidator from 'validator/lib/isBoolean';\nexport var IS_BOOLEAN_STRING = 'isBooleanString';\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function isBooleanString(value) {\n return typeof value === 'string' && isBooleanValidator(value);\n}\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function IsBooleanString(validationOptions) {\n return ValidateBy({\n name: IS_BOOLEAN_STRING,\n validator: {\n validate: function (value, args) { return isBooleanString(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a boolean string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBooleanString.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNumeric;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar numericNoSymbols = /^[0-9]+$/;\n\nfunction isNumeric(str, options) {\n (0, _assertString.default)(str);\n\n if (options && options.no_symbols) {\n return numericNoSymbols.test(str);\n }\n\n return new RegExp(\"^[+-]?([0-9]*[\".concat((options || {}).locale ? _alpha.decimal[options.locale] : '.', \"])?[0-9]+$\")).test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isNumericValidator from 'validator/lib/isNumeric';\nexport var IS_NUMBER_STRING = 'isNumberString';\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function isNumberString(value, options) {\n return typeof value === 'string' && isNumericValidator(value, options);\n}\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function IsNumberString(options, validationOptions) {\n return ValidateBy({\n name: IS_NUMBER_STRING,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isNumberString(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a number string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNumberString.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase32;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar base32 = /^[A-Z2-7]+=*$/;\n\nfunction isBase32(str) {\n (0, _assertString.default)(str);\n var len = str.length;\n\n if (len % 8 === 0 && base32.test(str)) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase32Validator from 'validator/lib/isBase32';\nexport var IS_BASE32 = 'isBase32';\n/**\n * Checks if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase32(value) {\n return typeof value === 'string' && isBase32Validator(value);\n}\n/**\n * Check if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase32(validationOptions) {\n return ValidateBy({\n name: IS_BASE32,\n validator: {\n validate: function (value, args) { return isBase32(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be base32 encoded'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBase32.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBIC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isBICReg = /^[A-z]{4}[A-z]{2}\\w{2}(\\w{3})?$/;\n\nfunction isBIC(str) {\n (0, _assertString.default)(str);\n return isBICReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBICValidator from 'validator/lib/isBIC';\nexport var IS_BIC = 'isBIC';\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function isBIC(value) {\n return typeof value === 'string' && isBICValidator(value);\n}\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function IsBIC(validationOptions) {\n return ValidateBy({\n name: IS_BIC,\n validator: {\n validate: function (value, args) { return isBIC(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a BIC or SWIFT code'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBIC.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBtcAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// supports Bech32 addresses\nvar btc = /^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/;\n\nfunction isBtcAddress(str) {\n (0, _assertString.default)(str);\n return btc.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBtcAddressValidator from 'validator/lib/isBtcAddress';\nexport var IS_BTC_ADDRESS = 'isBtcAddress';\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function isBtcAddress(value) {\n return typeof value === 'string' && isBtcAddressValidator(value);\n}\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function IsBtcAddress(validationOptions) {\n return ValidateBy({\n name: IS_BTC_ADDRESS,\n validator: {\n validate: function (value, args) { return isBtcAddress(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a BTC address'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBtcAddress.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDataURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validMediaType = /^[a-z]+\\/[a-z0-9\\-\\+]+$/i;\nvar validAttribute = /^[a-z\\-]+=[a-z0-9\\-]+$/i;\nvar validData = /^[a-z0-9!\\$&'\\(\\)\\*\\+,;=\\-\\._~:@\\/\\?%\\s]*$/i;\n\nfunction isDataURI(str) {\n (0, _assertString.default)(str);\n var data = str.split(',');\n\n if (data.length < 2) {\n return false;\n }\n\n var attributes = data.shift().trim().split(';');\n var schemeAndMediaType = attributes.shift();\n\n if (schemeAndMediaType.substr(0, 5) !== 'data:') {\n return false;\n }\n\n var mediaType = schemeAndMediaType.substr(5);\n\n if (mediaType !== '' && !validMediaType.test(mediaType)) {\n return false;\n }\n\n for (var i = 0; i < attributes.length; i++) {\n if (i === attributes.length - 1 && attributes[i].toLowerCase() === 'base64') {// ok\n } else if (!validAttribute.test(attributes[i])) {\n return false;\n }\n }\n\n for (var _i = 0; _i < data.length; _i++) {\n if (!validData.test(data[_i])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDataURIValidator from 'validator/lib/isDataURI';\nexport var IS_DATA_URI = 'isDataURI';\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isDataURI(value) {\n return typeof value === 'string' && isDataURIValidator(value);\n}\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsDataURI(validationOptions) {\n return ValidateBy({\n name: IS_DATA_URI,\n validator: {\n validate: function (value, args) { return isDataURI(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a data uri format'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDataURI.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEAN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The most commonly used EAN standard is\n * the thirteen-digit EAN-13, while the\n * less commonly used 8-digit EAN-8 barcode was\n * introduced for use on small packages.\n * EAN consists of:\n * GS1 prefix, manufacturer code, product code and check digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number\n */\n\n/**\n * Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13\n * and Regular Expression for valid EANs (EAN-8, EAN-13),\n * with exact numberic matching of 8 or 13 digits [0-9]\n */\nvar LENGTH_EAN_8 = 8;\nvar validEanRegex = /^(\\d{8}|\\d{13})$/;\n/**\n * Get position weight given:\n * EAN length and digit index/position\n *\n * @param {number} length\n * @param {number} index\n * @return {number}\n */\n\nfunction getPositionWeightThroughLengthAndIndex(length, index) {\n if (length === LENGTH_EAN_8) {\n return index % 2 === 0 ? 3 : 1;\n }\n\n return index % 2 === 0 ? 1 : 3;\n}\n/**\n * Calculate EAN Check Digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit\n *\n * @param {string} ean\n * @return {number}\n */\n\n\nfunction calculateCheckDigit(ean) {\n var checksum = ean.slice(0, -1).split('').map(function (char, index) {\n return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);\n }).reduce(function (acc, partialSum) {\n return acc + partialSum;\n }, 0);\n var remainder = 10 - checksum % 10;\n return remainder < 10 ? remainder : 0;\n}\n/**\n * Check if string is valid EAN:\n * Matches EAN-8/EAN-13 regex\n * Has valid check digit.\n *\n * @param {string} str\n * @return {boolean}\n */\n\n\nfunction isEAN(str) {\n (0, _assertString.default)(str);\n var actualCheckDigit = Number(str.slice(-1));\n return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEANValidator from 'validator/lib/isEAN';\nexport var IS_EAN = 'isEAN';\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function isEAN(value) {\n return typeof value === 'string' && isEANValidator(value);\n}\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsEAN(validationOptions) {\n return ValidateBy({\n name: IS_EAN,\n validator: {\n validate: function (value, args) { return isEAN(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an EAN (European Article Number)'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsEAN.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEthereumAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eth = /^(0x)[0-9a-f]{40}$/i;\n\nfunction isEthereumAddress(str) {\n (0, _assertString.default)(str);\n return eth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEthereumAddressValidator from 'validator/lib/isEthereumAddress';\nexport var IS_ETHEREUM_ADDRESS = 'isEthereumAddress';\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function isEthereumAddress(value) {\n return typeof value === 'string' && isEthereumAddressValidator(value);\n}\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function IsEthereumAddress(validationOptions) {\n return ValidateBy({\n name: IS_ETHEREUM_ADDRESS,\n validator: {\n validate: function (value, args) { return isEthereumAddress(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an Ethereum address'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsEthereumAddress.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHSL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hslcomma = /^(hsl)a?\\(\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn|\\s*)(\\s*,\\s*(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}\\s*(,\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?)\\s*)?\\)$/i;\nvar hslspace = /^(hsl)a?\\(\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn|\\s)(\\s*(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}\\s*(\\/\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?)\\s*)?\\)$/i;\n\nfunction isHSL(str) {\n (0, _assertString.default)(str);\n return hslcomma.test(str) || hslspace.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHSLValidator from 'validator/lib/isHSL';\nexport var IS_HSL = 'isHSL';\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function isHSL(value) {\n return typeof value === 'string' && isHSLValidator(value);\n}\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function IsHSL(validationOptions) {\n return ValidateBy({\n name: IS_HSL,\n validator: {\n validate: function (value, args) { return isHSL(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a HSL color'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsHSL.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIBAN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * List of country codes with\n * corresponding IBAN regular expression\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n */\nvar ibanRegexThroughCountryCode = {\n AD: /^(AD[0-9]{2})\\d{8}[A-Z0-9]{12}$/,\n AE: /^(AE[0-9]{2})\\d{3}\\d{16}$/,\n AL: /^(AL[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n AT: /^(AT[0-9]{2})\\d{16}$/,\n AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n BA: /^(BA[0-9]{2})\\d{16}$/,\n BE: /^(BE[0-9]{2})\\d{12}$/,\n BG: /^(BG[0-9]{2})[A-Z]{4}\\d{6}[A-Z0-9]{8}$/,\n BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,\n BR: /^(BR[0-9]{2})\\d{23}[A-Z]{1}[A-Z0-9]{1}$/,\n BY: /^(BY[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n CH: /^(CH[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n CR: /^(CR[0-9]{2})\\d{18}$/,\n CY: /^(CY[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n CZ: /^(CZ[0-9]{2})\\d{20}$/,\n DE: /^(DE[0-9]{2})\\d{18}$/,\n DK: /^(DK[0-9]{2})\\d{14}$/,\n DO: /^(DO[0-9]{2})[A-Z]{4}\\d{20}$/,\n EE: /^(EE[0-9]{2})\\d{16}$/,\n EG: /^(EG[0-9]{2})\\d{25}$/,\n ES: /^(ES[0-9]{2})\\d{20}$/,\n FI: /^(FI[0-9]{2})\\d{14}$/,\n FO: /^(FO[0-9]{2})\\d{14}$/,\n FR: /^(FR[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n GB: /^(GB[0-9]{2})[A-Z]{4}\\d{14}$/,\n GE: /^(GE[0-9]{2})[A-Z0-9]{2}\\d{16}$/,\n GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,\n GL: /^(GL[0-9]{2})\\d{14}$/,\n GR: /^(GR[0-9]{2})\\d{7}[A-Z0-9]{16}$/,\n GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,\n HR: /^(HR[0-9]{2})\\d{17}$/,\n HU: /^(HU[0-9]{2})\\d{24}$/,\n IE: /^(IE[0-9]{2})[A-Z0-9]{4}\\d{14}$/,\n IL: /^(IL[0-9]{2})\\d{19}$/,\n IQ: /^(IQ[0-9]{2})[A-Z]{4}\\d{15}$/,\n IR: /^(IR[0-9]{2})0\\d{2}0\\d{18}$/,\n IS: /^(IS[0-9]{2})\\d{22}$/,\n IT: /^(IT[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n JO: /^(JO[0-9]{2})[A-Z]{4}\\d{22}$/,\n KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,\n KZ: /^(KZ[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LB: /^(LB[0-9]{2})\\d{4}[A-Z0-9]{20}$/,\n LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,\n LI: /^(LI[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n LT: /^(LT[0-9]{2})\\d{16}$/,\n LU: /^(LU[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,\n MC: /^(MC[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/,\n ME: /^(ME[0-9]{2})\\d{18}$/,\n MK: /^(MK[0-9]{2})\\d{3}[A-Z0-9]{10}\\d{2}$/,\n MR: /^(MR[0-9]{2})\\d{23}$/,\n MT: /^(MT[0-9]{2})[A-Z]{4}\\d{5}[A-Z0-9]{18}$/,\n MU: /^(MU[0-9]{2})[A-Z]{4}\\d{19}[A-Z]{3}$/,\n NL: /^(NL[0-9]{2})[A-Z]{4}\\d{10}$/,\n NO: /^(NO[0-9]{2})\\d{11}$/,\n PK: /^(PK[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n PL: /^(PL[0-9]{2})\\d{24}$/,\n PS: /^(PS[0-9]{2})[A-Z0-9]{4}\\d{21}$/,\n PT: /^(PT[0-9]{2})\\d{21}$/,\n QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,\n RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,\n RS: /^(RS[0-9]{2})\\d{18}$/,\n SA: /^(SA[0-9]{2})\\d{2}[A-Z0-9]{18}$/,\n SC: /^(SC[0-9]{2})[A-Z]{4}\\d{20}[A-Z]{3}$/,\n SE: /^(SE[0-9]{2})\\d{20}$/,\n SI: /^(SI[0-9]{2})\\d{15}$/,\n SK: /^(SK[0-9]{2})\\d{20}$/,\n SM: /^(SM[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n SV: /^(SV[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n TL: /^(TL[0-9]{2})\\d{19}$/,\n TN: /^(TN[0-9]{2})\\d{20}$/,\n TR: /^(TR[0-9]{2})\\d{5}[A-Z0-9]{17}$/,\n UA: /^(UA[0-9]{2})\\d{6}[A-Z0-9]{19}$/,\n VA: /^(VA[0-9]{2})\\d{18}$/,\n VG: /^(VG[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n XK: /^(XK[0-9]{2})\\d{16}$/\n};\n/**\n * Check whether string has correct universal IBAN format\n * The IBAN consists of up to 34 alphanumeric characters, as follows:\n * Country Code using ISO 3166-1 alpha-2, two letters\n * check digits, two digits and\n * Basic Bank Account Number (BBAN), up to 30 alphanumeric characters.\n * NOTE: Permitted IBAN characters are: digits [0-9] and the 26 latin alphabetic [A-Z]\n *\n * @param {string} str - string under validation\n * @return {boolean}\n */\n\nfunction hasValidIbanFormat(str) {\n // Strip white spaces and hyphens\n var strippedStr = str.replace(/[\\s\\-]+/gi, '').toUpperCase();\n var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();\n return isoCountryCode in ibanRegexThroughCountryCode && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);\n}\n/**\n * Check whether string has valid IBAN Checksum\n * by performing basic mod-97 operation and\n * the remainder should equal 1\n * -- Start by rearranging the IBAN by moving the four initial characters to the end of the string\n * -- Replace each letter in the string with two digits, A -> 10, B = 11, Z = 35\n * -- Interpret the string as a decimal integer and\n * -- compute the remainder on division by 97 (mod 97)\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n *\n * @param {string} str\n * @return {boolean}\n */\n\n\nfunction hasValidIbanChecksum(str) {\n var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic\n\n var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4);\n var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function (char) {\n return char.charCodeAt(0) - 55;\n });\n var remainder = alphaCapsReplacedWithDigits.match(/\\d{1,7}/g).reduce(function (acc, value) {\n return Number(acc + value) % 97;\n }, '');\n return remainder === 1;\n}\n\nfunction isIBAN(str) {\n (0, _assertString.default)(str);\n return hasValidIbanFormat(str) && hasValidIbanChecksum(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIBANValidator from 'validator/lib/isIBAN';\nexport var IS_IBAN = 'isIBAN';\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function isIBAN(value) {\n return typeof value === 'string' && isIBANValidator(value);\n}\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsIBAN(validationOptions) {\n return ValidateBy({\n name: IS_IBAN,\n validator: {\n validate: function (value, args) { return isIBAN(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an IBAN'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsIBAN.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIdentityCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validators = {\n ES: function ES(str) {\n (0, _assertString.default)(str);\n var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/;\n var charsValue = {\n X: 0,\n Y: 1,\n Z: 2\n };\n var controlDigits = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E']; // sanitize user input\n\n var sanitized = str.trim().toUpperCase(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n } // validate the control digit\n\n\n var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function (char) {\n return charsValue[char];\n });\n return sanitized.endsWith(controlDigits[number % 23]);\n },\n IN: function IN(str) {\n var DNI = /^[1-9]\\d{3}\\s?\\d{4}\\s?\\d{4}$/; // multiplication table\n\n var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]]; // permutation table\n\n var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n var c = 0;\n var invertedArray = sanitized.replace(/\\s/g, '').split('').map(Number).reverse();\n invertedArray.forEach(function (val, i) {\n c = d[c][p[i % 8][val]];\n });\n return c === 0;\n },\n IT: function IT(str) {\n if (str.length !== 9) return false;\n if (str === 'CA00000AA') return false; // https://it.wikipedia.org/wiki/Carta_d%27identit%C3%A0_elettronica_italiana\n\n return str.search(/C[A-Z][0-9]{5}[A-Z]{2}/i) > -1;\n },\n NO: function NO(str) {\n var sanitized = str.trim();\n if (isNaN(Number(sanitized))) return false;\n if (sanitized.length !== 11) return false;\n if (sanitized === '00000000000') return false; // https://no.wikipedia.org/wiki/F%C3%B8dselsnummer\n\n var f = sanitized.split('').map(Number);\n var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11;\n var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11;\n if (k1 !== f[9] || k2 !== f[10]) return false;\n return true;\n },\n 'he-IL': function heIL(str) {\n var DNI = /^\\d{9}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n var id = sanitized;\n var sum = 0,\n incNum;\n\n for (var i = 0; i < id.length; i++) {\n incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2\n\n sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total\n }\n\n return sum % 10 === 0;\n },\n 'ar-TN': function arTN(str) {\n var DNI = /^\\d{8}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n return true;\n },\n 'zh-CN': function zhCN(str) {\n var provincesAndCities = ['11', // 北京\n '12', // 天津\n '13', // 河北\n '14', // 山西\n '15', // 内蒙古\n '21', // 辽宁\n '22', // 吉林\n '23', // 黑龙江\n '31', // 上海\n '32', // 江苏\n '33', // 浙江\n '34', // 安徽\n '35', // 福建\n '36', // 江西\n '37', // 山东\n '41', // 河南\n '42', // 湖北\n '43', // 湖南\n '44', // 广东\n '45', // 广西\n '46', // 海南\n '50', // 重庆\n '51', // 四川\n '52', // 贵州\n '53', // 云南\n '54', // 西藏\n '61', // 陕西\n '62', // 甘肃\n '63', // 青海\n '64', // 宁夏\n '65', // 新疆\n '71', // 台湾\n '81', // 香港\n '82', // 澳门\n '91' // 国外\n ];\n var powers = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2'];\n var parityBit = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\n\n var checkAddressCode = function checkAddressCode(addressCode) {\n return provincesAndCities.includes(addressCode);\n };\n\n var checkBirthDayCode = function checkBirthDayCode(birDayCode) {\n var yyyy = parseInt(birDayCode.substring(0, 4), 10);\n var mm = parseInt(birDayCode.substring(4, 6), 10);\n var dd = parseInt(birDayCode.substring(6), 10);\n var xdata = new Date(yyyy, mm - 1, dd);\n\n if (xdata > new Date()) {\n return false; // eslint-disable-next-line max-len\n } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) {\n return true;\n }\n\n return false;\n };\n\n var getParityBit = function getParityBit(idCardNo) {\n var id17 = idCardNo.substring(0, 17);\n var power = 0;\n\n for (var i = 0; i < 17; i++) {\n power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10);\n }\n\n var mod = power % 11;\n return parityBit[mod];\n };\n\n var checkParityBit = function checkParityBit(idCardNo) {\n return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase();\n };\n\n var check15IdCardNo = function check15IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = \"19\".concat(idCardNo.substring(6, 12));\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return true;\n };\n\n var check18IdCardNo = function check18IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{5}[1-9]\\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}(\\d|x|X)$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = idCardNo.substring(6, 14);\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return checkParityBit(idCardNo);\n };\n\n var checkIdCardNo = function checkIdCardNo(idCardNo) {\n var check = /^\\d{15}|(\\d{17}(\\d|x|X))$/.test(idCardNo);\n if (!check) return false;\n\n if (idCardNo.length === 15) {\n return check15IdCardNo(idCardNo);\n }\n\n return check18IdCardNo(idCardNo);\n };\n\n return checkIdCardNo(str);\n },\n 'zh-TW': function zhTW(str) {\n var ALPHABET_CODES = {\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 34,\n J: 18,\n K: 19,\n L: 20,\n M: 21,\n N: 22,\n O: 35,\n P: 23,\n Q: 24,\n R: 25,\n S: 26,\n T: 27,\n U: 28,\n V: 29,\n W: 32,\n X: 30,\n Y: 31,\n Z: 33\n };\n var sanitized = str.trim().toUpperCase();\n if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false;\n return Array.from(sanitized).reduce(function (sum, number, index) {\n if (index === 0) {\n var code = ALPHABET_CODES[number];\n return code % 10 * 9 + Math.floor(code / 10);\n }\n\n if (index === 9) {\n return (10 - sum % 10 - Number(number)) % 10 === 0;\n }\n\n return sum + Number(number) * (9 - index);\n }, 0);\n }\n};\n\nfunction isIdentityCard(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (validators.hasOwnProperty(key)) {\n var validator = validators[key];\n\n if (validator(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIdentityCardValidator from 'validator/lib/isIdentityCard';\nexport var IS_IDENTITY_CARD = 'isIdentityCard';\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function isIdentityCard(value, locale) {\n return typeof value === 'string' && isIdentityCardValidator(value, locale);\n}\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function IsIdentityCard(locale, validationOptions) {\n return ValidateBy({\n name: IS_IDENTITY_CARD,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isIdentityCard(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a identity card number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsIdentityCard.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISRC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// see http://isrc.ifpi.org/en/isrc-standard/code-syntax\nvar isrc = /^[A-Z]{2}[0-9A-Z]{3}\\d{2}\\d{5}$/;\n\nfunction isISRC(str) {\n (0, _assertString.default)(str);\n return isrc.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISRCValidator from 'validator/lib/isISRC';\nexport var IS_ISRC = 'isISRC';\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function isISRC(value) {\n return typeof value === 'string' && isISRCValidator(value);\n}\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function IsISRC(validationOptions) {\n return ValidateBy({\n name: IS_ISRC,\n validator: {\n validate: function (value, args) { return isISRC(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISRC'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISRC.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLocale;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar localeReg = /^[A-z]{2,4}([_-]([A-z]{4}|[\\d]{3}))?([_-]([A-z]{2}|[\\d]{3}))?$/;\n\nfunction isLocale(str) {\n (0, _assertString.default)(str);\n\n if (str === 'en_US_POSIX' || str === 'ca_ES_VALENCIA') {\n return true;\n }\n\n return localeReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLocaleValidator from 'validator/lib/isLocale';\nexport var IS_LOCALE = 'isLocale';\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function isLocale(value) {\n return typeof value === 'string' && isLocaleValidator(value);\n}\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function IsLocale(validationOptions) {\n return ValidateBy({\n name: IS_LOCALE,\n validator: {\n validate: function (value, args) { return isLocale(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be locale'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsLocale.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMagnetURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar magnetURI = /^magnet:\\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}&dn=.+&tr=.+$/i;\n\nfunction isMagnetURI(url) {\n (0, _assertString.default)(url);\n return magnetURI.test(url.trim());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMagnetURIValidator from 'validator/lib/isMagnetURI';\nexport var IS_MAGNET_URI = 'isMagnetURI';\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isMagnetURI(value) {\n return typeof value === 'string' && isMagnetURIValidator(value);\n}\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsMagnetURI(validationOptions) {\n return ValidateBy({\n name: IS_MAGNET_URI,\n validator: {\n validate: function (value, args) { return isMagnetURI(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be magnet uri format'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMagnetURI.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMimeType;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n Checks if the provided string matches to a correct Media type format (MIME type)\n\n This function only checks is the string format follows the\n etablished rules by the according RFC specifications.\n This function supports 'charset' in textual media types\n (https://tools.ietf.org/html/rfc6657).\n\n This function does not check against all the media types listed\n by the IANA (https://www.iana.org/assignments/media-types/media-types.xhtml)\n because of lightness purposes : it would require to include\n all these MIME types in this librairy, which would weigh it\n significantly. This kind of effort maybe is not worth for the use that\n this function has in this entire librairy.\n\n More informations in the RFC specifications :\n - https://tools.ietf.org/html/rfc2045\n - https://tools.ietf.org/html/rfc2046\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.1\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.5\n*/\n// Match simple MIME types\n// NB :\n// Subtype length must not exceed 100 characters.\n// This rule does not comply to the RFC specs (what is the max length ?).\nvar mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\\/[a-zA-Z0-9\\.\\-\\+]{1,100}$/i; // eslint-disable-line max-len\n// Handle \"charset\" in \"text/*\"\n\nvar mimeTypeText = /^text\\/[a-zA-Z0-9\\.\\-\\+]{1,100};\\s?charset=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?$/i; // eslint-disable-line max-len\n// Handle \"boundary\" in \"multipart/*\"\n\nvar mimeTypeMultipart = /^multipart\\/[a-zA-Z0-9\\.\\-\\+]{1,100}(;\\s?(boundary|charset)=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?){0,2}$/i; // eslint-disable-line max-len\n\nfunction isMimeType(str) {\n (0, _assertString.default)(str);\n return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMimeTypeValidator from 'validator/lib/isMimeType';\nexport var IS_MIME_TYPE = 'isMimeType';\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function isMimeType(value) {\n return typeof value === 'string' && isMimeTypeValidator(value);\n}\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function IsMimeType(validationOptions) {\n return ValidateBy({\n name: IS_MIME_TYPE,\n validator: {\n validate: function (value, args) { return isMimeType(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be MIME type format'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMimeType.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isOctal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar octal = /^(0o)?[0-7]+$/i;\n\nfunction isOctal(str) {\n (0, _assertString.default)(str);\n return octal.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isOctalValidator from 'validator/lib/isOctal';\nexport var IS_OCTAL = 'isOctal';\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function isOctal(value) {\n return typeof value === 'string' && isOctalValidator(value);\n}\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsOctal(validationOptions) {\n return ValidateBy({\n name: IS_OCTAL,\n validator: {\n validate: function (value, args) { return isOctal(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be valid octal number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsOctal.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPassportNumber;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Reference:\n * https://en.wikipedia.org/ -- Wikipedia\n * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number\n * https://countrycode.org/ -- Country Codes\n */\nvar passportRegexByCountryCode = {\n AM: /^[A-Z]{2}\\d{7}$/,\n // ARMENIA\n AR: /^[A-Z]{3}\\d{6}$/,\n // ARGENTINA\n AT: /^[A-Z]\\d{7}$/,\n // AUSTRIA\n AU: /^[A-Z]\\d{7}$/,\n // AUSTRALIA\n BE: /^[A-Z]{2}\\d{6}$/,\n // BELGIUM\n BG: /^\\d{9}$/,\n // BULGARIA\n BY: /^[A-Z]{2}\\d{7}$/,\n // BELARUS\n CA: /^[A-Z]{2}\\d{6}$/,\n // CANADA\n CH: /^[A-Z]\\d{7}$/,\n // SWITZERLAND\n CN: /^[GE]\\d{8}$/,\n // CHINA [G=Ordinary, E=Electronic] followed by 8-digits\n CY: /^[A-Z](\\d{6}|\\d{8})$/,\n // CYPRUS\n CZ: /^\\d{8}$/,\n // CZECH REPUBLIC\n DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,\n // GERMANY\n DK: /^\\d{9}$/,\n // DENMARK\n DZ: /^\\d{9}$/,\n // ALGERIA\n EE: /^([A-Z]\\d{7}|[A-Z]{2}\\d{7})$/,\n // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits\n ES: /^[A-Z0-9]{2}([A-Z0-9]?)\\d{6}$/,\n // SPAIN\n FI: /^[A-Z]{2}\\d{7}$/,\n // FINLAND\n FR: /^\\d{2}[A-Z]{2}\\d{5}$/,\n // FRANCE\n GB: /^\\d{9}$/,\n // UNITED KINGDOM\n GR: /^[A-Z]{2}\\d{7}$/,\n // GREECE\n HR: /^\\d{9}$/,\n // CROATIA\n HU: /^[A-Z]{2}(\\d{6}|\\d{7})$/,\n // HUNGARY\n IE: /^[A-Z0-9]{2}\\d{7}$/,\n // IRELAND\n IN: /^[A-Z]{1}-?\\d{7}$/,\n // INDIA\n IS: /^(A)\\d{7}$/,\n // ICELAND\n IT: /^[A-Z0-9]{2}\\d{7}$/,\n // ITALY\n JP: /^[A-Z]{2}\\d{7}$/,\n // JAPAN\n KR: /^[MS]\\d{8}$/,\n // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]\n LT: /^[A-Z0-9]{8}$/,\n // LITHUANIA\n LU: /^[A-Z0-9]{8}$/,\n // LUXEMBURG\n LV: /^[A-Z0-9]{2}\\d{7}$/,\n // LATVIA\n MT: /^\\d{7}$/,\n // MALTA\n NL: /^[A-Z]{2}[A-Z0-9]{6}\\d$/,\n // NETHERLANDS\n PO: /^[A-Z]{2}\\d{7}$/,\n // POLAND\n PT: /^[A-Z]\\d{6}$/,\n // PORTUGAL\n RO: /^\\d{8,9}$/,\n // ROMANIA\n RU: /^\\d{2}\\d{2}\\d{6}$/,\n // RUSSIAN FEDERATION\n SE: /^\\d{8}$/,\n // SWEDEN\n SL: /^(P)[A-Z]\\d{7}$/,\n // SLOVANIA\n SK: /^[0-9A-Z]\\d{7}$/,\n // SLOVAKIA\n TR: /^[A-Z]\\d{8}$/,\n // TURKEY\n UA: /^[A-Z]{2}\\d{6}$/,\n // UKRAINE\n US: /^\\d{9}$/ // UNITED STATES\n\n};\n/**\n * Check if str is a valid passport number\n * relative to provided ISO Country Code.\n *\n * @param {string} str\n * @param {string} countryCode\n * @return {boolean}\n */\n\nfunction isPassportNumber(str, countryCode) {\n (0, _assertString.default)(str);\n /** Remove All Whitespaces, Convert to UPPERCASE */\n\n var normalizedStr = str.replace(/\\s/g, '').toUpperCase();\n return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPassportNumberValidator from 'validator/lib/isPassportNumber';\nexport var IS_PASSPORT_NUMBER = 'isPassportNumber';\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function isPassportNumber(value, countryCode) {\n return typeof value === 'string' && isPassportNumberValidator(value, countryCode);\n}\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function IsPassportNumber(countryCode, validationOptions) {\n return ValidateBy({\n name: IS_PASSPORT_NUMBER,\n constraints: [countryCode],\n validator: {\n validate: function (value, args) { return isPassportNumber(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be valid passport number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsPassportNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPostalCode;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// common patterns\nvar threeDigit = /^\\d{3}$/;\nvar fourDigit = /^\\d{4}$/;\nvar fiveDigit = /^\\d{5}$/;\nvar sixDigit = /^\\d{6}$/;\nvar patterns = {\n AD: /^AD\\d{3}$/,\n AT: fourDigit,\n AU: fourDigit,\n AZ: /^AZ\\d{4}$/,\n BE: fourDigit,\n BG: fourDigit,\n BR: /^\\d{5}-\\d{3}$/,\n BY: /2[1-4]{1}\\d{4}$/,\n CA: /^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z][\\s\\-]?\\d[ABCEGHJ-NPRSTV-Z]\\d$/i,\n CH: fourDigit,\n CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\\d{4}$/,\n CZ: /^\\d{3}\\s?\\d{2}$/,\n DE: fiveDigit,\n DK: fourDigit,\n DO: fiveDigit,\n DZ: fiveDigit,\n EE: fiveDigit,\n ES: /^(5[0-2]{1}|[0-4]{1}\\d{1})\\d{3}$/,\n FI: fiveDigit,\n FR: /^\\d{2}\\s?\\d{3}$/,\n GB: /^(gir\\s?0aa|[a-z]{1,2}\\d[\\da-z]?\\s?(\\d[a-z]{2})?)$/i,\n GR: /^\\d{3}\\s?\\d{2}$/,\n HR: /^([1-5]\\d{4}$)/,\n HT: /^HT\\d{4}$/,\n HU: fourDigit,\n ID: fiveDigit,\n IE: /^(?!.*(?:o))[A-z]\\d[\\dw]\\s\\w{4}$/i,\n IL: /^(\\d{5}|\\d{7})$/,\n IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,\n IR: /\\b(?!(\\d)\\1{3})[13-9]{4}[1346-9][013-9]{5}\\b/,\n IS: threeDigit,\n IT: fiveDigit,\n JP: /^\\d{3}\\-\\d{4}$/,\n KE: fiveDigit,\n LI: /^(948[5-9]|949[0-7])$/,\n LT: /^LT\\-\\d{5}$/,\n LU: fourDigit,\n LV: /^LV\\-\\d{4}$/,\n MX: fiveDigit,\n MT: /^[A-Za-z]{3}\\s{0,1}\\d{4}$/,\n MY: fiveDigit,\n NL: /^\\d{4}\\s?[a-z]{2}$/i,\n NO: fourDigit,\n NP: /^(10|21|22|32|33|34|44|45|56|57)\\d{3}$|^(977)$/i,\n NZ: fourDigit,\n PL: /^\\d{2}\\-\\d{3}$/,\n PR: /^00[679]\\d{2}([ -]\\d{4})?$/,\n PT: /^\\d{4}\\-\\d{3}?$/,\n RO: sixDigit,\n RU: sixDigit,\n SA: fiveDigit,\n SE: /^[1-9]\\d{2}\\s?\\d{2}$/,\n SG: sixDigit,\n SI: fourDigit,\n SK: /^\\d{3}\\s?\\d{2}$/,\n TH: fiveDigit,\n TN: fourDigit,\n TW: /^\\d{3}(\\d{2})?$/,\n UA: fiveDigit,\n US: /^\\d{5}(-\\d{4})?$/,\n ZA: fourDigit,\n ZM: fiveDigit\n};\nvar locales = Object.keys(patterns);\nexports.locales = locales;\n\nfunction isPostalCode(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in patterns) {\n return patterns[locale].test(str);\n } else if (locale === 'any') {\n for (var key in patterns) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (patterns.hasOwnProperty(key)) {\n var pattern = patterns[key];\n\n if (pattern.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPostalCodeValidator from 'validator/lib/isPostalCode';\nexport var IS_POSTAL_CODE = 'isPostalCode';\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function isPostalCode(value, locale) {\n return typeof value === 'string' && isPostalCodeValidator(value, locale);\n}\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function IsPostalCode(locale, validationOptions) {\n return ValidateBy({\n name: IS_POSTAL_CODE,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isPostalCode(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a postal code'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsPostalCode.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRFC3339;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */\nvar dateFullYear = /[0-9]{4}/;\nvar dateMonth = /(0[1-9]|1[0-2])/;\nvar dateMDay = /([12]\\d|0[1-9]|3[01])/;\nvar timeHour = /([01][0-9]|2[0-3])/;\nvar timeMinute = /[0-5][0-9]/;\nvar timeSecond = /([0-5][0-9]|60)/;\nvar timeSecFrac = /(\\.[0-9]+)?/;\nvar timeNumOffset = new RegExp(\"[-+]\".concat(timeHour.source, \":\").concat(timeMinute.source));\nvar timeOffset = new RegExp(\"([zZ]|\".concat(timeNumOffset.source, \")\"));\nvar partialTime = new RegExp(\"\".concat(timeHour.source, \":\").concat(timeMinute.source, \":\").concat(timeSecond.source).concat(timeSecFrac.source));\nvar fullDate = new RegExp(\"\".concat(dateFullYear.source, \"-\").concat(dateMonth.source, \"-\").concat(dateMDay.source));\nvar fullTime = new RegExp(\"\".concat(partialTime.source).concat(timeOffset.source));\nvar rfc3339 = new RegExp(\"\".concat(fullDate.source, \"[ tT]\").concat(fullTime.source));\n\nfunction isRFC3339(str) {\n (0, _assertString.default)(str);\n return rfc3339.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRFC3339Validator from 'validator/lib/isRFC3339';\nexport var IS_RFC_3339 = 'isRFC3339';\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function isRFC3339(value) {\n return typeof value === 'string' && isRFC3339Validator(value);\n}\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function IsRFC3339(validationOptions) {\n return ValidateBy({\n name: IS_RFC_3339,\n validator: {\n validate: function (value, args) { return isRFC3339(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be RFC 3339 date'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsRFC3339.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRgbColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rgbColor = /^rgb\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\)$/;\nvar rgbaColor = /^rgba\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\nvar rgbColorPercent = /^rgb\\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\\)/;\nvar rgbaColorPercent = /^rgba\\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)/;\n\nfunction isRgbColor(str) {\n var includePercentValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n (0, _assertString.default)(str);\n\n if (!includePercentValues) {\n return rgbColor.test(str) || rgbaColor.test(str);\n }\n\n return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRgbColorValidator from 'validator/lib/isRgbColor';\nexport var IS_RGB_COLOR = 'isRgbColor';\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function isRgbColor(value, includePercentValues) {\n return typeof value === 'string' && isRgbColorValidator(value, includePercentValues);\n}\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function IsRgbColor(includePercentValues, validationOptions) {\n return ValidateBy({\n name: IS_RGB_COLOR,\n constraints: [includePercentValues],\n validator: {\n validate: function (value, args) { return isRgbColor(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be RGB color'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsRgbColor.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = multilineRegexp;\n\n/**\n * Build RegExp object from an array\n * of multiple/multi-line regexp parts\n *\n * @param {string[]} parts\n * @param {string} flags\n * @return {object} - RegExp object\n */\nfunction multilineRegexp(parts, flags) {\n var regexpAsStringLiteral = parts.join('');\n return new RegExp(regexpAsStringLiteral, flags);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSemVer;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _multilineRegex = _interopRequireDefault(require(\"./util/multilineRegex\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Regular Expression to match\n * semantic versioning (SemVer)\n * built from multi-line, multi-parts regexp\n * Reference: https://semver.org/\n */\nvar semanticVersioningRegex = (0, _multilineRegex.default)(['^(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)', '(?:-((?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*)(?:\\\\.(?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*))*))', '?(?:\\\\+([0-9a-z-]+(?:\\\\.[0-9a-z-]+)*))?$'], 'i');\n\nfunction isSemVer(str) {\n (0, _assertString.default)(str);\n return semanticVersioningRegex.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSemVerValidator from 'validator/lib/isSemVer';\nexport var IS_SEM_VER = 'isSemVer';\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function isSemVer(value) {\n return typeof value === 'string' && isSemVerValidator(value);\n}\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function IsSemVer(validationOptions) {\n return ValidateBy({\n name: IS_SEM_VER,\n validator: {\n validate: function (value, args) { return isSemVer(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Semantic Versioning Specification'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsSemVer.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_BOOLEAN = 'isBoolean';\n/**\n * Checks if a given value is a boolean.\n */\nexport function isBoolean(value) {\n return value instanceof Boolean || typeof value === 'boolean';\n}\n/**\n * Checks if a value is a boolean.\n */\nexport function IsBoolean(validationOptions) {\n return ValidateBy({\n name: IS_BOOLEAN,\n validator: {\n validate: function (value, args) { return isBoolean(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a boolean value'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBoolean.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_DATE = 'isDate';\n/**\n * Checks if a given value is a date.\n */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(value.getTime());\n}\n/**\n * Checks if a value is a date.\n */\nexport function IsDate(validationOptions) {\n return ValidateBy({\n name: IS_DATE,\n validator: {\n validate: function (value, args) { return isDate(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Date instance'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDate.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_NUMBER = 'isNumber';\n/**\n * Checks if a given value is a number.\n */\nexport function isNumber(value, options) {\n if (options === void 0) { options = {}; }\n if (typeof value !== 'number') {\n return false;\n }\n if (value === Infinity || value === -Infinity) {\n return options.allowInfinity;\n }\n if (Number.isNaN(value)) {\n return options.allowNaN;\n }\n if (options.maxDecimalPlaces !== undefined) {\n var decimalPlaces = 0;\n if (value % 1 !== 0) {\n decimalPlaces = value.toString().split('.')[1].length;\n }\n if (decimalPlaces > options.maxDecimalPlaces) {\n return false;\n }\n }\n return Number.isFinite(value);\n}\n/**\n * Checks if a value is a number.\n */\nexport function IsNumber(options, validationOptions) {\n if (options === void 0) { options = {}; }\n return ValidateBy({\n name: IS_NUMBER,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isNumber(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a number conforming to the specified constraints'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNumber.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_ENUM = 'isEnum';\n/**\n * Checks if a given value is an enum\n */\nexport function isEnum(value, entity) {\n var enumValues = Object.keys(entity).map(function (k) { return entity[k]; });\n return enumValues.indexOf(value) >= 0;\n}\n/**\n * Checks if a given value is an enum\n */\nexport function IsEnum(entity, validationOptions) {\n return ValidateBy({\n name: IS_ENUM,\n constraints: [entity],\n validator: {\n validate: function (value, args) { return isEnum(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid enum value'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsEnum.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_INT = 'isInt';\n/**\n * Checks if value is an integer.\n */\nexport function isInt(val) {\n return typeof val === 'number' && Number.isInteger(val);\n}\n/**\n * Checks if value is an integer.\n */\nexport function IsInt(validationOptions) {\n return ValidateBy({\n name: IS_INT,\n validator: {\n validate: function (value, args) { return isInt(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an integer number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsInt.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_STRING = 'isString';\n/**\n * Checks if a given value is a real string.\n */\nexport function isString(value) {\n return value instanceof String || typeof value === 'string';\n}\n/**\n * Checks if a given value is a real string.\n */\nexport function IsString(validationOptions) {\n return ValidateBy({\n name: IS_STRING,\n validator: {\n validate: function (value, args) { return isString(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsString.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_ARRAY = 'isArray';\n/**\n * Checks if a given value is an array\n */\nexport function isArray(value) {\n return value instanceof Array;\n}\n/**\n * Checks if a given value is an array\n */\nexport function IsArray(validationOptions) {\n return ValidateBy({\n name: IS_ARRAY,\n validator: {\n validate: function (value, args) { return isArray(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an array'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsArray.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_OBJECT = 'isObject';\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function isObject(value) {\n return value != null && (typeof value === 'object' || typeof value === 'function') && !Array.isArray(value);\n}\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function IsObject(validationOptions) {\n return ValidateBy({\n name: IS_OBJECT,\n validator: {\n validate: function (value, args) { return isObject(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an object'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsObject.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_CONTAINS = 'arrayContains';\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayContains(array, values) {\n if (!(array instanceof Array))\n return false;\n return values.every(function (value) { return array.indexOf(value) !== -1; });\n}\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayContains(values, validationOptions) {\n return ValidateBy({\n name: ARRAY_CONTAINS,\n constraints: [values],\n validator: {\n validate: function (value, args) { return arrayContains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain $constraint1 values'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=ArrayContains.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_NOT_CONTAINS = 'arrayNotContains';\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotContains(array, values) {\n if (!(array instanceof Array))\n return false;\n return values.every(function (value) { return array.indexOf(value) === -1; });\n}\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotContains(values, validationOptions) {\n return ValidateBy({\n name: ARRAY_NOT_CONTAINS,\n constraints: [values],\n validator: {\n validate: function (value, args) { return arrayNotContains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not contain $constraint1 values'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=ArrayNotContains.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_NOT_EMPTY = 'arrayNotEmpty';\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotEmpty(array) {\n return array instanceof Array && array.length > 0;\n}\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotEmpty(validationOptions) {\n return ValidateBy({\n name: ARRAY_NOT_EMPTY,\n validator: {\n validate: function (value, args) { return arrayNotEmpty(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be empty'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=ArrayNotEmpty.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_MIN_SIZE = 'arrayMinSize';\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMinSize(array, min) {\n return array instanceof Array && array.length >= min;\n}\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMinSize(min, validationOptions) {\n return ValidateBy({\n name: ARRAY_MIN_SIZE,\n constraints: [min],\n validator: {\n validate: function (value, args) { return arrayMinSize(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain at least $constraint1 elements'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=ArrayMinSize.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_MAX_SIZE = 'arrayMaxSize';\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMaxSize(array, max) {\n return array instanceof Array && array.length <= max;\n}\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMaxSize(max, validationOptions) {\n return ValidateBy({\n name: ARRAY_MAX_SIZE,\n constraints: [max],\n validator: {\n validate: function (value, args) { return arrayMaxSize(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain not more than $constraint1 elements'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=ArrayMaxSize.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_UNIQUE = 'arrayUnique';\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayUnique(array, identifier) {\n if (!(array instanceof Array))\n return false;\n if (identifier) {\n array = array.map(function (o) { return (o != null ? identifier(o) : o); });\n }\n var uniqueItems = array.filter(function (a, b, c) { return c.indexOf(a) === b; });\n return array.length === uniqueItems.length;\n}\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayUnique(identifierOrOptions, validationOptions) {\n var identifier = typeof identifierOrOptions === 'function' ? identifierOrOptions : undefined;\n var options = typeof identifierOrOptions !== 'function' ? identifierOrOptions : validationOptions;\n return ValidateBy({\n name: ARRAY_UNIQUE,\n validator: {\n validate: function (value, args) { return arrayUnique(value, identifier); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"All $property's elements must be unique\"; }, options),\n },\n }, options);\n}\n//# sourceMappingURL=ArrayUnique.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { isObject } from '../typechecker/IsObject';\nexport var IS_NOT_EMPTY_OBJECT = 'isNotEmptyObject';\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function isNotEmptyObject(value, options) {\n if (!isObject(value)) {\n return false;\n }\n if ((options === null || options === void 0 ? void 0 : options.nullable) === true) {\n return !Object.values(value).every(function (propertyValue) { return propertyValue === null || propertyValue === undefined; });\n }\n for (var key in value) {\n if (value.hasOwnProperty(key)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function IsNotEmptyObject(options, validationOptions) {\n return ValidateBy({\n name: IS_NOT_EMPTY_OBJECT,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isNotEmptyObject(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a non-empty object'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNotEmptyObject.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_INSTANCE = 'isInstance';\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function isInstance(object, targetTypeConstructor) {\n return (targetTypeConstructor && typeof targetTypeConstructor === 'function' && object instanceof targetTypeConstructor);\n}\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function IsInstance(targetType, validationOptions) {\n return ValidateBy({\n name: IS_INSTANCE,\n constraints: [targetType],\n validator: {\n validate: function (value, args) { return isInstance(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix, args) {\n if (args.constraints[0]) {\n return eachPrefix + (\"$property must be an instance of \" + args.constraints[0].name);\n }\n else {\n return eachPrefix + (IS_INSTANCE + \" decorator expects and object as value, but got falsy value.\");\n }\n }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsInstance.js.map","import { getMetadataStorage } from './metadata/MetadataStorage';\nimport { Validator } from './validation/Validator';\nimport { getFromContainer } from './container';\n// -------------------------------------------------------------------------\n// Export everything api users needs\n// -------------------------------------------------------------------------\nexport * from './container';\nexport * from './decorator/decorators';\nexport * from './decorator/ValidationOptions';\nexport * from './validation/ValidatorConstraintInterface';\nexport * from './validation/ValidationError';\nexport * from './validation/ValidatorOptions';\nexport * from './validation/ValidationArguments';\nexport * from './validation/ValidationTypes';\nexport * from './validation/Validator';\nexport * from './validation-schema/ValidationSchema';\nexport * from './register-decorator';\nexport * from './metadata/MetadataStorage';\n/**\n * Validates given object by object's decorators or given validation schema.\n */\nexport function validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Validates given object by object's decorators or given validation schema and reject on error.\n */\nexport function validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Validates given object by object's decorators or given validation schema.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Registers a new validation schema.\n */\nexport function registerSchema(schema) {\n getMetadataStorage().addValidationSchema(schema);\n}\n//# sourceMappingURL=index.js.map"],"names":["this","require$$0","require$$1","_alpha","require$$2","require$$3","require$$4","_isFullWidth","_isHalfWidth","_classCallCheck","_objectSpread","_defineProperty","_defineProperties","_createClass","isPossibleNumber","parsePhoneNumber","parseNumber","_typeof","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","parsePhoneNumberFromString","parsePhoneNumberFromString_","_parsePhoneNumberFromString","isObject"],"mappings":"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AAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,E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EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,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AAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,K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E,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7U;IACA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EA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"} \ No newline at end of file diff --git a/views/node_modules/class-validator/bundles/class-validator.umd.min.js b/views/node_modules/class-validator/bundles/class-validator.umd.min.js deleted file mode 100644 index b29007a..0000000 --- a/views/node_modules/class-validator/bundles/class-validator.umd.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).ClassValidator={})}(this,(function(t){"use strict";var e=function(t){this.groups=[],this.each=!1,this.context=void 0,this.type=t.type,this.target=t.target,this.propertyName=t.propertyName,this.constraints=t.constraints,this.constraintCls=t.constraintCls,this.validationTypeOptions=t.validationTypeOptions,t.validationOptions&&(this.message=t.validationOptions.message,this.groups=t.validationOptions.groups,this.always=t.validationOptions.always,this.each=t.validationOptions.each,this.context=t.validationOptions.context)},n=function(){function t(){}return t.prototype.transform=function(t){var n=[];return Object.keys(t.properties).forEach((function(r){t.properties[r].forEach((function(d){var a={message:d.message,groups:d.groups,always:d.always,each:d.each},i={type:d.type,target:t.name,propertyName:r,constraints:d.constraints,validationTypeOptions:d.options,validationOptions:a};n.push(new e(i))}))})),n},t}();function r(){return"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof global?global:"undefined"!=typeof window?window:"undefined"!=typeof self?self:void 0}function d(t){return null!==t&&"object"==typeof t&&"function"==typeof t.then}var a=function(){function t(){this.validationMetadatas=[],this.constraintMetadatas=[]}return Object.defineProperty(t.prototype,"hasValidationMetaData",{get:function(){return!!this.validationMetadatas.length},enumerable:!1,configurable:!0}),t.prototype.addValidationSchema=function(t){var e=this;(new n).transform(t).forEach((function(t){return e.addValidationMetadata(t)}))},t.prototype.addValidationMetadata=function(t){this.validationMetadatas.push(t)},t.prototype.addConstraintMetadata=function(t){this.constraintMetadatas.push(t)},t.prototype.groupByPropertyName=function(t){var e={};return t.forEach((function(t){e[t.propertyName]||(e[t.propertyName]=[]),e[t.propertyName].push(t)})),e},t.prototype.getTargetValidationMetadatas=function(t,e,n,r,d){var a=function(t){return void 0!==t.always?t.always:(!t.groups||!t.groups.length)&&n},i=function(t){return!(!r||d&&d.length||!t.groups||!t.groups.length)},o=this.validationMetadatas.filter((function(n){return(n.target===t||n.target===e)&&(!!a(n)||!i(n)&&(!(d&&d.length>0)||n.groups&&!!n.groups.find((function(t){return-1!==d.indexOf(t)}))))})),u=this.validationMetadatas.filter((function(e){return"string"!=typeof e.target&&(e.target!==t&&((!(e.target instanceof Function)||t.prototype instanceof e.target)&&(!!a(e)||!i(e)&&(!(d&&d.length>0)||e.groups&&!!e.groups.find((function(t){return-1!==d.indexOf(t)}))))))})).filter((function(t){return!o.find((function(e){return e.propertyName===t.propertyName&&e.type===t.type}))}));return o.concat(u)},t.prototype.getTargetValidatorConstraints=function(t){return this.constraintMetadatas.filter((function(e){return e.target===t}))},t}();function i(){var t=r();return t.classValidatorMetadataStorage||(t.classValidatorMetadataStorage=new a),t.classValidatorMetadataStorage}var o=function(){function t(){}return t.prototype.toString=function(t,e,n){var r=this;void 0===t&&(t=!1),void 0===e&&(e=!1),void 0===n&&(n="");var d=t?"":"",a=t?"":"",i=function(t){return" - property "+d+n+t+a+" has failed the following constraints: "+d+Object.keys(r.constraints).join(", ")+a+" \n"};if(e){var o=Number.isInteger(+this.property)?"["+this.property+"]":(n?".":"")+this.property;return this.constraints?i(o):this.children?this.children.map((function(e){return e.toString(t,!0,""+n+o)})).join(""):""}return"An instance of "+d+(this.target?this.target.constructor.name:"an object")+a+" has failed the validation:\n"+(this.constraints?i(this.property):"")+(this.children?this.children.map((function(e){return e.toString(t,!0,r.property)})).join(""):"")},t}(),u=function(){function t(){}return t.isValid=function(t){var e=this;return"isValid"!==t&&"getMessage"!==t&&-1!==Object.keys(this).map((function(t){return e[t]})).indexOf(t)},t.CUSTOM_VALIDATION="customValidation",t.NESTED_VALIDATION="nestedValidation",t.PROMISE_VALIDATION="promiseValidation",t.CONDITIONAL_VALIDATION="conditionalValidation",t.WHITELIST="whitelistValidation",t.IS_DEFINED="isDefined",t}();var s,$,l=function(){function t(){}return t.replaceMessageSpecialTokens=function(t,e){var n;return t instanceof Function?n=t(e):"string"==typeof t&&(n=t),n&&e.constraints instanceof Array&&e.constraints.forEach((function(t,e){n=n.replace(new RegExp("\\$constraint"+(e+1),"g"),function(t){return Array.isArray(t)?t.join(", "):""+t}(t))})),n&&void 0!==e.value&&null!==e.value&&"string"==typeof e.value&&(n=n.replace(/\$value/g,e.value)),n&&(n=n.replace(/\$property/g,e.property)),n&&(n=n.replace(/\$target/g,e.targetName)),n},t}(),f=function(){function t(t,e){this.validator=t,this.validatorOptions=e,this.awaitingPromises=[],this.ignoreAsyncValidations=!1,this.metadataStorage=i()}return t.prototype.execute=function(t,e,n){var r,d=this;this.metadataStorage.hasValidationMetaData||!0!==(null===(r=this.validatorOptions)||void 0===r?void 0:r.enableDebugMessages)||console.warn("No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies.");var a=this.validatorOptions?this.validatorOptions.groups:void 0,i=this.validatorOptions&&this.validatorOptions.strictGroups||!1,s=this.validatorOptions&&this.validatorOptions.always||!1,$=this.metadataStorage.getTargetValidationMetadatas(t.constructor,e,s,i,a),l=this.metadataStorage.groupByPropertyName($);if(this.validatorOptions&&this.validatorOptions.forbidUnknownValues&&!$.length){var f=new o;return this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.target&&!0!==this.validatorOptions.validationError.target||(f.target=t),f.value=void 0,f.property=void 0,f.children=[],f.constraints={unknownValue:"an unknown value was passed to the validate function"},void n.push(f)}this.validatorOptions&&this.validatorOptions.whitelist&&this.whitelist(t,l,n),Object.keys(l).forEach((function(e){var r=t[e],a=l[e].filter((function(t){return t.type===u.IS_DEFINED})),i=l[e].filter((function(t){return t.type!==u.IS_DEFINED&&t.type!==u.WHITELIST}));r instanceof Promise&&i.find((function(t){return t.type===u.PROMISE_VALIDATION}))?d.awaitingPromises.push(r.then((function(r){d.performValidations(t,r,e,a,i,n)}))):d.performValidations(t,r,e,a,i,n)}))},t.prototype.whitelist=function(t,e,n){var r=this,d=[];Object.keys(t).forEach((function(t){e[t]&&0!==e[t].length||d.push(t)})),d.length>0&&(this.validatorOptions&&this.validatorOptions.forbidNonWhitelisted?d.forEach((function(e){var d,a=r.generateValidationError(t,t[e],e);a.constraints=((d={})[u.WHITELIST]="property "+e+" should not exist",d),a.children=void 0,n.push(a)})):d.forEach((function(e){return delete t[e]})))},t.prototype.stripEmptyErrors=function(t){var e=this;return t.filter((function(t){if(t.children&&(t.children=e.stripEmptyErrors(t.children)),0===Object.keys(t.constraints).length){if(0===t.children.length)return!1;delete t.constraints}return!0}))},t.prototype.performValidations=function(t,e,n,r,d,a){var i=d.filter((function(t){return t.type===u.CUSTOM_VALIDATION})),o=d.filter((function(t){return t.type===u.NESTED_VALIDATION})),s=d.filter((function(t){return t.type===u.CONDITIONAL_VALIDATION})),$=this.generateValidationError(t,e,n);a.push($),this.conditionalValidations(t,e,s)&&(this.customValidations(t,e,r,$),this.mapContexts(t,e,r,$),void 0===e&&this.validatorOptions&&!0===this.validatorOptions.skipUndefinedProperties||null===e&&this.validatorOptions&&!0===this.validatorOptions.skipNullProperties||null==e&&this.validatorOptions&&!0===this.validatorOptions.skipMissingProperties||(this.customValidations(t,e,i,$),this.nestedValidations(e,o,$.children),this.mapContexts(t,e,d,$),this.mapContexts(t,e,i,$)))},t.prototype.generateValidationError=function(t,e,n){var r=new o;return this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.target&&!0!==this.validatorOptions.validationError.target||(r.target=t),this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.value&&!0!==this.validatorOptions.validationError.value||(r.value=e),r.property=n,r.children=[],r.constraints={},r},t.prototype.conditionalValidations=function(t,e,n){return n.map((function(n){return n.constraints[0](t,e)})).reduce((function(t,e){return t&&e}),!0)},t.prototype.customValidations=function(t,e,n,r){var a=this;n.forEach((function(n){a.metadataStorage.getTargetValidatorConstraints(n.constraintCls).forEach((function(i){if(!(i.async&&a.ignoreAsyncValidations||a.validatorOptions&&a.validatorOptions.stopAtFirstError&&Object.keys(r.constraints||{}).length>0)){var o={targetName:t.constructor?t.constructor.name:void 0,property:n.propertyName,object:t,value:e,constraints:n.constraints};if(n.each&&(e instanceof Array||e instanceof Set||e instanceof Map)){var u,s=((u=e)instanceof Map?Array.from(u.values()):Array.isArray(u)?u:Array.from(u)).map((function(t){return i.instance.validate(t,o)}));if(s.some((function(t){return d(t)}))){var $=s.map((function(t){return d(t)?t:Promise.resolve(t)})),l=Promise.all($).then((function(d){if(!d.every((function(t){return t}))){var o=a.createValidationError(t,e,n,i),u=o[0],s=o[1];r.constraints[u]=s,n.context&&(r.contexts||(r.contexts={}),r.contexts[u]=Object.assign(r.contexts[u]||{},n.context))}}));a.awaitingPromises.push(l)}else{if(!s.every((function(t){return t}))){var f=a.createValidationError(t,e,n,i);y=f[0],g=f[1];r.constraints[y]=g}}}else{var c=i.instance.validate(e,o);if(d(c)){var p=c.then((function(d){if(!d){var o=a.createValidationError(t,e,n,i),u=o[0],s=o[1];r.constraints[u]=s,n.context&&(r.contexts||(r.contexts={}),r.contexts[u]=Object.assign(r.contexts[u]||{},n.context))}}));a.awaitingPromises.push(p)}else if(!c){var v=a.createValidationError(t,e,n,i),y=v[0],g=v[1];r.constraints[y]=g}}}}))}))},t.prototype.nestedValidations=function(t,e,n){var r=this;void 0!==t&&e.forEach((function(d){var a;if(d.type===u.NESTED_VALIDATION||d.type===u.PROMISE_VALIDATION)if(t instanceof Array||t instanceof Set||t instanceof Map)(t instanceof Set?Array.from(t):t).forEach((function(d,a){r.performValidations(t,d,a.toString(),[],e,n)}));else if(t instanceof Object){var i="string"==typeof d.target?d.target:d.target.name;r.execute(t,i,n)}else{var s=new o;s.value=t,s.property=d.propertyName,s.target=d.target;var $=r.createValidationError(d.target,t,d),l=$[0],f=$[1];s.constraints=((a={})[l]=f,a),n.push(s)}}))},t.prototype.mapContexts=function(t,e,n,r){var d=this;return n.forEach((function(t){if(t.context){var e=void 0;if(t.type===u.CUSTOM_VALIDATION)e=d.metadataStorage.getTargetValidatorConstraints(t.constraintCls)[0];var n=d.getConstraintType(t,e);r.constraints[n]&&(r.contexts||(r.contexts={}),r.contexts[n]=Object.assign(r.contexts[n]||{},t.context))}}))},t.prototype.createValidationError=function(t,e,n,r){var d=t.constructor?t.constructor.name:void 0,a=this.getConstraintType(n,r),i={targetName:d,property:n.propertyName,object:t,value:e,constraints:n.constraints},o=n.message||"";return n.message||this.validatorOptions&&(!this.validatorOptions||this.validatorOptions.dismissDefaultMessages)||r&&r.instance.defaultMessage instanceof Function&&(o=r.instance.defaultMessage(i)),[a,l.replaceMessageSpecialTokens(o,i)]},t.prototype.getConstraintType=function(t,e){return e&&e.name?e.name:t.type},t}(),c=function(t,e,n,r){return new(n||(n=Promise))((function(d,a){function i(t){try{u(r.next(t))}catch(t){a(t)}}function o(t){try{u(r.throw(t))}catch(t){a(t)}}function u(t){var e;t.done?d(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(i,o)}u((r=r.apply(t,e||[])).next())}))},p=function(t,e){var n,r,d,a,i={label:0,sent:function(){if(1&d[0])throw d[1];return d[1]},trys:[],ops:[]};return a={next:o(0),throw:o(1),return:o(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function o(a){return function(o){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;i;)try{if(n=1,r&&(d=2&a[0]?r.return:a[0]?r.throw||((d=r.return)&&d.call(r),0):r.next)&&!(d=d.call(r,a[1])).done)return d;switch(r=0,d&&(a=[2&a[0],d.value]),a[0]){case 0:case 1:d=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(d=i.trys,(d=d.length>0&&d[d.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!d||a[1]>d[0]&&a[1]1)throw"More than one implementation of ValidatorConstraintInterface found for validator on: "+t.target.name+":"+t.propertyName}else{var r=t.validator;n=function(){function t(){}return t.prototype.validate=function(t,e){return r.validate(t,e)},t.prototype.defaultMessage=function(t){return r.defaultMessage?r.defaultMessage(t):""},t}(),i().addConstraintMetadata(new m(n,t.name,t.async))}var d={type:t.name&&u.isValid(t.name)?t.name:u.CUSTOM_VALIDATION,target:t.target,propertyName:t.propertyName,validationOptions:t.options,constraintCls:n,constraints:t.constraints};i().addValidationMetadata(new e(d))}function A(t,e){return function(n){var r=e&&e.each?"each value in ":"";return t(r,n)}}function b(t,e){return function(n,r){h({name:t.name,target:n.constructor,propertyName:r,options:e,constraints:t.constraints,validator:t.validator})}}var _=u.IS_DEFINED;function I(t){return null!=t}var M=function(){return(M=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;for(var n in e)void 0===t[n]&&(t[n]=e[n]);return t},t.exports=e.default,t.exports.default=e.default})),C=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){if((0,n.default)(t),e=(0,r.default)(e,s),!t.includes(","))return!1;var d=t.split(",");if(d[0].startsWith("(")&&!d[1].endsWith(")")||d[1].endsWith(")")&&!d[0].startsWith("("))return!1;if(e.checkDMS)return o.test(d[0])&&u.test(d[1]);return a.test(d[0])&&i.test(d[1])};var n=d(N),r=d(E);function d(t){return t&&t.__esModule?t:{default:t}}var a=/^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/,i=/^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/,o=/^(([1-8]?\d)\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|90\D+0\D+0)\D+[NSns]?$/i,u=/^\s*([1-7]?\d{1,2}\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|180\D+0\D+0)\D+[EWew]?$/i,s={checkDMS:!1};t.exports=e.default,t.exports.default=e.default}))),P="isLatLong";function x(t){return"string"==typeof t&&C(t)}var T="isLatitude";function R(t){return("number"==typeof t||"string"==typeof t)&&x(t+",0")}var L="isLongitude";function F(t){return("number"==typeof t||"string"==typeof t)&&x("0,"+t)}var w="equals";function D(t,e){return t===e}var Z="notEquals";function B(t,e){return t!==e}var G="isEmpty";function U(t){return""===t||null==t}var j="isNotEmpty";function V(t){return""!==t&&null!=t}var H="isIn";function k(t,e){return!(e instanceof Array)||e.some((function(e){return e===t}))}var K="isNotIn";function W(t,e){return!(e instanceof Array&&e.some((function(e){return e===t})))}var Y=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.commaDecimal=e.dotDecimal=e.farsiLocales=e.arabicLocales=e.englishLocales=e.decimal=e.alphanumeric=e.alpha=void 0;var n={"en-US":/^[A-Z]+$/i,"az-AZ":/^[A-VXYZÇƏĞİıÖŞÜ]+$/i,"bg-BG":/^[А-Я]+$/i,"cs-CZ":/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[A-ZÆØÅ]+$/i,"de-DE":/^[A-ZÄÖÜß]+$/i,"el-GR":/^[Α-ώ]+$/i,"es-ES":/^[A-ZÁÉÍÑÓÚÜ]+$/i,"fa-IR":/^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,"fr-FR":/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[A-ZÀÉÈÌÎÓÒÙ]+$/i,"nb-NO":/^[A-ZÆØÅ]+$/i,"nl-NL":/^[A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[A-ZÆØÅ]+$/i,"hu-HU":/^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"pl-PL":/^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[А-ЯЁ]+$/i,"sl-SI":/^[A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[A-ZÅÄÖ]+$/i,"th-TH":/^[ก-๐\s]+$/i,"tr-TR":/^[A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[А-ЩЬЮЯЄIЇҐі]+$/i,"vi-VN":/^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,"ku-IQ":/^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[א-ת]+$/,fa:/^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i};e.alpha=n;var r={"en-US":/^[0-9A-Z]+$/i,"az-AZ":/^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,"bg-BG":/^[0-9А-Я]+$/i,"cs-CZ":/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[0-9A-ZÆØÅ]+$/i,"de-DE":/^[0-9A-ZÄÖÜß]+$/i,"el-GR":/^[0-9Α-ω]+$/i,"es-ES":/^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,"fr-FR":/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,"hu-HU":/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"nb-NO":/^[0-9A-ZÆØÅ]+$/i,"nl-NL":/^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[0-9A-ZÆØÅ]+$/i,"pl-PL":/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[0-9А-ЯЁ]+$/i,"sl-SI":/^[0-9A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[0-9A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[0-9А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[0-9A-ZÅÄÖ]+$/i,"th-TH":/^[ก-๙\s]+$/i,"tr-TR":/^[0-9A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,"ku-IQ":/^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,"vi-VN":/^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[0-9א-ת]+$/,fa:/^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i};e.alphanumeric=r;var d={"en-US":".",ar:"٫"};e.decimal=d;var a=["AU","GB","HK","IN","NZ","ZA","ZM"];e.englishLocales=a;for(var i,o=0;o=e.min)&&(!e.hasOwnProperty("max")||d<=e.max)&&(!e.hasOwnProperty("lt")||de.gt)},e.locales=void 0;var n,r=(n=N)&&n.__esModule?n:{default:n};var d=Object.keys(Y.decimal);e.locales=d})),J=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t)?parseFloat(t):NaN};var n,r=(n=z)&&n.__esModule?n:{default:n};t.exports=e.default,t.exports.default=e.default})),X=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){return(0,n.default)(t),(0,r.default)(t)%parseInt(e,10)==0};var n=d(N),r=d(J);function d(t){return t&&t.__esModule?t:{default:t}}t.exports=e.default,t.exports.default=e.default}))),q="isDivisibleBy";function Q(t,e){return"number"==typeof t&&"number"==typeof e&&X(String(t),e)}var tt="isPositive";function et(t){return"number"==typeof t&&t>0}var nt="isNegative";function rt(t){return"number"==typeof t&&t<0}function dt(t,e){return"number"==typeof t&&"number"==typeof e&&t<=e}function at(t,e){return"number"==typeof t&&"number"==typeof e&&t>=e}var it="minDate";function ot(t,e){return t instanceof Date&&t.getTime()>=e.getTime()}var ut="maxDate";function st(t,e){return t instanceof Date&&t.getTime()<=e.getTime()}var $t=O((function(t,e){function n(t){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){"object"===n(t)&&null!==t?t="function"==typeof t.toString?t.toString():"[object Object]":(null==t||isNaN(t)&&!t.length)&&(t="");return String(t)},t.exports=e.default,t.exports.default=e.default})),lt=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,a){return(0,n.default)(t),(a=(0,d.default)(a,i)).ignoreCase?t.toLowerCase().indexOf((0,r.default)(e).toLowerCase())>=0:t.indexOf((0,r.default)(e))>=0};var n=a(N),r=a($t),d=a(E);function a(t){return t&&t.__esModule?t:{default:t}}var i={ignoreCase:!1};t.exports=e.default,t.exports.default=e.default}))),ft="contains";function ct(t,e){return"string"==typeof t&<(t,e)}var pt="notContains";function vt(t,e){return"string"==typeof t&&!lt(t,e)}var yt=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,r.default)(t);var d=t,a=n.ignore;if(a)if(a instanceof RegExp)d=d.replace(a,"");else{if("string"!=typeof a)throw new Error("ignore should be instance of a String or RegExp");d=d.replace(new RegExp("[".concat(a.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g,"\\$&"),"]"),"g"),"")}if(e in Y.alpha)return Y.alpha[e].test(d);throw new Error("Invalid locale '".concat(e,"'"))},e.locales=void 0;var n,r=(n=N)&&n.__esModule?n:{default:n};var d=Object.keys(Y.alpha);e.locales=d}))),gt="isAlpha";function mt(t,e){return"string"==typeof t&&yt(t,e)}var ht=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";if((0,r.default)(t),e in Y.alphanumeric)return Y.alphanumeric[e].test(t);throw new Error("Invalid locale '".concat(e,"'"))},e.locales=void 0;var n,r=(n=N)&&n.__esModule?n:{default:n};var d=Object.keys(Y.alphanumeric);e.locales=d}))),At="isAlphanumeric";function bt(t,e){return"string"==typeof t&&ht(t,e)}var _t=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=function(t,e){return t.some((function(t){return e===t}))};e.default=n,t.exports=e.default,t.exports.default=e.default})),It=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){if((0,r.default)(t),(e=(0,n.default)(e,i)).locale in Y.decimal)return!(0,d.default)(o,t.replace(/ /g,""))&&function(t){return new RegExp("^[-+]?([0-9]+)?(\\".concat(Y.decimal[t.locale],"[0-9]{").concat(t.decimal_digits,"})").concat(t.force_decimal?"":"?","$"))}(e).test(t);throw new Error("Invalid locale '".concat(e.locale,"'"))};var n=a(E),r=a(N),d=a(_t);function a(t){return t&&t.__esModule?t:{default:t}}var i={force_decimal:!1,decimal_digits:"1,",locale:"en-US"},o=["","-","+"];t.exports=e.default,t.exports.default=e.default}))),Mt="isDecimal";function St(t,e){return"string"==typeof t&&It(t,e)}var Ot=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^[\x00-\x7F]+$/;t.exports=e.default,t.exports.default=e.default}))),Nt="isAscii";function Et(t){return"string"==typeof t&&Ot(t)}var Ct=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){(0,n.default)(t),e=(0,r.default)(e,o);var d=t.length;if(e.urlSafe)return i.test(t);if(d%4!=0||a.test(t))return!1;var u=t.indexOf("=");return-1===u||u===d-1||u===d-2&&"="===t[d-1]};var n=d(N),r=d(E);function d(t){return t&&t.__esModule?t:{default:t}}var a=/[^A-Z0-9+\/=]/i,i=/^[A-Z0-9_\-]*$/i,o={urlSafe:!1};t.exports=e.default,t.exports.default=e.default})),Pt=S(Ct),xt="isBase64";function Tt(t){return"string"==typeof t&&Pt(t)}var Rt=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){var n,a;(0,r.default)(t),"object"===d(e)?(n=e.min||0,a=e.max):(n=arguments[1],a=arguments[2]);var i=encodeURI(t).split(/%..|./).length-1;return i>=n&&(void 0===a||i<=a)};var n,r=(n=N)&&n.__esModule?n:{default:n};function d(t){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}t.exports=e.default,t.exports.default=e.default})),Lt=S(Rt),Ft="isByteLength";function wt(t,e,n){return"string"==typeof t&&Lt(t,{min:e,max:n})}var Dt=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){(0,r.default)(t);var e=t.replace(/[- ]+/g,"");if(!d.test(e))return!1;for(var n,a,i,o=0,u=e.length-1;u>=0;u--)n=e.substring(u,u+1),a=parseInt(n,10),o+=i&&(a*=2)>=10?a%10+1:a,i=!i;return!(o%10!=0||!e)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11}|6[27][0-9]{14})$/;t.exports=e.default,t.exports.default=e.default}))),Zt="isCreditCard";function Bt(t){return"string"==typeof t&&Dt(t)}var Gt=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){return(0,r.default)(t),function(t){var e="\\d{".concat(t.digits_after_decimal[0],"}");t.digits_after_decimal.forEach((function(t,n){0!==n&&(e="".concat(e,"|\\d{").concat(t,"}"))}));var n="(".concat(t.symbol.replace(/\W/,(function(t){return"\\".concat(t)})),")").concat(t.require_symbol?"":"?"),r="-?",d="[1-9]\\d{0,2}(\\".concat(t.thousands_separator,"\\d{3})*"),a="(".concat(["0","[1-9]\\d*",d].join("|"),")?"),i="(\\".concat(t.decimal_separator,"(").concat(e,"))").concat(t.require_decimal?"":"?"),o=a+(t.allow_decimal||t.require_decimal?i:"");t.allow_negatives&&!t.parens_for_negatives&&(t.negative_sign_after_digits?o+=r:t.negative_sign_before_digits&&(o=r+o));t.allow_negative_sign_placeholder?o="( (?!\\-))?".concat(o):t.allow_space_after_symbol?o=" ?".concat(o):t.allow_space_after_digits&&(o+="( (?!$))?");t.symbol_after_digits?o+=n:o=n+o;t.allow_negatives&&(t.parens_for_negatives?o="(\\(".concat(o,"\\)|").concat(o,")"):t.negative_sign_before_digits||t.negative_sign_after_digits||(o=r+o));return new RegExp("^(?!-? )(?=.*\\d)".concat(o,"$"))}(e=(0,n.default)(e,a)).test(t)};var n=d(E),r=d(N);function d(t){return t&&t.__esModule?t:{default:t}}var a={symbol:"$",require_symbol:!1,allow_space_after_symbol:!1,symbol_after_digits:!1,allow_negatives:!0,parens_for_negatives:!1,negative_sign_before_digits:!1,negative_sign_after_digits:!1,allow_negative_sign_placeholder:!1,thousands_separator:",",decimal_separator:".",allow_decimal:!0,require_decimal:!1,digits_after_decimal:[2],allow_space_after_digits:!1};t.exports=e.default,t.exports.default=e.default}))),Ut="isCurrency";function jt(t,e){return"string"==typeof t&&Gt(t,e)}var Vt=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){(0,n.default)(t),(e=(0,r.default)(e,a)).allow_trailing_dot&&"."===t[t.length-1]&&(t=t.substring(0,t.length-1));var d=t.split("."),i=d[d.length-1];if(e.require_tld){if(d.length<2)return!1;if(!/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(i))return!1;if(/[\s\u2002-\u200B\u202F\u205F\u3000\uFEFF\uDB40\uDC20\u00A9\uFFFD]/.test(i))return!1}if(!e.allow_numeric_tld&&/^\d+$/.test(i))return!1;return d.every((function(t){return!(t.length>63)&&(!!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(t)&&(!/[\uff01-\uff5e]/.test(t)&&(!/^-|-$/.test(t)&&!(!e.allow_underscores&&/_/.test(t)))))}))};var n=d(N),r=d(E);function d(t){return t&&t.__esModule?t:{default:t}}var a={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1};t.exports=e.default,t.exports.default=e.default})),Ht=S(Vt),kt=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,r.default)(e),!(n=String(n)))return t(e,4)||t(e,6);if("4"===n){if(!d.test(e))return!1;var i=e.split(".").sort((function(t,e){return t-e}));return i[3]<=255}if("6"===n){var o=[e];if(e.includes("%")){if(2!==(o=e.split("%")).length)return!1;if(!o[0].includes(":"))return!1;if(""===o[1])return!1}var u=o[0].split(":"),s=!1,$=t(u[u.length-1],4),l=$?7:8;if(u.length>l)return!1;if("::"===e)return!0;"::"===e.substr(0,2)?(u.shift(),u.shift(),s=!0):"::"===e.substr(e.length-2)&&(u.pop(),u.pop(),s=!0);for(var f=0;f0&&f=1:u.length===l}return!1};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/,a=/^[0-9A-F]{1,4}$/i;t.exports=e.default,t.exports.default=e.default})),Kt=S(kt),Wt=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){if((0,n.default)(t),(e=(0,r.default)(e,s)).require_display_name||e.allow_display_name){var o=t.match($);if(o){var y,g=function(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(t)))return;var n=[],r=!0,d=!1,a=void 0;try{for(var i,o=t[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!e||n.length!==e);r=!0);}catch(t){d=!0,a=t}finally{try{r||null==o.return||o.return()}finally{if(d)throw a}}return n}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return u(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return u(t,e)}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(o,3);if(y=g[1],t=g[2],y.endsWith(" ")&&(y=y.substr(0,y.length-1)),!function(t){var e=t.match(/^"(.+)"$/i),n=e?e[1]:t;if(!n.trim())return!1;if(/[\.";<>]/.test(n)){if(!e)return!1;if(!(n.split('"').length===n.split('\\"').length))return!1}return!0}(y))return!1}else if(e.require_display_name)return!1}if(!e.ignore_max_length&&t.length>254)return!1;var m=t.split("@"),h=m.pop(),A=m.join("@"),b=h.toLowerCase();if(e.domain_specific_validation&&("gmail.com"===b||"googlemail.com"===b)){var _=(A=A.toLowerCase()).split("+")[0];if(!(0,d.default)(_.replace(".",""),{min:6,max:30}))return!1;for(var I=_.split("."),M=0;Mt.length)&&(e=t.length);for(var n=0,r=new Array(e);n$/i,l=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~]+$/i,f=/^[a-z\d]+$/,c=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f]))*$/i,p=/^[a-z\d!#\$%&'\*\+\-\/=\?\^_`{\|}~\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,v=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i;t.exports=e.default,t.exports.default=e.default}))),Yt="isEmail";function zt(t,e){return"string"==typeof t&&Wt(t,e)}var Jt="isFqdn";function Xt(t,e){return"string"==typeof t&&Ht(t,e)}var qt=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)},e.fullWidth=void 0;var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;e.fullWidth=d})),Qt=S(qt),te="isFullWidth";function ee(t){return"string"==typeof t&&Qt(t)}var ne=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)},e.halfWidth=void 0;var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/;e.halfWidth=d})),re=S(ne),de="isHalfWidth";function ae(t){return"string"==typeof t&&re(t)}var ie=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),qt.fullWidth.test(t)&&ne.halfWidth.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};t.exports=e.default,t.exports.default=e.default}))),oe="isVariableWidth";function ue(t){return"string"==typeof t&&ie(t)}var se=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;t.exports=e.default,t.exports.default=e.default}))),$e="isHexColor";function le(t){return"string"==typeof t&&se(t)}var fe=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^(0x|0h)?[0-9A-F]+$/i;t.exports=e.default,t.exports.default=e.default})),ce=S(fe),pe="isHexadecimal";function ve(t){return"string"==typeof t&&ce(t)}function ye(t){return!!t&&("each"in t||"message"in t||"groups"in t||"always"in t||"context"in t)}var ge=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){if((0,r.default)(t),e&&e.no_colons)return a.test(t);return d.test(t)||i.test(t)||o.test(t)||u.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/,a=/^([0-9a-fA-F]){12}$/,i=/^([0-9a-fA-F][0-9a-fA-F]-){5}([0-9a-fA-F][0-9a-fA-F])$/,o=/^([0-9a-fA-F][0-9a-fA-F]\s){5}([0-9a-fA-F][0-9a-fA-F])$/,u=/^([0-9a-fA-F]{4}).([0-9a-fA-F]{4}).([0-9a-fA-F]{4})$/;t.exports=e.default,t.exports.default=e.default}))),me="isMacAddress";function he(t,e){return"string"==typeof t&&ge(t,e)}var Ae="isIp";function be(t,e){return"string"==typeof t&&Kt(t,e?""+e:void 0)}var _e=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){(0,r.default)(t);var n=(e=e||{}).hasOwnProperty("allow_leading_zeroes")&&!e.allow_leading_zeroes?d:a,i=!e.hasOwnProperty("min")||t>=e.min,o=!e.hasOwnProperty("max")||t<=e.max,u=!e.hasOwnProperty("lt")||te.gt;return n.test(t)&&i&&o&&u&&s};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^(?:[-+]?(?:0|[1-9][0-9]*))$/,a=/^[-+]?[0-9]+$/;t.exports=e.default,t.exports.default=e.default})),Ie=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t,{min:0,max:65535})};var n,r=(n=_e)&&n.__esModule?n:{default:n};t.exports=e.default,t.exports.default=e.default}))),Me="isPort";function Se(t){return"string"==typeof t&&Ie(t)}var Oe=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if((0,r.default)(e),!(n=String(n)))return t(e,10)||t(e,13);var o,u=e.replace(/[\s-]+/g,""),s=0;if("10"===n){if(!d.test(u))return!1;for(o=0;o<9;o++)s+=(o+1)*u.charAt(o);if("X"===u.charAt(9)?s+=100:s+=10*u.charAt(9),s%11==0)return!!u}else if("13"===n){if(!a.test(u))return!1;for(o=0;o<12;o++)s+=i[o%2]*u.charAt(o);if(u.charAt(12)-(10-s%10)%10==0)return!!u}return!1};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^(?:[0-9]{9}X|[0-9]{10})$/,a=/^(?:[0-9]{13})$/,i=[1,3];t.exports=e.default,t.exports.default=e.default}))),Ne="isIsbn";function Ee(t,e){return"string"==typeof t&&Oe(t,e?""+e:void 0)}var Ce=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){if((0,r.default)(t),!d.test(t))return!1;for(var e,n,a=t.replace(/[A-Z]/g,(function(t){return parseInt(t,36)})),i=0,o=!0,u=a.length-2;u>=0;u--)e=a.substring(u,u+1),n=parseInt(e,10),i+=o&&(n*=2)>=10?n+1:n,o=!o;return parseInt(t.substr(t.length-1),10)===(1e4-i)%10};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;t.exports=e.default,t.exports.default=e.default}))),Pe="isIsin";function xe(t){return"string"==typeof t&&Ce(t)}var Te=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,r.default)(t);var n=e.strictSeparator?a.test(t):d.test(t);return n&&e.strict?i(t):n};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,a=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,i=function(t){var e=t.match(/^(\d{4})-?(\d{3})([ T]{1}\.*|$)/);if(e){var n=Number(e[1]),r=Number(e[2]);return n%4==0&&n%100!=0||n%400==0?r<=366:r<=365}var d=t.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number),a=d[1],i=d[2],o=d[3],u=i?"0".concat(i).slice(-2):i,s=o?"0".concat(o).slice(-2):o,$=new Date("".concat(a,"-").concat(u||"01","-").concat(s||"01"));return!i||!o||$.getUTCFullYear()===a&&$.getUTCMonth()+1===i&&$.getUTCDate()===o};t.exports=e.default,t.exports.default=e.default}))),Re="isIso8601";function Le(t,e){return"string"==typeof t&&Te(t,e)}var Fe=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){(0,n.default)(t);try{e=(0,r.default)(e,i);var d=[];e.allow_primitives&&(d=[null,!1,!0]);var o=JSON.parse(t);return d.includes(o)||!!o&&"object"===a(o)}catch(t){}return!1};var n=d(N),r=d(E);function d(t){return t&&t.__esModule?t:{default:t}}function a(t){return(a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}var i={allow_primitives:!1};t.exports=e.default,t.exports.default=e.default}))),we="isJson";function De(t){return"string"==typeof t&&Fe(t)}var Ze=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){(0,n.default)(t);var e=t.split("."),d=e.length;if(d>3||d<2)return!1;return e.reduce((function(t,e){return t&&(0,r.default)(e,{urlSafe:!0})}),!0)};var n=d(N),r=d(Ct);function d(t){return t&&t.__esModule?t:{default:t}}t.exports=e.default,t.exports.default=e.default}))),Be="isJwt";function Ge(t){return"string"==typeof t&&Ze(t)}var Ue=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),t===t.toLowerCase()};var n,r=(n=N)&&n.__esModule?n:{default:n};t.exports=e.default,t.exports.default=e.default}))),je="isLowercase";function Ve(t){return"string"==typeof t&&Ue(t)}var He=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n){if((0,r.default)(t),n&&n.strictMode&&!t.startsWith("+"))return!1;if(Array.isArray(e))return e.some((function(e){if(d.hasOwnProperty(e)&&d[e].test(t))return!0;return!1}));if(e in d)return d[e].test(t);if(!e||"any"===e){for(var a in d){if(d.hasOwnProperty(a))if(d[a].test(t))return!0}return!1}throw new Error("Invalid locale '".concat(e,"'"))},e.locales=void 0;var n,r=(n=N)&&n.__esModule?n:{default:n};var d={"am-AM":/^(\+?374|0)((10|[9|7][0-9])\d{6}$|[2-4]\d{7}$)/,"ar-AE":/^((\+?971)|0)?5[024568]\d{7}$/,"ar-BH":/^(\+?973)?(3|6)\d{7}$/,"ar-DZ":/^(\+?213|0)(5|6|7)\d{8}$/,"ar-LB":/^(\+?961)?((3|81)\d{6}|7\d{7})$/,"ar-EG":/^((\+?20)|0)?1[0125]\d{8}$/,"ar-IQ":/^(\+?964|0)?7[0-9]\d{8}$/,"ar-JO":/^(\+?962|0)?7[789]\d{7}$/,"ar-KW":/^(\+?965)[569]\d{7}$/,"ar-LY":/^((\+?218)|0)?(9[1-6]\d{7}|[1-8]\d{7,9})$/,"ar-MA":/^(?:(?:\+|00)212|0)[5-7]\d{8}$/,"ar-SA":/^(!?(\+?966)|0)?5\d{8}$/,"ar-SY":/^(!?(\+?963)|0)?9\d{8}$/,"ar-TN":/^(\+?216)?[2459]\d{7}$/,"az-AZ":/^(\+994|0)(5[015]|7[07]|99)\d{7}$/,"bs-BA":/^((((\+|00)3876)|06))((([0-3]|[5-6])\d{6})|(4\d{7}))$/,"be-BY":/^(\+?375)?(24|25|29|33|44)\d{7}$/,"bg-BG":/^(\+?359|0)?8[789]\d{7}$/,"bn-BD":/^(\+?880|0)1[13456789][0-9]{8}$/,"ca-AD":/^(\+376)?[346]\d{5}$/,"cs-CZ":/^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"da-DK":/^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/,"de-DE":/^(\+49)?0?[1|3]([0|5][0-45-9]\d|6([23]|0\d?)|7([0-57-9]|6\d))\d{7}$/,"de-AT":/^(\+43|0)\d{1,4}\d{3,12}$/,"de-CH":/^(\+41|0)(7[5-9])\d{1,7}$/,"de-LU":/^(\+352)?((6\d1)\d{6})$/,"el-GR":/^(\+?30|0)?(69\d{8})$/,"en-AU":/^(\+?61|0)4\d{8}$/,"en-GB":/^(\+?44|0)7\d{9}$/,"en-GG":/^(\+?44|0)1481\d{6}$/,"en-GH":/^(\+233|0)(20|50|24|54|27|57|26|56|23|28)\d{7}$/,"en-HK":/^(\+?852[-\s]?)?[456789]\d{3}[-\s]?\d{4}$/,"en-MO":/^(\+?853[-\s]?)?[6]\d{3}[-\s]?\d{4}$/,"en-IE":/^(\+?353|0)8[356789]\d{7}$/,"en-IN":/^(\+?91|0)?[6789]\d{9}$/,"en-KE":/^(\+?254|0)(7|1)\d{8}$/,"en-MT":/^(\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,"en-MU":/^(\+?230|0)?\d{8}$/,"en-NG":/^(\+?234|0)?[789]\d{9}$/,"en-NZ":/^(\+?64|0)[28]\d{7,9}$/,"en-PK":/^((\+92)|(0092))-{0,1}\d{3}-{0,1}\d{7}$|^\d{11}$|^\d{4}-\d{7}$/,"en-PH":/^(09|\+639)\d{9}$/,"en-RW":/^(\+?250|0)?[7]\d{8}$/,"en-SG":/^(\+65)?[689]\d{7}$/,"en-SL":/^(?:0|94|\+94)?(7(0|1|2|5|6|7|8)( |-)?\d)\d{6}$/,"en-TZ":/^(\+?255|0)?[67]\d{8}$/,"en-UG":/^(\+?256|0)?[7]\d{8}$/,"en-US":/^((\+1|1)?( |-)?)?(\([2-9][0-9]{2}\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,"en-ZA":/^(\+?27|0)\d{9}$/,"en-ZM":/^(\+?26)?09[567]\d{7}$/,"en-ZW":/^(\+263)[0-9]{9}$/,"es-AR":/^\+?549(11|[2368]\d)\d{8}$/,"es-BO":/^(\+?591)?(6|7)\d{7}$/,"es-CO":/^(\+?57)?([1-8]{1}|3[0-9]{2})?[2-9]{1}\d{6}$/,"es-CL":/^(\+?56|0)[2-9]\d{1}\d{7}$/,"es-CR":/^(\+506)?[2-8]\d{7}$/,"es-DO":/^(\+?1)?8[024]9\d{7}$/,"es-HN":/^(\+?504)?[9|8]\d{7}$/,"es-EC":/^(\+?593|0)([2-7]|9[2-9])\d{7}$/,"es-ES":/^(\+?34)?[6|7]\d{8}$/,"es-PE":/^(\+?51)?9\d{8}$/,"es-MX":/^(\+?52)?(1|01)?\d{10,11}$/,"es-PA":/^(\+?507)\d{7,8}$/,"es-PY":/^(\+?595|0)9[9876]\d{7}$/,"es-UY":/^(\+598|0)9[1-9][\d]{6}$/,"et-EE":/^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/,"fa-IR":/^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/,"fi-FI":/^(\+?358|0)\s?(4(0|1|2|4|5|6)?|50)\s?(\d\s?){4,8}\d$/,"fj-FJ":/^(\+?679)?\s?\d{3}\s?\d{4}$/,"fo-FO":/^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"fr-FR":/^(\+?33|0)[67]\d{8}$/,"fr-GF":/^(\+?594|0|00594)[67]\d{8}$/,"fr-GP":/^(\+?590|0|00590)[67]\d{8}$/,"fr-MQ":/^(\+?596|0|00596)[67]\d{8}$/,"fr-RE":/^(\+?262|0|00262)[67]\d{8}$/,"he-IL":/^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}$/,"hu-HU":/^(\+?36)(20|30|70)\d{7}$/,"id-ID":/^(\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\s?|\d]{5,11})$/,"it-IT":/^(\+?39)?\s?3\d{2} ?\d{6,7}$/,"it-SM":/^((\+378)|(0549)|(\+390549)|(\+3780549))?6\d{5,9}$/,"ja-JP":/^(\+81[ \-]?(\(0\))?|0)[6789]0[ \-]?\d{4}[ \-]?\d{4}$/,"ka-GE":/^(\+?995)?(5|79)\d{7}$/,"kk-KZ":/^(\+?7|8)?7\d{9}$/,"kl-GL":/^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"ko-KR":/^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/,"lt-LT":/^(\+370|8)\d{8}$/,"ms-MY":/^(\+?6?01){1}(([0145]{1}(\-|\s)?\d{7,8})|([236789]{1}(\s|\-)?\d{7}))$/,"nb-NO":/^(\+?47)?[49]\d{7}$/,"ne-NP":/^(\+?977)?9[78]\d{8}$/,"nl-BE":/^(\+?32|0)4?\d{8}$/,"nl-NL":/^(((\+|00)?31\(0\))|((\+|00)?31)|0)6{1}\d{8}$/,"nn-NO":/^(\+?47)?[49]\d{7}$/,"pl-PL":/^(\+?48)? ?[5-8]\d ?\d{3} ?\d{2} ?\d{2}$/,"pt-BR":/^((\+?55\ ?[1-9]{2}\ ?)|(\+?55\ ?\([1-9]{2}\)\ ?)|(0[1-9]{2}\ ?)|(\([1-9]{2}\)\ ?)|([1-9]{2}\ ?))((\d{4}\-?\d{4})|(9[2-9]{1}\d{3}\-?\d{4}))$/,"pt-PT":/^(\+?351)?9[1236]\d{7}$/,"ro-RO":/^(\+?4?0)\s?7\d{2}(\/|\s|\.|\-)?\d{3}(\s|\.|\-)?\d{3}$/,"ru-RU":/^(\+?7|8)?9\d{9}$/,"sl-SI":/^(\+386\s?|0)(\d{1}\s?\d{3}\s?\d{2}\s?\d{2}|\d{2}\s?\d{3}\s?\d{3})$/,"sk-SK":/^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"sq-AL":/^(\+355|0)6[789]\d{6}$/,"sr-RS":/^(\+3816|06)[- \d]{5,9}$/,"sv-SE":/^(\+?46|0)[\s\-]?7[\s\-]?[02369]([\s\-]?\d){7}$/,"th-TH":/^(\+66|66|0)\d{9}$/,"tr-TR":/^(\+?90|0)?5\d{9}$/,"uk-UA":/^(\+?38|8)?0\d{9}$/,"uz-UZ":/^(\+?998)?(6[125-79]|7[1-69]|88|9\d)\d{7}$/,"vi-VN":/^(\+?84|0)((3([2-9]))|(5([2689]))|(7([0|6-9]))|(8([1-6|89]))|(9([0-9])))([0-9]{7})$/,"zh-CN":/^((\+|00)86)?1([3568][0-9]|4[579]|6[67]|7[01235678]|9[012356789])[0-9]{8}$/,"zh-TW":/^(\+?886\-?|0)?9\d{8}$/};d["en-CA"]=d["en-US"],d["fr-CA"]=d["en-CA"],d["fr-BE"]=d["nl-BE"],d["zh-HK"]=d["en-HK"],d["zh-MO"]=d["en-MO"],d["ga-IE"]=d["en-IE"];var a=Object.keys(d);e.locales=a}))),ke="isMobilePhone";function Ke(t,e,n){return"string"==typeof t&&He(t,e,n)}var We=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,n.default)(t),(0,r.default)(a,t.toUpperCase())};var n=d(N),r=d(_t);function d(t){return t&&t.__esModule?t:{default:t}}var a=["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"];t.exports=e.default,t.exports.default=e.default}))),Ye="isISO31661Alpha2";function ze(t){return"string"==typeof t&&We(t)}var Je=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,n.default)(t),(0,r.default)(a,t.toUpperCase())};var n=d(N),r=d(_t);function d(t){return t&&t.__esModule?t:{default:t}}var a=["AFG","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUS","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","KHM","CMR","CAN","CPV","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COD","COK","CRI","CIV","HRV","CUB","CUW","CYP","CZE","DNK","DJI","DMA","DOM","ECU","EGY","SLV","GNQ","ERI","EST","ETH","FLK","FRO","FJI","FIN","FRA","GUF","PYF","ATF","GAB","GMB","GEO","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GGY","GIN","GNB","GUY","HTI","HMD","VAT","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","IMN","ISR","ITA","JAM","JPN","JEY","JOR","KAZ","KEN","KIR","PRK","KOR","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MKD","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MDA","MCO","MNG","MNE","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","NCL","NZL","NIC","NER","NGA","NIU","NFK","MNP","NOR","OMN","PAK","PLW","PSE","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","REU","ROU","RUS","RWA","BLM","SHN","KNA","LCA","MAF","SPM","VCT","WSM","SMR","STP","SAU","SEN","SRB","SYC","SLE","SGP","SXM","SVK","SVN","SLB","SOM","ZAF","SGS","SSD","ESP","LKA","SDN","SUR","SJM","SWZ","SWE","CHE","SYR","TWN","TJK","TZA","THA","TLS","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","GBR","USA","UMI","URY","UZB","VUT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","ZMB","ZWE"];t.exports=e.default,t.exports.default=e.default}))),Xe="isISO31661Alpha3";function qe(t){return"string"==typeof t&&Je(t)}var Qe=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,n.default)(t),(0,r.default)(t)&&24===t.length};var n=d(N),r=d(fe);function d(t){return t&&t.__esModule?t:{default:t}}t.exports=e.default,t.exports.default=e.default}))),tn="isMongoId";function en(t){return"string"==typeof t&&Qe(t)}var nn=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/[^\x00-\x7F]/;t.exports=e.default,t.exports.default=e.default}))),rn="isMultibyte";function dn(t){return"string"==typeof t&&nn(t)}var an=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;t.exports=e.default,t.exports.default=e.default}))),on="isSurrogatePair";function un(t){return"string"==typeof t&&an(t)}var sn=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){if((0,n.default)(t),!t||/[\s<>]/.test(t))return!1;if(0===t.indexOf("mailto:"))return!1;if((e=(0,a.default)(e,o)).validate_length&&t.length>=2083)return!1;var i,$,l,f,c,p,v,y;if(v=t.split("#"),t=v.shift(),v=t.split("?"),t=v.shift(),(v=t.split("://")).length>1){if(i=v.shift().toLowerCase(),e.require_valid_protocol&&-1===e.protocols.indexOf(i))return!1}else{if(e.require_protocol)return!1;if("//"===t.substr(0,2)){if(!e.allow_protocol_relative_urls)return!1;v[0]=t.substr(2)}}if(""===(t=v.join("://")))return!1;if(v=t.split("/"),""===(t=v.shift())&&!e.require_host)return!0;if((v=t.split("@")).length>1){if(e.disallow_auth)return!1;if(-1===($=v.shift()).indexOf(":")||$.indexOf(":")>=0&&$.split(":").length>2)return!1}f=v.join("@"),p=null,y=null;var g=f.match(u);g?(l="",y=g[1],p=g[2]||null):(v=f.split(":"),l=v.shift(),v.length&&(p=v.join(":")));if(null!==p){if(c=parseInt(p,10),!/^[0-9]+$/.test(p)||c<=0||c>65535)return!1}else if(e.require_port)return!1;if(!((0,d.default)(l)||(0,r.default)(l,e)||y&&(0,d.default)(y,6)))return!1;if(l=l||y,e.host_whitelist&&!s(l,e.host_whitelist))return!1;if(e.host_blacklist&&s(l,e.host_blacklist))return!1;return!0};var n=i(N),r=i(Vt),d=i(kt),a=i(E);function i(t){return t&&t.__esModule?t:{default:t}}var o={protocols:["http","https","ftp"],require_tld:!0,require_protocol:!1,require_host:!0,require_port:!1,require_valid_protocol:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_protocol_relative_urls:!1,validate_length:!0},u=/^\[([^\]]+)\](?::([0-9]+))?$/;function s(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:"all";(0,r.default)(t);var n=d[e];return n&&n.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d={3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,all:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i};t.exports=e.default,t.exports.default=e.default}))),cn="isUuid";function pn(t,e){return"string"==typeof t&&fn(t,e)}var vn="IsFirebasePushId";function yn(t){return"string"==typeof t&&20===t.length&&/^[a-zA-Z0-9_-]*$/.test(t)}var gn=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),t===t.toUpperCase()};var n,r=(n=N)&&n.__esModule?n:{default:n};t.exports=e.default,t.exports.default=e.default}))),mn="isUppercase";function hn(t){return"string"==typeof t&&gn(t)}var An=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){var n,a;(0,r.default)(t),"object"===d(e)?(n=e.min||0,a=e.max):(n=arguments[1]||0,a=arguments[2]);var i=t.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[],o=t.length-i.length;return o>=n&&(void 0===a||o<=a)};var n,r=(n=N)&&n.__esModule?n:{default:n};function d(t){return(d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}t.exports=e.default,t.exports.default=e.default}))),bn="isLength";function _n(t,e,n){return"string"==typeof t&&An(t,{min:e,max:n})}var In="maxLength";function Mn(t,e){return"string"==typeof t&&An(t,{min:0,max:e})}var Sn="minLength";function On(t,e){return"string"==typeof t&&An(t,{min:e})}var Nn=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e,n){(0,r.default)(t),"[object RegExp]"!==Object.prototype.toString.call(e)&&(e=new RegExp(e,n));return e.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};t.exports=e.default,t.exports.default=e.default}))),En="matches";function Cn(t,e,n){return"string"==typeof t&&Nn(t,e,n)}var Pn={version:4,country_calling_codes:{1:["US","AG","AI","AS","BB","BM","BS","CA","DM","DO","GD","GU","JM","KN","KY","LC","MP","MS","PR","SX","TC","TT","VC","VG","VI"],7:["RU","KZ"],20:["EG"],27:["ZA"],30:["GR"],31:["NL"],32:["BE"],33:["FR"],34:["ES"],36:["HU"],39:["IT","VA"],40:["RO"],41:["CH"],43:["AT"],44:["GB","GG","IM","JE"],45:["DK"],46:["SE"],47:["NO","SJ"],48:["PL"],49:["DE"],51:["PE"],52:["MX"],53:["CU"],54:["AR"],55:["BR"],56:["CL"],57:["CO"],58:["VE"],60:["MY"],61:["AU","CC","CX"],62:["ID"],63:["PH"],64:["NZ"],65:["SG"],66:["TH"],81:["JP"],82:["KR"],84:["VN"],86:["CN"],90:["TR"],91:["IN"],92:["PK"],93:["AF"],94:["LK"],95:["MM"],98:["IR"],211:["SS"],212:["MA","EH"],213:["DZ"],216:["TN"],218:["LY"],220:["GM"],221:["SN"],222:["MR"],223:["ML"],224:["GN"],225:["CI"],226:["BF"],227:["NE"],228:["TG"],229:["BJ"],230:["MU"],231:["LR"],232:["SL"],233:["GH"],234:["NG"],235:["TD"],236:["CF"],237:["CM"],238:["CV"],239:["ST"],240:["GQ"],241:["GA"],242:["CG"],243:["CD"],244:["AO"],245:["GW"],246:["IO"],247:["AC"],248:["SC"],249:["SD"],250:["RW"],251:["ET"],252:["SO"],253:["DJ"],254:["KE"],255:["TZ"],256:["UG"],257:["BI"],258:["MZ"],260:["ZM"],261:["MG"],262:["RE","YT"],263:["ZW"],264:["NA"],265:["MW"],266:["LS"],267:["BW"],268:["SZ"],269:["KM"],290:["SH","TA"],291:["ER"],297:["AW"],298:["FO"],299:["GL"],350:["GI"],351:["PT"],352:["LU"],353:["IE"],354:["IS"],355:["AL"],356:["MT"],357:["CY"],358:["FI","AX"],359:["BG"],370:["LT"],371:["LV"],372:["EE"],373:["MD"],374:["AM"],375:["BY"],376:["AD"],377:["MC"],378:["SM"],380:["UA"],381:["RS"],382:["ME"],383:["XK"],385:["HR"],386:["SI"],387:["BA"],389:["MK"],420:["CZ"],421:["SK"],423:["LI"],500:["FK"],501:["BZ"],502:["GT"],503:["SV"],504:["HN"],505:["NI"],506:["CR"],507:["PA"],508:["PM"],509:["HT"],590:["GP","BL","MF"],591:["BO"],592:["GY"],593:["EC"],594:["GF"],595:["PY"],596:["MQ"],597:["SR"],598:["UY"],599:["CW","BQ"],670:["TL"],672:["NF"],673:["BN"],674:["NR"],675:["PG"],676:["TO"],677:["SB"],678:["VU"],679:["FJ"],680:["PW"],681:["WF"],682:["CK"],683:["NU"],685:["WS"],686:["KI"],687:["NC"],688:["TV"],689:["PF"],690:["TK"],691:["FM"],692:["MH"],850:["KP"],852:["HK"],853:["MO"],855:["KH"],856:["LA"],880:["BD"],886:["TW"],960:["MV"],961:["LB"],962:["JO"],963:["SY"],964:["IQ"],965:["KW"],966:["SA"],967:["YE"],968:["OM"],970:["PS"],971:["AE"],972:["IL"],973:["BH"],974:["QA"],975:["BT"],976:["MN"],977:["NP"],992:["TJ"],993:["TM"],994:["AZ"],995:["GE"],996:["KG"],998:["UZ"]},countries:{AC:["247","00","(?:[01589]\\d|[46])\\d{4}",[5,6]],AD:["376","00","(?:1|6\\d)\\d{7}|[135-9]\\d{5}",[6,8,9],[["(\\d{3})(\\d{3})","$1 $2",["[135-9]"]],["(\\d{4})(\\d{4})","$1 $2",["1"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]]],AE:["971","00","(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}",[5,6,7,8,9,10,11,12],[["(\\d{3})(\\d{2,9})","$1 $2",["60|8"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[236]|[479][2-8]"],"0$1"],["(\\d{3})(\\d)(\\d{5})","$1 $2 $3",["[479]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"]],"0"],AF:["93","00","[2-7]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"]],"0"],AG:["1","011","(?:268|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([457]\\d{6})$","268$1",0,"268"],AI:["1","011","(?:264|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2457]\\d{6})$","264$1",0,"264"],AL:["355","00","(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}",[6,7,8,9],[["(\\d{3})(\\d{3,4})","$1 $2",["80|9"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2358][2-5]|4"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["[23578]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["6"],"0$1"]],"0"],AM:["374","00","(?:[1-489]\\d|55|60|77)\\d{6}",[8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[89]0"],"0 $1"],["(\\d{3})(\\d{5})","$1 $2",["2|3[12]"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["1|47"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[3-9]"],"0$1"]],"0"],AO:["244","00","[29]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[29]"]]]],AR:["54","00","11\\d{8}|(?:[2368]|9\\d)\\d{9}",[10,11],[["(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])","2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["[23]"],"0$1",1],["(\\d)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))","9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",0,"$1 $2 $3-$4"],["(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 15-$3-$4",["91"],"0$1",0,"$1 $2 $3-$4"],["(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9"],"0$1",0,"$1 $2 $3-$4"]],"0",0,"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?","9$1"],AS:["1","011","(?:[58]\\d\\d|684|900)\\d{7}",[10],0,"1",0,"1|([267]\\d{6})$","684$1",0,"684"],AT:["43","00","1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}",[4,5,6,7,8,9,10,11,12,13],[["(\\d)(\\d{3,12})","$1 $2",["1(?:11|[2-9])"],"0$1"],["(\\d{3})(\\d{2})","$1 $2",["517"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["5[079]"],"0$1"],["(\\d{3})(\\d{3,10})","$1 $2",["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"],"0$1"],["(\\d{4})(\\d{3,9})","$1 $2",["[2-467]|5[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["5"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,7})","$1 $2 $3",["5"],"0$1"]],"0"],AU:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{7,8}|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,4})","$1 $2",["16"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,4})","$1 $2 $3",["16"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["14|4"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"],"(0$1)"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:30|[89])"]]],"0",0,"0|(183[12])",0,0,0,[["8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-7]|3[2-4]|[4-6]\\d))|91(?:[0-57-9]\\d|6[0135-9])\\d)\\d{3}|(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\d|2[0-8])|8(?:6[0-8]|[78]\\d|9[02-9]))\\d{6}",[9]],["4(?:83[0-38]|93[0-4])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,["163\\d{2,6}",[5,6,7,8,9]],["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}",[6,8,10]]],"0011"],AW:["297","00","(?:[25-79]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[25-9]"]]]],AX:["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}",[5,6,7,8,9,10,11,12],0,"0",0,0,0,0,"18",0,"00"],AZ:["994","00","365\\d{6}|(?:[124579]\\d|60|88)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]|2|365|46","1[28]|2|365|46","1[28]|2|365(?:[0-46-9]|5[0-35-9])|46"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-9]"],"0$1"]],"0"],BA:["387","00","6\\d{8}|(?:[35689]\\d|49|70)\\d{6}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["6[1-3]|[7-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3",["[3-5]|6[56]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["6"],"0$1"]],"0"],BB:["1","011","(?:246|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","246$1",0,"246"],BD:["880","00","1\\d{9}|2\\d{7,8}|88\\d{4,6}|(?:8[0-79]|9\\d)\\d{4,8}|(?:[346]\\d|[57])\\d{5,8}",[6,7,8,9,10],[["(\\d{2})(\\d{4,6})","$1-$2",["31[5-8]|[459]1"],"0$1"],["(\\d{3})(\\d{3,7})","$1-$2",["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"],"0$1"],["(\\d{4})(\\d{3,6})","$1-$2",["[13-9]"],"0$1"],["(\\d)(\\d{7,8})","$1-$2",["2"],"0$1"]],"0"],BE:["32","00","4\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:80|9)0"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[239]|4[23]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[15-8]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4"],"0$1"]],"0"],BF:["226","00","[025-7]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[025-7]"]]]],BG:["359","00","[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}",[6,7,8,9],[["(\\d)(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["43[1-6]|70[1-9]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:70|8)0"],"0$1"],["(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[1-7]|7"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[48]|9[08]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"]],"0"],BH:["973","00","[136-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[13679]|8[047]"]]]],BI:["257","00","(?:[267]\\d|31)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2367]"]]]],BJ:["229","00","(?:[2689]\\d|51)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[25689]"]]]],BL:["590","00","(?:590|69\\d|976)\\d{6}",[9],0,"0",0,0,0,0,0,[["590(?:2[7-9]|5[12]|87)\\d{4}"],["69(?:0\\d\\d|1(?:2[29]|3[0-5]))\\d{4}"],0,0,0,0,0,0,["976[01]\\d{5}"]]],BM:["1","011","(?:441|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-8]\\d{6})$","441$1",0,"441"],BN:["673","00","[2-578]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-578]"]]]],BO:["591","00(?:1\\d)?","(?:[2-467]\\d\\d|8001)\\d{5}",[8,9],[["(\\d)(\\d{7})","$1 $2",["[23]|4[46]"]],["(\\d{8})","$1",["[67]"]],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["8"]]],"0",0,"0(1\\d)?"],BQ:["599","00","(?:[34]1|7\\d)\\d{5}",[7],0,0,0,0,0,0,"[347]"],BR:["55","00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)","(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-24679]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}",[8,9,10,11],[["(\\d{4})(\\d{4})","$1-$2",["300|4(?:0[02]|37)","4(?:02|37)0|[34]00"]],["(\\d{3})(\\d{2,3})(\\d{4})","$1 $2 $3",["(?:[358]|90)0"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"],"($1)"],["(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[16][1-9]|[2-57-9]"],"($1)"]],"0",0,"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?","$2"],BS:["1","011","(?:242|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([3-8]\\d{6})$","242$1",0,"242"],BT:["975","00","[17]\\d{7}|[2-8]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-68]|7[246]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[67]|7"]]]],BW:["267","00","90\\d{5}|(?:0800|[2-6]|7\\d)\\d{6}",[7,8,10],[["(\\d{2})(\\d{5})","$1 $2",["90"]],["(\\d{3})(\\d{4})","$1 $2",["[2-6]"]],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["0"]]]],BY:["375","810","(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3})","$1 $2",["800"],"8 $1"],["(\\d{3})(\\d{2})(\\d{2,4})","$1 $2 $3",["800"],"8 $1"],["(\\d{4})(\\d{2})(\\d{3})","$1 $2-$3",["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])","1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"],"8 0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["1(?:[56]|7[467])|2[1-3]"],"8 0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-4]"],"8 0$1"],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["[89]"],"8 $1"]],"8",0,"0|80?",0,0,0,0,"8~10"],BZ:["501","00","(?:0800\\d|[2-8])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1-$2",["[2-8]"]],["(\\d)(\\d{3})(\\d{4})(\\d{3})","$1-$2-$3-$4",["0"]]]],CA:["1","011","(?:[2-8]\\d|90)\\d{8}",[10],0,"1",0,0,0,0,0,[["(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[57])|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\d{6}"],[""],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[12]|33|44|66|77|88)|622)[2-9]\\d{6}"],0,0,0,["600[2-9]\\d{6}"]]],CC:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d|8[0-24-9])\\d{7}|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10],0,"0",0,"0|([59]\\d{7})$","8$1",0,0,[["8(?:51(?:0(?:02|31|60|89)|118)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}",[9]],["4(?:83[0-38]|93[0-4])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,0,["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}",[6,8,10]]],"0011"],CD:["243","00","[189]\\d{8}|[1-68]\\d{6}",[7,9],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["[1-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"],"0$1"]],"0"],CF:["236","00","(?:[27]\\d{3}|8776)\\d{4}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[278]"]]]],CG:["242","00","222\\d{6}|(?:0\\d|80)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["801"]],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["8"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[02]"]]]],CH:["41","00","8\\d{11}|[2-9]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8[047]|90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-79]|81"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["8"],"0$1"]],"0"],CI:["225","00","[02-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[02-9]"]]]],CK:["682","00","[2-578]\\d{4}",[5],[["(\\d{2})(\\d{3})","$1 $2",["[2-578]"]]]],CL:["56","(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0","12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}",[9,10,11],[["(\\d{5})(\\d{4})","$1 $2",["219","2196"],"($1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["44"]],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[1-3]"],"($1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9[2-9]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"],"($1)"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{3})(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"]]]],CM:["237","00","(?:[26]\\d\\d|88)\\d{6}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["88"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[26]"]]]],CN:["86","00|1(?:[12]\\d|79)\\d\\d00","1[127]\\d{8,9}|2\\d{9}(?:\\d{2})?|[12]\\d{6,7}|86\\d{6}|(?:1[03-689]\\d|6)\\d{7,9}|(?:[3-579]\\d|8[0-57-9])\\d{6,9}",[7,8,9,10,11,12],[["(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2[0-57-9])[19]","(?:10|2[0-57-9])(?:10|9[56])","(?:10|2[0-57-9])(?:100|9[56])"],"0$1"],["(\\d{3})(\\d{5,6})","$1 $2",["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]","(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]","85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])","85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["(?:4|80)0"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|2(?:[02-57-9]|1[1-9])","10|2(?:[02-57-9]|1[1-9])","10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"],"0$1",1],["(\\d{3})(\\d{7,8})","$1 $2",["9"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["80"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[3-578]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-9]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["[12]"],"0$1",1]],"0",0,"0|(1(?:[12]\\d|79)\\d\\d)",0,0,0,0,"00"],CO:["57","00(?:4(?:[14]4|56)|[579])","(?:1\\d|3)\\d{9}|[124-8]\\d{7}",[8,10,11],[["(\\d)(\\d{7})","$1 $2",["[14][2-9]|[25-8]"],"($1)"],["(\\d{3})(\\d{7})","$1 $2",["3"]],["(\\d)(\\d{3})(\\d{7})","$1-$2-$3",["1"],"0$1",0,"$1 $2 $3"]],"0",0,"0([3579]|4(?:[14]4|56))?"],CR:["506","00","(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}",[8,10],[["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[3-9]"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]"]]],0,0,"(19(?:0[0-2468]|1[09]|20|66|77|99))"],CU:["53","119","[27]\\d{6,7}|[34]\\d{5,7}|(?:5|8\\d\\d)\\d{7}",[6,7,8,10],[["(\\d{2})(\\d{4,6})","$1 $2",["2[1-4]|[34]"],"(0$1)"],["(\\d)(\\d{6,7})","$1 $2",["7"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["5"],"0$1"],["(\\d{3})(\\d{7})","$1 $2",["8"],"0$1"]],"0"],CV:["238","0","(?:[2-59]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2-589]"]]]],CW:["599","00","(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[3467]"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["9[4-8]"]]],0,0,0,0,0,"[69]"],CX:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d|8[0-24-9])\\d{7}|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10],0,"0",0,"0|([59]\\d{7})$","8$1",0,0,[["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|235)|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}",[9]],["4(?:83[0-38]|93[0-4])\\d{5}|4(?:[0-3]\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,0,["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{3}|45[0-4])\\d{3}|13\\d{4}",[6,8,10]]],"0011"],CY:["357","00","(?:[279]\\d|[58]0)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[257-9]"]]]],CZ:["420","00","(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]|9[015-7]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]]],DE:["49","00","[2579]\\d{5,14}|49(?:[05]\\d{10}|[46][1-8]\\d{4,9})|49(?:[0-25]\\d|3[1-689]|7[1-7])\\d{4,8}|49(?:[0-2579]\\d|[34][1-9]|6[0-8])\\d{3}|49\\d{3,4}|(?:1|[368]\\d|4[0-8])\\d{3,13}",[4,5,6,7,8,9,10,11,12,13,14,15],[["(\\d{2})(\\d{3,13})","$1 $2",["3[02]|40|[68]9"],"0$1"],["(\\d{3})(\\d{3,12})","$1 $2",["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1","2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"],"0$1"],["(\\d{4})(\\d{2,11})","$1 $2",["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]","[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["138"],"0$1"],["(\\d{5})(\\d{2,10})","$1 $2",["3"],"0$1"],["(\\d{3})(\\d{5,11})","$1 $2",["181"],"0$1"],["(\\d{3})(\\d)(\\d{4,10})","$1 $2 $3",["1(?:3|80)|9"],"0$1"],["(\\d{3})(\\d{7,8})","$1 $2",["1[67]"],"0$1"],["(\\d{3})(\\d{7,12})","$1 $2",["8"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["185","1850","18500"],"0$1"],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["18[68]"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["15[0568]"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["15[1279]"],"0$1"],["(\\d{3})(\\d{8})","$1 $2",["18"],"0$1"],["(\\d{3})(\\d{2})(\\d{7,8})","$1 $2 $3",["1(?:6[023]|7)"],"0$1"],["(\\d{4})(\\d{2})(\\d{7})","$1 $2 $3",["15[279]"],"0$1"],["(\\d{3})(\\d{2})(\\d{8})","$1 $2 $3",["15"],"0$1"]],"0"],DJ:["253","00","(?:2\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[27]"]]]],DK:["45","00","[2-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-9]"]]]],DM:["1","011","(?:[58]\\d\\d|767|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","767$1",0,"767"],DO:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,0,0,0,"8[024]9"],DZ:["213","00","(?:[1-4]|[5-79]\\d|80)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-8]"],"0$1"]],"0"],EC:["593","00","1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}",[8,9,10,11],[["(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-7]"],"(0$1)",0,"$1-$2-$3"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]]],"0"],EE:["372","00","8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88","[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]],["(\\d{4})(\\d{3,4})","$1 $2",["[45]|8(?:00|[1-49])","[45]|8(?:00[1-9]|[1-49])"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]]],EG:["20","00","[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}",[8,9,10],[["(\\d)(\\d{7,8})","$1 $2",["[23]"],"0$1"],["(\\d{2})(\\d{6,7})","$1 $2",["1[35]|[4-6]|8[2468]|9[235-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[189]"],"0$1"]],"0"],EH:["212","00","[5-8]\\d{8}",[9],0,"0",0,0,0,0,"528[89]"],ER:["291","00","[178]\\d{6}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[178]"],"0$1"]],"0"],ES:["34","00","[5-9]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]00"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-9]"]]]],ET:["251","00","(?:11|[2-59]\\d)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-59]"],"0$1"]],"0"],FI:["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}",[5,6,7,8,9,10,11,12],[["(\\d)(\\d{4,9})","$1 $2",["[2568][1-8]|3(?:0[1-9]|[1-9])|9"],"0$1"],["(\\d{3})(\\d{3,7})","$1 $2",["[12]00|[368]|70[07-9]"],"0$1"],["(\\d{2})(\\d{4,8})","$1 $2",["[1245]|7[135]"],"0$1"],["(\\d{2})(\\d{6,10})","$1 $2",["7"],"0$1"]],"0",0,0,0,0,"1[03-79]|[2-9]",0,"00"],FJ:["679","0(?:0|52)","45\\d{5}|(?:0800\\d|[235-9])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1 $2",["[235-9]|45"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]]],0,0,0,0,0,0,0,"00"],FK:["500","00","[2-7]\\d{4}",[5]],FM:["691","00","(?:[39]\\d\\d|820)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[389]"]]]],FO:["298","00","[2-9]\\d{5}",[6],[["(\\d{6})","$1",["[2-9]"]]],0,0,"(10(?:01|[12]0|88))"],FR:["33","00","[1-9]\\d{8}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"]],"0"],GA:["241","00","(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}",[7,8],[["(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-7]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["11|[67]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]]],0,0,"0(11\\d{6}|6[256]\\d{6}|7[47]\\d{6})","$1"],GB:["44","00","[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}",[7,9,10],[["(\\d{3})(\\d{4})","$1 $2",["800","8001","80011","800111","8001111"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["845","8454","84546","845464"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["800"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["1(?:38|5[23]|69|76|94)","1(?:(?:38|69)7|5(?:24|39)|768|946)","1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["1(?:[2-69][02-9]|[78])"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[25]|7(?:0|6[02-9])","[25]|7(?:0|6(?:[03-9]|2[356]))"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[1389]"],"0$1"]],"0",0,0,0,0,0,[["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[03])|(?:4[0-5]|5[0-26-9]|6[0-4]|[78][0-49])\\d\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[02]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}",[9,10]],["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}",[10]],["80[08]\\d{7}|800\\d{6}|8001111"],["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d",[7,10]],["70\\d{8}",[10]],0,["(?:3[0347]|55)\\d{8}",[10]],["76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\d{6}",[10]],["56\\d{8}",[10]]],0," x"],GD:["1","011","(?:473|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","473$1",0,"473"],GE:["995","00","(?:[3-57]\\d\\d|800)\\d{6}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["32"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[57]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[348]"],"0$1"]],"0"],GF:["594","00","(?:[56]94|976)\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"]],"0"],GG:["44","00","(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?",[7,9,10],0,"0",0,"0|([25-9]\\d{5})$","1481$1",0,0,[["1481[25-9]\\d{5}",[10]],["7(?:(?:781|839)\\d|911[17])\\d{5}",[10]],["80[08]\\d{7}|800\\d{6}|8001111"],["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d",[7,10]],["70\\d{8}",[10]],0,["(?:3[0347]|55)\\d{8}",[10]],["76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\d{6}",[10]],["56\\d{8}",[10]]]],GH:["233","00","(?:[235]\\d{3}|800)\\d{5}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"],"0$1"]],"0"],GI:["350","00","[256]\\d{7}",[8],[["(\\d{3})(\\d{5})","$1 $2",["2"]]]],GL:["299","00","(?:19|[2-689]\\d)\\d{4}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["19|[2-689]"]]]],GM:["220","00","[2-9]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]]],GN:["224","00","722\\d{6}|(?:3|6\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["3"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[67]"]]]],GP:["590","00","(?:590|69\\d|976)\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"]],"0",0,0,0,0,0,[["590(?:0[1-68]|1[0-2]|2[0-68]|3[1289]|4[0-24-9]|5[3-579]|6[0189]|7[08]|8[0-689]|9\\d)\\d{4}"],["69(?:0\\d\\d|1(?:2[29]|3[0-5]))\\d{4}"],0,0,0,0,0,0,["976[01]\\d{5}"]]],GQ:["240","00","222\\d{6}|(?:3\\d|55|[89]0)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235]"]],["(\\d{3})(\\d{6})","$1 $2",["[89]"]]]],GR:["30","00","5005000\\d{3}|(?:[2689]\\d|70)\\d{8}",[10],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["21|7"]],["(\\d{4})(\\d{6})","$1 $2",["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2689]"]]]],GT:["502","00","(?:1\\d{3}|[2-7])\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1 $2",["[2-7]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]]],GU:["1","011","(?:[58]\\d\\d|671|900)\\d{7}",[10],0,"1",0,"1|([3-9]\\d{6})$","671$1",0,"671"],GW:["245","00","[49]\\d{8}|4\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["40"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"]]]],GY:["592","001","(?:862\\d|9008)\\d{3}|(?:[2-46]\\d|77)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-46-9]"]]]],HK:["852","00(?:30|5[09]|[126-9]?)","8[0-46-9]\\d{6,7}|9\\d{4}(?:\\d(?:\\d(?:\\d{4})?)?)?|(?:[235-79]\\d|46)\\d{6}",[5,6,7,8,9,11],[["(\\d{3})(\\d{2,5})","$1 $2",["900","9003"]],["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],["(\\d{3})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],0,0,0,0,0,0,0,"00"],HN:["504","00","8\\d{10}|[237-9]\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1-$2",["[237-9]"]]]],HR:["385","00","(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}",[6,7,8,9],[["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["6[01]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{4})(\\d{3})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[67]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-5]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"]],"0"],HT:["509","00","[2-489]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[2-489]"]]]],HU:["36","00","[235-7]\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"06 $1"]],"06"],ID:["62","00[89]","(?:(?:00[1-9]|8\\d)\\d{4}|[1-36])\\d{6}|00\\d{10}|[1-9]\\d{8,10}|[2-9]\\d{7}",[7,8,9,10,11,12,13],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["15"]],["(\\d{2})(\\d{5,9})","$1 $2",["2[124]|[36]1"],"(0$1)"],["(\\d{3})(\\d{5,7})","$1 $2",["800"],"0$1"],["(\\d{3})(\\d{5,8})","$1 $2",["[2-79]"],"(0$1)"],["(\\d{3})(\\d{3,4})(\\d{3})","$1-$2-$3",["8[1-35-9]"],"0$1"],["(\\d{3})(\\d{6,8})","$1 $2",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["804"],"0$1"],["(\\d{3})(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4",["80"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["8"],"0$1"]],"0"],IE:["353","00","(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["2[24-9]|47|58|6[237-9]|9[35-9]"],"(0$1)"],["(\\d{3})(\\d{5})","$1 $2",["[45]0"],"(0$1)"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["1"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2569]|4[1-69]|7[14]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["81"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[78]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["4"],"(0$1)"],["(\\d{2})(\\d)(\\d{3})(\\d{4})","$1 $2 $3 $4",["8"],"0$1"]],"0"],IL:["972","0(?:0|1[2-9])","1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}",[7,8,9,10,11,12],[["(\\d{4})(\\d{3})","$1-$2",["125"]],["(\\d{4})(\\d{2})(\\d{2})","$1-$2-$3",["121"]],["(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-489]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1-$2-$3",["12"]],["(\\d{4})(\\d{6})","$1-$2",["159"]],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3-$4",["1[7-9]"]],["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})","$1-$2 $3-$4",["15"]]],"0"],IM:["44","00","1624\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"0|([5-8]\\d{5})$","1624$1",0,"74576|(?:16|7[56])24"],IN:["91","00","(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}",[8,9,10,11,12,13],[["(\\d{8})","$1",["5(?:0|2[23]|3[03]|[67]1|88)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"],0,1],["(\\d{4})(\\d{4,5})","$1 $2",["180","1800"],0,1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["140"],0,1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79[1-7]|80[2-46]","11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])","11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"],"0$1",1],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807","1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]","1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"],"0$1",1],["(\\d{5})(\\d{5})","$1 $2",["[6-9]"],"0$1",1],["(\\d{4})(\\d{2,4})(\\d{4})","$1 $2 $3",["1(?:6|8[06])","1(?:6|8[06]0)"],0,1],["(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["18"],0,1]],"0"],IO:["246","00","3\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["3"]]]],IQ:["964","00","(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-6]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"]],"0"],IR:["98","00","[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}",[4,5,6,7,10],[["(\\d{4,5})","$1",["96"],"0$1"],["(\\d{2})(\\d{4,5})","$1 $2",["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[1-8]"],"0$1"]],"0"],IS:["354","00|1(?:0(?:01|[12]0)|100)","(?:38\\d|[4-9])\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["[4-9]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["3"]]],0,0,0,0,0,0,0,"00"],IT:["39","00","0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",[6,7,8,9,10,11],[["(\\d{2})(\\d{4,6})","$1 $2",["0[26]"]],["(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[245])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))"]],["(\\d{4})(\\d{2,6})","$1 $2",["0(?:[13-579][2-46-8]|8[236-8])"]],["(\\d{4})(\\d{4})","$1 $2",["894"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|5"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["1[4679]|[38]"]],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]"]],["(\\d{2})(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["3"]]],0,0,0,0,0,0,[["0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}"],["3[1-9]\\d{8}|3[2-9]\\d{7}",[9,10]],["80(?:0\\d{3}|3)\\d{3}",[6,9]],["(?:0878\\d\\d|89(?:2|4[5-9]\\d))\\d{3}|89[45][0-4]\\d\\d|(?:1(?:44|6[346])|89(?:5[5-9]|9))\\d{6}",[6,8,9,10]],["1(?:78\\d|99)\\d{6}",[9,10]],0,0,0,["55\\d{8}",[10]],["84(?:[08]\\d{3}|[17])\\d{3}",[6,9]]]],JE:["44","00","1534\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"0|([0-24-8]\\d{5})$","1534$1",0,0,[["1534[0-24-8]\\d{5}"],["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97[7-9]))\\d{5}"],["80(?:07(?:35|81)|8901)\\d{4}"],["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"],["701511\\d{4}"],0,["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"],["76(?:464|652)\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\d{6}"],["56\\d{8}"]]],JM:["1","011","(?:[58]\\d\\d|658|900)\\d{7}",[10],0,"1",0,0,0,0,"658|876"],JO:["962","00","(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]|87"],"(0$1)"],["(\\d{3})(\\d{5,6})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["70"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"]],"0"],JP:["81","010","00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}",[8,9,10,11,12,13,14,15,16,17],[["(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],["(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["[36]|4(?:2[09]|7[01])","[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"],"0$1"],["(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["[14]|[289][2-9]|5[3-9]|7[2-4679]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[257-9]"],"0$1"]],"0"],KE:["254","000","(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}",[7,8,9,10],[["(\\d{2})(\\d{5,7})","$1 $2",["[24-6]"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[17]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0"],KG:["996","00","8\\d{9}|(?:[235-8]\\d|99)\\d{7}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["3(?:1[346]|[24-79])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235-79]|88"],"0$1"],["(\\d{3})(\\d{3})(\\d)(\\d{2,3})","$1 $2 $3 $4",["8"],"0$1"]],"0"],KH:["855","00[14-9]","1\\d{9}|[1-9]\\d{7,8}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0"],KI:["686","00","(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}",[5,8],0,"0"],KM:["269","00","[3478]\\d{6}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[3478]"]]]],KN:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","869$1",0,"869"],KP:["850","00|99","85\\d{6}|(?:19\\d|[2-7])\\d{7}",[8,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"]],"0"],KR:["82","00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))","00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}",[5,6,8,9,10,11,12,13,14],[["(\\d{2})(\\d{3,4})","$1-$2",["(?:3[1-3]|[46][1-4]|5[1-5])1"],"0$1"],["(\\d{4})(\\d{4})","$1-$2",["1"]],["(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60|8"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["[1346]|5[1-5]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{2})(\\d{5})(\\d{4})","$1-$2-$3",["5"],"0$1"]],"0",0,"0(8(?:[1-46-8]|5\\d\\d))?"],KW:["965","00","(?:18|[2569]\\d\\d)\\d{5}",[7,8],[["(\\d{4})(\\d{3,4})","$1 $2",["[169]|2(?:[235]|4[1-35-9])|52"]],["(\\d{3})(\\d{5})","$1 $2",["[25]"]]]],KY:["1","011","(?:345|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","345$1",0,"345"],KZ:["7","810","33622\\d{5}|(?:7\\d|80)\\d{8}",[10],0,"8",0,0,0,0,"33|7",0,"8~10"],LA:["856","00","[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2[13]|3[14]|[4-8]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["30[013-9]"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[23]"],"0$1"]],"0"],LB:["961","00","[7-9]\\d{7}|[13-9]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"]]],"0"],LC:["1","011","(?:[58]\\d\\d|758|900)\\d{7}",[10],0,"1",0,"1|([2-8]\\d{6})$","758$1",0,"758"],LI:["423","00","90\\d{5}|(?:[2378]|6\\d\\d)\\d{6}",[7,9],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[237-9]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["69"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],"0",0,"0|(1001)"],LK:["94","00","[1-9]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[1-689]"],"0$1"]],"0"],LR:["231","00","(?:2|33|5\\d|77|88)\\d{7}|[4-6]\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[4-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3578]"],"0$1"]],"0"],LS:["266","00","(?:[256]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2568]"]]]],LT:["370","00","(?:[3469]\\d|52|[78]0)\\d{6}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["52[0-7]"],"(8-$1)",1],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[7-9]"],"8 $1",1],["(\\d{2})(\\d{6})","$1 $2",["37|4(?:[15]|6[1-8])"],"(8-$1)",1],["(\\d{3})(\\d{5})","$1 $2",["[3-6]"],"(8-$1)",1]],"8",0,"[08]"],LU:["352","00","35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}",[4,5,6,7,8,9,10,11],[["(\\d{2})(\\d{3})","$1 $2",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["20[2-689]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4",["2(?:[0367]|4[3-8])"]],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["80[01]|90[015]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["20"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4 $5",["2(?:[0367]|4[3-8])"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})","$1 $2 $3 $4",["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]]],0,0,"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)"],LV:["371","00","(?:[268]\\d|90)\\d{6}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[269]|8[01]"]]]],LY:["218","00","[2-9]\\d{8}",[9],[["(\\d{2})(\\d{7})","$1-$2",["[2-9]"],"0$1"]],"0"],MA:["212","00","[5-8]\\d{8}",[9],[["(\\d{5})(\\d{4})","$1-$2",["5(?:29|38)","5(?:29|38)[89]","5(?:29|38)[89]0"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5[45]"],"0$1"],["(\\d{4})(\\d{5})","$1-$2",["5(?:2[2-489]|3[5-9]|9)|892","5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892"],"0$1"],["(\\d{2})(\\d{7})","$1-$2",["8"],"0$1"],["(\\d{3})(\\d{6})","$1-$2",["[5-7]"],"0$1"]],"0",0,0,0,0,0,[["5(?:29(?:[189][05]|2[29]|3[01])|38[89][05])\\d{4}|5(?:2(?:[015-7]\\d|2[02-9]|3[0-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\d|5[02-9]|6[02-8]|80|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"],["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:0[0-8]|6[1267]|7[0-37]))\\d{6}"],["80\\d{7}"],["89\\d{7}"],0,0,0,0,["592(?:4[0-2]|93)\\d{4}"]]],MC:["377","00","870\\d{5}|(?:[349]|6\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[39]"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["6"],"0$1"]],"0"],MD:["373","00","(?:[235-7]\\d|[89]0)\\d{6}",[8],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["22|3"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[25-7]"],"0$1"]],"0"],ME:["382","00","(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"0$1"]],"0"],MF:["590","00","(?:590|69\\d|976)\\d{6}",[9],0,"0",0,0,0,0,0,[["590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\d{4}"],["69(?:0\\d\\d|1(?:2[29]|3[0-5]))\\d{4}"],0,0,0,0,0,0,["976[01]\\d{5}"]]],MG:["261","00","[23]\\d{8}",[9],[["(\\d{2})(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3 $4",["[23]"],"0$1"]],"0",0,"0|([24-9]\\d{6})$","20$1"],MH:["692","011","329\\d{4}|(?:[256]\\d|45)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1-$2",["[2-6]"]]],"1"],MK:["389","00","[2-578]\\d{7}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[347]"],"0$1"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["[58]"],"0$1"]],"0"],ML:["223","00","[24-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-9]"]]]],MM:["95","00","1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}",[6,7,8,9,10],[["(\\d)(\\d{2})(\\d{3})","$1 $2 $3",["16|2"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[4-7]|8[1-35]"],"0$1"],["(\\d)(\\d{3})(\\d{4,6})","$1 $2 $3",["9(?:2[0-4]|[35-9]|4[137-9])"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["92"],"0$1"],["(\\d)(\\d{5})(\\d{4})","$1 $2 $3",["9"],"0$1"]],"0"],MN:["976","001","[12]\\d{7,9}|[57-9]\\d{7}",[8,9,10],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[12]1"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[57-9]"]],["(\\d{3})(\\d{5,6})","$1 $2",["[12]2[1-3]"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["[12](?:27|3[2-8]|4[2-68]|5[1-4689])","[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["[12]"],"0$1"]],"0"],MO:["853","00","(?:28|[68]\\d)\\d{6}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[268]"]]]],MP:["1","011","[58]\\d{9}|(?:67|90)0\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","670$1",0,"670"],MQ:["596","00","69\\d{7}|(?:59|97)6\\d{6}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[569]"],"0$1"]],"0"],MR:["222","00","(?:[2-4]\\d\\d|800)\\d{5}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-48]"]]]],MS:["1","011","(?:[58]\\d\\d|664|900)\\d{7}",[10],0,"1",0,"1|([34]\\d{6})$","664$1",0,"664"],MT:["356","00","3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2357-9]"]]]],MU:["230","0(?:0|[24-7]0|3[03])","(?:[2-468]|5\\d)\\d{6}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[2-46]|8[013]"]],["(\\d{4})(\\d{4})","$1 $2",["5"]]],0,0,0,0,0,0,0,"020"],MV:["960","0(?:0|19)","(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}",[7,10],[["(\\d{3})(\\d{4})","$1-$2",["[3467]|9[13-9]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"]]],0,0,0,0,0,0,0,"00"],MW:["265","00","1\\d{6}(?:\\d{2})?|(?:[23]1|77|88|99)\\d{7}",[7,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["1[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[137-9]"],"0$1"]],"0"],MX:["52","0[09]","(?:1(?:[01467]\\d|[2359][1-9]|8[1-79])|[2-9]\\d)\\d{8}",[10,11],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|5[56]|81"],0,1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2-9]"],0,1],["(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 $3 $4",["1(?:33|5[56]|81)"],0,1],["(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 $3 $4",["1"],0,1]],"01",0,"0(?:[12]|4[45])|1",0,0,0,0,"00"],MY:["60","00","1\\d{8,9}|(?:3\\d|[4-9])\\d{7}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["[4-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1-$2 $3",["1(?:[02469]|[378][1-9])|8"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2 $3",["3"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3-$4",["1[36-8]"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2 $3",["15"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2 $3",["1"],"0$1"]],"0"],MZ:["258","00","(?:2|8\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[2-79]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]]],NA:["264","00","[68]\\d{7,8}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["87"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0"],NC:["687","00","[2-57-9]\\d{5}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",["[2-57-9]"]]]],NE:["227","00","[027-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["08"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[089]|2[013]|7[04]"]]]],NF:["672","00","[13]\\d{5}",[6],[["(\\d{2})(\\d{4})","$1 $2",["1[0-3]"]],["(\\d)(\\d{5})","$1 $2",["[13]"]]],0,0,"([0-258]\\d{4})$","3$1"],NG:["234","009","(?:[124-7]|9\\d{3})\\d{6}|[1-9]\\d{7}|[78]\\d{9,13}",[7,8,10,11,12,13,14],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["78"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]|9(?:0[3-9]|[1-9])"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[3-7]|8[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[7-9]"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["[78]"],"0$1"],["(\\d{3})(\\d{5})(\\d{5,6})","$1 $2 $3",["[78]"],"0$1"]],"0"],NI:["505","00","(?:1800|[25-8]\\d{3})\\d{4}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[125-8]"]]]],NL:["31","00","(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|[89]\\d{6,9}|1\\d{4,5}",[5,6,7,8,9,10],[["(\\d{3})(\\d{4,7})","$1 $2",["[89]0"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["66"],"0$1"],["(\\d)(\\d{8})","$1 $2",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-57-9]"],"0$1"]],"0"],NO:["47","00","(?:0|[2-9]\\d{3})\\d{4}",[5,8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[489]|5[89]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[235-7]"]]],0,0,0,0,0,"[02-689]|7[0-8]"],NP:["977","00","(?:1\\d|9)\\d{9}|[1-9]\\d{7}",[8,10,11],[["(\\d)(\\d{7})","$1-$2",["1[2-6]"],"0$1"],["(\\d{2})(\\d{6})","$1-$2",["1[01]|[2-8]|9(?:[1-579]|6[2-6])"],"0$1"],["(\\d{3})(\\d{7})","$1-$2",["9"]]],"0"],NR:["674","00","(?:444|(?:55|8\\d)\\d|666)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[4-68]"]]]],NU:["683","00","(?:[47]|888\\d)\\d{3}",[4,7],[["(\\d{3})(\\d{4})","$1 $2",["8"]]]],NZ:["64","0(?:0|161)","[29]\\d{7,9}|50\\d{5}(?:\\d{2,3})?|6[0-35-9]\\d{6}|7\\d{7,8}|8\\d{4,9}|(?:11\\d|[34])\\d{7}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,8})","$1 $2",["8[1-579]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["50[036-8]|[89]0","50(?:[0367]|88)|[89]0"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["24|[346]|7[2-57-9]|9[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:10|74)|[59]|80"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["1|2[028]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,5})","$1 $2 $3",["2(?:[169]|7[0-35-9])|7|86"],"0$1"]],"0",0,0,0,0,0,0,"00"],OM:["968","00","(?:1505|[279]\\d{3}|500)\\d{4}|8007\\d{4,5}",[7,8,9],[["(\\d{3})(\\d{4,6})","$1 $2",["[58]"]],["(\\d{2})(\\d{6})","$1 $2",["2"]],["(\\d{4})(\\d{4})","$1 $2",["[179]"]]]],PA:["507","00","8\\d{9}|[68]\\d{7}|[1-57-9]\\d{6}",[7,8,10],[["(\\d{3})(\\d{4})","$1-$2",["[1-57-9]"]],["(\\d{4})(\\d{4})","$1-$2",["[68]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]]],PE:["51","19(?:1[124]|77|90)00","(?:[14-8]|9\\d)\\d{7}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["80"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["1"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[4-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"]]],"0",0,0,0,0,0,0,0," Anexo "],PF:["689","00","[48]\\d{7}|4\\d{5}",[6,8],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["44"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[48]"]]]],PG:["675","00|140[1-3]","(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["18|[2-69]|85"]],["(\\d{4})(\\d{4})","$1 $2",["[78]"]]],0,0,0,0,0,0,0,"00"],PH:["63","00","1800\\d{7,9}|(?:2|[89]\\d{4})\\d{5}|[2-8]\\d{8}|[28]\\d{7}",[6,8,9,10,11,12,13],[["(\\d)(\\d{5})","$1 $2",["2"],"(0$1)"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"(0$1)"],["(\\d{4})(\\d{4,6})","$1 $2",["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2","3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"],"(0$1)"],["(\\d{5})(\\d{4})","$1 $2",["346|4(?:27|9[35])|883","3469|4(?:279|9(?:30|56))|8834"],"(0$1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|8[2-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1"]]],"0"],PK:["92","00","122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}",[8,9,10,11,12],[["(\\d{3})(\\d{3})(\\d{2,7})","$1 $2 $3",["[89]0"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["1"]],["(\\d{3})(\\d{6,7})","$1 $2",["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])","9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"],"(0$1)"],["(\\d{2})(\\d{7,8})","$1 $2",["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"],"(0$1)"],["(\\d{5})(\\d{5})","$1 $2",["58"],"(0$1)"],["(\\d{3})(\\d{7})","$1 $2",["3"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[24-9]"],"(0$1)"]],"0"],PL:["48","00","6\\d{5}(?:\\d{2})?|8\\d{9}|[1-9]\\d{6}(?:\\d{2})?",[6,7,8,9,10],[["(\\d{5})","$1",["19"]],["(\\d{3})(\\d{3})","$1 $2",["11|64"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1","(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["64"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[2-8]|[2-7]|8[1-79]|9[145]"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["8"]]]],PM:["508","00","[45]\\d{5}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[45]"],"0$1"]],"0"],PR:["1","011","(?:[589]\\d\\d|787)\\d{7}",[10],0,"1",0,0,0,0,"787|939"],PS:["970","00","[2489]2\\d{6}|(?:1\\d|5)\\d{8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2489]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["5"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0"],PT:["351","00","(?:[26-9]\\d|30)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["2[12]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[236-9]"]]]],PW:["680","01[12]","(?:[24-8]\\d\\d|345|900)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]]],PY:["595","00","59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3,6})","$1 $2",["[2-9]0"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"],"(0$1)"],["(\\d{3})(\\d{4,5})","$1 $2",["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["87"]],["(\\d{3})(\\d{6})","$1 $2",["9(?:[5-79]|8[1-6])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["9"]]],"0"],QA:["974","00","[2-7]\\d{7}|(?:2\\d\\d|800)\\d{4}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["2[126]|8"]],["(\\d{4})(\\d{4})","$1 $2",["[2-7]"]]]],RE:["262","00","9769\\d{5}|(?:26|[68]\\d)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2689]"],"0$1"]],"0",0,0,0,0,"26[23]|69|[89]"],RO:["40","00","(?:[237]\\d|[89]0)\\d{7}|[23]\\d{5}",[6,9],[["(\\d{3})(\\d{3})","$1 $2",["2[3-6]","2[3-6]\\d9"],"0$1"],["(\\d{2})(\\d{4})","$1 $2",["219|31"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23]1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[237-9]"],"0$1"]],"0",0,0,0,0,0,0,0," int "],RS:["381","00","38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}",[6,7,8,9,10,11,12],[["(\\d{3})(\\d{3,9})","$1 $2",["(?:2[389]|39)0|[7-9]"],"0$1"],["(\\d{2})(\\d{5,10})","$1 $2",["[1-36]"],"0$1"]],"0"],RU:["7","810","[347-9]\\d{9}",[10],[["(\\d{4})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-8]|2[1-9])","7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))","7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"],"8 ($1)",1],["(\\d{5})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-68]|2[1-9])","7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))","7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[3489]"],"8 ($1)",1]],"8",0,0,0,0,"3[04-689]|[489]",0,"8~10"],RW:["250","00","(?:06|[27]\\d\\d|[89]00)\\d{6}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"]]],"0"],SA:["966","00","92\\d{7}|(?:[15]|8\\d)\\d{8}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["9"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["81"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],"0"],SB:["677","0[01]","(?:[1-6]|[7-9]\\d\\d)\\d{4}",[5,7],[["(\\d{2})(\\d{5})","$1 $2",["7|8[4-9]|9(?:[1-8]|9[0-8])"]]]],SC:["248","010|0[0-2]","8000\\d{3}|(?:[249]\\d|64)\\d{5}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[246]|9[57]"]]],0,0,0,0,0,0,0,"00"],SD:["249","00","[19]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[19]"],"0$1"]],"0"],SE:["46","00","(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}",[6,7,8,9,10],[["(\\d{2})(\\d{2,3})(\\d{2})","$1-$2 $3",["20"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{4})","$1-$2",["9(?:00|39|44)"],"0$1",0,"$1 $2"],["(\\d{2})(\\d{3})(\\d{2})","$1-$2 $3",["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3"],["(\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2,3})(\\d{2})","$1-$2 $3",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{2,3})(\\d{3})","$1-$2 $3",["9(?:00|39|44)"],"0$1",0,"$1 $2 $3"],["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3 $4"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["10|7"],"0$1",0,"$1 $2 $3 $4"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1-$2 $3 $4",["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{3})","$1-$2 $3 $4",["9"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4 $5",["[26]"],"0$1",0,"$1 $2 $3 $4 $5"]],"0"],SG:["65","0[0-3]\\d","(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}",[8,10,11],[["(\\d{4})(\\d{4})","$1 $2",["[369]|8(?:0[1-3]|[1-9])"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]],["(\\d{4})(\\d{4})(\\d{3})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]]],SH:["290","00","(?:[256]\\d|8)\\d{3}",[4,5],0,0,0,0,0,0,"[256]"],SI:["386","00|10(?:22|66|88|99)","[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}",[5,6,7,8],[["(\\d{2})(\\d{3,6})","$1 $2",["8[09]|9"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["59|8"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37][01]|4[0139]|51|6"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-57]"],"(0$1)"]],"0",0,0,0,0,0,0,"00"],SJ:["47","00","0\\d{4}|(?:[4589]\\d|79)\\d{6}",[5,8],0,0,0,0,0,0,"79"],SK:["421","00","[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}",[6,7,9],[["(\\d)(\\d{2})(\\d{3,4})","$1 $2 $3",["21"],"0$1"],["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["[3-5][1-8]1","[3-5][1-8]1[67]"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[689]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4",["[3-5]"],"0$1"]],"0"],SL:["232","00","(?:[2378]\\d|66|99)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[236-9]"],"(0$1)"]],"0"],SM:["378","00","(?:0549|[5-7]\\d)\\d{6}",[8,10],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],["(\\d{4})(\\d{6})","$1 $2",["0"]]],0,0,"([89]\\d{5})$","0549$1"],SN:["221","00","(?:[378]\\d{4}|93330)\\d{4}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[379]"]]]],SO:["252","00","[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}",[6,7,8,9],[["(\\d{2})(\\d{4})","$1 $2",["8[125]"]],["(\\d{6})","$1",["[134]"]],["(\\d)(\\d{6})","$1 $2",["[15]|2[0-79]|3[0-46-8]|4[0-7]"]],["(\\d)(\\d{7})","$1 $2",["24|[67]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[3478]|64|90"]],["(\\d{2})(\\d{5,7})","$1 $2",["1|28|6[1-35-9]|9[2-9]"]]],"0"],SR:["597","00","(?:[2-5]|68|[78]\\d)\\d{5}",[6,7],[["(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3",["56"]],["(\\d{3})(\\d{3})","$1-$2",["[2-5]"]],["(\\d{3})(\\d{4})","$1-$2",["[6-8]"]]]],SS:["211","00","[19]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[19]"],"0$1"]],"0"],ST:["239","00","(?:22|9\\d)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[29]"]]]],SV:["503","00","[267]\\d{7}|[89]00\\d{4}(?:\\d{4})?",[7,8,11],[["(\\d{3})(\\d{4})","$1 $2",["[89]"]],["(\\d{4})(\\d{4})","$1 $2",["[267]"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[89]"]]]],SX:["1","011","7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|(5\\d{6})$","721$1",0,"721"],SY:["963","00","[1-39]\\d{8}|[1-5]\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-5]"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1",1]],"0"],SZ:["268","00","0800\\d{4}|(?:[237]\\d|900)\\d{6}",[8,9],[["(\\d{4})(\\d{4})","$1 $2",["[0237]"]],["(\\d{5})(\\d{4})","$1 $2",["9"]]]],TA:["290","00","8\\d{3}",[4],0,0,0,0,0,0,"8"],TC:["1","011","(?:[58]\\d\\d|649|900)\\d{7}",[10],0,"1",0,"1|([2-479]\\d{6})$","649$1",0,"649"],TD:["235","00|16","(?:22|[69]\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2679]"]]],0,0,0,0,0,0,0,"00"],TG:["228","00","[279]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[279]"]]]],TH:["66","00[1-9]","1\\d{9}|[1689]\\d{8}|[1-57]\\d{7}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0"],TJ:["992","810","(?:[02]0|11|[3-57-9]\\d)\\d{7}",[9],[["(\\d{6})(\\d)(\\d{2})","$1 $2 $3",["331","3317"],0,1],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[34]7|91[78]"],0,1],["(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["3"],0,1],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[02457-9]|11"],0,1]],"8",0,0,0,0,0,0,"8~10"],TK:["690","00","[2-47]\\d{3,6}",[4,5,6,7]],TL:["670","00","7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[2-489]|70"]],["(\\d{4})(\\d{4})","$1 $2",["7"]]]],TM:["993","810","[1-6]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["12"],"(8 $1)"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-5]"],"(8 $1)"],["(\\d{2})(\\d{6})","$1 $2",["6"],"8 $1"]],"8",0,0,0,0,0,0,"8~10"],TN:["216","00","[2-57-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-57-9]"]]]],TO:["676","00","(?:0800|[5-8]\\d{3})\\d{3}|[2-8]\\d{4}",[5,7],[["(\\d{2})(\\d{3})","$1-$2",["[2-4]|50|6[09]|7[0-24-69]|8[05]"]],["(\\d{4})(\\d{3})","$1 $2",["0"]],["(\\d{3})(\\d{4})","$1 $2",["[5-8]"]]]],TR:["90","00","4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}",[7,10,12,13],[["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["512|8[0589]|90"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5(?:[0-59]|61)","5(?:[0-59]|616)","5(?:[0-59]|6161)"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24][1-8]|3[1-9]"],"(0$1)",1],["(\\d{3})(\\d{3})(\\d{6,7})","$1 $2 $3",["80"],"0$1",1]],"0"],TT:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-46-8]\\d{6})$","868$1",0,"868"],TV:["688","00","(?:2|7\\d\\d|90)\\d{4}",[5,6,7],[["(\\d{2})(\\d{3})","$1 $2",["2"]],["(\\d{2})(\\d{4})","$1 $2",["90"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]]],TW:["886","0(?:0[25-79]|19)","[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}",[7,8,9,10,11],[["(\\d{2})(\\d)(\\d{4})","$1 $2 $3",["202"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[258]0"],"0$1"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]","[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,5})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,0,0,"#"],TZ:["255","00[056]","(?:[26-8]\\d|41|90)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[24]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[67]"],"0$1"]],"0"],UA:["380","00","[89]\\d{9}|[3-9]\\d{8}",[9,10],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]","6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["4[45][0-5]|5(?:0|6[37])|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]","4[45][0-5]|5(?:0|6(?:3[14-7]|7))|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["[3-6]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0",0,0,0,0,0,0,"0~0"],UG:["256","00[057]","800\\d{6}|(?:[29]0|[347]\\d)\\d{7}",[9],[["(\\d{4})(\\d{5})","$1 $2",["202","2024"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[27-9]|4(?:6[45]|[7-9])"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[34]"],"0$1"]],"0"],US:["1","011","[2-9]\\d{9}",[10],[["(\\d{3})(\\d{3})(\\d{4})","($1) $2-$3",["[2-9]"],0,1,"$1-$2-$3"]],"1",0,0,0,0,0,[["(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-289]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[0179]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}"],[""],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\d{6}"]]],UY:["598","0(?:0|1[3-9]\\d)","4\\d{9}|[249]\\d{7}|(?:[49]\\d|80)\\d{5}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["405|8|90"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[24]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["4"],"0$1"]],"0",0,0,0,0,0,0,"00"," int. "],UZ:["998","810","55501\\d{4}|(?:33|[679]\\d|88)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[35-9]"],"8 $1"]],"8",0,0,0,0,0,0,"8~10"],VA:["39","00","0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",[6,7,8,9,10,11],0,0,0,0,0,0,"06698"],VC:["1","011","(?:[58]\\d\\d|784|900)\\d{7}",[10],0,"1",0,"1|([2-7]\\d{6})$","784$1",0,"784"],VE:["58","00","[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}",[10],[["(\\d{3})(\\d{7})","$1-$2",["[24-689]"],"0$1"]],"0"],VG:["1","011","(?:284|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"1|([2-578]\\d{6})$","284$1",0,"284"],VI:["1","011","[58]\\d{9}|(?:34|90)0\\d{7}",[10],0,"1",0,"1|([2-9]\\d{6})$","340$1",0,"340"],VN:["84","00","[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["80"],"0$1",1],["(\\d{4})(\\d{4,6})","$1 $2",["1"],0,1],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[69]"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[3578]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2[48]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["2"],"0$1",1]],"0"],VU:["678","00","(?:[23]\\d|[48]8)\\d{3}|(?:[57]\\d|90)\\d{5}",[5,7],[["(\\d{3})(\\d{4})","$1 $2",["[579]"]]]],WF:["681","00","(?:[45]0|68|72|8\\d)\\d{4}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[4-8]"]]]],WS:["685","0","(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}",[5,6,7,10],[["(\\d{5})","$1",["[2-5]|6[1-9]"]],["(\\d{3})(\\d{3,7})","$1 $2",["[68]"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]]],XK:["383","00","[23]\\d{7,8}|(?:4\\d\\d|[89]00)\\d{5}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[23]"],"0$1"]],"0"],YE:["967","00","(?:1|7\\d)\\d{7}|[1-7]\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-6]|7[24-68]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"],"0$1"]],"0"],YT:["262","00","80\\d{7}|(?:26|63)9\\d{6}",[9],0,"0",0,0,0,0,"269|63"],ZA:["27","00","[1-79]\\d{8}|8\\d{4,9}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,4})","$1 $2",["8[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["8[1-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["860"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0"],ZM:["260","00","(?:63|80)0\\d{6}|(?:21|[79]\\d)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[28]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[79]"],"0$1"]],"0"],ZW:["263","00","2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}",[5,6,7,8,9,10],[["(\\d{3})(\\d{3,5})","$1 $2",["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"],"0$1"],["(\\d)(\\d{3})(\\d{2,4})","$1 $2 $3",["[49]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["80"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2","2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)","2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["29[013-9]|39|54"],"0$1"],["(\\d{4})(\\d{3,5})","$1 $2",["(?:25|54)8","258|5483"],"0$1"]],"0"]},nonGeographic:{800:["800",0,"[1-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[1-9]"]]],0,0,0,0,0,0,[0,0,["[1-9]\\d{7}"]]],808:["808",0,"[1-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[1-9]"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,["[1-9]\\d{7}"]]],870:["870",0,"[35-7]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[35-7]"]]],0,0,0,0,0,0,[0,["(?:[356]\\d|7[6-8])\\d{7}"]]],878:["878",0,"10\\d{10}",[12],[["(\\d{2})(\\d{5})(\\d{5})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["10\\d{10}"]]],881:["881",0,"[0-36-9]\\d{8}",[9],[["(\\d)(\\d{3})(\\d{5})","$1 $2 $3",["[0-36-9]"]]],0,0,0,0,0,0,[0,["[0-36-9]\\d{8}"]]],882:["882",0,"[13]\\d{6}(?:\\d{2,5})?|285\\d{9}|[19]\\d{7}",[7,8,9,10,11,12],[["(\\d{2})(\\d{5})","$1 $2",["16|342"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[19]"]],["(\\d{2})(\\d{4})(\\d{3})","$1 $2 $3",["3[23]"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["1"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["34[57]"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["34"]],["(\\d{2})(\\d{4,5})(\\d{5})","$1 $2 $3",["[1-3]"]]],0,0,0,0,0,0,[0,["3(?:37\\d\\d|42)\\d{4}|3(?:2|47|7\\d{3})\\d{7}",[7,9,10,12]],0,0,0,0,0,0,["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:(?:285\\d\\d|3(?:45|[69]\\d{3}))\\d|9[89])\\d{6}"]]],883:["883",0,"51\\d{7}(?:\\d{3})?",[9,12],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["510"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["510"]],["(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3",["5"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["51[013]0\\d{8}|5100\\d{5}"]]],888:["888",0,"\\d{11}",[11],[["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3"]],0,0,0,0,0,0,[0,0,0,0,0,0,["\\d{11}"]]],979:["979",0,"[1359]\\d{8}",[9],[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[1359]"]]],0,0,0,0,0,0,[0,0,0,["[1359]\\d{8}"]]]}};function xn(t,e){var n=Array.prototype.slice.call(e);return n.push(Pn),t.apply(this,n)}var Tn=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.name=this.constructor.name,this.message=e,this.stack=new Error(e).stack};(Tn.prototype=Object.create(Error.prototype)).constructor=Tn;var Rn="0-90-9٠-٩۰-۹",Ln="".concat("-‐-―−ー-").concat("//").concat("..").concat("  ­​⁠ ").concat("()()[]\\[\\]").concat("~⁓∼~");function Fn(t,e){t=t.split("-"),e=e.split("-");for(var n=t[0].split("."),r=e[0].split("."),d=0;d<3;d++){var a=Number(n[d]),i=Number(r[d]);if(a>i)return 1;if(i>a)return-1;if(!isNaN(a)&&isNaN(i))return 1;if(isNaN(a)&&!isNaN(i))return-1}return t[1]&&e[1]?t[1]>e[1]?1:t[1]=2&&er.test(t)}var rr=new RegExp("(?:"+Qn()+")$","i");var dr={0:"0",1:"1",2:"2",3:"3",4:"4",5:"5",6:"6",7:"7",8:"8",9:"9","0":"0","1":"1","2":"2","3":"3","4":"4","5":"5","6":"6","7":"7","8":"8","9":"9","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9"};function ar(t){var e="",n=t.split(""),r=Array.isArray(n),d=0;for(n=r?n:n[Symbol.iterator]();;){var a;if(r){if(d>=n.length)break;a=n[d++]}else{if((d=n.next()).done)break;a=d.value}e+=ir(a,e)||""}return e}function ir(t,e){if("+"===t){if(e)return;return"+"}return function(t){return dr[t]}(t)}function or(t,e){return function t(e,n,r){var d=r.type(n),a=d&&d.possibleLengths()||r.possibleLengths();if(!a)return"IS_POSSIBLE";if("FIXED_LINE_OR_MOBILE"===n){if(!r.type("FIXED_LINE"))return t(e,"MOBILE",r);var i=r.type("MOBILE");i&&(a=function(t,e){var n=t.slice(),r=e,d=Array.isArray(r),a=0;for(r=d?r:r[Symbol.iterator]();;){var i;if(d){if(a>=r.length)break;i=r[a++]}else{if((a=r.next()).done)break;i=a.value}var o=i;t.indexOf(o)<0&&n.push(o)}return n.sort((function(t,e){return t-e}))}(a,i.possibleLengths()))}else if(n&&!d)return"INVALID_LENGTH";var o=e.length,u=a[0];if(u===o)return"IS_POSSIBLE";if(u>o)return"TOO_SHORT";if(a[a.length-1]=0?"IS_POSSIBLE":"INVALID_LENGTH"}(t,void 0,e)}function ur(t,e){switch(or(t,e)){case"IS_POSSIBLE":return!0;default:return!1}}function sr(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=[],r=!0,d=!1,a=void 0;try{for(var i,o=t[Symbol.iterator]();!(r=(i=o.next()).done)&&(n.push(i.value),!e||n.length!==e);r=!0);}catch(t){d=!0,a=t}finally{try{r||null==o.return||o.return()}finally{if(d)throw a}}return n}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function $r(t,e){return t=t||"",new RegExp("^(?:"+e+")$").test(t)}var lr=["MOBILE","PREMIUM_RATE","TOLL_FREE","SHARED_COST","VOIP","PERSONAL_NUMBER","PAGER","UAN","VOICEMAIL"];function fr(t,e,n){if(e=e||{},t.country){(n=new jn(n)).selectNumberingPlan(t.country,t.countryCallingCode);var r=e.v2?t.nationalNumber:t.phone;if($r(r,n.nationalNumberPattern())){if(cr(r,"FIXED_LINE",n))return n.type("MOBILE")&&""===n.type("MOBILE").pattern()?"FIXED_LINE_OR_MOBILE":n.type("MOBILE")?cr(r,"MOBILE",n)?"FIXED_LINE_OR_MOBILE":"FIXED_LINE":"FIXED_LINE_OR_MOBILE";for(var d=0,a=lr;d=n.length)break;a=n[d++]}else{if((d=n.next()).done)break;a=d.value}var i=a;if(i.leadingDigitsPatterns().length>0){var o=i.leadingDigitsPatterns()[i.leadingDigitsPatterns().length-1];if(0!==e.search(o))continue}if($r(e,i.pattern()))return i}}(r.formats(),t);return a?vr(t,a,{useInternationalFormat:"INTERNATIONAL"===n,withNationalPrefix:!a.nationalPrefixIsOptionalWhenFormattingInNationalFormat()||!d||!1!==d.nationalPrefix,carrierCode:e,metadata:r}):t}function br(t,e,n,r){return e?r(t,e,n):t}function _r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Ir(t,e){for(var n=0;n0&&r[o];if(e.nationalPrefixTransformRule()&&u)d=t.replace(n,e.nationalPrefixTransformRule()),o>1&&(a=r[1]);else{var s=r[0];d=t.slice(s.length),u&&(a=r[1])}if(u){var $=t.indexOf(r[1]);t.slice(0,$)===e.numberingPlan.nationalPrefix()&&(i=e.numberingPlan.nationalPrefix())}else i=r[0];return{nationalNumber:d,nationalPrefix:i,carrierCode:a}}}return{nationalNumber:t}}(t,e),r=n.nationalNumber,d=n.carrierCode;if(!function(t,e,n){if($r(t,n.nationalNumberPattern())&&!$r(e,n.nationalNumberPattern()))return!1;return!0}(t,r,e))return{nationalNumber:t};if(t.length!==r.length+(d?d.length:0)&&e.possibleLengths())switch(or(r,e)){case"TOO_SHORT":case"INVALID_LENGTH":return{nationalNumber:t}}return{nationalNumber:r,carrierCode:d}}function Er(t,e,n,r){if(!t)return{};if("+"!==t[0]){var d=function(t,e,n,r){if(e){var d=new jn(r);d.selectNumberingPlan(e,n);var a=new RegExp(d.IDDPrefix());if(0===t.search(a)){var i=(t=t.slice(t.match(a)[0].length)).match(Or);if(!(i&&null!=i[1]&&i[1].length>0&&"0"===i[1]))return t}}}(t,e,n,r);if(!d||d===t){if(e||n){var a=function(t,e,n,r){var d=e?Jn(e,r):n;if(0===t.indexOf(d)){(r=new jn(r)).selectNumberingPlan(e,n);var a=t.slice(d.length),i=Nr(a,r).nationalNumber,o=Nr(t,r).nationalNumber;if(!$r(o,r.nationalNumberPattern())&&$r(i,r.nationalNumberPattern())||"TOO_LONG"===or(o,r))return{countryCallingCode:d,number:a}}return{number:t}}(t,e,n,r),i=a.countryCallingCode,o=a.number;if(i)return{countryCallingCode:i,number:o}}return{number:t}}t="+"+d}if("0"===t[1])return{};r=new jn(r);for(var u=2;u-1<=3&&u<=t.length;){var s=t.slice(1,u);if(r.hasCallingCode(s))return r.selectNumberingPlan(s),{countryCallingCode:s,number:t.slice(u)};u++}return{}}function Cr(t,e,n){var r=n.getCountryCodesForCallingCode(t);if(r)return 1===r.length?r[0]:function(t,e,n){n=new jn(n);var r=t,d=Array.isArray(r),a=0;for(r=d?r:r[Symbol.iterator]();;){var i;if(d){if(a>=r.length)break;i=r[a++]}else{if((a=r.next()).done)break;i=a.value}var o=i;if(n.country(o),n.leadingDigits()){if(e&&0===e.search(n.leadingDigits()))return o}else if(fr({phone:e,country:o},void 0,n.metadata))return o}}(r,e,n.metadata)}var Pr=new RegExp("[++0-90-9٠-٩۰-۹]"),xr=new RegExp("[^0-90-9٠-٩۰-۹#]+$");function Tr(t,e,n){if(e=e||{},n=new jn(n),e.defaultCountry&&!n.hasCountry(e.defaultCountry)){if(e.v2)throw new Tn("INVALID_COUNTRY");throw new Error("Unknown country: ".concat(e.defaultCountry))}var r=function(t,e){if(t&&0===t.indexOf("tel:"))return function(t){var e,n,r=(t=t.replace(/^tel:/,"tel=")).split(";"),d=Array.isArray(r),a=0;for(r=d?r:r[Symbol.iterator]();;){var i;if(d){if(a>=r.length)break;i=r[a++]}else{if((a=r.next()).done)break;i=a.value}var o=sr(i.split("="),2),u=o[0],s=o[1];switch(u){case"tel":e=s;break;case"ext":n=s;break;case"phone-context":"+"===s[0]&&(e=s+e)}}if(!nr(e))return{};var $={number:e};return n&&($.ext=n),$}(t);var n=function(t,e){if(!t)return;if(t.length>250){if(e)throw new Tn("TOO_LONG");return}var n=t.search(Pr);if(n<0)return;return t.slice(n).replace(xr,"")}(t,e);if(!n||!nr(n))return{};var r=function(t){var e=t.search(rr);if(e<0)return{};for(var n=t.slice(0,e),r=t.match(rr),d=1;d17){if(e.v2)throw new Tn("TOO_LONG");return{}}if(e.v2){var l=new Mr(s,u,n.metadata);return o&&(l.country=o),$&&(l.carrierCode=$),a&&(l.ext=a),l}var f=!!(e.extended?n.hasSelectedNumberingPlan():o)&&$r(u,n.nationalNumberPattern());return e.extended?{country:o,countryCallingCode:s,carrierCode:$,valid:f,possible:!!f||!(!0!==e.extended||!n.possibleLengths()||!ur(u,n)),phone:u,ext:a}:f?function(t,e,n){var r={country:t,phone:e};n&&(r.ext=n);return r}(o,u,a):{}}function Rr(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Lr(t,e,n){return Tr(t,function(t){for(var e=1;e1&&void 0!==arguments[1]?arguments[1]:{};(0,r.default)(t);var n=d;if(n=e.require_hyphen?n.replace("?",""):n,!(n=e.case_sensitive?new RegExp(n):new RegExp(n,"i")).test(t))return!1;for(var a=t.replace("-","").toUpperCase(),i=0,o=0;o=0};var n,r=(n=N)&&n.__esModule?n:{default:n};t.exports=e.default,t.exports.default=e.default}))),nd="isBooleanString";function rd(t){return"string"==typeof t&&ed(t)}var dd=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){if((0,r.default)(t),e&&e.no_symbols)return d.test(t);return new RegExp("^[+-]?([0-9]*[".concat((e||{}).locale?Y.decimal[e.locale]:".","])?[0-9]+$")).test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^[0-9]+$/;t.exports=e.default,t.exports.default=e.default}))),ad="isNumberString";function id(t,e){return"string"==typeof t&&dd(t,e)}var od=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){if((0,r.default)(t),t.length%8==0&&d.test(t))return!0;return!1};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^[A-Z2-7]+=*$/;t.exports=e.default,t.exports.default=e.default}))),ud="isBase32";function sd(t){return"string"==typeof t&&od(t)}var $d=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^[A-z]{4}[A-z]{2}\w{2}(\w{3})?$/;t.exports=e.default,t.exports.default=e.default}))),ld="isBIC";function fd(t){return"string"==typeof t&&$d(t)}var cd=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/;t.exports=e.default,t.exports.default=e.default}))),pd="isBtcAddress";function vd(t){return"string"==typeof t&&cd(t)}var yd=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){(0,r.default)(t);var e=t.split(",");if(e.length<2)return!1;var n=e.shift().trim().split(";"),o=n.shift();if("data:"!==o.substr(0,5))return!1;var u=o.substr(5);if(""!==u&&!d.test(u))return!1;for(var s=0;s-1)},NO:function(t){var e=t.trim();if(isNaN(Number(e)))return!1;if(11!==e.length)return!1;if("00000000000"===e)return!1;var n=e.split("").map(Number),r=(11-(3*n[0]+7*n[1]+6*n[2]+1*n[3]+8*n[4]+9*n[5]+4*n[6]+5*n[7]+2*n[8])%11)%11,d=(11-(5*n[0]+4*n[1]+3*n[2]+2*n[3]+7*n[4]+6*n[5]+5*n[6]+4*n[7]+3*n[8]+2*r)%11)%11;return r===n[9]&&d===n[10]},"he-IL":function(t){var e=t.trim();if(!/^\d{9}$/.test(e))return!1;for(var n,r=e,d=0,a=0;a9?n-9:n;return d%10==0},"ar-TN":function(t){var e=t.trim();return!!/^\d{8}$/.test(e)},"zh-CN":function(t){var e,n=["11","12","13","14","15","21","22","23","31","32","33","34","35","36","37","41","42","43","44","45","46","50","51","52","53","54","61","62","63","64","65","71","81","82","91"],r=["7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"],d=["1","0","X","9","8","7","6","5","4","3","2"],a=function(t){return n.includes(t)},i=function(t){var e=parseInt(t.substring(0,4),10),n=parseInt(t.substring(4,6),10),r=parseInt(t.substring(6),10),d=new Date(e,n-1,r);return!(d>new Date)&&(d.getFullYear()===e&&d.getMonth()===n-1&&d.getDate()===r)},o=function(t){return function(t){for(var e=t.substring(0,17),n=0,a=0;a<17;a++)n+=parseInt(e.charAt(a),10)*parseInt(r[a],10);return d[n%11]}(t)===t.charAt(17).toUpperCase()};return!!/^\d{15}|(\d{17}(\d|x|X))$/.test(e=t)&&(15===e.length?function(t){var e=/^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(t);if(!e)return!1;var n=t.substring(0,2);if(!(e=a(n)))return!1;var r="19".concat(t.substring(6,12));return!!(e=i(r))}(e):function(t){var e=/^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(t);if(!e)return!1;var n=t.substring(0,2);if(!(e=a(n)))return!1;var r=t.substring(6,14);return!!(e=i(r))&&o(t)}(e))},"zh-TW":function(t){var e={A:10,B:11,C:12,D:13,E:14,F:15,G:16,H:17,I:34,J:18,K:19,L:20,M:21,N:22,O:35,P:23,Q:24,R:25,S:26,T:27,U:28,V:29,W:32,X:30,Y:31,Z:33},n=t.trim().toUpperCase();return!!/^[A-Z][0-9]{9}$/.test(n)&&Array.from(n).reduce((function(t,n,r){if(0===r){var d=e[n];return d%10*9+Math.floor(d/10)}return 9===r?(10-t%10-Number(n))%10==0:t+Number(n)*(9-r)}),0)}};t.exports=e.default,t.exports.default=e.default}))),Td="isIdentityCard";function Rd(t,e){return"string"==typeof t&&xd(t,e)}var Ld=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/;t.exports=e.default,t.exports.default=e.default}))),Fd="isISRC";function wd(t){return"string"==typeof t&&Ld(t)}var Dd=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){if((0,r.default)(t),"en_US_POSIX"===t||"ca_ES_VALENCIA"===t)return!0;return d.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^[A-z]{2,4}([_-]([A-z]{4}|[\d]{3}))?([_-]([A-z]{2}|[\d]{3}))?$/;t.exports=e.default,t.exports.default=e.default}))),Zd="isLocale";function Bd(t){return"string"==typeof t&&Dd(t)}var Gd=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t.trim())};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^magnet:\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}&dn=.+&tr=.+$/i;t.exports=e.default,t.exports.default=e.default}))),Ud="isMagnetURI";function jd(t){return"string"==typeof t&&Gd(t)}var Vd=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)||a.test(t)||i.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+]{1,100}$/i,a=/^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i,i=/^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i;t.exports=e.default,t.exports.default=e.default}))),Hd="isMimeType";function kd(t){return"string"==typeof t&&Vd(t)}var Kd=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),d.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^(0o)?[0-7]+$/i;t.exports=e.default,t.exports.default=e.default}))),Wd="isOctal";function Yd(t){return"string"==typeof t&&Kd(t)}var zd=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){(0,r.default)(t);var n=t.replace(/\s/g,"").toUpperCase();return e.toUpperCase()in d&&d[e].test(n)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d={AM:/^[A-Z]{2}\d{7}$/,AR:/^[A-Z]{3}\d{6}$/,AT:/^[A-Z]\d{7}$/,AU:/^[A-Z]\d{7}$/,BE:/^[A-Z]{2}\d{6}$/,BG:/^\d{9}$/,BY:/^[A-Z]{2}\d{7}$/,CA:/^[A-Z]{2}\d{6}$/,CH:/^[A-Z]\d{7}$/,CN:/^[GE]\d{8}$/,CY:/^[A-Z](\d{6}|\d{8})$/,CZ:/^\d{8}$/,DE:/^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,DK:/^\d{9}$/,DZ:/^\d{9}$/,EE:/^([A-Z]\d{7}|[A-Z]{2}\d{7})$/,ES:/^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/,FI:/^[A-Z]{2}\d{7}$/,FR:/^\d{2}[A-Z]{2}\d{5}$/,GB:/^\d{9}$/,GR:/^[A-Z]{2}\d{7}$/,HR:/^\d{9}$/,HU:/^[A-Z]{2}(\d{6}|\d{7})$/,IE:/^[A-Z0-9]{2}\d{7}$/,IN:/^[A-Z]{1}-?\d{7}$/,IS:/^(A)\d{7}$/,IT:/^[A-Z0-9]{2}\d{7}$/,JP:/^[A-Z]{2}\d{7}$/,KR:/^[MS]\d{8}$/,LT:/^[A-Z0-9]{8}$/,LU:/^[A-Z0-9]{8}$/,LV:/^[A-Z0-9]{2}\d{7}$/,MT:/^\d{7}$/,NL:/^[A-Z]{2}[A-Z0-9]{6}\d$/,PO:/^[A-Z]{2}\d{7}$/,PT:/^[A-Z]\d{6}$/,RO:/^\d{8,9}$/,RU:/^\d{2}\d{2}\d{6}$/,SE:/^\d{8}$/,SL:/^(P)[A-Z]\d{7}$/,SK:/^[0-9A-Z]\d{7}$/,TR:/^[A-Z]\d{8}$/,UA:/^[A-Z]{2}\d{6}$/,US:/^\d{9}$/};t.exports=e.default,t.exports.default=e.default}))),Jd="isPassportNumber";function Xd(t,e){return"string"==typeof t&&zd(t,e)}var qd=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){if((0,r.default)(t),e in o)return o[e].test(t);if("any"===e){for(var n in o){if(o.hasOwnProperty(n))if(o[n].test(t))return!0}return!1}throw new Error("Invalid locale '".concat(e,"'"))},e.locales=void 0;var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^\d{4}$/,a=/^\d{5}$/,i=/^\d{6}$/,o={AD:/^AD\d{3}$/,AT:d,AU:d,AZ:/^AZ\d{4}$/,BE:d,BG:d,BR:/^\d{5}-\d{3}$/,BY:/2[1-4]{1}\d{4}$/,CA:/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,CH:d,CN:/^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\d{4}$/,CZ:/^\d{3}\s?\d{2}$/,DE:a,DK:d,DO:a,DZ:a,EE:a,ES:/^(5[0-2]{1}|[0-4]{1}\d{1})\d{3}$/,FI:a,FR:/^\d{2}\s?\d{3}$/,GB:/^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,GR:/^\d{3}\s?\d{2}$/,HR:/^([1-5]\d{4}$)/,HT:/^HT\d{4}$/,HU:d,ID:a,IE:/^(?!.*(?:o))[A-z]\d[\dw]\s\w{4}$/i,IL:/^(\d{5}|\d{7})$/,IN:/^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,IR:/\b(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}\b/,IS:/^\d{3}$/,IT:a,JP:/^\d{3}\-\d{4}$/,KE:a,LI:/^(948[5-9]|949[0-7])$/,LT:/^LT\-\d{5}$/,LU:d,LV:/^LV\-\d{4}$/,MX:a,MT:/^[A-Za-z]{3}\s{0,1}\d{4}$/,MY:a,NL:/^\d{4}\s?[a-z]{2}$/i,NO:d,NP:/^(10|21|22|32|33|34|44|45|56|57)\d{3}$|^(977)$/i,NZ:d,PL:/^\d{2}\-\d{3}$/,PR:/^00[679]\d{2}([ -]\d{4})?$/,PT:/^\d{4}\-\d{3}?$/,RO:i,RU:i,SA:a,SE:/^[1-9]\d{2}\s?\d{2}$/,SG:i,SI:d,SK:/^\d{3}\s?\d{2}$/,TH:a,TN:d,TW:/^\d{3}(\d{2})?$/,UA:a,US:/^\d{5}(-\d{4})?$/,ZA:d,ZM:a},u=Object.keys(o);e.locales=u}))),Qd="isPostalCode";function ta(t,e){return"string"==typeof t&&qd(t,e)}var ea=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,r.default)(t),l.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/([01][0-9]|2[0-3])/,a=/[0-5][0-9]/,i=new RegExp("[-+]".concat(d.source,":").concat(a.source)),o=new RegExp("([zZ]|".concat(i.source,")")),u=new RegExp("".concat(d.source,":").concat(a.source,":").concat(/([0-5][0-9]|60)/.source).concat(/(\.[0-9]+)?/.source)),s=new RegExp("".concat(/[0-9]{4}/.source,"-").concat(/(0[1-9]|1[0-2])/.source,"-").concat(/([12]\d|0[1-9]|3[01])/.source)),$=new RegExp("".concat(u.source).concat(o.source)),l=new RegExp("".concat(s.source,"[ tT]").concat($.source));t.exports=e.default,t.exports.default=e.default}))),na="isRFC3339";function ra(t){return"string"==typeof t&&ea(t)}var da=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if((0,r.default)(t),!e)return d.test(t)||a.test(t);return d.test(t)||a.test(t)||i.test(t)||o.test(t)};var n,r=(n=N)&&n.__esModule?n:{default:n};var d=/^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/,a=/^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)$/,i=/^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)/,o=/^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d|1(\.0)?|0(\.0)?)\)/;t.exports=e.default,t.exports.default=e.default}))),aa="isRgbColor";function ia(t,e){return"string"==typeof t&&da(t,e)}var oa=O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){var n=t.join("");return new RegExp(n,e)},t.exports=e.default,t.exports.default=e.default})),ua=S(O((function(t,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,n.default)(t),d.test(t)};var n=r(N);function r(t){return t&&t.__esModule?t:{default:t}}var d=(0,r(oa).default)(["^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)","(?:-((?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*))*))","?(?:\\+([0-9a-z-]+(?:\\.[0-9a-z-]+)*))?$"],"i");t.exports=e.default,t.exports.default=e.default}))),sa="isSemVer";function $a(t){return"string"==typeof t&&ua(t)}var la="isBoolean";function fa(t){return t instanceof Boolean||"boolean"==typeof t}var ca="isDate";function pa(t){return t instanceof Date&&!isNaN(t.getTime())}var va="isNumber";function ya(t,e){if(void 0===e&&(e={}),"number"!=typeof t)return!1;if(t===1/0||t===-1/0)return e.allowInfinity;if(Number.isNaN(t))return e.allowNaN;if(void 0!==e.maxDecimalPlaces){var n=0;if(t%1!=0&&(n=t.toString().split(".")[1].length),n>e.maxDecimalPlaces)return!1}return Number.isFinite(t)}var ga="isEnum";function ma(t,e){return Object.keys(e).map((function(t){return e[t]})).indexOf(t)>=0}var ha="isInt";function Aa(t){return"number"==typeof t&&Number.isInteger(t)}var ba="isString";function _a(t){return t instanceof String||"string"==typeof t}var Ia="isArray";function Ma(t){return t instanceof Array}var Sa="isObject";function Oa(t){return null!=t&&("object"==typeof t||"function"==typeof t)&&!Array.isArray(t)}var Na="arrayContains";function Ea(t,e){return t instanceof Array&&e.every((function(e){return-1!==t.indexOf(e)}))}var Ca="arrayNotContains";function Pa(t,e){return t instanceof Array&&e.every((function(e){return-1===t.indexOf(e)}))}var xa="arrayNotEmpty";function Ta(t){return t instanceof Array&&t.length>0}var Ra="arrayMinSize";function La(t,e){return t instanceof Array&&t.length>=e}var Fa="arrayMaxSize";function wa(t,e){return t instanceof Array&&t.length<=e}var Da="arrayUnique";function Za(t,e){if(!(t instanceof Array))return!1;e&&(t=t.map((function(t){return null!=t?e(t):t})));var n=t.filter((function(t,e,n){return n.indexOf(t)===e}));return t.length===n.length}var Ba="isNotEmptyObject";function Ga(t,e){if(!Oa(t))return!1;if(!0===(null==e?void 0:e.nullable))return!Object.values(t).every((function(t){return null==t}));for(var n in t)if(t.hasOwnProperty(n))return!0;return!1}var Ua="isInstance";function ja(t,e){return e&&"function"==typeof e&&t instanceof e}t.ARRAY_CONTAINS=Na,t.ARRAY_MAX_SIZE=Fa,t.ARRAY_MIN_SIZE=Ra,t.ARRAY_NOT_CONTAINS=Ca,t.ARRAY_NOT_EMPTY=xa,t.ARRAY_UNIQUE=Da,t.Allow=function(t){return function(n,r){var d={type:u.WHITELIST,target:n.constructor,propertyName:r,validationOptions:t};i().addValidationMetadata(new e(d))}},t.ArrayContains=function(t,e){return b({name:Na,constraints:[t],validator:{validate:function(t,e){return Ea(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must contain $constraint1 values"}),e)}},e)},t.ArrayMaxSize=function(t,e){return b({name:Fa,constraints:[t],validator:{validate:function(t,e){return wa(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must contain not more than $constraint1 elements"}),e)}},e)},t.ArrayMinSize=function(t,e){return b({name:Ra,constraints:[t],validator:{validate:function(t,e){return La(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must contain at least $constraint1 elements"}),e)}},e)},t.ArrayNotContains=function(t,e){return b({name:Ca,constraints:[t],validator:{validate:function(t,e){return Pa(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property should not contain $constraint1 values"}),e)}},e)},t.ArrayNotEmpty=function(t){return b({name:xa,validator:{validate:function(t,e){return Ta(t)},defaultMessage:A((function(t){return t+"$property should not be empty"}),t)}},t)},t.ArrayUnique=function(t,e){var n="function"==typeof t?t:void 0,r="function"!=typeof t?t:e;return b({name:Da,validator:{validate:function(t,e){return Za(t,n)},defaultMessage:A((function(t){return t+"All $property's elements must be unique"}),r)}},r)},t.CONTAINS=ft,t.Contains=function(t,e){return b({name:ft,constraints:[t],validator:{validate:function(t,e){return ct(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must contain a $constraint1 string"}),e)}},e)},t.EQUALS=w,t.Equals=function(t,e){return b({name:w,constraints:[t],validator:{validate:function(t,e){return D(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be equal to $constraint1"}),e)}},e)},t.IS_ALPHA=gt,t.IS_ALPHANUMERIC=At,t.IS_ARRAY=Ia,t.IS_ASCII=Nt,t.IS_BASE32=ud,t.IS_BASE64=xt,t.IS_BIC=ld,t.IS_BOOLEAN=la,t.IS_BOOLEAN_STRING=nd,t.IS_BTC_ADDRESS=pd,t.IS_BYTE_LENGTH=Ft,t.IS_CREDIT_CARD=Zt,t.IS_CURRENCY=Ut,t.IS_DATA_URI=gd,t.IS_DATE=ca,t.IS_DATE_STRING=Qr,t.IS_DECIMAL=Mt,t.IS_DEFINED=_,t.IS_DIVISIBLE_BY=q,t.IS_EAN=Ad,t.IS_EMAIL=Yt,t.IS_EMPTY=G,t.IS_ENUM=ga,t.IS_ETHEREUM_ADDRESS=Id,t.IS_FIREBASE_PUSH_ID=vn,t.IS_FQDN=Jt,t.IS_FULL_WIDTH=te,t.IS_HALF_WIDTH=de,t.IS_HASH=Yr,t.IS_HEXADECIMAL=pe,t.IS_HEX_COLOR=$e,t.IS_HSL=Od,t.IS_IBAN=Cd,t.IS_IDENTITY_CARD=Td,t.IS_IN=H,t.IS_INSTANCE=Ua,t.IS_INT=ha,t.IS_IP=Ae,t.IS_ISBN=Ne,t.IS_ISIN=Pe,t.IS_ISO31661_ALPHA_2=Ye,t.IS_ISO31661_ALPHA_3=Xe,t.IS_ISO8601=Re,t.IS_ISRC=Fd,t.IS_ISSN=Xr,t.IS_JSON=we,t.IS_JWT=Be,t.IS_LATITUDE=T,t.IS_LATLONG=P,t.IS_LENGTH=bn,t.IS_LOCALE=Zd,t.IS_LONGITUDE=L,t.IS_LOWERCASE=je,t.IS_MAC_ADDRESS=me,t.IS_MAGNET_URI=Ud,t.IS_MILITARY_TIME=kr,t.IS_MIME_TYPE=Hd,t.IS_MOBILE_PHONE=ke,t.IS_MONGO_ID=tn,t.IS_MULTIBYTE=rn,t.IS_NEGATIVE=nt,t.IS_NOT_EMPTY=j,t.IS_NOT_EMPTY_OBJECT=Ba,t.IS_NOT_IN=K,t.IS_NUMBER=va,t.IS_NUMBER_STRING=ad,t.IS_OBJECT=Sa,t.IS_OCTAL=Wd,t.IS_PASSPORT_NUMBER=Jd,t.IS_PHONE_NUMBER=Vr,t.IS_PORT=Me,t.IS_POSITIVE=tt,t.IS_POSTAL_CODE=Qd,t.IS_RFC_3339=na,t.IS_RGB_COLOR=aa,t.IS_SEM_VER=sa,t.IS_STRING=ba,t.IS_SURROGATE_PAIR=on,t.IS_UPPERCASE=mn,t.IS_URL=$n,t.IS_UUID=cn,t.IS_VARIABLE_WIDTH=oe,t.IsAlpha=function(t,e){return b({name:gt,constraints:[t],validator:{validate:function(t,e){return mt(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must contain only letters (a-zA-Z)"}),e)}},e)},t.IsAlphanumeric=function(t,e){return b({name:At,constraints:[t],validator:{validate:function(t,e){return bt(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must contain only letters and numbers"}),e)}},e)},t.IsArray=function(t){return b({name:Ia,validator:{validate:function(t,e){return Ma(t)},defaultMessage:A((function(t){return t+"$property must be an array"}),t)}},t)},t.IsAscii=function(t){return b({name:Nt,validator:{validate:function(t,e){return Et(t)},defaultMessage:A((function(t){return t+"$property must contain only ASCII characters"}),t)}},t)},t.IsBIC=function(t){return b({name:ld,validator:{validate:function(t,e){return fd(t)},defaultMessage:A((function(t){return t+"$property must be a BIC or SWIFT code"}),t)}},t)},t.IsBase32=function(t){return b({name:ud,validator:{validate:function(t,e){return sd(t)},defaultMessage:A((function(t){return t+"$property must be base32 encoded"}),t)}},t)},t.IsBase64=function(t){return b({name:xt,validator:{validate:function(t,e){return Tt(t)},defaultMessage:A((function(t){return t+"$property must be base64 encoded"}),t)}},t)},t.IsBoolean=function(t){return b({name:la,validator:{validate:function(t,e){return fa(t)},defaultMessage:A((function(t){return t+"$property must be a boolean value"}),t)}},t)},t.IsBooleanString=function(t){return b({name:nd,validator:{validate:function(t,e){return rd(t)},defaultMessage:A((function(t){return t+"$property must be a boolean string"}),t)}},t)},t.IsBtcAddress=function(t){return b({name:pd,validator:{validate:function(t,e){return vd(t)},defaultMessage:A((function(t){return t+"$property must be a BTC address"}),t)}},t)},t.IsByteLength=function(t,e,n){return b({name:Ft,constraints:[t,e],validator:{validate:function(t,e){return wt(t,e.constraints[0],e.constraints[1])},defaultMessage:A((function(t){return t+"$property's byte length must fall into ($constraint1, $constraint2) range"}),n)}},n)},t.IsCreditCard=function(t){return b({name:Zt,validator:{validate:function(t,e){return Bt(t)},defaultMessage:A((function(t){return t+"$property must be a credit card"}),t)}},t)},t.IsCurrency=function(t,e){return b({name:Ut,constraints:[t],validator:{validate:function(t,e){return jt(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a currency"}),e)}},e)},t.IsDataURI=function(t){return b({name:gd,validator:{validate:function(t,e){return md(t)},defaultMessage:A((function(t){return t+"$property must be a data uri format"}),t)}},t)},t.IsDate=function(t){return b({name:ca,validator:{validate:function(t,e){return pa(t)},defaultMessage:A((function(t){return t+"$property must be a Date instance"}),t)}},t)},t.IsDateString=function(t,e){return b({name:Qr,constraints:[t],validator:{validate:function(t,e){return td(t)},defaultMessage:A((function(t){return t+"$property must be a valid ISO 8601 date string"}),e)}},e)},t.IsDecimal=function(t,e){return b({name:Mt,constraints:[t],validator:{validate:function(t,e){return St(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property is not a valid decimal number."}),e)}},e)},t.IsDefined=function(t){return b({name:_,validator:{validate:function(t){return I(t)},defaultMessage:A((function(t){return t+"$property should not be null or undefined"}),t)}},t)},t.IsDivisibleBy=function(t,e){return b({name:q,constraints:[t],validator:{validate:function(t,e){return Q(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be divisible by $constraint1"}),e)}},e)},t.IsEAN=function(t){return b({name:Ad,validator:{validate:function(t,e){return bd(t)},defaultMessage:A((function(t){return t+"$property must be an EAN (European Article Number)"}),t)}},t)},t.IsEmail=function(t,e){return b({name:Yt,constraints:[t],validator:{validate:function(t,e){return zt(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be an email"}),e)}},e)},t.IsEmpty=function(t){return b({name:G,validator:{validate:function(t,e){return U(t)},defaultMessage:A((function(t){return t+"$property must be empty"}),t)}},t)},t.IsEnum=function(t,e){return b({name:ga,constraints:[t],validator:{validate:function(t,e){return ma(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a valid enum value"}),e)}},e)},t.IsEthereumAddress=function(t){return b({name:Id,validator:{validate:function(t,e){return Md(t)},defaultMessage:A((function(t){return t+"$property must be an Ethereum address"}),t)}},t)},t.IsFQDN=function(t,e){return b({name:Jt,constraints:[t],validator:{validate:function(t,e){return Xt(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a valid domain name"}),e)}},e)},t.IsFirebasePushId=function(t){return b({name:vn,validator:{validate:function(t,e){return yn(t)},defaultMessage:A((function(t){return t+"$property must be a Firebase Push Id"}),t)}},t)},t.IsFullWidth=function(t){return b({name:te,validator:{validate:function(t,e){return ee(t)},defaultMessage:A((function(t){return t+"$property must contain a full-width characters"}),t)}},t)},t.IsHSL=function(t){return b({name:Od,validator:{validate:function(t,e){return Nd(t)},defaultMessage:A((function(t){return t+"$property must be a HSL color"}),t)}},t)},t.IsHalfWidth=function(t){return b({name:de,validator:{validate:function(t,e){return ae(t)},defaultMessage:A((function(t){return t+"$property must contain a half-width characters"}),t)}},t)},t.IsHash=function(t,e){return b({name:Yr,constraints:[t],validator:{validate:function(t,e){return zr(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a hash of type $constraint1"}),e)}},e)},t.IsHexColor=function(t){return b({name:$e,validator:{validate:function(t,e){return le(t)},defaultMessage:A((function(t){return t+"$property must be a hexadecimal color"}),t)}},t)},t.IsHexadecimal=function(t){return b({name:pe,validator:{validate:function(t,e){return ve(t)},defaultMessage:A((function(t){return t+"$property must be a hexadecimal number"}),t)}},t)},t.IsIBAN=function(t){return b({name:Cd,validator:{validate:function(t,e){return Pd(t)},defaultMessage:A((function(t){return t+"$property must be an IBAN"}),t)}},t)},t.IsIP=function(t,e){return b({name:Ae,constraints:[t],validator:{validate:function(t,e){return be(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be an ip address"}),e)}},e)},t.IsISBN=function(t,e){return b({name:Ne,constraints:[t],validator:{validate:function(t,e){return Ee(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be an ISBN"}),e)}},e)},t.IsISIN=function(t){return b({name:Pe,validator:{validate:function(t,e){return xe(t)},defaultMessage:A((function(t){return t+"$property must be an ISIN (stock/security identifier)"}),t)}},t)},t.IsISO31661Alpha2=function(t){return b({name:Ye,validator:{validate:function(t,e){return ze(t)},defaultMessage:A((function(t){return t+"$property must be a valid ISO31661 Alpha2 code"}),t)}},t)},t.IsISO31661Alpha3=function(t){return b({name:Xe,validator:{validate:function(t,e){return qe(t)},defaultMessage:A((function(t){return t+"$property must be a valid ISO31661 Alpha3 code"}),t)}},t)},t.IsISO8601=function(t,e){return b({name:Re,constraints:[t],validator:{validate:function(t,e){return Le(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a valid ISO 8601 date string"}),e)}},e)},t.IsISRC=function(t){return b({name:Fd,validator:{validate:function(t,e){return wd(t)},defaultMessage:A((function(t){return t+"$property must be an ISRC"}),t)}},t)},t.IsISSN=function(t,e){return b({name:Xr,constraints:[t],validator:{validate:function(t,e){return qr(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a ISSN"}),e)}},e)},t.IsIdentityCard=function(t,e){return b({name:Td,constraints:[t],validator:{validate:function(t,e){return Rd(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a identity card number"}),e)}},e)},t.IsIn=function(t,e){return b({name:H,constraints:[t],validator:{validate:function(t,e){return k(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be one of the following values: $constraint1"}),e)}},e)},t.IsInstance=function(t,e){return b({name:Ua,constraints:[t],validator:{validate:function(t,e){return ja(t,e.constraints[0])},defaultMessage:A((function(t,e){return e.constraints[0]?t+"$property must be an instance of "+e.constraints[0].name:t+"isInstance decorator expects and object as value, but got falsy value."}),e)}},e)},t.IsInt=function(t){return b({name:ha,validator:{validate:function(t,e){return Aa(t)},defaultMessage:A((function(t){return t+"$property must be an integer number"}),t)}},t)},t.IsJSON=function(t){return b({name:we,validator:{validate:function(t,e){return De(t)},defaultMessage:A((function(t){return t+"$property must be a json string"}),t)}},t)},t.IsJWT=function(t){return b({name:Be,validator:{validate:function(t,e){return Ge(t)},defaultMessage:A((function(t){return t+"$property must be a jwt string"}),t)}},t)},t.IsLatLong=function(t){return b({name:P,validator:{validate:function(t,e){return x(t)},defaultMessage:A((function(t){return t+"$property must be a latitude,longitude string"}),t)}},t)},t.IsLatitude=function(t){return b({name:T,validator:{validate:function(t,e){return R(t)},defaultMessage:A((function(t){return t+"$property must be a latitude string or number"}),t)}},t)},t.IsLocale=function(t){return b({name:Zd,validator:{validate:function(t,e){return Bd(t)},defaultMessage:A((function(t){return t+"$property must be locale"}),t)}},t)},t.IsLongitude=function(t){return b({name:L,validator:{validate:function(t,e){return F(t)},defaultMessage:A((function(t){return t+"$property must be a longitude string or number"}),t)}},t)},t.IsLowercase=function(t){return b({name:je,validator:{validate:function(t,e){return Ve(t)},defaultMessage:A((function(t){return t+"$property must be a lowercase string"}),t)}},t)},t.IsMACAddress=function(t,e){var n=ye(t)?void 0:t,r=ye(t)?t:e;return b({name:me,constraints:[n],validator:{validate:function(t,e){return he(t,n)},defaultMessage:A((function(t){return t+"$property must be a MAC Address"}),r)}},r)},t.IsMagnetURI=function(t){return b({name:Ud,validator:{validate:function(t,e){return jd(t)},defaultMessage:A((function(t){return t+"$property must be magnet uri format"}),t)}},t)},t.IsMilitaryTime=function(t){return b({name:kr,validator:{validate:function(t,e){return Kr(t)},defaultMessage:A((function(t){return t+"$property must be a valid representation of military time in the format HH:MM"}),t)}},t)},t.IsMimeType=function(t){return b({name:Hd,validator:{validate:function(t,e){return kd(t)},defaultMessage:A((function(t){return t+"$property must be MIME type format"}),t)}},t)},t.IsMobilePhone=function(t,e,n){return b({name:ke,constraints:[t,e],validator:{validate:function(t,e){return Ke(t,e.constraints[0],e.constraints[1])},defaultMessage:A((function(t){return t+"$property must be a phone number"}),n)}},n)},t.IsMongoId=function(t){return b({name:tn,validator:{validate:function(t,e){return en(t)},defaultMessage:A((function(t){return t+"$property must be a mongodb id"}),t)}},t)},t.IsMultibyte=function(t){return b({name:rn,validator:{validate:function(t,e){return dn(t)},defaultMessage:A((function(t){return t+"$property must contain one or more multibyte chars"}),t)}},t)},t.IsNegative=function(t){return b({name:nt,validator:{validate:function(t,e){return rt(t)},defaultMessage:A((function(t){return t+"$property must be a negative number"}),t)}},t)},t.IsNotEmpty=function(t){return b({name:j,validator:{validate:function(t,e){return V(t)},defaultMessage:A((function(t){return t+"$property should not be empty"}),t)}},t)},t.IsNotEmptyObject=function(t,e){return b({name:Ba,constraints:[t],validator:{validate:function(t,e){return Ga(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a non-empty object"}),e)}},e)},t.IsNotIn=function(t,e){return b({name:K,constraints:[t],validator:{validate:function(t,e){return W(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property should not be one of the following values: $constraint1"}),e)}},e)},t.IsNumber=function(t,e){return void 0===t&&(t={}),b({name:va,constraints:[t],validator:{validate:function(t,e){return ya(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a number conforming to the specified constraints"}),e)}},e)},t.IsNumberString=function(t,e){return b({name:ad,constraints:[t],validator:{validate:function(t,e){return id(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a number string"}),e)}},e)},t.IsObject=function(t){return b({name:Sa,validator:{validate:function(t,e){return Oa(t)},defaultMessage:A((function(t){return t+"$property must be an object"}),t)}},t)},t.IsOctal=function(t){return b({name:Wd,validator:{validate:function(t,e){return Yd(t)},defaultMessage:A((function(t){return t+"$property must be valid octal number"}),t)}},t)},t.IsOptional=function(t){return function(n,r){var d={type:u.CONDITIONAL_VALIDATION,target:n.constructor,propertyName:r,constraints:[function(t,e){return null!==t[r]&&void 0!==t[r]}],validationOptions:t};i().addValidationMetadata(new e(d))}},t.IsPassportNumber=function(t,e){return b({name:Jd,constraints:[t],validator:{validate:function(t,e){return Xd(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be valid passport number"}),e)}},e)},t.IsPhoneNumber=function(t,e){return b({name:Vr,constraints:[t],validator:{validate:function(t,e){return Hr(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a valid phone number"}),e)}},e)},t.IsPort=function(t){return b({name:Me,validator:{validate:function(t,e){return Se(t)},defaultMessage:A((function(t){return t+"$property must be a port"}),t)}},t)},t.IsPositive=function(t){return b({name:tt,validator:{validate:function(t,e){return et(t)},defaultMessage:A((function(t){return t+"$property must be a positive number"}),t)}},t)},t.IsPostalCode=function(t,e){return b({name:Qd,constraints:[t],validator:{validate:function(t,e){return ta(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a postal code"}),e)}},e)},t.IsRFC3339=function(t){return b({name:na,validator:{validate:function(t,e){return ra(t)},defaultMessage:A((function(t){return t+"$property must be RFC 3339 date"}),t)}},t)},t.IsRgbColor=function(t,e){return b({name:aa,constraints:[t],validator:{validate:function(t,e){return ia(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be RGB color"}),e)}},e)},t.IsSemVer=function(t){return b({name:sa,validator:{validate:function(t,e){return $a(t)},defaultMessage:A((function(t){return t+"$property must be a Semantic Versioning Specification"}),t)}},t)},t.IsString=function(t){return b({name:ba,validator:{validate:function(t,e){return _a(t)},defaultMessage:A((function(t){return t+"$property must be a string"}),t)}},t)},t.IsSurrogatePair=function(t){return b({name:on,validator:{validate:function(t,e){return un(t)},defaultMessage:A((function(t){return t+"$property must contain any surrogate pairs chars"}),t)}},t)},t.IsUUID=function(t,e){return b({name:cn,constraints:[t],validator:{validate:function(t,e){return pn(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be a UUID"}),e)}},e)},t.IsUppercase=function(t){return b({name:mn,validator:{validate:function(t,e){return hn(t)},defaultMessage:A((function(t){return t+"$property must be uppercase"}),t)}},t)},t.IsUrl=function(t,e){return b({name:$n,constraints:[t],validator:{validate:function(t,e){return ln(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be an URL address"}),e)}},e)},t.IsVariableWidth=function(t){return b({name:oe,validator:{validate:function(t,e){return ue(t)},defaultMessage:A((function(t){return t+"$property must contain a full-width and half-width characters"}),t)}},t)},t.Length=function(t,e,n){return b({name:bn,constraints:[t,e],validator:{validate:function(t,e){return _n(t,e.constraints[0],e.constraints[1])},defaultMessage:A((function(t,e){var n=null!==e.constraints[0]&&void 0!==e.constraints[0],r=null!==e.constraints[1]&&void 0!==e.constraints[1];return n&&(!e.value||e.value.lengthe.constraints[1]?t+"$property must be shorter than or equal to $constraint2 characters":t+"$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters"}),n)}},n)},t.MATCHES=En,t.MAX="max",t.MAX_DATE=ut,t.MAX_LENGTH=In,t.MIN="min",t.MIN_DATE=it,t.MIN_LENGTH=Sn,t.Matches=function(t,e,n){var r;return e&&e instanceof Object&&!n?n=e:r=e,b({name:En,constraints:[t,r],validator:{validate:function(t,e){return Cn(t,e.constraints[0],e.constraints[1])},defaultMessage:A((function(t,e){return t+"$property must match $constraint1 regular expression"}),n)}},n)},t.Max=function(t,e){return b({name:"max",constraints:[t],validator:{validate:function(t,e){return dt(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must not be greater than $constraint1"}),e)}},e)},t.MaxDate=function(t,e){return b({name:ut,constraints:[t],validator:{validate:function(t,e){return st(t,e.constraints[0])},defaultMessage:A((function(t){return"maximal allowed date for "+t+"$property is $constraint1"}),e)}},e)},t.MaxLength=function(t,e){return b({name:In,constraints:[t],validator:{validate:function(t,e){return Mn(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be shorter than or equal to $constraint1 characters"}),e)}},e)},t.MetadataStorage=a,t.Min=function(t,e){return b({name:"min",constraints:[t],validator:{validate:function(t,e){return at(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must not be less than $constraint1"}),e)}},e)},t.MinDate=function(t,e){return b({name:it,constraints:[t],validator:{validate:function(t,e){return ot(t,e.constraints[0])},defaultMessage:A((function(t){return"minimal allowed date for "+t+"$property is $constraint1"}),e)}},e)},t.MinLength=function(t,e){return b({name:Sn,constraints:[t],validator:{validate:function(t,e){return On(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property must be longer than or equal to $constraint1 characters"}),e)}},e)},t.NOT_CONTAINS=pt,t.NOT_EQUALS=Z,t.NotContains=function(t,e){return b({name:pt,constraints:[t],validator:{validate:function(t,e){return vt(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property should not contain a $constraint1 string"}),e)}},e)},t.NotEquals=function(t,e){return b({name:Z,constraints:[t],validator:{validate:function(t,e){return B(t,e.constraints[0])},defaultMessage:A((function(t){return t+"$property should not be equal to $constraint1"}),e)}},e)},t.Validate=function(t,n,r){return function(d,a){var o={type:u.CUSTOM_VALIDATION,target:d.constructor,propertyName:a,constraintCls:t,constraints:n instanceof Array?n:void 0,validationOptions:n instanceof Array?r:n};i().addValidationMetadata(new e(o))}},t.ValidateBy=b,t.ValidateIf=function(t,n){return function(r,d){var a={type:u.CONDITIONAL_VALIDATION,target:r.constructor,propertyName:d,constraints:[t],validationOptions:n};i().addValidationMetadata(new e(a))}},t.ValidateNested=function(t){var n=M({},t),r=n.each?"each value in ":"";return n.message=n.message||r+"nested property $property must be either object or array",function(t,r){var d={type:u.NESTED_VALIDATION,target:t.constructor,propertyName:r,validationOptions:n};i().addValidationMetadata(new e(d))}},t.ValidatePromise=function(t){return function(n,r){var d={type:u.PROMISE_VALIDATION,target:n.constructor,propertyName:r,validationOptions:t};i().addValidationMetadata(new e(d))}},t.ValidationError=o,t.ValidationTypes=u,t.Validator=v,t.ValidatorConstraint=function(t){return function(e){var n=t&&t.async,r=t&&t.name?t.name:"";r||(r=e.name)||(r=r.replace(/\.?([A-Z]+)/g,(function(t,e){return"_"+e.toLowerCase()})).replace(/^_/,""));var d=new m(e,r,n);i().addConstraintMetadata(d)}},t.arrayContains=Ea,t.arrayMaxSize=wa,t.arrayMinSize=La,t.arrayNotContains=Pa,t.arrayNotEmpty=Ta,t.arrayUnique=Za,t.buildMessage=A,t.contains=ct,t.equals=D,t.getFromContainer=g,t.getMetadataStorage=i,t.isAlpha=mt,t.isAlphanumeric=bt,t.isArray=Ma,t.isAscii=Et,t.isBIC=fd,t.isBase32=sd,t.isBase64=Tt,t.isBoolean=fa,t.isBooleanString=rd,t.isBtcAddress=vd,t.isByteLength=wt,t.isCreditCard=Bt,t.isCurrency=jt,t.isDataURI=md,t.isDate=pa,t.isDateString=td,t.isDecimal=St,t.isDefined=I,t.isDivisibleBy=Q,t.isEAN=bd,t.isEmail=zt,t.isEmpty=U,t.isEnum=ma,t.isEthereumAddress=Md,t.isFQDN=Xt,t.isFirebasePushId=yn,t.isFullWidth=ee,t.isHSL=Nd,t.isHalfWidth=ae,t.isHash=zr,t.isHexColor=le,t.isHexadecimal=ve,t.isIBAN=Pd,t.isIP=be,t.isISBN=Ee,t.isISIN=xe,t.isISO31661Alpha2=ze,t.isISO31661Alpha3=qe,t.isISO8601=Le,t.isISRC=wd,t.isISSN=qr,t.isIdentityCard=Rd,t.isIn=k,t.isInstance=ja,t.isInt=Aa,t.isJSON=De,t.isJWT=Ge,t.isLatLong=x,t.isLatitude=R,t.isLocale=Bd,t.isLongitude=F,t.isLowercase=Ve,t.isMACAddress=he,t.isMagnetURI=jd,t.isMilitaryTime=Kr,t.isMimeType=kd,t.isMobilePhone=Ke,t.isMongoId=en,t.isMultibyte=dn,t.isNegative=rt,t.isNotEmpty=V,t.isNotEmptyObject=Ga,t.isNotIn=W,t.isNumber=ya,t.isNumberString=id,t.isObject=Oa,t.isOctal=Yd,t.isPassportNumber=Xd,t.isPhoneNumber=Hr,t.isPort=Se,t.isPositive=et,t.isPostalCode=ta,t.isRFC3339=ra,t.isRgbColor=ia,t.isSemVer=$a,t.isString=_a,t.isSurrogatePair=un,t.isURL=ln,t.isUUID=pn,t.isUppercase=hn,t.isValidationOptions=ye,t.isVariableWidth=ue,t.length=_n,t.matches=Cn,t.max=dt,t.maxDate=st,t.maxLength=Mn,t.min=at,t.minDate=ot,t.minLength=On,t.notContains=vt,t.notEquals=B,t.registerDecorator=h,t.registerSchema=function(t){i().addValidationSchema(t)},t.useContainer=function(t,e){s=t,$=e},t.validate=function(t,e,n){return"string"==typeof t?g(v).validate(t,e,n):g(v).validate(t,e)},t.validateOrReject=function(t,e,n){return"string"==typeof t?g(v).validateOrReject(t,e,n):g(v).validateOrReject(t,e)},t.validateSync=function(t,e,n){return"string"==typeof t?g(v).validateSync(t,e,n):g(v).validateSync(t,e)},Object.defineProperty(t,"__esModule",{value:!0})})); -//# sourceMappingURL=class-validator.umd.min.js.map diff --git a/views/node_modules/class-validator/bundles/class-validator.umd.min.js.map b/views/node_modules/class-validator/bundles/class-validator.umd.min.js.map deleted file mode 100644 index ef3ad7a..0000000 --- a/views/node_modules/class-validator/bundles/class-validator.umd.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"class-validator.umd.min.js","sources":["../esm5/metadata/ValidationMetadata.js","../esm5/validation-schema/ValidationSchemaToMetadataTransformer.js","../esm5/utils/get-global.util.js","../esm5/utils/is-promise.util.js","../esm5/metadata/MetadataStorage.js","../esm5/validation/ValidationError.js","../esm5/validation/ValidationTypes.js","../esm5/validation/ValidationUtils.js","../esm5/container.js","../esm5/validation/ValidationExecutor.js","../esm5/utils/convert-to-array.util.js","../esm5/validation/Validator.js","../esm5/metadata/ConstraintMetadata.js","../esm5/register-decorator.js","../esm5/decorator/common/ValidateBy.js","../esm5/decorator/common/IsDefined.js","../esm5/decorator/common/ValidateNested.js","../../node_modules/validator/lib/util/assertString.js","../../node_modules/validator/lib/util/merge.js","../../node_modules/validator/lib/isLatLong.js","../esm5/decorator/common/IsLatLong.js","../esm5/decorator/common/IsLatitude.js","../esm5/decorator/common/IsLongitude.js","../esm5/decorator/common/Equals.js","../esm5/decorator/common/NotEquals.js","../esm5/decorator/common/IsEmpty.js","../esm5/decorator/common/IsNotEmpty.js","../esm5/decorator/common/IsIn.js","../esm5/decorator/common/IsNotIn.js","../../node_modules/validator/lib/alpha.js","../../node_modules/validator/lib/isFloat.js","../../node_modules/validator/lib/toFloat.js","../../node_modules/validator/lib/isDivisibleBy.js","../esm5/decorator/number/IsDivisibleBy.js","../esm5/decorator/number/IsPositive.js","../esm5/decorator/number/IsNegative.js","../esm5/decorator/number/Max.js","../esm5/decorator/number/Min.js","../esm5/decorator/date/MinDate.js","../esm5/decorator/date/MaxDate.js","../../node_modules/validator/lib/util/toString.js","../../node_modules/validator/lib/contains.js","../esm5/decorator/string/Contains.js","../esm5/decorator/string/NotContains.js","../../node_modules/validator/lib/isAlpha.js","../esm5/decorator/string/IsAlpha.js","../../node_modules/validator/lib/isAlphanumeric.js","../esm5/decorator/string/IsAlphanumeric.js","../../node_modules/validator/lib/util/includes.js","../../node_modules/validator/lib/isDecimal.js","../esm5/decorator/string/IsDecimal.js","../../node_modules/validator/lib/isAscii.js","../esm5/decorator/string/IsAscii.js","../../node_modules/validator/lib/isBase64.js","../esm5/decorator/string/IsBase64.js","../../node_modules/validator/lib/isByteLength.js","../esm5/decorator/string/IsByteLength.js","../../node_modules/validator/lib/isCreditCard.js","../esm5/decorator/string/IsCreditCard.js","../../node_modules/validator/lib/isCurrency.js","../esm5/decorator/string/IsCurrency.js","../../node_modules/validator/lib/isFQDN.js","../../node_modules/validator/lib/isIP.js","../../node_modules/validator/lib/isEmail.js","../esm5/decorator/string/IsEmail.js","../esm5/decorator/string/IsFQDN.js","../../node_modules/validator/lib/isFullWidth.js","../esm5/decorator/string/IsFullWidth.js","../../node_modules/validator/lib/isHalfWidth.js","../esm5/decorator/string/IsHalfWidth.js","../../node_modules/validator/lib/isVariableWidth.js","../esm5/decorator/string/IsVariableWidth.js","../../node_modules/validator/lib/isHexColor.js","../esm5/decorator/string/IsHexColor.js","../../node_modules/validator/lib/isHexadecimal.js","../esm5/decorator/string/IsHexadecimal.js","../esm5/decorator/ValidationOptions.js","../../node_modules/validator/lib/isMACAddress.js","../esm5/decorator/string/IsMacAddress.js","../esm5/decorator/string/IsIP.js","../../node_modules/validator/lib/isInt.js","../../node_modules/validator/lib/isPort.js","../esm5/decorator/string/IsPort.js","../../node_modules/validator/lib/isISBN.js","../esm5/decorator/string/IsISBN.js","../../node_modules/validator/lib/isISIN.js","../esm5/decorator/string/IsISIN.js","../../node_modules/validator/lib/isISO8601.js","../esm5/decorator/string/IsISO8601.js","../../node_modules/validator/lib/isJSON.js","../esm5/decorator/string/IsJSON.js","../../node_modules/validator/lib/isJWT.js","../esm5/decorator/string/IsJWT.js","../../node_modules/validator/lib/isLowercase.js","../esm5/decorator/string/IsLowercase.js","../../node_modules/validator/lib/isMobilePhone.js","../esm5/decorator/string/IsMobilePhone.js","../../node_modules/validator/lib/isISO31661Alpha2.js","../esm5/decorator/string/IsISO31661Alpha2.js","../../node_modules/validator/lib/isISO31661Alpha3.js","../esm5/decorator/string/IsISO31661Alpha3.js","../../node_modules/validator/lib/isMongoId.js","../esm5/decorator/string/IsMongoId.js","../../node_modules/validator/lib/isMultibyte.js","../esm5/decorator/string/IsMultibyte.js","../../node_modules/validator/lib/isSurrogatePair.js","../esm5/decorator/string/IsSurrogatePair.js","../../node_modules/validator/lib/isURL.js","../esm5/decorator/string/IsUrl.js","../../node_modules/validator/lib/isUUID.js","../esm5/decorator/string/IsUUID.js","../esm5/decorator/string/IsFirebasePushId.js","../../node_modules/validator/lib/isUppercase.js","../esm5/decorator/string/IsUppercase.js","../../node_modules/validator/lib/isLength.js","../esm5/decorator/string/Length.js","../esm5/decorator/string/MaxLength.js","../esm5/decorator/string/MinLength.js","../../node_modules/validator/lib/matches.js","../esm5/decorator/string/Matches.js","../../node_modules/libphonenumber-js/metadata.min.json.js","../../node_modules/libphonenumber-js/min/metadata.js","../../node_modules/libphonenumber-js/es6/ParseError.js","../../node_modules/libphonenumber-js/es6/constants.js","../../node_modules/libphonenumber-js/es6/tools/semver-compare.js","../../node_modules/libphonenumber-js/es6/metadata.js","../../node_modules/libphonenumber-js/es6/helpers/extension/createExtensionPattern.js","../../node_modules/libphonenumber-js/es6/helpers/isViablePhoneNumber.js","../../node_modules/libphonenumber-js/es6/helpers/extension/extractExtension.js","../../node_modules/libphonenumber-js/es6/helpers/parseDigits.js","../../node_modules/libphonenumber-js/es6/parseIncompletePhoneNumber.js","../../node_modules/libphonenumber-js/es6/helpers/checkNumberLength.js","../../node_modules/libphonenumber-js/es6/helpers/mergeArrays.js","../../node_modules/libphonenumber-js/es6/isPossibleNumber_.js","../../node_modules/libphonenumber-js/es6/helpers/RFC3966.js","../../node_modules/libphonenumber-js/es6/helpers/matchesEntirely.js","../../node_modules/libphonenumber-js/es6/helpers/getNumberType.js","../../node_modules/libphonenumber-js/es6/helpers/formatNationalNumberUsingFormat.js","../../node_modules/libphonenumber-js/es6/helpers/applyInternationalSeparatorStyle.js","../../node_modules/libphonenumber-js/es6/helpers/getIddPrefix.js","../../node_modules/libphonenumber-js/es6/format_.js","../../node_modules/libphonenumber-js/es6/PhoneNumber.js","../../node_modules/libphonenumber-js/es6/validate_.js","../../node_modules/libphonenumber-js/es6/helpers/stripIddPrefix.js","../../node_modules/libphonenumber-js/es6/helpers/extractNationalNumber.js","../../node_modules/libphonenumber-js/es6/helpers/extractNationalNumberFromPossiblyIncompleteNumber.js","../../node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCode.js","../../node_modules/libphonenumber-js/es6/helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js","../../node_modules/libphonenumber-js/es6/helpers/getCountryByCallingCode.js","../../node_modules/libphonenumber-js/es6/parse_.js","../../node_modules/libphonenumber-js/es6/parsePhoneNumber_.js","../../node_modules/libphonenumber-js/es6/parsePhoneNumber.js","../../node_modules/libphonenumber-js/es6/parsePhoneNumberFromString_.js","../../node_modules/libphonenumber-js/es6/parsePhoneNumberFromString.js","../esm5/decorator/string/IsPhoneNumber.js","../../node_modules/libphonenumber-js/min/exports/parsePhoneNumberFromString.js","../esm5/decorator/string/IsMilitaryTime.js","../../node_modules/validator/lib/isHash.js","../esm5/decorator/string/IsHash.js","../../node_modules/validator/lib/isISSN.js","../esm5/decorator/string/IsISSN.js","../esm5/decorator/string/IsDateString.js","../../node_modules/validator/lib/isBoolean.js","../esm5/decorator/string/IsBooleanString.js","../../node_modules/validator/lib/isNumeric.js","../esm5/decorator/string/IsNumberString.js","../../node_modules/validator/lib/isBase32.js","../esm5/decorator/string/IsBase32.js","../../node_modules/validator/lib/isBIC.js","../esm5/decorator/string/IsBIC.js","../../node_modules/validator/lib/isBtcAddress.js","../esm5/decorator/string/IsBtcAddress.js","../../node_modules/validator/lib/isDataURI.js","../esm5/decorator/string/IsDataURI.js","../../node_modules/validator/lib/isEAN.js","../esm5/decorator/string/IsEAN.js","../../node_modules/validator/lib/isEthereumAddress.js","../esm5/decorator/string/IsEthereumAddress.js","../../node_modules/validator/lib/isHSL.js","../esm5/decorator/string/IsHSL.js","../../node_modules/validator/lib/isIBAN.js","../esm5/decorator/string/IsIBAN.js","../../node_modules/validator/lib/isIdentityCard.js","../esm5/decorator/string/IsIdentityCard.js","../../node_modules/validator/lib/isISRC.js","../esm5/decorator/string/IsISRC.js","../../node_modules/validator/lib/isLocale.js","../esm5/decorator/string/IsLocale.js","../../node_modules/validator/lib/isMagnetURI.js","../esm5/decorator/string/IsMagnetURI.js","../../node_modules/validator/lib/isMimeType.js","../esm5/decorator/string/IsMimeType.js","../../node_modules/validator/lib/isOctal.js","../esm5/decorator/string/IsOctal.js","../../node_modules/validator/lib/isPassportNumber.js","../esm5/decorator/string/IsPassportNumber.js","../../node_modules/validator/lib/isPostalCode.js","../esm5/decorator/string/IsPostalCode.js","../../node_modules/validator/lib/isRFC3339.js","../esm5/decorator/string/IsRFC3339.js","../../node_modules/validator/lib/isRgbColor.js","../esm5/decorator/string/IsRgbColor.js","../../node_modules/validator/lib/util/multilineRegex.js","../../node_modules/validator/lib/isSemVer.js","../esm5/decorator/string/IsSemVer.js","../esm5/decorator/typechecker/IsBoolean.js","../esm5/decorator/typechecker/IsDate.js","../esm5/decorator/typechecker/IsNumber.js","../esm5/decorator/typechecker/IsEnum.js","../esm5/decorator/typechecker/IsInt.js","../esm5/decorator/typechecker/IsString.js","../esm5/decorator/typechecker/IsArray.js","../esm5/decorator/typechecker/IsObject.js","../esm5/decorator/array/ArrayContains.js","../esm5/decorator/array/ArrayNotContains.js","../esm5/decorator/array/ArrayNotEmpty.js","../esm5/decorator/array/ArrayMinSize.js","../esm5/decorator/array/ArrayMaxSize.js","../esm5/decorator/array/ArrayUnique.js","../esm5/decorator/object/IsNotEmptyObject.js","../esm5/decorator/object/IsInstance.js","../esm5/decorator/common/Allow.js","../esm5/decorator/common/IsOptional.js","../esm5/decorator/common/Validate.js","../esm5/decorator/common/ValidateIf.js","../esm5/decorator/common/ValidatePromise.js","../esm5/index.js"],"sourcesContent":["/**\n * This metadata contains validation rules.\n */\nvar ValidationMetadata = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ValidationMetadata(args) {\n /**\n * Validation groups used for this validation.\n */\n this.groups = [];\n /**\n * Specifies if validated value is an array and each of its item must be validated.\n */\n this.each = false;\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n this.context = undefined;\n this.type = args.type;\n this.target = args.target;\n this.propertyName = args.propertyName;\n this.constraints = args.constraints;\n this.constraintCls = args.constraintCls;\n this.validationTypeOptions = args.validationTypeOptions;\n if (args.validationOptions) {\n this.message = args.validationOptions.message;\n this.groups = args.validationOptions.groups;\n this.always = args.validationOptions.always;\n this.each = args.validationOptions.each;\n this.context = args.validationOptions.context;\n }\n }\n return ValidationMetadata;\n}());\nexport { ValidationMetadata };\n//# sourceMappingURL=ValidationMetadata.js.map","import { ValidationMetadata } from '../metadata/ValidationMetadata';\n/**\n * Used to transform validation schemas to validation metadatas.\n */\nvar ValidationSchemaToMetadataTransformer = /** @class */ (function () {\n function ValidationSchemaToMetadataTransformer() {\n }\n ValidationSchemaToMetadataTransformer.prototype.transform = function (schema) {\n var metadatas = [];\n Object.keys(schema.properties).forEach(function (property) {\n schema.properties[property].forEach(function (validation) {\n var validationOptions = {\n message: validation.message,\n groups: validation.groups,\n always: validation.always,\n each: validation.each,\n };\n var args = {\n type: validation.type,\n target: schema.name,\n propertyName: property,\n constraints: validation.constraints,\n validationTypeOptions: validation.options,\n validationOptions: validationOptions,\n };\n metadatas.push(new ValidationMetadata(args));\n });\n });\n return metadatas;\n };\n return ValidationSchemaToMetadataTransformer;\n}());\nexport { ValidationSchemaToMetadataTransformer };\n//# sourceMappingURL=ValidationSchemaToMetadataTransformer.js.map","/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n//# sourceMappingURL=get-global.util.js.map","// https://github.com/TylorS/typed-is-promise/blob/abf1514e1b6961adfc75765476b0debb96b2c3ae/src/index.ts\nexport function isPromise(p) {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n//# sourceMappingURL=is-promise.util.js.map","import { ValidationSchemaToMetadataTransformer } from '../validation-schema/ValidationSchemaToMetadataTransformer';\nimport { getGlobal } from '../utils';\n/**\n * Storage all metadatas.\n */\nvar MetadataStorage = /** @class */ (function () {\n function MetadataStorage() {\n // -------------------------------------------------------------------------\n // Private properties\n // -------------------------------------------------------------------------\n this.validationMetadatas = [];\n this.constraintMetadatas = [];\n }\n Object.defineProperty(MetadataStorage.prototype, \"hasValidationMetaData\", {\n get: function () {\n return !!this.validationMetadatas.length;\n },\n enumerable: false,\n configurable: true\n });\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * Adds a new validation metadata.\n */\n MetadataStorage.prototype.addValidationSchema = function (schema) {\n var _this = this;\n var validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema);\n validationMetadatas.forEach(function (validationMetadata) { return _this.addValidationMetadata(validationMetadata); });\n };\n /**\n * Adds a new validation metadata.\n */\n MetadataStorage.prototype.addValidationMetadata = function (metadata) {\n this.validationMetadatas.push(metadata);\n };\n /**\n * Adds a new constraint metadata.\n */\n MetadataStorage.prototype.addConstraintMetadata = function (metadata) {\n this.constraintMetadatas.push(metadata);\n };\n /**\n * Groups metadata by their property names.\n */\n MetadataStorage.prototype.groupByPropertyName = function (metadata) {\n var grouped = {};\n metadata.forEach(function (metadata) {\n if (!grouped[metadata.propertyName])\n grouped[metadata.propertyName] = [];\n grouped[metadata.propertyName].push(metadata);\n });\n return grouped;\n };\n /**\n * Gets all validation metadatas for the given object with the given groups.\n */\n MetadataStorage.prototype.getTargetValidationMetadatas = function (targetConstructor, targetSchema, always, strictGroups, groups) {\n var includeMetadataBecauseOfAlwaysOption = function (metadata) {\n // `metadata.always` overrides global default.\n if (typeof metadata.always !== 'undefined')\n return metadata.always;\n // `metadata.groups` overrides global default.\n if (metadata.groups && metadata.groups.length)\n return false;\n // Use global default.\n return always;\n };\n var excludeMetadataBecauseOfStrictGroupsOption = function (metadata) {\n if (strictGroups) {\n // Validation is not using groups.\n if (!groups || !groups.length) {\n // `metadata.groups` has at least one group.\n if (metadata.groups && metadata.groups.length)\n return true;\n }\n }\n return false;\n };\n // get directly related to a target metadatas\n var originalMetadatas = this.validationMetadatas.filter(function (metadata) {\n if (metadata.target !== targetConstructor && metadata.target !== targetSchema)\n return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata))\n return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n return true;\n });\n // get metadatas for inherited classes\n var inheritedMetadatas = this.validationMetadatas.filter(function (metadata) {\n // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas\n if (typeof metadata.target === 'string')\n return false;\n if (metadata.target === targetConstructor)\n return false;\n if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target))\n return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata))\n return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata))\n return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; });\n return true;\n });\n // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas\n var uniqueInheritedMetadatas = inheritedMetadatas.filter(function (inheritedMetadata) {\n return !originalMetadatas.find(function (originalMetadata) {\n return (originalMetadata.propertyName === inheritedMetadata.propertyName &&\n originalMetadata.type === inheritedMetadata.type);\n });\n });\n return originalMetadatas.concat(uniqueInheritedMetadatas);\n };\n /**\n * Gets all validator constraints for the given object.\n */\n MetadataStorage.prototype.getTargetValidatorConstraints = function (target) {\n return this.constraintMetadatas.filter(function (metadata) { return metadata.target === target; });\n };\n return MetadataStorage;\n}());\nexport { MetadataStorage };\n/**\n * Gets metadata storage.\n * Metadata storage follows the best practices and stores metadata in a global variable.\n */\nexport function getMetadataStorage() {\n var global = getGlobal();\n if (!global.classValidatorMetadataStorage) {\n global.classValidatorMetadataStorage = new MetadataStorage();\n }\n return global.classValidatorMetadataStorage;\n}\n//# sourceMappingURL=MetadataStorage.js.map","/**\n * Validation error description.\n */\nvar ValidationError = /** @class */ (function () {\n function ValidationError() {\n }\n /**\n *\n * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability\n * @param hasParent true when the error is a child of an another one\n * @param parentPath path as string to the parent of this property\n */\n ValidationError.prototype.toString = function (shouldDecorate, hasParent, parentPath) {\n var _this = this;\n if (shouldDecorate === void 0) { shouldDecorate = false; }\n if (hasParent === void 0) { hasParent = false; }\n if (parentPath === void 0) { parentPath = \"\"; }\n var boldStart = shouldDecorate ? \"\\u001B[1m\" : \"\";\n var boldEnd = shouldDecorate ? \"\\u001B[22m\" : \"\";\n var propConstraintFailed = function (propertyName) {\n return \" - property \" + boldStart + parentPath + propertyName + boldEnd + \" has failed the following constraints: \" + boldStart + Object.keys(_this.constraints).join(\", \") + boldEnd + \" \\n\";\n };\n if (!hasParent) {\n return (\"An instance of \" + boldStart + (this.target ? this.target.constructor.name : 'an object') + boldEnd + \" has failed the validation:\\n\" +\n (this.constraints ? propConstraintFailed(this.property) : \"\") +\n (this.children\n ? this.children.map(function (childError) { return childError.toString(shouldDecorate, true, _this.property); }).join(\"\")\n : \"\"));\n }\n else {\n // we format numbers as array indexes for better readability.\n var formattedProperty_1 = Number.isInteger(+this.property)\n ? \"[\" + this.property + \"]\"\n : \"\" + (parentPath ? \".\" : \"\") + this.property;\n if (this.constraints) {\n return propConstraintFailed(formattedProperty_1);\n }\n else {\n return this.children\n ? this.children\n .map(function (childError) { return childError.toString(shouldDecorate, true, \"\" + parentPath + formattedProperty_1); })\n .join(\"\")\n : \"\";\n }\n }\n };\n return ValidationError;\n}());\nexport { ValidationError };\n//# sourceMappingURL=ValidationError.js.map","/**\n * Validation types.\n */\nvar ValidationTypes = /** @class */ (function () {\n function ValidationTypes() {\n }\n /**\n * Checks if validation type is valid.\n */\n ValidationTypes.isValid = function (type) {\n var _this = this;\n return (type !== 'isValid' &&\n type !== 'getMessage' &&\n Object.keys(this)\n .map(function (key) { return _this[key]; })\n .indexOf(type) !== -1);\n };\n /* system */\n ValidationTypes.CUSTOM_VALIDATION = 'customValidation'; // done\n ValidationTypes.NESTED_VALIDATION = 'nestedValidation'; // done\n ValidationTypes.PROMISE_VALIDATION = 'promiseValidation'; // done\n ValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation'; // done\n ValidationTypes.WHITELIST = 'whitelistValidation'; // done\n ValidationTypes.IS_DEFINED = 'isDefined'; // done\n return ValidationTypes;\n}());\nexport { ValidationTypes };\n//# sourceMappingURL=ValidationTypes.js.map","/**\n * Convert the constraint to a string to be shown in an error\n */\nexport function constraintToString(constraint) {\n if (Array.isArray(constraint)) {\n return constraint.join(', ');\n }\n return \"\" + constraint;\n}\nvar ValidationUtils = /** @class */ (function () {\n function ValidationUtils() {\n }\n ValidationUtils.replaceMessageSpecialTokens = function (message, validationArguments) {\n var messageString;\n if (message instanceof Function) {\n messageString = message(validationArguments);\n }\n else if (typeof message === 'string') {\n messageString = message;\n }\n if (messageString && validationArguments.constraints instanceof Array) {\n validationArguments.constraints.forEach(function (constraint, index) {\n messageString = messageString.replace(new RegExp(\"\\\\$constraint\" + (index + 1), 'g'), constraintToString(constraint));\n });\n }\n if (messageString &&\n validationArguments.value !== undefined &&\n validationArguments.value !== null &&\n typeof validationArguments.value === 'string')\n messageString = messageString.replace(/\\$value/g, validationArguments.value);\n if (messageString)\n messageString = messageString.replace(/\\$property/g, validationArguments.property);\n if (messageString)\n messageString = messageString.replace(/\\$target/g, validationArguments.targetName);\n return messageString;\n };\n return ValidationUtils;\n}());\nexport { ValidationUtils };\n//# sourceMappingURL=ValidationUtils.js.map","/**\n * Container to be used by this library for inversion control. If container was not implicitly set then by default\n * container simply creates a new instance of the given class.\n */\nvar defaultContainer = new (/** @class */ (function () {\n function class_1() {\n this.instances = [];\n }\n class_1.prototype.get = function (someClass) {\n var instance = this.instances.find(function (instance) { return instance.type === someClass; });\n if (!instance) {\n instance = { type: someClass, object: new someClass() };\n this.instances.push(instance);\n }\n return instance.object;\n };\n return class_1;\n}()))();\nvar userContainer;\nvar userContainerOptions;\n/**\n * Sets container to be used by this library.\n */\nexport function useContainer(iocContainer, options) {\n userContainer = iocContainer;\n userContainerOptions = options;\n}\n/**\n * Gets the IOC container used by this library.\n */\nexport function getFromContainer(someClass) {\n if (userContainer) {\n try {\n var instance = userContainer.get(someClass);\n if (instance)\n return instance;\n if (!userContainerOptions || !userContainerOptions.fallback)\n return instance;\n }\n catch (error) {\n if (!userContainerOptions || !userContainerOptions.fallbackOnErrors)\n throw error;\n }\n }\n return defaultContainer.get(someClass);\n}\n//# sourceMappingURL=container.js.map","import { ValidationError } from './ValidationError';\nimport { ValidationTypes } from './ValidationTypes';\nimport { ValidationUtils } from './ValidationUtils';\nimport { isPromise, convertToArray } from '../utils';\nimport { getMetadataStorage } from '../metadata/MetadataStorage';\n/**\n * Executes validation over given object.\n */\nvar ValidationExecutor = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ValidationExecutor(validator, validatorOptions) {\n this.validator = validator;\n this.validatorOptions = validatorOptions;\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n this.awaitingPromises = [];\n this.ignoreAsyncValidations = false;\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n this.metadataStorage = getMetadataStorage();\n }\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n ValidationExecutor.prototype.execute = function (object, targetSchema, validationErrors) {\n var _this = this;\n var _a;\n /**\n * If there is no metadata registered it means possibly the dependencies are not flatterned and\n * more than one instance is used.\n *\n * TODO: This needs proper handling, forcing to use the same container or some other proper solution.\n */\n if (!this.metadataStorage.hasValidationMetaData && ((_a = this.validatorOptions) === null || _a === void 0 ? void 0 : _a.enableDebugMessages) === true) {\n console.warn(\"No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies.\");\n }\n var groups = this.validatorOptions ? this.validatorOptions.groups : undefined;\n var strictGroups = (this.validatorOptions && this.validatorOptions.strictGroups) || false;\n var always = (this.validatorOptions && this.validatorOptions.always) || false;\n var targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(object.constructor, targetSchema, always, strictGroups, groups);\n var groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas);\n if (this.validatorOptions && this.validatorOptions.forbidUnknownValues && !targetMetadatas.length) {\n var validationError = new ValidationError();\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true)\n validationError.target = object;\n validationError.value = undefined;\n validationError.property = undefined;\n validationError.children = [];\n validationError.constraints = { unknownValue: 'an unknown value was passed to the validate function' };\n validationErrors.push(validationError);\n return;\n }\n if (this.validatorOptions && this.validatorOptions.whitelist)\n this.whitelist(object, groupedMetadatas, validationErrors);\n // General validation\n Object.keys(groupedMetadatas).forEach(function (propertyName) {\n var value = object[propertyName];\n var definedMetadatas = groupedMetadatas[propertyName].filter(function (metadata) { return metadata.type === ValidationTypes.IS_DEFINED; });\n var metadatas = groupedMetadatas[propertyName].filter(function (metadata) { return metadata.type !== ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes.WHITELIST; });\n if (value instanceof Promise &&\n metadatas.find(function (metadata) { return metadata.type === ValidationTypes.PROMISE_VALIDATION; })) {\n _this.awaitingPromises.push(value.then(function (resolvedValue) {\n _this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors);\n }));\n }\n else {\n _this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors);\n }\n });\n };\n ValidationExecutor.prototype.whitelist = function (object, groupedMetadatas, validationErrors) {\n var _this = this;\n var notAllowedProperties = [];\n Object.keys(object).forEach(function (propertyName) {\n // does this property have no metadata?\n if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0)\n notAllowedProperties.push(propertyName);\n });\n if (notAllowedProperties.length > 0) {\n if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) {\n // throw errors\n notAllowedProperties.forEach(function (property) {\n var _a;\n var validationError = _this.generateValidationError(object, object[property], property);\n validationError.constraints = (_a = {}, _a[ValidationTypes.WHITELIST] = \"property \" + property + \" should not exist\", _a);\n validationError.children = undefined;\n validationErrors.push(validationError);\n });\n }\n else {\n // strip non allowed properties\n notAllowedProperties.forEach(function (property) { return delete object[property]; });\n }\n }\n };\n ValidationExecutor.prototype.stripEmptyErrors = function (errors) {\n var _this = this;\n return errors.filter(function (error) {\n if (error.children) {\n error.children = _this.stripEmptyErrors(error.children);\n }\n if (Object.keys(error.constraints).length === 0) {\n if (error.children.length === 0) {\n return false;\n }\n else {\n delete error.constraints;\n }\n }\n return true;\n });\n };\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n ValidationExecutor.prototype.performValidations = function (object, value, propertyName, definedMetadatas, metadatas, validationErrors) {\n var customValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.CUSTOM_VALIDATION; });\n var nestedValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.NESTED_VALIDATION; });\n var conditionalValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.CONDITIONAL_VALIDATION; });\n var validationError = this.generateValidationError(object, value, propertyName);\n validationErrors.push(validationError);\n var canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas);\n if (!canValidate) {\n return;\n }\n // handle IS_DEFINED validation type the special way - it should work no matter skipUndefinedProperties/skipMissingProperties is set or not\n this.customValidations(object, value, definedMetadatas, validationError);\n this.mapContexts(object, value, definedMetadatas, validationError);\n if (value === undefined && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) {\n return;\n }\n if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) {\n return;\n }\n if ((value === null || value === undefined) &&\n this.validatorOptions &&\n this.validatorOptions.skipMissingProperties === true) {\n return;\n }\n this.customValidations(object, value, customValidationMetadatas, validationError);\n this.nestedValidations(value, nestedValidationMetadatas, validationError.children);\n this.mapContexts(object, value, metadatas, validationError);\n this.mapContexts(object, value, customValidationMetadatas, validationError);\n };\n ValidationExecutor.prototype.generateValidationError = function (object, value, propertyName) {\n var validationError = new ValidationError();\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true)\n validationError.target = object;\n if (!this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.value === undefined ||\n this.validatorOptions.validationError.value === true)\n validationError.value = value;\n validationError.property = propertyName;\n validationError.children = [];\n validationError.constraints = {};\n return validationError;\n };\n ValidationExecutor.prototype.conditionalValidations = function (object, value, metadatas) {\n return metadatas\n .map(function (metadata) { return metadata.constraints[0](object, value); })\n .reduce(function (resultA, resultB) { return resultA && resultB; }, true);\n };\n ValidationExecutor.prototype.customValidations = function (object, value, metadatas, error) {\n var _this = this;\n metadatas.forEach(function (metadata) {\n _this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls).forEach(function (customConstraintMetadata) {\n if (customConstraintMetadata.async && _this.ignoreAsyncValidations)\n return;\n if (_this.validatorOptions &&\n _this.validatorOptions.stopAtFirstError &&\n Object.keys(error.constraints || {}).length > 0)\n return;\n var validationArguments = {\n targetName: object.constructor ? object.constructor.name : undefined,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n if (!metadata.each || !(value instanceof Array || value instanceof Set || value instanceof Map)) {\n var validatedValue = customConstraintMetadata.instance.validate(value, validationArguments);\n if (isPromise(validatedValue)) {\n var promise = validatedValue.then(function (isValid) {\n if (!isValid) {\n var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1];\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n _this.awaitingPromises.push(promise);\n }\n else {\n if (!validatedValue) {\n var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1];\n error.constraints[type] = message;\n }\n }\n return;\n }\n // convert set and map into array\n var arrayValue = convertToArray(value);\n // Validation needs to be applied to each array item\n var validatedSubValues = arrayValue.map(function (subValue) {\n return customConstraintMetadata.instance.validate(subValue, validationArguments);\n });\n var validationIsAsync = validatedSubValues.some(function (validatedSubValue) {\n return isPromise(validatedSubValue);\n });\n if (validationIsAsync) {\n // Wrap plain values (if any) in promises, so that all are async\n var asyncValidatedSubValues = validatedSubValues.map(function (validatedSubValue) {\n return isPromise(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue);\n });\n var asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues).then(function (flatValidatedValues) {\n var validationResult = flatValidatedValues.every(function (isValid) { return isValid; });\n if (!validationResult) {\n var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1];\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n _this.awaitingPromises.push(asyncValidationIsFinishedPromise);\n return;\n }\n var validationResult = validatedSubValues.every(function (isValid) { return isValid; });\n if (!validationResult) {\n var _b = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _b[0], message = _b[1];\n error.constraints[type] = message;\n }\n });\n });\n };\n ValidationExecutor.prototype.nestedValidations = function (value, metadatas, errors) {\n var _this = this;\n if (value === void 0) {\n return;\n }\n metadatas.forEach(function (metadata) {\n var _a;\n if (metadata.type !== ValidationTypes.NESTED_VALIDATION && metadata.type !== ValidationTypes.PROMISE_VALIDATION) {\n return;\n }\n if (value instanceof Array || value instanceof Set || value instanceof Map) {\n // Treats Set as an array - as index of Set value is value itself and it is common case to have Object as value\n var arrayLikeValue = value instanceof Set ? Array.from(value) : value;\n arrayLikeValue.forEach(function (subValue, index) {\n _this.performValidations(value, subValue, index.toString(), [], metadatas, errors);\n });\n }\n else if (value instanceof Object) {\n var targetSchema = typeof metadata.target === 'string' ? metadata.target : metadata.target.name;\n _this.execute(value, targetSchema, errors);\n }\n else {\n var error = new ValidationError();\n error.value = value;\n error.property = metadata.propertyName;\n error.target = metadata.target;\n var _b = _this.createValidationError(metadata.target, value, metadata), type = _b[0], message = _b[1];\n error.constraints = (_a = {},\n _a[type] = message,\n _a);\n errors.push(error);\n }\n });\n };\n ValidationExecutor.prototype.mapContexts = function (object, value, metadatas, error) {\n var _this = this;\n return metadatas.forEach(function (metadata) {\n if (metadata.context) {\n var customConstraint = void 0;\n if (metadata.type === ValidationTypes.CUSTOM_VALIDATION) {\n var customConstraints = _this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls);\n customConstraint = customConstraints[0];\n }\n var type = _this.getConstraintType(metadata, customConstraint);\n if (error.constraints[type]) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n };\n ValidationExecutor.prototype.createValidationError = function (object, value, metadata, customValidatorMetadata) {\n var targetName = object.constructor ? object.constructor.name : undefined;\n var type = this.getConstraintType(metadata, customValidatorMetadata);\n var validationArguments = {\n targetName: targetName,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n var message = metadata.message || '';\n if (!metadata.message &&\n (!this.validatorOptions || (this.validatorOptions && !this.validatorOptions.dismissDefaultMessages))) {\n if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) {\n message = customValidatorMetadata.instance.defaultMessage(validationArguments);\n }\n }\n var messageString = ValidationUtils.replaceMessageSpecialTokens(message, validationArguments);\n return [type, messageString];\n };\n ValidationExecutor.prototype.getConstraintType = function (metadata, customValidatorMetadata) {\n var type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type;\n return type;\n };\n return ValidationExecutor;\n}());\nexport { ValidationExecutor };\n//# sourceMappingURL=ValidationExecutor.js.map","/**\n * Convert Map, Set to Array\n */\nexport function convertToArray(val) {\n if (val instanceof Map) {\n return Array.from(val.values());\n }\n return Array.isArray(val) ? val : Array.from(val);\n}\n//# sourceMappingURL=convert-to-array.util.js.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport { ValidationExecutor } from './ValidationExecutor';\n/**\n * Validator performs validation of the given object based on its metadata.\n */\nvar Validator = /** @class */ (function () {\n function Validator() {\n }\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n Validator.prototype.validate = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions);\n };\n /**\n * Performs validation of the given object based on decorators or validation schema and reject on error.\n */\n Validator.prototype.validateOrReject = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n return __awaiter(this, void 0, void 0, function () {\n var errors;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions)];\n case 1:\n errors = _a.sent();\n if (errors.length)\n return [2 /*return*/, Promise.reject(errors)];\n return [2 /*return*/];\n }\n });\n });\n };\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n Validator.prototype.validateSync = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n var object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName;\n var options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions;\n var schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n var executor = new ValidationExecutor(this, options);\n executor.ignoreAsyncValidations = true;\n var validationErrors = [];\n executor.execute(object, schema, validationErrors);\n return executor.stripEmptyErrors(validationErrors);\n };\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n /**\n * Performs validation of the given object based on decorators or validation schema.\n * Common method for `validateOrReject` and `validate` methods.\n */\n Validator.prototype.coreValidate = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) {\n var object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName;\n var options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions;\n var schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n var executor = new ValidationExecutor(this, options);\n var validationErrors = [];\n executor.execute(object, schema, validationErrors);\n return Promise.all(executor.awaitingPromises).then(function () {\n return executor.stripEmptyErrors(validationErrors);\n });\n };\n return Validator;\n}());\nexport { Validator };\n//# sourceMappingURL=Validator.js.map","import { getFromContainer } from '../container';\n/**\n * This metadata interface contains information for custom validators.\n */\nvar ConstraintMetadata = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function ConstraintMetadata(target, name, async) {\n if (async === void 0) { async = false; }\n this.target = target;\n this.name = name;\n this.async = async;\n }\n Object.defineProperty(ConstraintMetadata.prototype, \"instance\", {\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n /**\n * Instance of the target custom validation class which performs validation.\n */\n get: function () {\n return getFromContainer(this.target);\n },\n enumerable: false,\n configurable: true\n });\n return ConstraintMetadata;\n}());\nexport { ConstraintMetadata };\n//# sourceMappingURL=ConstraintMetadata.js.map","import { ConstraintMetadata } from './metadata/ConstraintMetadata';\nimport { ValidationMetadata } from './metadata/ValidationMetadata';\nimport { ValidationTypes } from './validation/ValidationTypes';\nimport { getFromContainer } from './container';\nimport { MetadataStorage, getMetadataStorage } from './metadata/MetadataStorage';\n/**\n * Registers a custom validation decorator.\n */\nexport function registerDecorator(options) {\n var constraintCls;\n if (options.validator instanceof Function) {\n constraintCls = options.validator;\n var constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator);\n if (constraintClasses.length > 1) {\n throw \"More than one implementation of ValidatorConstraintInterface found for validator on: \" + options.target.name + \":\" + options.propertyName;\n }\n }\n else {\n var validator_1 = options.validator;\n constraintCls = /** @class */ (function () {\n function CustomConstraint() {\n }\n CustomConstraint.prototype.validate = function (value, validationArguments) {\n return validator_1.validate(value, validationArguments);\n };\n CustomConstraint.prototype.defaultMessage = function (validationArguments) {\n if (validator_1.defaultMessage) {\n return validator_1.defaultMessage(validationArguments);\n }\n return '';\n };\n return CustomConstraint;\n }());\n getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async));\n }\n var validationMetadataArgs = {\n type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION,\n target: options.target,\n propertyName: options.propertyName,\n validationOptions: options.options,\n constraintCls: constraintCls,\n constraints: options.constraints,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs));\n}\n//# sourceMappingURL=register-decorator.js.map","import { registerDecorator } from '../../register-decorator';\nexport function buildMessage(impl, validationOptions) {\n return function (validationArguments) {\n var eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : '';\n return impl(eachPrefix, validationArguments);\n };\n}\nexport function ValidateBy(options, validationOptions) {\n return function (object, propertyName) {\n registerDecorator({\n name: options.name,\n target: object.constructor,\n propertyName: propertyName,\n options: validationOptions,\n constraints: options.constraints,\n validator: options.validator,\n });\n };\n}\n//# sourceMappingURL=ValidateBy.js.map","import { buildMessage, ValidateBy } from './ValidateBy';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\n// isDefined is (yet) a special case\nexport var IS_DEFINED = ValidationTypes.IS_DEFINED;\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function IsDefined(validationOptions) {\n return ValidateBy({\n name: IS_DEFINED,\n validator: {\n validate: function (value) { return isDefined(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be null or undefined'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDefined.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Objects / object arrays marked with this decorator will also be validated.\n */\nexport function ValidateNested(validationOptions) {\n var opts = __assign({}, validationOptions);\n var eachPrefix = opts.each ? 'each value in ' : '';\n opts.message = opts.message || eachPrefix + 'nested property $property must be either object or array';\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.NESTED_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: opts,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=ValidateNested.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = assertString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction assertString(input) {\n var isString = typeof input === 'string' || input instanceof String;\n\n if (!isString) {\n var invalidType = _typeof(input);\n\n if (input === null) invalidType = 'null';else if (invalidType === 'object') invalidType = input.constructor.name;\n throw new TypeError(\"Expected a string but received a \".concat(invalidType));\n }\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = merge;\n\nfunction merge() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaults = arguments.length > 1 ? arguments[1] : undefined;\n\n for (var key in defaults) {\n if (typeof obj[key] === 'undefined') {\n obj[key] = defaults[key];\n }\n }\n\n return obj;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLatLong;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar lat = /^\\(?[+-]?(90(\\.0+)?|[1-8]?\\d(\\.\\d+)?)$/;\nvar long = /^\\s?[+-]?(180(\\.0+)?|1[0-7]\\d(\\.\\d+)?|\\d{1,2}(\\.\\d+)?)\\)?$/;\nvar latDMS = /^(([1-8]?\\d)\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|90\\D+0\\D+0)\\D+[NSns]?$/i;\nvar longDMS = /^\\s*([1-7]?\\d{1,2}\\D+([1-5]?\\d|60)\\D+([1-5]?\\d|60)(\\.\\d+)?|180\\D+0\\D+0)\\D+[EWew]?$/i;\nvar defaultLatLongOptions = {\n checkDMS: false\n};\n\nfunction isLatLong(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultLatLongOptions);\n if (!str.includes(',')) return false;\n var pair = str.split(',');\n if (pair[0].startsWith('(') && !pair[1].endsWith(')') || pair[1].endsWith(')') && !pair[0].startsWith('(')) return false;\n\n if (options.checkDMS) {\n return latDMS.test(pair[0]) && longDMS.test(pair[1]);\n }\n\n return lat.test(pair[0]) && long.test(pair[1]);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from './ValidateBy';\nimport isLatLongValidator from 'validator/lib/isLatLong';\nexport var IS_LATLONG = 'isLatLong';\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function isLatLong(value) {\n return typeof value === 'string' && isLatLongValidator(value);\n}\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function IsLatLong(validationOptions) {\n return ValidateBy({\n name: IS_LATLONG,\n validator: {\n validate: function (value, args) { return isLatLong(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a latitude,longitude string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsLatLong.js.map","import { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\nexport var IS_LATITUDE = 'isLatitude';\n/**\n * Checks if a given value is a latitude.\n */\nexport function isLatitude(value) {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(value + \",0\");\n}\n/**\n * Checks if a given value is a latitude.\n */\nexport function IsLatitude(validationOptions) {\n return ValidateBy({\n name: IS_LATITUDE,\n validator: {\n validate: function (value, args) { return isLatitude(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a latitude string or number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsLatitude.js.map","import { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\nexport var IS_LONGITUDE = 'isLongitude';\n/**\n * Checks if a given value is a longitude.\n */\nexport function isLongitude(value) {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(\"0,\" + value);\n}\n/**\n * Checks if a given value is a longitude.\n */\nexport function IsLongitude(validationOptions) {\n return ValidateBy({\n name: IS_LONGITUDE,\n validator: {\n validate: function (value, args) { return isLongitude(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a longitude string or number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsLongitude.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var EQUALS = 'equals';\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function equals(value, comparison) {\n return value === comparison;\n}\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function Equals(comparison, validationOptions) {\n return ValidateBy({\n name: EQUALS,\n constraints: [comparison],\n validator: {\n validate: function (value, args) { return equals(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be equal to $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Equals.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var NOT_EQUALS = 'notEquals';\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function notEquals(value, comparison) {\n return value !== comparison;\n}\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function NotEquals(comparison, validationOptions) {\n return ValidateBy({\n name: NOT_EQUALS,\n constraints: [comparison],\n validator: {\n validate: function (value, args) { return notEquals(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be equal to $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=NotEquals.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_EMPTY = 'isEmpty';\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function isEmpty(value) {\n return value === '' || value === null || value === undefined;\n}\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function IsEmpty(validationOptions) {\n return ValidateBy({\n name: IS_EMPTY,\n validator: {\n validate: function (value, args) { return isEmpty(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be empty'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsEmpty.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_NOT_EMPTY = 'isNotEmpty';\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function isNotEmpty(value) {\n return value !== '' && value !== null && value !== undefined;\n}\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function IsNotEmpty(validationOptions) {\n return ValidateBy({\n name: IS_NOT_EMPTY,\n validator: {\n validate: function (value, args) { return isNotEmpty(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be empty'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNotEmpty.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_IN = 'isIn';\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function isIn(value, possibleValues) {\n return !(possibleValues instanceof Array) || possibleValues.some(function (possibleValue) { return possibleValue === value; });\n}\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function IsIn(values, validationOptions) {\n return ValidateBy({\n name: IS_IN,\n constraints: [values],\n validator: {\n validate: function (value, args) { return isIn(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be one of the following values: $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsIn.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_NOT_IN = 'isNotIn';\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function isNotIn(value, possibleValues) {\n return !(possibleValues instanceof Array) || !possibleValues.some(function (possibleValue) { return possibleValue === value; });\n}\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function IsNotIn(values, validationOptions) {\n return ValidateBy({\n name: IS_NOT_IN,\n constraints: [values],\n validator: {\n validate: function (value, args) { return isNotIn(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be one of the following values: $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNotIn.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.commaDecimal = exports.dotDecimal = exports.farsiLocales = exports.arabicLocales = exports.englishLocales = exports.decimal = exports.alphanumeric = exports.alpha = void 0;\nvar alpha = {\n 'en-US': /^[A-Z]+$/i,\n 'az-AZ': /^[A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[А-Я]+$/i,\n 'cs-CZ': /^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[A-ZÆØÅ]+$/i,\n 'de-DE': /^[A-ZÄÖÜß]+$/i,\n 'el-GR': /^[Α-ώ]+$/i,\n 'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,\n 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'nb-NO': /^[A-ZÆØÅ]+$/i,\n 'nl-NL': /^[A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[A-ZÆØÅ]+$/i,\n 'hu-HU': /^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'pl-PL': /^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[А-ЯЁ]+$/i,\n 'sl-SI': /^[A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๐\\s]+$/i,\n 'tr-TR': /^[A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i,\n 'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n 'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[א-ת]+$/,\n fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i\n};\nexports.alpha = alpha;\nvar alphanumeric = {\n 'en-US': /^[0-9A-Z]+$/i,\n 'az-AZ': /^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,\n 'bg-BG': /^[0-9А-Я]+$/i,\n 'cs-CZ': /^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,\n 'da-DK': /^[0-9A-ZÆØÅ]+$/i,\n 'de-DE': /^[0-9A-ZÄÖÜß]+$/i,\n 'el-GR': /^[0-9Α-ω]+$/i,\n 'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,\n 'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,\n 'it-IT': /^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,\n 'hu-HU': /^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,\n 'nb-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'nl-NL': /^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,\n 'nn-NO': /^[0-9A-ZÆØÅ]+$/i,\n 'pl-PL': /^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,\n 'pt-PT': /^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,\n 'ru-RU': /^[0-9А-ЯЁ]+$/i,\n 'sl-SI': /^[0-9A-ZČĆĐŠŽ]+$/i,\n 'sk-SK': /^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,\n 'sr-RS@latin': /^[0-9A-ZČĆŽŠĐ]+$/i,\n 'sr-RS': /^[0-9А-ЯЂЈЉЊЋЏ]+$/i,\n 'sv-SE': /^[0-9A-ZÅÄÖ]+$/i,\n 'th-TH': /^[ก-๙\\s]+$/i,\n 'tr-TR': /^[0-9A-ZÇĞİıÖŞÜ]+$/i,\n 'uk-UA': /^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,\n 'ku-IQ': /^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,\n 'vi-VN': /^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,\n ar: /^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,\n he: /^[0-9א-ת]+$/,\n fa: /^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i\n};\nexports.alphanumeric = alphanumeric;\nvar decimal = {\n 'en-US': '.',\n ar: '٫'\n};\nexports.decimal = decimal;\nvar englishLocales = ['AU', 'GB', 'HK', 'IN', 'NZ', 'ZA', 'ZM'];\nexports.englishLocales = englishLocales;\n\nfor (var locale, i = 0; i < englishLocales.length; i++) {\n locale = \"en-\".concat(englishLocales[i]);\n alpha[locale] = alpha['en-US'];\n alphanumeric[locale] = alphanumeric['en-US'];\n decimal[locale] = decimal['en-US'];\n} // Source: http://www.localeplanet.com/java/\n\n\nvar arabicLocales = ['AE', 'BH', 'DZ', 'EG', 'IQ', 'JO', 'KW', 'LB', 'LY', 'MA', 'QM', 'QA', 'SA', 'SD', 'SY', 'TN', 'YE'];\nexports.arabicLocales = arabicLocales;\n\nfor (var _locale, _i = 0; _i < arabicLocales.length; _i++) {\n _locale = \"ar-\".concat(arabicLocales[_i]);\n alpha[_locale] = alpha.ar;\n alphanumeric[_locale] = alphanumeric.ar;\n decimal[_locale] = decimal.ar;\n}\n\nvar farsiLocales = ['IR', 'AF'];\nexports.farsiLocales = farsiLocales;\n\nfor (var _locale2, _i2 = 0; _i2 < farsiLocales.length; _i2++) {\n _locale2 = \"fa-\".concat(farsiLocales[_i2]);\n alphanumeric[_locale2] = alphanumeric.fa;\n decimal[_locale2] = decimal.ar;\n} // Source: https://en.wikipedia.org/wiki/Decimal_mark\n\n\nvar dotDecimal = ['ar-EG', 'ar-LB', 'ar-LY'];\nexports.dotDecimal = dotDecimal;\nvar commaDecimal = ['bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-ZM', 'es-ES', 'fr-CA', 'fr-FR', 'id-ID', 'it-IT', 'ku-IQ', 'hu-HU', 'nb-NO', 'nn-NO', 'nl-NL', 'pl-PL', 'pt-PT', 'ru-RU', 'sl-SI', 'sr-RS@latin', 'sr-RS', 'sv-SE', 'tr-TR', 'uk-UA', 'vi-VN'];\nexports.commaDecimal = commaDecimal;\n\nfor (var _i3 = 0; _i3 < dotDecimal.length; _i3++) {\n decimal[dotDecimal[_i3]] = decimal['en-US'];\n}\n\nfor (var _i4 = 0; _i4 < commaDecimal.length; _i4++) {\n decimal[commaDecimal[_i4]] = ',';\n}\n\nalpha['fr-CA'] = alpha['fr-FR'];\nalphanumeric['fr-CA'] = alphanumeric['fr-FR'];\nalpha['pt-BR'] = alpha['pt-PT'];\nalphanumeric['pt-BR'] = alphanumeric['pt-PT'];\ndecimal['pt-BR'] = decimal['pt-PT']; // see #862\n\nalpha['pl-Pl'] = alpha['pl-PL'];\nalphanumeric['pl-Pl'] = alphanumeric['pl-PL'];\ndecimal['pl-Pl'] = decimal['pl-PL']; // see #1455\n\nalpha['fa-AF'] = alpha.fa;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFloat;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isFloat(str, options) {\n (0, _assertString.default)(str);\n options = options || {};\n var float = new RegExp(\"^(?:[-+])?(?:[0-9]+)?(?:\\\\\".concat(options.locale ? _alpha.decimal[options.locale] : '.', \"[0-9]*)?(?:[eE][\\\\+\\\\-]?(?:[0-9]+))?$\"));\n\n if (str === '' || str === '.' || str === '-' || str === '+') {\n return false;\n }\n\n var value = parseFloat(str.replace(',', '.'));\n return float.test(str) && (!options.hasOwnProperty('min') || value >= options.min) && (!options.hasOwnProperty('max') || value <= options.max) && (!options.hasOwnProperty('lt') || value < options.lt) && (!options.hasOwnProperty('gt') || value > options.gt);\n}\n\nvar locales = Object.keys(_alpha.decimal);\nexports.locales = locales;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toFloat;\n\nvar _isFloat = _interopRequireDefault(require(\"./isFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction toFloat(str) {\n if (!(0, _isFloat.default)(str)) return NaN;\n return parseFloat(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDivisibleBy;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toFloat = _interopRequireDefault(require(\"./toFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isDivisibleBy(str, num) {\n (0, _assertString.default)(str);\n return (0, _toFloat.default)(str) % parseInt(num, 10) === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDivisibleByValidator from 'validator/lib/isDivisibleBy';\nexport var IS_DIVISIBLE_BY = 'isDivisibleBy';\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function isDivisibleBy(value, num) {\n return typeof value === 'number' && typeof num === 'number' && isDivisibleByValidator(String(value), num);\n}\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function IsDivisibleBy(num, validationOptions) {\n return ValidateBy({\n name: IS_DIVISIBLE_BY,\n constraints: [num],\n validator: {\n validate: function (value, args) { return isDivisibleBy(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be divisible by $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDivisibleBy.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_POSITIVE = 'isPositive';\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function isPositive(value) {\n return typeof value === 'number' && value > 0;\n}\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function IsPositive(validationOptions) {\n return ValidateBy({\n name: IS_POSITIVE,\n validator: {\n validate: function (value, args) { return isPositive(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a positive number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsPositive.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_NEGATIVE = 'isNegative';\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function isNegative(value) {\n return typeof value === 'number' && value < 0;\n}\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function IsNegative(validationOptions) {\n return ValidateBy({\n name: IS_NEGATIVE,\n validator: {\n validate: function (value, args) { return isNegative(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a negative number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNegative.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var MAX = 'max';\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function max(num, max) {\n return typeof num === 'number' && typeof max === 'number' && num <= max;\n}\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function Max(maxValue, validationOptions) {\n return ValidateBy({\n name: MAX,\n constraints: [maxValue],\n validator: {\n validate: function (value, args) { return max(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must not be greater than $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Max.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var MIN = 'min';\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function min(num, min) {\n return typeof num === 'number' && typeof min === 'number' && num >= min;\n}\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function Min(minValue, validationOptions) {\n return ValidateBy({\n name: MIN,\n constraints: [minValue],\n validator: {\n validate: function (value, args) { return min(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must not be less than $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Min.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var MIN_DATE = 'minDate';\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function minDate(date, minDate) {\n return date instanceof Date && date.getTime() >= minDate.getTime();\n}\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MinDate(date, validationOptions) {\n return ValidateBy({\n name: MIN_DATE,\n constraints: [date],\n validator: {\n validate: function (value, args) { return minDate(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return 'minimal allowed date for ' + eachPrefix + '$property is $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=MinDate.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var MAX_DATE = 'maxDate';\n/**\n * Checks if the value is a date that's before the specified date.\n */\nexport function maxDate(date, maxDate) {\n return date instanceof Date && date.getTime() <= maxDate.getTime();\n}\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MaxDate(date, validationOptions) {\n return ValidateBy({\n name: MAX_DATE,\n constraints: [date],\n validator: {\n validate: function (value, args) { return maxDate(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return 'maximal allowed date for ' + eachPrefix + '$property is $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=MaxDate.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = toString;\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction toString(input) {\n if (_typeof(input) === 'object' && input !== null) {\n if (typeof input.toString === 'function') {\n input = input.toString();\n } else {\n input = '[object Object]';\n }\n } else if (input === null || typeof input === 'undefined' || isNaN(input) && !input.length) {\n input = '';\n }\n\n return String(input);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = contains;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _toString = _interopRequireDefault(require(\"./util/toString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar defaulContainsOptions = {\n ignoreCase: false\n};\n\nfunction contains(str, elem, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaulContainsOptions);\n return options.ignoreCase ? str.toLowerCase().indexOf((0, _toString.default)(elem).toLowerCase()) >= 0 : str.indexOf((0, _toString.default)(elem)) >= 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\nexport var CONTAINS = 'contains';\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function contains(value, seed) {\n return typeof value === 'string' && containsValidator(value, seed);\n}\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function Contains(seed, validationOptions) {\n return ValidateBy({\n name: CONTAINS,\n constraints: [seed],\n validator: {\n validate: function (value, args) { return contains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a $constraint1 string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Contains.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\nexport var NOT_CONTAINS = 'notContains';\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function notContains(value, seed) {\n return typeof value === 'string' && !containsValidator(value, seed);\n}\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function NotContains(seed, validationOptions) {\n return ValidateBy({\n name: NOT_CONTAINS,\n constraints: [seed],\n validator: {\n validate: function (value, args) { return notContains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not contain a $constraint1 string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=NotContains.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlpha;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAlpha(_str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _assertString.default)(_str);\n var str = _str;\n var ignore = options.ignore;\n\n if (ignore) {\n if (ignore instanceof RegExp) {\n str = str.replace(ignore, '');\n } else if (typeof ignore === 'string') {\n str = str.replace(new RegExp(\"[\".concat(ignore.replace(/[-[\\]{}()*+?.,\\\\^$|#\\\\s]/g, '\\\\$&'), \"]\"), 'g'), ''); // escape regex for ignore\n } else {\n throw new Error('ignore should be instance of a String or RegExp');\n }\n }\n\n if (locale in _alpha.alpha) {\n return _alpha.alpha[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alpha);\nexports.locales = locales;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphaValidator from 'validator/lib/isAlpha';\nexport var IS_ALPHA = 'isAlpha';\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function isAlpha(value, locale) {\n return typeof value === 'string' && isAlphaValidator(value, locale);\n}\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function IsAlpha(locale, validationOptions) {\n return ValidateBy({\n name: IS_ALPHA,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isAlpha(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only letters (a-zA-Z)'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsAlpha.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAlphanumeric;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isAlphanumeric(str) {\n var locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'en-US';\n (0, _assertString.default)(str);\n\n if (locale in _alpha.alphanumeric) {\n return _alpha.alphanumeric[locale].test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(_alpha.alphanumeric);\nexports.locales = locales;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphanumericValidator from 'validator/lib/isAlphanumeric';\nexport var IS_ALPHANUMERIC = 'isAlphanumeric';\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function isAlphanumeric(value, locale) {\n return typeof value === 'string' && isAlphanumericValidator(value, locale);\n}\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsAlphanumeric(locale, validationOptions) {\n return ValidateBy({\n name: IS_ALPHANUMERIC,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isAlphanumeric(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only letters and numbers'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsAlphanumeric.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar includes = function includes(arr, val) {\n return arr.some(function (arrVal) {\n return val === arrVal;\n });\n};\n\nvar _default = includes;\nexports.default = _default;\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDecimal;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction decimalRegExp(options) {\n var regExp = new RegExp(\"^[-+]?([0-9]+)?(\\\\\".concat(_alpha.decimal[options.locale], \"[0-9]{\").concat(options.decimal_digits, \"})\").concat(options.force_decimal ? '' : '?', \"$\"));\n return regExp;\n}\n\nvar default_decimal_options = {\n force_decimal: false,\n decimal_digits: '1,',\n locale: 'en-US'\n};\nvar blacklist = ['', '-', '+'];\n\nfunction isDecimal(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_decimal_options);\n\n if (options.locale in _alpha.decimal) {\n return !(0, _includes.default)(blacklist, str.replace(/ /g, '')) && decimalRegExp(options).test(str);\n }\n\n throw new Error(\"Invalid locale '\".concat(options.locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDecimalValidator from 'validator/lib/isDecimal';\nexport var IS_DECIMAL = 'isDecimal';\n/**\n * Checks if the string is a valid decimal.\n * If given value is not a string, then it returns false.\n */\nexport function isDecimal(value, options) {\n return typeof value === 'string' && isDecimalValidator(value, options);\n}\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsDecimal(options, validationOptions) {\n return ValidateBy({\n name: IS_DECIMAL,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isDecimal(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property is not a valid decimal number.'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDecimal.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isAscii;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-control-regex */\nvar ascii = /^[\\x00-\\x7F]+$/;\n/* eslint-enable no-control-regex */\n\nfunction isAscii(str) {\n (0, _assertString.default)(str);\n return ascii.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAsciiValidator from 'validator/lib/isAscii';\nexport var IS_ASCII = 'isAscii';\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function isAscii(value) {\n return typeof value === 'string' && isAsciiValidator(value);\n}\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function IsAscii(validationOptions) {\n return ValidateBy({\n name: IS_ASCII,\n validator: {\n validate: function (value, args) { return isAscii(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only ASCII characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsAscii.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase64;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar notBase64 = /[^A-Z0-9+\\/=]/i;\nvar urlSafeBase64 = /^[A-Z0-9_\\-]*$/i;\nvar defaultBase64Options = {\n urlSafe: false\n};\n\nfunction isBase64(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, defaultBase64Options);\n var len = str.length;\n\n if (options.urlSafe) {\n return urlSafeBase64.test(str);\n }\n\n if (len % 4 !== 0 || notBase64.test(str)) {\n return false;\n }\n\n var firstPaddingChar = str.indexOf('=');\n return firstPaddingChar === -1 || firstPaddingChar === len - 1 || firstPaddingChar === len - 2 && str[len - 1] === '=';\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase64Validator from 'validator/lib/isBase64';\nexport var IS_BASE64 = 'isBase64';\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase64(value) {\n return typeof value === 'string' && isBase64Validator(value);\n}\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase64(validationOptions) {\n return ValidateBy({\n name: IS_BASE64,\n validator: {\n validate: function (value, args) { return isBase64(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be base64 encoded'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBase64.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isByteLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isByteLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isByteLength(str, min [, max])\n min = arguments[1];\n max = arguments[2];\n }\n\n var len = encodeURI(str).split(/%..|./).length - 1;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isByteLengthValidator from 'validator/lib/isByteLength';\nexport var IS_BYTE_LENGTH = 'isByteLength';\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function isByteLength(value, min, max) {\n return typeof value === 'string' && isByteLengthValidator(value, { min: min, max: max });\n}\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function IsByteLength(min, max, validationOptions) {\n return ValidateBy({\n name: IS_BYTE_LENGTH,\n constraints: [min, max],\n validator: {\n validate: function (value, args) { return isByteLength(value, args.constraints[0], args.constraints[1]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"$property's byte length must fall into ($constraint1, $constraint2) range\"; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsByteLength.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCreditCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar creditCard = /^(?:4[0-9]{12}(?:[0-9]{3,6})?|5[1-5][0-9]{14}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|6(?:011|5[0-9][0-9])[0-9]{12,15}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11}|6[27][0-9]{14})$/;\n/* eslint-enable max-len */\n\nfunction isCreditCard(str) {\n (0, _assertString.default)(str);\n var sanitized = str.replace(/[- ]+/g, '');\n\n if (!creditCard.test(sanitized)) {\n return false;\n }\n\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble;\n\n for (var i = sanitized.length - 1; i >= 0; i--) {\n digit = sanitized.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n\n if (shouldDouble) {\n tmpNum *= 2;\n\n if (tmpNum >= 10) {\n sum += tmpNum % 10 + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n\n shouldDouble = !shouldDouble;\n }\n\n return !!(sum % 10 === 0 ? sanitized : false);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCreditCardValidator from 'validator/lib/isCreditCard';\nexport var IS_CREDIT_CARD = 'isCreditCard';\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function isCreditCard(value) {\n return typeof value === 'string' && isCreditCardValidator(value);\n}\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function IsCreditCard(validationOptions) {\n return ValidateBy({\n name: IS_CREDIT_CARD,\n validator: {\n validate: function (value, args) { return isCreditCard(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a credit card'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsCreditCard.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isCurrency;\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction currencyRegex(options) {\n var decimal_digits = \"\\\\d{\".concat(options.digits_after_decimal[0], \"}\");\n options.digits_after_decimal.forEach(function (digit, index) {\n if (index !== 0) decimal_digits = \"\".concat(decimal_digits, \"|\\\\d{\").concat(digit, \"}\");\n });\n var symbol = \"(\".concat(options.symbol.replace(/\\W/, function (m) {\n return \"\\\\\".concat(m);\n }), \")\").concat(options.require_symbol ? '' : '?'),\n negative = '-?',\n whole_dollar_amount_without_sep = '[1-9]\\\\d*',\n whole_dollar_amount_with_sep = \"[1-9]\\\\d{0,2}(\\\\\".concat(options.thousands_separator, \"\\\\d{3})*\"),\n valid_whole_dollar_amounts = ['0', whole_dollar_amount_without_sep, whole_dollar_amount_with_sep],\n whole_dollar_amount = \"(\".concat(valid_whole_dollar_amounts.join('|'), \")?\"),\n decimal_amount = \"(\\\\\".concat(options.decimal_separator, \"(\").concat(decimal_digits, \"))\").concat(options.require_decimal ? '' : '?');\n var pattern = whole_dollar_amount + (options.allow_decimal || options.require_decimal ? decimal_amount : ''); // default is negative sign before symbol, but there are two other options (besides parens)\n\n if (options.allow_negatives && !options.parens_for_negatives) {\n if (options.negative_sign_after_digits) {\n pattern += negative;\n } else if (options.negative_sign_before_digits) {\n pattern = negative + pattern;\n }\n } // South African Rand, for example, uses R 123 (space) and R-123 (no space)\n\n\n if (options.allow_negative_sign_placeholder) {\n pattern = \"( (?!\\\\-))?\".concat(pattern);\n } else if (options.allow_space_after_symbol) {\n pattern = \" ?\".concat(pattern);\n } else if (options.allow_space_after_digits) {\n pattern += '( (?!$))?';\n }\n\n if (options.symbol_after_digits) {\n pattern += symbol;\n } else {\n pattern = symbol + pattern;\n }\n\n if (options.allow_negatives) {\n if (options.parens_for_negatives) {\n pattern = \"(\\\\(\".concat(pattern, \"\\\\)|\").concat(pattern, \")\");\n } else if (!(options.negative_sign_before_digits || options.negative_sign_after_digits)) {\n pattern = negative + pattern;\n }\n } // ensure there's a dollar and/or decimal amount, and that\n // it doesn't start with a space or a negative sign followed by a space\n\n\n return new RegExp(\"^(?!-? )(?=.*\\\\d)\".concat(pattern, \"$\"));\n}\n\nvar default_currency_options = {\n symbol: '$',\n require_symbol: false,\n allow_space_after_symbol: false,\n symbol_after_digits: false,\n allow_negatives: true,\n parens_for_negatives: false,\n negative_sign_before_digits: false,\n negative_sign_after_digits: false,\n allow_negative_sign_placeholder: false,\n thousands_separator: ',',\n decimal_separator: '.',\n allow_decimal: true,\n require_decimal: false,\n digits_after_decimal: [2],\n allow_space_after_digits: false\n};\n\nfunction isCurrency(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_currency_options);\n return currencyRegex(options).test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCurrencyValidator from 'validator/lib/isCurrency';\nexport var IS_CURRENCY = 'isCurrency';\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function isCurrency(value, options) {\n return typeof value === 'string' && isCurrencyValidator(value, options);\n}\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function IsCurrency(options, validationOptions) {\n return ValidateBy({\n name: IS_CURRENCY,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isCurrency(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a currency'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsCurrency.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFQDN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar default_fqdn_options = {\n require_tld: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_numeric_tld: false\n};\n\nfunction isFQDN(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_fqdn_options);\n /* Remove the optional trailing dot before checking validity */\n\n if (options.allow_trailing_dot && str[str.length - 1] === '.') {\n str = str.substring(0, str.length - 1);\n }\n\n var parts = str.split('.');\n var tld = parts[parts.length - 1];\n\n if (options.require_tld) {\n // disallow fqdns without tld\n if (parts.length < 2) {\n return false;\n }\n\n if (!/^([a-z\\u00a1-\\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {\n return false;\n } // disallow spaces && special characers\n\n\n if (/[\\s\\u2002-\\u200B\\u202F\\u205F\\u3000\\uFEFF\\uDB40\\uDC20\\u00A9\\uFFFD]/.test(tld)) {\n return false;\n }\n } // reject numeric TLDs\n\n\n if (!options.allow_numeric_tld && /^\\d+$/.test(tld)) {\n return false;\n }\n\n return parts.every(function (part) {\n if (part.length > 63) {\n return false;\n }\n\n if (!/^[a-z_\\u00a1-\\uffff0-9-]+$/i.test(part)) {\n return false;\n } // disallow full-width chars\n\n\n if (/[\\uff01-\\uff5e]/.test(part)) {\n return false;\n } // disallow parts starting or ending with hyphen\n\n\n if (/^-|-$/.test(part)) {\n return false;\n }\n\n if (!options.allow_underscores && /_/.test(part)) {\n return false;\n }\n\n return true;\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIP;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n11.3. Examples\n\n The following addresses\n\n fe80::1234 (on the 1st link of the node)\n ff02::5678 (on the 5th link of the node)\n ff08::9abc (on the 10th organization of the node)\n\n would be represented as follows:\n\n fe80::1234%1\n ff02::5678%5\n ff08::9abc%10\n\n (Here we assume a natural translation from a zone index to the\n part, where the Nth zone of any scope is translated into\n \"N\".)\n\n If we use interface names as , those addresses could also be\n represented as follows:\n\n fe80::1234%ne0\n ff02::5678%pvc1.3\n ff08::9abc%interface10\n\n where the interface \"ne0\" belongs to the 1st link, \"pvc1.3\" belongs\n to the 5th link, and \"interface10\" belongs to the 10th organization.\n * * */\nvar ipv4Maybe = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/;\nvar ipv6Block = /^[0-9A-F]{1,4}$/i;\n\nfunction isIP(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isIP(str, 4) || isIP(str, 6);\n } else if (version === '4') {\n if (!ipv4Maybe.test(str)) {\n return false;\n }\n\n var parts = str.split('.').sort(function (a, b) {\n return a - b;\n });\n return parts[3] <= 255;\n } else if (version === '6') {\n var addressAndZone = [str]; // ipv6 addresses could have scoped architecture\n // according to https://tools.ietf.org/html/rfc4007#section-11\n\n if (str.includes('%')) {\n addressAndZone = str.split('%');\n\n if (addressAndZone.length !== 2) {\n // it must be just two parts\n return false;\n }\n\n if (!addressAndZone[0].includes(':')) {\n // the first part must be the address\n return false;\n }\n\n if (addressAndZone[1] === '') {\n // the second part must not be empty\n return false;\n }\n }\n\n var blocks = addressAndZone[0].split(':');\n var foundOmissionBlock = false; // marker to indicate ::\n // At least some OS accept the last 32 bits of an IPv6 address\n // (i.e. 2 of the blocks) in IPv4 notation, and RFC 3493 says\n // that '::ffff:a.b.c.d' is valid for IPv4-mapped IPv6 addresses,\n // and '::a.b.c.d' is deprecated, but also valid.\n\n var foundIPv4TransitionBlock = isIP(blocks[blocks.length - 1], 4);\n var expectedNumberOfBlocks = foundIPv4TransitionBlock ? 7 : 8;\n\n if (blocks.length > expectedNumberOfBlocks) {\n return false;\n } // initial or final ::\n\n\n if (str === '::') {\n return true;\n } else if (str.substr(0, 2) === '::') {\n blocks.shift();\n blocks.shift();\n foundOmissionBlock = true;\n } else if (str.substr(str.length - 2) === '::') {\n blocks.pop();\n blocks.pop();\n foundOmissionBlock = true;\n }\n\n for (var i = 0; i < blocks.length; ++i) {\n // test for a :: which can not be at the string start/end\n // since those cases have been handled above\n if (blocks[i] === '' && i > 0 && i < blocks.length - 1) {\n if (foundOmissionBlock) {\n return false; // multiple :: in address\n }\n\n foundOmissionBlock = true;\n } else if (foundIPv4TransitionBlock && i === blocks.length - 1) {// it has been checked before that the last\n // block is a valid IPv4 address\n } else if (!ipv6Block.test(blocks[i])) {\n return false;\n }\n }\n\n if (foundOmissionBlock) {\n return blocks.length >= 1;\n }\n\n return blocks.length === expectedNumberOfBlocks;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEmail;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nvar _isByteLength = _interopRequireDefault(require(\"./isByteLength\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar default_email_options = {\n allow_display_name: false,\n require_display_name: false,\n allow_utf8_local_part: true,\n require_tld: true,\n blacklisted_chars: '',\n ignore_max_length: false\n};\n/* eslint-disable max-len */\n\n/* eslint-disable no-control-regex */\n\nvar splitNameAddress = /^([^\\x00-\\x1F\\x7F-\\x9F\\cX]+)<(.+)>$/i;\nvar emailUserPart = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]+$/i;\nvar gmailUserPart = /^[a-z\\d]+$/;\nvar quotedEmailUser = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]))*$/i;\nvar emailUserUtf8Part = /^[a-z\\d!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+$/i;\nvar quotedEmailUserUtf8 = /^([\\s\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f\\x21\\x23-\\x5b\\x5d-\\x7e\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]|(\\\\[\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))*$/i;\nvar defaultMaxEmailLength = 254;\n/* eslint-enable max-len */\n\n/* eslint-enable no-control-regex */\n\n/**\n * Validate display name according to the RFC2822: https://tools.ietf.org/html/rfc2822#appendix-A.1.2\n * @param {String} display_name\n */\n\nfunction validateDisplayName(display_name) {\n var trim_quotes = display_name.match(/^\"(.+)\"$/i);\n var display_name_without_quotes = trim_quotes ? trim_quotes[1] : display_name; // display name with only spaces is not valid\n\n if (!display_name_without_quotes.trim()) {\n return false;\n } // check whether display name contains illegal character\n\n\n var contains_illegal = /[\\.\";<>]/.test(display_name_without_quotes);\n\n if (contains_illegal) {\n // if contains illegal characters,\n // must to be enclosed in double-quotes, otherwise it's not a valid display name\n if (!trim_quotes) {\n return false;\n } // the quotes in display name must start with character symbol \\\n\n\n var all_start_with_back_slash = display_name_without_quotes.split('\"').length === display_name_without_quotes.split('\\\\\"').length;\n\n if (!all_start_with_back_slash) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isEmail(str, options) {\n (0, _assertString.default)(str);\n options = (0, _merge.default)(options, default_email_options);\n\n if (options.require_display_name || options.allow_display_name) {\n var display_email = str.match(splitNameAddress);\n\n if (display_email) {\n var display_name;\n\n var _display_email = _slicedToArray(display_email, 3);\n\n display_name = _display_email[1];\n str = _display_email[2];\n\n // sometimes need to trim the last space to get the display name\n // because there may be a space between display name and email address\n // eg. myname \n // the display name is `myname` instead of `myname `, so need to trim the last space\n if (display_name.endsWith(' ')) {\n display_name = display_name.substr(0, display_name.length - 1);\n }\n\n if (!validateDisplayName(display_name)) {\n return false;\n }\n } else if (options.require_display_name) {\n return false;\n }\n }\n\n if (!options.ignore_max_length && str.length > defaultMaxEmailLength) {\n return false;\n }\n\n var parts = str.split('@');\n var domain = parts.pop();\n var user = parts.join('@');\n var lower_domain = domain.toLowerCase();\n\n if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) {\n /*\n Previously we removed dots for gmail addresses before validating.\n This was removed because it allows `multiple..dots@gmail.com`\n to be reported as valid, but it is not.\n Gmail only normalizes single dots, removing them from here is pointless,\n should be done in normalizeEmail\n */\n user = user.toLowerCase(); // Removing sub-address from username before gmail validation\n\n var username = user.split('+')[0]; // Dots are not included in gmail length restriction\n\n if (!(0, _isByteLength.default)(username.replace('.', ''), {\n min: 6,\n max: 30\n })) {\n return false;\n }\n\n var _user_parts = username.split('.');\n\n for (var i = 0; i < _user_parts.length; i++) {\n if (!gmailUserPart.test(_user_parts[i])) {\n return false;\n }\n }\n }\n\n if (options.ignore_max_length === false && (!(0, _isByteLength.default)(user, {\n max: 64\n }) || !(0, _isByteLength.default)(domain, {\n max: 254\n }))) {\n return false;\n }\n\n if (!(0, _isFQDN.default)(domain, {\n require_tld: options.require_tld\n })) {\n if (!options.allow_ip_domain) {\n return false;\n }\n\n if (!(0, _isIP.default)(domain)) {\n if (!domain.startsWith('[') || !domain.endsWith(']')) {\n return false;\n }\n\n var noBracketdomain = domain.substr(1, domain.length - 2);\n\n if (noBracketdomain.length === 0 || !(0, _isIP.default)(noBracketdomain)) {\n return false;\n }\n }\n }\n\n if (user[0] === '\"') {\n user = user.slice(1, user.length - 1);\n return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user);\n }\n\n var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart;\n var user_parts = user.split('.');\n\n for (var _i2 = 0; _i2 < user_parts.length; _i2++) {\n if (!pattern.test(user_parts[_i2])) {\n return false;\n }\n }\n\n if (options.blacklisted_chars) {\n if (user.search(new RegExp(\"[\".concat(options.blacklisted_chars, \"]+\"), 'g')) !== -1) return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEmailValidator from 'validator/lib/isEmail';\nexport var IS_EMAIL = 'isEmail';\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function isEmail(value, options) {\n return typeof value === 'string' && isEmailValidator(value, options);\n}\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function IsEmail(options, validationOptions) {\n return ValidateBy({\n name: IS_EMAIL,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isEmail(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an email'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsEmail.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFqdnValidator from 'validator/lib/isFQDN';\nexport var IS_FQDN = 'isFqdn';\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function isFQDN(value, options) {\n return typeof value === 'string' && isFqdnValidator(value, options);\n}\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function IsFQDN(options, validationOptions) {\n return ValidateBy({\n name: IS_FQDN,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isFQDN(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid domain name'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsFQDN.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isFullWidth;\nexports.fullWidth = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar fullWidth = /[^\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.fullWidth = fullWidth;\n\nfunction isFullWidth(str) {\n (0, _assertString.default)(str);\n return fullWidth.test(str);\n}","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFullWidthValidator from 'validator/lib/isFullWidth';\nexport var IS_FULL_WIDTH = 'isFullWidth';\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isFullWidth(value) {\n return typeof value === 'string' && isFullWidthValidator(value);\n}\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsFullWidth(validationOptions) {\n return ValidateBy({\n name: IS_FULL_WIDTH,\n validator: {\n validate: function (value, args) { return isFullWidth(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a full-width characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsFullWidth.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHalfWidth;\nexports.halfWidth = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar halfWidth = /[\\u0020-\\u007E\\uFF61-\\uFF9F\\uFFA0-\\uFFDC\\uFFE8-\\uFFEE0-9a-zA-Z]/;\nexports.halfWidth = halfWidth;\n\nfunction isHalfWidth(str) {\n (0, _assertString.default)(str);\n return halfWidth.test(str);\n}","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHalfWidthValidator from 'validator/lib/isHalfWidth';\nexport var IS_HALF_WIDTH = 'isHalfWidth';\n/**\n * Checks if the string contains any half-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isHalfWidth(value) {\n return typeof value === 'string' && isHalfWidthValidator(value);\n}\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsHalfWidth(validationOptions) {\n return ValidateBy({\n name: IS_HALF_WIDTH,\n validator: {\n validate: function (value, args) { return isHalfWidth(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a half-width characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsHalfWidth.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isVariableWidth;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFullWidth = require(\"./isFullWidth\");\n\nvar _isHalfWidth = require(\"./isHalfWidth\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isVariableWidth(str) {\n (0, _assertString.default)(str);\n return _isFullWidth.fullWidth.test(str) && _isHalfWidth.halfWidth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isVariableWidthValidator from 'validator/lib/isVariableWidth';\nexport var IS_VARIABLE_WIDTH = 'isVariableWidth';\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isVariableWidth(value) {\n return typeof value === 'string' && isVariableWidthValidator(value);\n}\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsVariableWidth(validationOptions) {\n return ValidateBy({\n name: IS_VARIABLE_WIDTH,\n validator: {\n validate: function (value, args) { return isVariableWidth(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a full-width and half-width characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsVariableWidth.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexcolor = /^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;\n\nfunction isHexColor(str) {\n (0, _assertString.default)(str);\n return hexcolor.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexColorValidator from 'validator/lib/isHexColor';\nexport var IS_HEX_COLOR = 'isHexColor';\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function isHexColor(value) {\n return typeof value === 'string' && isHexColorValidator(value);\n}\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexColor(validationOptions) {\n return ValidateBy({\n name: IS_HEX_COLOR,\n validator: {\n validate: function (value, args) { return isHexColor(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hexadecimal color'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsHexColor.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHexadecimal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hexadecimal = /^(0x|0h)?[0-9A-F]+$/i;\n\nfunction isHexadecimal(str) {\n (0, _assertString.default)(str);\n return hexadecimal.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexadecimalValidator from 'validator/lib/isHexadecimal';\nexport var IS_HEXADECIMAL = 'isHexadecimal';\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function isHexadecimal(value) {\n return typeof value === 'string' && isHexadecimalValidator(value);\n}\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexadecimal(validationOptions) {\n return ValidateBy({\n name: IS_HEXADECIMAL,\n validator: {\n validate: function (value, args) { return isHexadecimal(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hexadecimal number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsHexadecimal.js.map","export function isValidationOptions(val) {\n if (!val) {\n return false;\n }\n return 'each' in val || 'message' in val || 'groups' in val || 'always' in val || 'context' in val;\n}\n//# sourceMappingURL=ValidationOptions.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMACAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar macAddress = /^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/;\nvar macAddressNoColons = /^([0-9a-fA-F]){12}$/;\nvar macAddressWithHyphen = /^([0-9a-fA-F][0-9a-fA-F]-){5}([0-9a-fA-F][0-9a-fA-F])$/;\nvar macAddressWithSpaces = /^([0-9a-fA-F][0-9a-fA-F]\\s){5}([0-9a-fA-F][0-9a-fA-F])$/;\nvar macAddressWithDots = /^([0-9a-fA-F]{4}).([0-9a-fA-F]{4}).([0-9a-fA-F]{4})$/;\n\nfunction isMACAddress(str, options) {\n (0, _assertString.default)(str);\n\n if (options && options.no_colons) {\n return macAddressNoColons.test(str);\n }\n\n return macAddress.test(str) || macAddressWithHyphen.test(str) || macAddressWithSpaces.test(str) || macAddressWithDots.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { isValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMacAddressValidator from 'validator/lib/isMACAddress';\nexport var IS_MAC_ADDRESS = 'isMacAddress';\n/**\n * Check if the string is a MAC address.\n * If given value is not a string, then it returns false.\n */\nexport function isMACAddress(value, options) {\n return typeof value === 'string' && isMacAddressValidator(value, options);\n}\nexport function IsMACAddress(optionsOrValidationOptionsArg, validationOptionsArg) {\n var options = !isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : undefined;\n var validationOptions = isValidationOptions(optionsOrValidationOptionsArg)\n ? optionsOrValidationOptionsArg\n : validationOptionsArg;\n return ValidateBy({\n name: IS_MAC_ADDRESS,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isMACAddress(value, options); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a MAC Address'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMacAddress.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIPValidator from 'validator/lib/isIP';\nexport var IS_IP = 'isIp';\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function isIP(value, version) {\n var versionStr = version ? \"\" + version : undefined;\n return typeof value === 'string' && isIPValidator(value, versionStr);\n}\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function IsIP(version, validationOptions) {\n return ValidateBy({\n name: IS_IP,\n constraints: [version],\n validator: {\n validate: function (value, args) { return isIP(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ip address'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsIP.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isInt;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/;\nvar intLeadingZeroes = /^[-+]?[0-9]+$/;\n\nfunction isInt(str, options) {\n (0, _assertString.default)(str);\n options = options || {}; // Get the regex to use for testing, based on whether\n // leading zeroes are allowed or not.\n\n var regex = options.hasOwnProperty('allow_leading_zeroes') && !options.allow_leading_zeroes ? int : intLeadingZeroes; // Check min/max/lt/gt\n\n var minCheckPassed = !options.hasOwnProperty('min') || str >= options.min;\n var maxCheckPassed = !options.hasOwnProperty('max') || str <= options.max;\n var ltCheckPassed = !options.hasOwnProperty('lt') || str < options.lt;\n var gtCheckPassed = !options.hasOwnProperty('gt') || str > options.gt;\n return regex.test(str) && minCheckPassed && maxCheckPassed && ltCheckPassed && gtCheckPassed;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPort;\n\nvar _isInt = _interopRequireDefault(require(\"./isInt\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isPort(str) {\n return (0, _isInt.default)(str, {\n min: 0,\n max: 65535\n });\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPortValidator from 'validator/lib/isPort';\nexport var IS_PORT = 'isPort';\n/**\n * Check if the string is a valid port number.\n */\nexport function isPort(value) {\n return typeof value === 'string' && isPortValidator(value);\n}\n/**\n * Check if the string is a valid port number.\n */\nexport function IsPort(validationOptions) {\n return ValidateBy({\n name: IS_PORT,\n validator: {\n validate: function (value, args) { return isPort(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a port'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsPort.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISBN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isbn10Maybe = /^(?:[0-9]{9}X|[0-9]{10})$/;\nvar isbn13Maybe = /^(?:[0-9]{13})$/;\nvar factor = [1, 3];\n\nfunction isISBN(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n (0, _assertString.default)(str);\n version = String(version);\n\n if (!version) {\n return isISBN(str, 10) || isISBN(str, 13);\n }\n\n var sanitized = str.replace(/[\\s-]+/g, '');\n var checksum = 0;\n var i;\n\n if (version === '10') {\n if (!isbn10Maybe.test(sanitized)) {\n return false;\n }\n\n for (i = 0; i < 9; i++) {\n checksum += (i + 1) * sanitized.charAt(i);\n }\n\n if (sanitized.charAt(9) === 'X') {\n checksum += 10 * 10;\n } else {\n checksum += 10 * sanitized.charAt(9);\n }\n\n if (checksum % 11 === 0) {\n return !!sanitized;\n }\n } else if (version === '13') {\n if (!isbn13Maybe.test(sanitized)) {\n return false;\n }\n\n for (i = 0; i < 12; i++) {\n checksum += factor[i % 2] * sanitized.charAt(i);\n }\n\n if (sanitized.charAt(12) - (10 - checksum % 10) % 10 === 0) {\n return !!sanitized;\n }\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsbnValidator from 'validator/lib/isISBN';\nexport var IS_ISBN = 'isIsbn';\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function isISBN(value, version) {\n var versionStr = version ? \"\" + version : undefined;\n return typeof value === 'string' && isIsbnValidator(value, versionStr);\n}\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function IsISBN(version, validationOptions) {\n return ValidateBy({\n name: IS_ISBN,\n constraints: [version],\n validator: {\n validate: function (value, args) { return isISBN(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISBN'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISBN.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISIN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isin = /^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;\n\nfunction isISIN(str) {\n (0, _assertString.default)(str);\n\n if (!isin.test(str)) {\n return false;\n }\n\n var checksumStr = str.replace(/[A-Z]/g, function (character) {\n return parseInt(character, 36);\n });\n var sum = 0;\n var digit;\n var tmpNum;\n var shouldDouble = true;\n\n for (var i = checksumStr.length - 2; i >= 0; i--) {\n digit = checksumStr.substring(i, i + 1);\n tmpNum = parseInt(digit, 10);\n\n if (shouldDouble) {\n tmpNum *= 2;\n\n if (tmpNum >= 10) {\n sum += tmpNum + 1;\n } else {\n sum += tmpNum;\n }\n } else {\n sum += tmpNum;\n }\n\n shouldDouble = !shouldDouble;\n }\n\n return parseInt(str.substr(str.length - 1), 10) === (10000 - sum) % 10;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsinValidator from 'validator/lib/isISIN';\nexport var IS_ISIN = 'isIsin';\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function isISIN(value) {\n return typeof value === 'string' && isIsinValidator(value);\n}\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function IsISIN(validationOptions) {\n return ValidateBy({\n name: IS_ISIN,\n validator: {\n validate: function (value, args) { return isISIN(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISIN (stock/security identifier)'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISIN.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO8601;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\n// from http://goo.gl/0ejHHW\nvar iso8601 = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T\\s]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/; // same as above, except with a strict 'T' separator between date and time\n\nvar iso8601StrictSeparator = /^([\\+-]?\\d{4}(?!\\d{2}\\b))((-?)((0[1-9]|1[0-2])(\\3([12]\\d|0[1-9]|3[01]))?|W([0-4]\\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\\d|[12]\\d{2}|3([0-5]\\d|6[1-6])))([T]((([01]\\d|2[0-3])((:?)[0-5]\\d)?|24:?00)([\\.,]\\d+(?!:))?)?(\\17[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3]):?([0-5]\\d)?)?)?)?$/;\n/* eslint-enable max-len */\n\nvar isValidDate = function isValidDate(str) {\n // str must have passed the ISO8601 check\n // this check is meant to catch invalid dates\n // like 2009-02-31\n // first check for ordinal dates\n var ordinalMatch = str.match(/^(\\d{4})-?(\\d{3})([ T]{1}\\.*|$)/);\n\n if (ordinalMatch) {\n var oYear = Number(ordinalMatch[1]);\n var oDay = Number(ordinalMatch[2]); // if is leap year\n\n if (oYear % 4 === 0 && oYear % 100 !== 0 || oYear % 400 === 0) return oDay <= 366;\n return oDay <= 365;\n }\n\n var match = str.match(/(\\d{4})-?(\\d{0,2})-?(\\d*)/).map(Number);\n var year = match[1];\n var month = match[2];\n var day = match[3];\n var monthString = month ? \"0\".concat(month).slice(-2) : month;\n var dayString = day ? \"0\".concat(day).slice(-2) : day; // create a date object and compare\n\n var d = new Date(\"\".concat(year, \"-\").concat(monthString || '01', \"-\").concat(dayString || '01'));\n\n if (month && day) {\n return d.getUTCFullYear() === year && d.getUTCMonth() + 1 === month && d.getUTCDate() === day;\n }\n\n return true;\n};\n\nfunction isISO8601(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var check = options.strictSeparator ? iso8601StrictSeparator.test(str) : iso8601.test(str);\n if (check && options.strict) return isValidDate(str);\n return check;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIso8601Validator from 'validator/lib/isISO8601';\nexport var IS_ISO8601 = 'isIso8601';\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function isISO8601(value, options) {\n return typeof value === 'string' && isIso8601Validator(value, options);\n}\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function IsISO8601(options, validationOptions) {\n return ValidateBy({\n name: IS_ISO8601,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isISO8601(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO 8601 date string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISO8601.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJSON;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar default_json_options = {\n allow_primitives: false\n};\n\nfunction isJSON(str, options) {\n (0, _assertString.default)(str);\n\n try {\n options = (0, _merge.default)(options, default_json_options);\n var primitives = [];\n\n if (options.allow_primitives) {\n primitives = [null, false, true];\n }\n\n var obj = JSON.parse(str);\n return primitives.includes(obj) || !!obj && _typeof(obj) === 'object';\n } catch (e) {\n /* ignore */\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJSONValidator from 'validator/lib/isJSON';\nexport var IS_JSON = 'isJson';\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function isJSON(value) {\n return typeof value === 'string' && isJSONValidator(value);\n}\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function IsJSON(validationOptions) {\n return ValidateBy({\n name: IS_JSON,\n validator: {\n validate: function (value, args) { return isJSON(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a json string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsJSON.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isJWT;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isBase = _interopRequireDefault(require(\"./isBase64\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isJWT(str) {\n (0, _assertString.default)(str);\n var dotSplit = str.split('.');\n var len = dotSplit.length;\n\n if (len > 3 || len < 2) {\n return false;\n }\n\n return dotSplit.reduce(function (acc, currElem) {\n return acc && (0, _isBase.default)(currElem, {\n urlSafe: true\n });\n }, true);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJwtValidator from 'validator/lib/isJWT';\nexport var IS_JWT = 'isJwt';\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function isJWT(value) {\n return typeof value === 'string' && isJwtValidator(value);\n}\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function IsJWT(validationOptions) {\n return ValidateBy({\n name: IS_JWT,\n validator: {\n validate: function (value, args) { return isJWT(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a jwt string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsJWT.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLowercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isLowercase(str) {\n (0, _assertString.default)(str);\n return str === str.toLowerCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLowercaseValidator from 'validator/lib/isLowercase';\nexport var IS_LOWERCASE = 'isLowercase';\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function isLowercase(value) {\n return typeof value === 'string' && isLowercaseValidator(value);\n}\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsLowercase(validationOptions) {\n return ValidateBy({\n name: IS_LOWERCASE,\n validator: {\n validate: function (value, args) { return isLowercase(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a lowercase string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsLowercase.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMobilePhone;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable max-len */\nvar phones = {\n 'am-AM': /^(\\+?374|0)((10|[9|7][0-9])\\d{6}$|[2-4]\\d{7}$)/,\n 'ar-AE': /^((\\+?971)|0)?5[024568]\\d{7}$/,\n 'ar-BH': /^(\\+?973)?(3|6)\\d{7}$/,\n 'ar-DZ': /^(\\+?213|0)(5|6|7)\\d{8}$/,\n 'ar-LB': /^(\\+?961)?((3|81)\\d{6}|7\\d{7})$/,\n 'ar-EG': /^((\\+?20)|0)?1[0125]\\d{8}$/,\n 'ar-IQ': /^(\\+?964|0)?7[0-9]\\d{8}$/,\n 'ar-JO': /^(\\+?962|0)?7[789]\\d{7}$/,\n 'ar-KW': /^(\\+?965)[569]\\d{7}$/,\n 'ar-LY': /^((\\+?218)|0)?(9[1-6]\\d{7}|[1-8]\\d{7,9})$/,\n 'ar-MA': /^(?:(?:\\+|00)212|0)[5-7]\\d{8}$/,\n 'ar-SA': /^(!?(\\+?966)|0)?5\\d{8}$/,\n 'ar-SY': /^(!?(\\+?963)|0)?9\\d{8}$/,\n 'ar-TN': /^(\\+?216)?[2459]\\d{7}$/,\n 'az-AZ': /^(\\+994|0)(5[015]|7[07]|99)\\d{7}$/,\n 'bs-BA': /^((((\\+|00)3876)|06))((([0-3]|[5-6])\\d{6})|(4\\d{7}))$/,\n 'be-BY': /^(\\+?375)?(24|25|29|33|44)\\d{7}$/,\n 'bg-BG': /^(\\+?359|0)?8[789]\\d{7}$/,\n 'bn-BD': /^(\\+?880|0)1[13456789][0-9]{8}$/,\n 'ca-AD': /^(\\+376)?[346]\\d{5}$/,\n 'cs-CZ': /^(\\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'da-DK': /^(\\+?45)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'de-DE': /^(\\+49)?0?[1|3]([0|5][0-45-9]\\d|6([23]|0\\d?)|7([0-57-9]|6\\d))\\d{7}$/,\n 'de-AT': /^(\\+43|0)\\d{1,4}\\d{3,12}$/,\n 'de-CH': /^(\\+41|0)(7[5-9])\\d{1,7}$/,\n 'de-LU': /^(\\+352)?((6\\d1)\\d{6})$/,\n 'el-GR': /^(\\+?30|0)?(69\\d{8})$/,\n 'en-AU': /^(\\+?61|0)4\\d{8}$/,\n 'en-GB': /^(\\+?44|0)7\\d{9}$/,\n 'en-GG': /^(\\+?44|0)1481\\d{6}$/,\n 'en-GH': /^(\\+233|0)(20|50|24|54|27|57|26|56|23|28)\\d{7}$/,\n 'en-HK': /^(\\+?852[-\\s]?)?[456789]\\d{3}[-\\s]?\\d{4}$/,\n 'en-MO': /^(\\+?853[-\\s]?)?[6]\\d{3}[-\\s]?\\d{4}$/,\n 'en-IE': /^(\\+?353|0)8[356789]\\d{7}$/,\n 'en-IN': /^(\\+?91|0)?[6789]\\d{9}$/,\n 'en-KE': /^(\\+?254|0)(7|1)\\d{8}$/,\n 'en-MT': /^(\\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,\n 'en-MU': /^(\\+?230|0)?\\d{8}$/,\n 'en-NG': /^(\\+?234|0)?[789]\\d{9}$/,\n 'en-NZ': /^(\\+?64|0)[28]\\d{7,9}$/,\n 'en-PK': /^((\\+92)|(0092))-{0,1}\\d{3}-{0,1}\\d{7}$|^\\d{11}$|^\\d{4}-\\d{7}$/,\n 'en-PH': /^(09|\\+639)\\d{9}$/,\n 'en-RW': /^(\\+?250|0)?[7]\\d{8}$/,\n 'en-SG': /^(\\+65)?[689]\\d{7}$/,\n 'en-SL': /^(?:0|94|\\+94)?(7(0|1|2|5|6|7|8)( |-)?\\d)\\d{6}$/,\n 'en-TZ': /^(\\+?255|0)?[67]\\d{8}$/,\n 'en-UG': /^(\\+?256|0)?[7]\\d{8}$/,\n 'en-US': /^((\\+1|1)?( |-)?)?(\\([2-9][0-9]{2}\\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,\n 'en-ZA': /^(\\+?27|0)\\d{9}$/,\n 'en-ZM': /^(\\+?26)?09[567]\\d{7}$/,\n 'en-ZW': /^(\\+263)[0-9]{9}$/,\n 'es-AR': /^\\+?549(11|[2368]\\d)\\d{8}$/,\n 'es-BO': /^(\\+?591)?(6|7)\\d{7}$/,\n 'es-CO': /^(\\+?57)?([1-8]{1}|3[0-9]{2})?[2-9]{1}\\d{6}$/,\n 'es-CL': /^(\\+?56|0)[2-9]\\d{1}\\d{7}$/,\n 'es-CR': /^(\\+506)?[2-8]\\d{7}$/,\n 'es-DO': /^(\\+?1)?8[024]9\\d{7}$/,\n 'es-HN': /^(\\+?504)?[9|8]\\d{7}$/,\n 'es-EC': /^(\\+?593|0)([2-7]|9[2-9])\\d{7}$/,\n 'es-ES': /^(\\+?34)?[6|7]\\d{8}$/,\n 'es-PE': /^(\\+?51)?9\\d{8}$/,\n 'es-MX': /^(\\+?52)?(1|01)?\\d{10,11}$/,\n 'es-PA': /^(\\+?507)\\d{7,8}$/,\n 'es-PY': /^(\\+?595|0)9[9876]\\d{7}$/,\n 'es-UY': /^(\\+598|0)9[1-9][\\d]{6}$/,\n 'et-EE': /^(\\+?372)?\\s?(5|8[1-4])\\s?([0-9]\\s?){6,7}$/,\n 'fa-IR': /^(\\+?98[\\-\\s]?|0)9[0-39]\\d[\\-\\s]?\\d{3}[\\-\\s]?\\d{4}$/,\n 'fi-FI': /^(\\+?358|0)\\s?(4(0|1|2|4|5|6)?|50)\\s?(\\d\\s?){4,8}\\d$/,\n 'fj-FJ': /^(\\+?679)?\\s?\\d{3}\\s?\\d{4}$/,\n 'fo-FO': /^(\\+?298)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'fr-FR': /^(\\+?33|0)[67]\\d{8}$/,\n 'fr-GF': /^(\\+?594|0|00594)[67]\\d{8}$/,\n 'fr-GP': /^(\\+?590|0|00590)[67]\\d{8}$/,\n 'fr-MQ': /^(\\+?596|0|00596)[67]\\d{8}$/,\n 'fr-RE': /^(\\+?262|0|00262)[67]\\d{8}$/,\n 'he-IL': /^(\\+972|0)([23489]|5[012345689]|77)[1-9]\\d{6}$/,\n 'hu-HU': /^(\\+?36)(20|30|70)\\d{7}$/,\n 'id-ID': /^(\\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\\s?|\\d]{5,11})$/,\n 'it-IT': /^(\\+?39)?\\s?3\\d{2} ?\\d{6,7}$/,\n 'it-SM': /^((\\+378)|(0549)|(\\+390549)|(\\+3780549))?6\\d{5,9}$/,\n 'ja-JP': /^(\\+81[ \\-]?(\\(0\\))?|0)[6789]0[ \\-]?\\d{4}[ \\-]?\\d{4}$/,\n 'ka-GE': /^(\\+?995)?(5|79)\\d{7}$/,\n 'kk-KZ': /^(\\+?7|8)?7\\d{9}$/,\n 'kl-GL': /^(\\+?299)?\\s?\\d{2}\\s?\\d{2}\\s?\\d{2}$/,\n 'ko-KR': /^((\\+?82)[ \\-]?)?0?1([0|1|6|7|8|9]{1})[ \\-]?\\d{3,4}[ \\-]?\\d{4}$/,\n 'lt-LT': /^(\\+370|8)\\d{8}$/,\n 'ms-MY': /^(\\+?6?01){1}(([0145]{1}(\\-|\\s)?\\d{7,8})|([236789]{1}(\\s|\\-)?\\d{7}))$/,\n 'nb-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'ne-NP': /^(\\+?977)?9[78]\\d{8}$/,\n 'nl-BE': /^(\\+?32|0)4?\\d{8}$/,\n 'nl-NL': /^(((\\+|00)?31\\(0\\))|((\\+|00)?31)|0)6{1}\\d{8}$/,\n 'nn-NO': /^(\\+?47)?[49]\\d{7}$/,\n 'pl-PL': /^(\\+?48)? ?[5-8]\\d ?\\d{3} ?\\d{2} ?\\d{2}$/,\n 'pt-BR': /^((\\+?55\\ ?[1-9]{2}\\ ?)|(\\+?55\\ ?\\([1-9]{2}\\)\\ ?)|(0[1-9]{2}\\ ?)|(\\([1-9]{2}\\)\\ ?)|([1-9]{2}\\ ?))((\\d{4}\\-?\\d{4})|(9[2-9]{1}\\d{3}\\-?\\d{4}))$/,\n 'pt-PT': /^(\\+?351)?9[1236]\\d{7}$/,\n 'ro-RO': /^(\\+?4?0)\\s?7\\d{2}(\\/|\\s|\\.|\\-)?\\d{3}(\\s|\\.|\\-)?\\d{3}$/,\n 'ru-RU': /^(\\+?7|8)?9\\d{9}$/,\n 'sl-SI': /^(\\+386\\s?|0)(\\d{1}\\s?\\d{3}\\s?\\d{2}\\s?\\d{2}|\\d{2}\\s?\\d{3}\\s?\\d{3})$/,\n 'sk-SK': /^(\\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,\n 'sq-AL': /^(\\+355|0)6[789]\\d{6}$/,\n 'sr-RS': /^(\\+3816|06)[- \\d]{5,9}$/,\n 'sv-SE': /^(\\+?46|0)[\\s\\-]?7[\\s\\-]?[02369]([\\s\\-]?\\d){7}$/,\n 'th-TH': /^(\\+66|66|0)\\d{9}$/,\n 'tr-TR': /^(\\+?90|0)?5\\d{9}$/,\n 'uk-UA': /^(\\+?38|8)?0\\d{9}$/,\n 'uz-UZ': /^(\\+?998)?(6[125-79]|7[1-69]|88|9\\d)\\d{7}$/,\n 'vi-VN': /^(\\+?84|0)((3([2-9]))|(5([2689]))|(7([0|6-9]))|(8([1-6|89]))|(9([0-9])))([0-9]{7})$/,\n 'zh-CN': /^((\\+|00)86)?1([3568][0-9]|4[579]|6[67]|7[01235678]|9[012356789])[0-9]{8}$/,\n 'zh-TW': /^(\\+?886\\-?|0)?9\\d{8}$/\n};\n/* eslint-enable max-len */\n// aliases\n\nphones['en-CA'] = phones['en-US'];\nphones['fr-CA'] = phones['en-CA'];\nphones['fr-BE'] = phones['nl-BE'];\nphones['zh-HK'] = phones['en-HK'];\nphones['zh-MO'] = phones['en-MO'];\nphones['ga-IE'] = phones['en-IE'];\n\nfunction isMobilePhone(str, locale, options) {\n (0, _assertString.default)(str);\n\n if (options && options.strictMode && !str.startsWith('+')) {\n return false;\n }\n\n if (Array.isArray(locale)) {\n return locale.some(function (key) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n\n if (phone.test(str)) {\n return true;\n }\n }\n\n return false;\n });\n } else if (locale in phones) {\n return phones[locale].test(str); // alias falsey locale as 'any'\n } else if (!locale || locale === 'any') {\n for (var key in phones) {\n // istanbul ignore else\n if (phones.hasOwnProperty(key)) {\n var phone = phones[key];\n\n if (phone.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nvar locales = Object.keys(phones);\nexports.locales = locales;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMobilePhoneValidator from 'validator/lib/isMobilePhone';\nexport var IS_MOBILE_PHONE = 'isMobilePhone';\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function isMobilePhone(value, locale, options) {\n return typeof value === 'string' && isMobilePhoneValidator(value, locale, options);\n}\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function IsMobilePhone(locale, options, validationOptions) {\n return ValidateBy({\n name: IS_MOBILE_PHONE,\n constraints: [locale, options],\n validator: {\n validate: function (value, args) { return isMobilePhone(value, args.constraints[0], args.constraints[1]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a phone number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMobilePhone.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha2;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2\nvar validISO31661Alpha2CountriesCodes = ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW'];\n\nfunction isISO31661Alpha2(str) {\n (0, _assertString.default)(str);\n return (0, _includes.default)(validISO31661Alpha2CountriesCodes, str.toUpperCase());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha2Validator from 'validator/lib/isISO31661Alpha2';\nexport var IS_ISO31661_ALPHA_2 = 'isISO31661Alpha2';\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function isISO31661Alpha2(value) {\n return typeof value === 'string' && isISO31661Alpha2Validator(value);\n}\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function IsISO31661Alpha2(validationOptions) {\n return ValidateBy({\n name: IS_ISO31661_ALPHA_2,\n validator: {\n validate: function (value, args) { return isISO31661Alpha2(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO31661 Alpha2 code'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISO31661Alpha2.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISO31661Alpha3;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _includes = _interopRequireDefault(require(\"./util/includes\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// from https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3\nvar validISO31661Alpha3CountriesCodes = ['AFG', 'ALA', 'ALB', 'DZA', 'ASM', 'AND', 'AGO', 'AIA', 'ATA', 'ATG', 'ARG', 'ARM', 'ABW', 'AUS', 'AUT', 'AZE', 'BHS', 'BHR', 'BGD', 'BRB', 'BLR', 'BEL', 'BLZ', 'BEN', 'BMU', 'BTN', 'BOL', 'BES', 'BIH', 'BWA', 'BVT', 'BRA', 'IOT', 'BRN', 'BGR', 'BFA', 'BDI', 'KHM', 'CMR', 'CAN', 'CPV', 'CYM', 'CAF', 'TCD', 'CHL', 'CHN', 'CXR', 'CCK', 'COL', 'COM', 'COG', 'COD', 'COK', 'CRI', 'CIV', 'HRV', 'CUB', 'CUW', 'CYP', 'CZE', 'DNK', 'DJI', 'DMA', 'DOM', 'ECU', 'EGY', 'SLV', 'GNQ', 'ERI', 'EST', 'ETH', 'FLK', 'FRO', 'FJI', 'FIN', 'FRA', 'GUF', 'PYF', 'ATF', 'GAB', 'GMB', 'GEO', 'DEU', 'GHA', 'GIB', 'GRC', 'GRL', 'GRD', 'GLP', 'GUM', 'GTM', 'GGY', 'GIN', 'GNB', 'GUY', 'HTI', 'HMD', 'VAT', 'HND', 'HKG', 'HUN', 'ISL', 'IND', 'IDN', 'IRN', 'IRQ', 'IRL', 'IMN', 'ISR', 'ITA', 'JAM', 'JPN', 'JEY', 'JOR', 'KAZ', 'KEN', 'KIR', 'PRK', 'KOR', 'KWT', 'KGZ', 'LAO', 'LVA', 'LBN', 'LSO', 'LBR', 'LBY', 'LIE', 'LTU', 'LUX', 'MAC', 'MKD', 'MDG', 'MWI', 'MYS', 'MDV', 'MLI', 'MLT', 'MHL', 'MTQ', 'MRT', 'MUS', 'MYT', 'MEX', 'FSM', 'MDA', 'MCO', 'MNG', 'MNE', 'MSR', 'MAR', 'MOZ', 'MMR', 'NAM', 'NRU', 'NPL', 'NLD', 'NCL', 'NZL', 'NIC', 'NER', 'NGA', 'NIU', 'NFK', 'MNP', 'NOR', 'OMN', 'PAK', 'PLW', 'PSE', 'PAN', 'PNG', 'PRY', 'PER', 'PHL', 'PCN', 'POL', 'PRT', 'PRI', 'QAT', 'REU', 'ROU', 'RUS', 'RWA', 'BLM', 'SHN', 'KNA', 'LCA', 'MAF', 'SPM', 'VCT', 'WSM', 'SMR', 'STP', 'SAU', 'SEN', 'SRB', 'SYC', 'SLE', 'SGP', 'SXM', 'SVK', 'SVN', 'SLB', 'SOM', 'ZAF', 'SGS', 'SSD', 'ESP', 'LKA', 'SDN', 'SUR', 'SJM', 'SWZ', 'SWE', 'CHE', 'SYR', 'TWN', 'TJK', 'TZA', 'THA', 'TLS', 'TGO', 'TKL', 'TON', 'TTO', 'TUN', 'TUR', 'TKM', 'TCA', 'TUV', 'UGA', 'UKR', 'ARE', 'GBR', 'USA', 'UMI', 'URY', 'UZB', 'VUT', 'VEN', 'VNM', 'VGB', 'VIR', 'WLF', 'ESH', 'YEM', 'ZMB', 'ZWE'];\n\nfunction isISO31661Alpha3(str) {\n (0, _assertString.default)(str);\n return (0, _includes.default)(validISO31661Alpha3CountriesCodes, str.toUpperCase());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha3Validator from 'validator/lib/isISO31661Alpha3';\nexport var IS_ISO31661_ALPHA_3 = 'isISO31661Alpha3';\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function isISO31661Alpha3(value) {\n return typeof value === 'string' && isISO31661Alpha3Validator(value);\n}\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function IsISO31661Alpha3(validationOptions) {\n return ValidateBy({\n name: IS_ISO31661_ALPHA_3,\n validator: {\n validate: function (value, args) { return isISO31661Alpha3(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO31661 Alpha3 code'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISO31661Alpha3.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMongoId;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isHexadecimal = _interopRequireDefault(require(\"./isHexadecimal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isMongoId(str) {\n (0, _assertString.default)(str);\n return (0, _isHexadecimal.default)(str) && str.length === 24;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMongoIdValidator from 'validator/lib/isMongoId';\nexport var IS_MONGO_ID = 'isMongoId';\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function isMongoId(value) {\n return typeof value === 'string' && isMongoIdValidator(value);\n}\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function IsMongoId(validationOptions) {\n return ValidateBy({\n name: IS_MONGO_ID,\n validator: {\n validate: function (value, args) { return isMongoId(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a mongodb id'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMongoId.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMultibyte;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* eslint-disable no-control-regex */\nvar multibyte = /[^\\x00-\\x7F]/;\n/* eslint-enable no-control-regex */\n\nfunction isMultibyte(str) {\n (0, _assertString.default)(str);\n return multibyte.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMultibyteValidator from 'validator/lib/isMultibyte';\nexport var IS_MULTIBYTE = 'isMultibyte';\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function isMultibyte(value) {\n return typeof value === 'string' && isMultibyteValidator(value);\n}\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsMultibyte(validationOptions) {\n return ValidateBy({\n name: IS_MULTIBYTE,\n validator: {\n validate: function (value, args) { return isMultibyte(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain one or more multibyte chars'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMultibyte.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSurrogatePair;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar surrogatePair = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/;\n\nfunction isSurrogatePair(str) {\n (0, _assertString.default)(str);\n return surrogatePair.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSurrogatePairValidator from 'validator/lib/isSurrogatePair';\nexport var IS_SURROGATE_PAIR = 'isSurrogatePair';\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function isSurrogatePair(value) {\n return typeof value === 'string' && isSurrogatePairValidator(value);\n}\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsSurrogatePair(validationOptions) {\n return ValidateBy({\n name: IS_SURROGATE_PAIR,\n validator: {\n validate: function (value, args) { return isSurrogatePair(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain any surrogate pairs chars'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsSurrogatePair.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isURL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _isFQDN = _interopRequireDefault(require(\"./isFQDN\"));\n\nvar _isIP = _interopRequireDefault(require(\"./isIP\"));\n\nvar _merge = _interopRequireDefault(require(\"./util/merge\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\noptions for isURL method\n\nrequire_protocol - if set as true isURL will return false if protocol is not present in the URL\nrequire_valid_protocol - isURL will check if the URL's protocol is present in the protocols option\nprotocols - valid protocols can be modified with this option\nrequire_host - if set as false isURL will not check if host is present in the URL\nrequire_port - if set as true isURL will check if port is present in the URL\nallow_protocol_relative_urls - if set as true protocol relative URLs will be allowed\nvalidate_length - if set as false isURL will skip string length validation (IE maximum is 2083)\n\n*/\nvar default_url_options = {\n protocols: ['http', 'https', 'ftp'],\n require_tld: true,\n require_protocol: false,\n require_host: true,\n require_port: false,\n require_valid_protocol: true,\n allow_underscores: false,\n allow_trailing_dot: false,\n allow_protocol_relative_urls: false,\n validate_length: true\n};\nvar wrapped_ipv6 = /^\\[([^\\]]+)\\](?::([0-9]+))?$/;\n\nfunction isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n}\n\nfunction checkHost(host, matches) {\n for (var i = 0; i < matches.length; i++) {\n var match = matches[i];\n\n if (host === match || isRegExp(match) && match.test(host)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction isURL(url, options) {\n (0, _assertString.default)(url);\n\n if (!url || /[\\s<>]/.test(url)) {\n return false;\n }\n\n if (url.indexOf('mailto:') === 0) {\n return false;\n }\n\n options = (0, _merge.default)(options, default_url_options);\n\n if (options.validate_length && url.length >= 2083) {\n return false;\n }\n\n var protocol, auth, host, hostname, port, port_str, split, ipv6;\n split = url.split('#');\n url = split.shift();\n split = url.split('?');\n url = split.shift();\n split = url.split('://');\n\n if (split.length > 1) {\n protocol = split.shift().toLowerCase();\n\n if (options.require_valid_protocol && options.protocols.indexOf(protocol) === -1) {\n return false;\n }\n } else if (options.require_protocol) {\n return false;\n } else if (url.substr(0, 2) === '//') {\n if (!options.allow_protocol_relative_urls) {\n return false;\n }\n\n split[0] = url.substr(2);\n }\n\n url = split.join('://');\n\n if (url === '') {\n return false;\n }\n\n split = url.split('/');\n url = split.shift();\n\n if (url === '' && !options.require_host) {\n return true;\n }\n\n split = url.split('@');\n\n if (split.length > 1) {\n if (options.disallow_auth) {\n return false;\n }\n\n auth = split.shift();\n\n if (auth.indexOf(':') === -1 || auth.indexOf(':') >= 0 && auth.split(':').length > 2) {\n return false;\n }\n }\n\n hostname = split.join('@');\n port_str = null;\n ipv6 = null;\n var ipv6_match = hostname.match(wrapped_ipv6);\n\n if (ipv6_match) {\n host = '';\n ipv6 = ipv6_match[1];\n port_str = ipv6_match[2] || null;\n } else {\n split = hostname.split(':');\n host = split.shift();\n\n if (split.length) {\n port_str = split.join(':');\n }\n }\n\n if (port_str !== null) {\n port = parseInt(port_str, 10);\n\n if (!/^[0-9]+$/.test(port_str) || port <= 0 || port > 65535) {\n return false;\n }\n } else if (options.require_port) {\n return false;\n }\n\n if (!(0, _isIP.default)(host) && !(0, _isFQDN.default)(host, options) && (!ipv6 || !(0, _isIP.default)(ipv6, 6))) {\n return false;\n }\n\n host = host || ipv6;\n\n if (options.host_whitelist && !checkHost(host, options.host_whitelist)) {\n return false;\n }\n\n if (options.host_blacklist && checkHost(host, options.host_blacklist)) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUrlValidator from 'validator/lib/isURL';\nexport var IS_URL = 'isUrl';\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function isURL(value, options) {\n return typeof value === 'string' && isUrlValidator(value, options);\n}\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function IsUrl(options, validationOptions) {\n return ValidateBy({\n name: IS_URL,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isURL(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an URL address'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsUrl.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUUID;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar uuid = {\n 3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,\n 4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n 5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,\n all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i\n};\n\nfunction isUUID(str) {\n var version = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'all';\n (0, _assertString.default)(str);\n var pattern = uuid[version];\n return pattern && pattern.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUuidValidator from 'validator/lib/isUUID';\nexport var IS_UUID = 'isUuid';\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function isUUID(value, version) {\n return typeof value === 'string' && isUuidValidator(value, version);\n}\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function IsUUID(version, validationOptions) {\n return ValidateBy({\n name: IS_UUID,\n constraints: [version],\n validator: {\n validate: function (value, args) { return isUUID(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a UUID'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsUUID.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_FIREBASE_PUSH_ID = 'IsFirebasePushId';\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function isFirebasePushId(value) {\n var webSafeRegex = /^[a-zA-Z0-9_-]*$/;\n return typeof value === 'string' && value.length === 20 && webSafeRegex.test(value);\n}\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function IsFirebasePushId(validationOptions) {\n return ValidateBy({\n name: IS_FIREBASE_PUSH_ID,\n validator: {\n validate: function (value, args) { return isFirebasePushId(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Firebase Push Id'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsFirebasePushId.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isUppercase;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isUppercase(str) {\n (0, _assertString.default)(str);\n return str === str.toUpperCase();\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUppercaseValidator from 'validator/lib/isUppercase';\nexport var IS_UPPERCASE = 'isUppercase';\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function isUppercase(value) {\n return typeof value === 'string' && isUppercaseValidator(value);\n}\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsUppercase(validationOptions) {\n return ValidateBy({\n name: IS_UPPERCASE,\n validator: {\n validate: function (value, args) { return isUppercase(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be uppercase'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsUppercase.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLength;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable prefer-rest-params */\nfunction isLength(str, options) {\n (0, _assertString.default)(str);\n var min;\n var max;\n\n if (_typeof(options) === 'object') {\n min = options.min || 0;\n max = options.max;\n } else {\n // backwards compatibility: isLength(str, min [, max])\n min = arguments[1] || 0;\n max = arguments[2];\n }\n\n var surrogatePairs = str.match(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g) || [];\n var len = str.length - surrogatePairs.length;\n return len >= min && (typeof max === 'undefined' || len <= max);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\nexport var IS_LENGTH = 'isLength';\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function length(value, min, max) {\n return typeof value === 'string' && isLengthValidator(value, { min: min, max: max });\n}\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function Length(min, max, validationOptions) {\n return ValidateBy({\n name: IS_LENGTH,\n constraints: [min, max],\n validator: {\n validate: function (value, args) { return length(value, args.constraints[0], args.constraints[1]); },\n defaultMessage: buildMessage(function (eachPrefix, args) {\n var isMinLength = args.constraints[0] !== null && args.constraints[0] !== undefined;\n var isMaxLength = args.constraints[1] !== null && args.constraints[1] !== undefined;\n if (isMinLength && (!args.value || args.value.length < args.constraints[0])) {\n return eachPrefix + '$property must be longer than or equal to $constraint1 characters';\n }\n else if (isMaxLength && args.value.length > args.constraints[1]) {\n return eachPrefix + '$property must be shorter than or equal to $constraint2 characters';\n }\n return (eachPrefix +\n '$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters');\n }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Length.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\nexport var MAX_LENGTH = 'maxLength';\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function maxLength(value, max) {\n return typeof value === 'string' && isLengthValidator(value, { min: 0, max: max });\n}\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MaxLength(max, validationOptions) {\n return ValidateBy({\n name: MAX_LENGTH,\n constraints: [max],\n validator: {\n validate: function (value, args) { return maxLength(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be shorter than or equal to $constraint1 characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=MaxLength.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\nexport var MIN_LENGTH = 'minLength';\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function minLength(value, min) {\n return typeof value === 'string' && isLengthValidator(value, { min: min });\n}\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MinLength(min, validationOptions) {\n return ValidateBy({\n name: MIN_LENGTH,\n constraints: [min],\n validator: {\n validate: function (value, args) { return minLength(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be longer than or equal to $constraint1 characters'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=MinLength.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = matches;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction matches(str, pattern, modifiers) {\n (0, _assertString.default)(str);\n\n if (Object.prototype.toString.call(pattern) !== '[object RegExp]') {\n pattern = new RegExp(pattern, modifiers);\n }\n\n return pattern.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\nexport var MATCHES = 'matches';\nexport function matches(value, pattern, modifiers) {\n return typeof value === 'string' && matchesValidator(value, pattern, modifiers);\n}\nexport function Matches(pattern, modifiersOrAnnotationOptions, validationOptions) {\n var modifiers;\n if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) {\n validationOptions = modifiersOrAnnotationOptions;\n }\n else {\n modifiers = modifiersOrAnnotationOptions;\n }\n return ValidateBy({\n name: MATCHES,\n constraints: [pattern, modifiers],\n validator: {\n validate: function (value, args) { return matches(value, args.constraints[0], args.constraints[1]); },\n defaultMessage: buildMessage(function (eachPrefix, args) { return eachPrefix + '$property must match $constraint1 regular expression'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=Matches.js.map","// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"version\":4,\"country_calling_codes\":{\"1\":[\"US\",\"AG\",\"AI\",\"AS\",\"BB\",\"BM\",\"BS\",\"CA\",\"DM\",\"DO\",\"GD\",\"GU\",\"JM\",\"KN\",\"KY\",\"LC\",\"MP\",\"MS\",\"PR\",\"SX\",\"TC\",\"TT\",\"VC\",\"VG\",\"VI\"],\"7\":[\"RU\",\"KZ\"],\"20\":[\"EG\"],\"27\":[\"ZA\"],\"30\":[\"GR\"],\"31\":[\"NL\"],\"32\":[\"BE\"],\"33\":[\"FR\"],\"34\":[\"ES\"],\"36\":[\"HU\"],\"39\":[\"IT\",\"VA\"],\"40\":[\"RO\"],\"41\":[\"CH\"],\"43\":[\"AT\"],\"44\":[\"GB\",\"GG\",\"IM\",\"JE\"],\"45\":[\"DK\"],\"46\":[\"SE\"],\"47\":[\"NO\",\"SJ\"],\"48\":[\"PL\"],\"49\":[\"DE\"],\"51\":[\"PE\"],\"52\":[\"MX\"],\"53\":[\"CU\"],\"54\":[\"AR\"],\"55\":[\"BR\"],\"56\":[\"CL\"],\"57\":[\"CO\"],\"58\":[\"VE\"],\"60\":[\"MY\"],\"61\":[\"AU\",\"CC\",\"CX\"],\"62\":[\"ID\"],\"63\":[\"PH\"],\"64\":[\"NZ\"],\"65\":[\"SG\"],\"66\":[\"TH\"],\"81\":[\"JP\"],\"82\":[\"KR\"],\"84\":[\"VN\"],\"86\":[\"CN\"],\"90\":[\"TR\"],\"91\":[\"IN\"],\"92\":[\"PK\"],\"93\":[\"AF\"],\"94\":[\"LK\"],\"95\":[\"MM\"],\"98\":[\"IR\"],\"211\":[\"SS\"],\"212\":[\"MA\",\"EH\"],\"213\":[\"DZ\"],\"216\":[\"TN\"],\"218\":[\"LY\"],\"220\":[\"GM\"],\"221\":[\"SN\"],\"222\":[\"MR\"],\"223\":[\"ML\"],\"224\":[\"GN\"],\"225\":[\"CI\"],\"226\":[\"BF\"],\"227\":[\"NE\"],\"228\":[\"TG\"],\"229\":[\"BJ\"],\"230\":[\"MU\"],\"231\":[\"LR\"],\"232\":[\"SL\"],\"233\":[\"GH\"],\"234\":[\"NG\"],\"235\":[\"TD\"],\"236\":[\"CF\"],\"237\":[\"CM\"],\"238\":[\"CV\"],\"239\":[\"ST\"],\"240\":[\"GQ\"],\"241\":[\"GA\"],\"242\":[\"CG\"],\"243\":[\"CD\"],\"244\":[\"AO\"],\"245\":[\"GW\"],\"246\":[\"IO\"],\"247\":[\"AC\"],\"248\":[\"SC\"],\"249\":[\"SD\"],\"250\":[\"RW\"],\"251\":[\"ET\"],\"252\":[\"SO\"],\"253\":[\"DJ\"],\"254\":[\"KE\"],\"255\":[\"TZ\"],\"256\":[\"UG\"],\"257\":[\"BI\"],\"258\":[\"MZ\"],\"260\":[\"ZM\"],\"261\":[\"MG\"],\"262\":[\"RE\",\"YT\"],\"263\":[\"ZW\"],\"264\":[\"NA\"],\"265\":[\"MW\"],\"266\":[\"LS\"],\"267\":[\"BW\"],\"268\":[\"SZ\"],\"269\":[\"KM\"],\"290\":[\"SH\",\"TA\"],\"291\":[\"ER\"],\"297\":[\"AW\"],\"298\":[\"FO\"],\"299\":[\"GL\"],\"350\":[\"GI\"],\"351\":[\"PT\"],\"352\":[\"LU\"],\"353\":[\"IE\"],\"354\":[\"IS\"],\"355\":[\"AL\"],\"356\":[\"MT\"],\"357\":[\"CY\"],\"358\":[\"FI\",\"AX\"],\"359\":[\"BG\"],\"370\":[\"LT\"],\"371\":[\"LV\"],\"372\":[\"EE\"],\"373\":[\"MD\"],\"374\":[\"AM\"],\"375\":[\"BY\"],\"376\":[\"AD\"],\"377\":[\"MC\"],\"378\":[\"SM\"],\"380\":[\"UA\"],\"381\":[\"RS\"],\"382\":[\"ME\"],\"383\":[\"XK\"],\"385\":[\"HR\"],\"386\":[\"SI\"],\"387\":[\"BA\"],\"389\":[\"MK\"],\"420\":[\"CZ\"],\"421\":[\"SK\"],\"423\":[\"LI\"],\"500\":[\"FK\"],\"501\":[\"BZ\"],\"502\":[\"GT\"],\"503\":[\"SV\"],\"504\":[\"HN\"],\"505\":[\"NI\"],\"506\":[\"CR\"],\"507\":[\"PA\"],\"508\":[\"PM\"],\"509\":[\"HT\"],\"590\":[\"GP\",\"BL\",\"MF\"],\"591\":[\"BO\"],\"592\":[\"GY\"],\"593\":[\"EC\"],\"594\":[\"GF\"],\"595\":[\"PY\"],\"596\":[\"MQ\"],\"597\":[\"SR\"],\"598\":[\"UY\"],\"599\":[\"CW\",\"BQ\"],\"670\":[\"TL\"],\"672\":[\"NF\"],\"673\":[\"BN\"],\"674\":[\"NR\"],\"675\":[\"PG\"],\"676\":[\"TO\"],\"677\":[\"SB\"],\"678\":[\"VU\"],\"679\":[\"FJ\"],\"680\":[\"PW\"],\"681\":[\"WF\"],\"682\":[\"CK\"],\"683\":[\"NU\"],\"685\":[\"WS\"],\"686\":[\"KI\"],\"687\":[\"NC\"],\"688\":[\"TV\"],\"689\":[\"PF\"],\"690\":[\"TK\"],\"691\":[\"FM\"],\"692\":[\"MH\"],\"850\":[\"KP\"],\"852\":[\"HK\"],\"853\":[\"MO\"],\"855\":[\"KH\"],\"856\":[\"LA\"],\"880\":[\"BD\"],\"886\":[\"TW\"],\"960\":[\"MV\"],\"961\":[\"LB\"],\"962\":[\"JO\"],\"963\":[\"SY\"],\"964\":[\"IQ\"],\"965\":[\"KW\"],\"966\":[\"SA\"],\"967\":[\"YE\"],\"968\":[\"OM\"],\"970\":[\"PS\"],\"971\":[\"AE\"],\"972\":[\"IL\"],\"973\":[\"BH\"],\"974\":[\"QA\"],\"975\":[\"BT\"],\"976\":[\"MN\"],\"977\":[\"NP\"],\"992\":[\"TJ\"],\"993\":[\"TM\"],\"994\":[\"AZ\"],\"995\":[\"GE\"],\"996\":[\"KG\"],\"998\":[\"UZ\"]},\"countries\":{\"AC\":[\"247\",\"00\",\"(?:[01589]\\\\d|[46])\\\\d{4}\",[5,6]],\"AD\":[\"376\",\"00\",\"(?:1|6\\\\d)\\\\d{7}|[135-9]\\\\d{5}\",[6,8,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"[135-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]]],\"AE\":[\"971\",\"00\",\"(?:[4-7]\\\\d|9[0-689])\\\\d{7}|800\\\\d{2,9}|[2-4679]\\\\d{7}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{2,9})\",\"$1 $2\",[\"60|8\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[236]|[479][2-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{5})\",\"$1 $2 $3\",[\"[479]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AF\":[\"93\",\"00\",\"[2-7]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"]],\"0\"],\"AG\":[\"1\",\"011\",\"(?:268|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([457]\\\\d{6})$\",\"268$1\",0,\"268\"],\"AI\":[\"1\",\"011\",\"(?:264|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2457]\\\\d{6})$\",\"264$1\",0,\"264\"],\"AL\":[\"355\",\"00\",\"(?:700\\\\d\\\\d|900)\\\\d{3}|8\\\\d{5,7}|(?:[2-5]|6\\\\d)\\\\d{7}\",[6,7,8,9],[[\"(\\\\d{3})(\\\\d{3,4})\",\"$1 $2\",[\"80|9\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2358][2-5]|4\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[23578]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"]],\"0\"],\"AM\":[\"374\",\"00\",\"(?:[1-489]\\\\d|55|60|77)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]0\"],\"0 $1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2|3[12]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"1|47\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[3-9]\"],\"0$1\"]],\"0\"],\"AO\":[\"244\",\"00\",\"[29]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[29]\"]]]],\"AR\":[\"54\",\"00\",\"11\\\\d{8}|(?:[2368]|9\\\\d)\\\\d{9}\",[10,11],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$1 $2-$3\",[\"2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])\",\"2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"1\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[23]\"],\"0$1\",1],[\"(\\\\d)(\\\\d{4})(\\\\d{2})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9(?:2[2-469]|3[3-578])\",\"9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))\",\"9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]\",\"9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 15-$3-$4\",[\"91\"],\"0$1\",0,\"$1 $2 $3-$4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 15-$3-$4\",[\"9\"],\"0$1\",0,\"$1 $2 $3-$4\"]],\"0\",0,\"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?\",\"9$1\"],\"AS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|684|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([267]\\\\d{6})$\",\"684$1\",0,\"684\"],\"AT\":[\"43\",\"00\",\"1\\\\d{3,12}|2\\\\d{6,12}|43(?:(?:0\\\\d|5[02-9])\\\\d{3,9}|2\\\\d{4,5}|[3467]\\\\d{4}|8\\\\d{4,6}|9\\\\d{4,7})|5\\\\d{4,12}|8\\\\d{7,12}|9\\\\d{8,12}|(?:[367]\\\\d|4[0-24-9])\\\\d{4,11}\",[4,5,6,7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3,12})\",\"$1 $2\",[\"1(?:11|[2-9])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})\",\"$1 $2\",[\"517\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"5[079]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,10})\",\"$1 $2\",[\"(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,9})\",\"$1 $2\",[\"[2-467]|5[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,7})\",\"$1 $2 $3\",[\"5\"],\"0$1\"]],\"0\"],\"AU\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d{7,8}|8[0-24-9]\\\\d{7})|[2-478]\\\\d{8}|1\\\\d{4,7}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"16\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"16\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"14|4\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[2378]\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:30|[89])\"]]],\"0\",0,\"0|(183[12])\",0,0,0,[[\"8(?:51(?:0(?:0[03-9]|[12479]\\\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-7]|3[2-4]|[4-6]\\\\d))|91(?:[0-57-9]\\\\d|6[0135-9])\\\\d)\\\\d{3}|(?:2(?:[0-26-9]\\\\d|3[0-8]|4[02-9]|5[0135-9])|3(?:[0-3589]\\\\d|4[0-578]|6[1-9]|7[0-35-9])|7(?:[013-57-9]\\\\d|2[0-8])|8(?:6[0-8]|[78]\\\\d|9[02-9]))\\\\d{6}\",[9]],[\"4(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,[\"163\\\\d{2,6}\",[5,6,7,8,9]],[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\",[6,8,10]]],\"0011\"],\"AW\":[\"297\",\"00\",\"(?:[25-79]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[25-9]\"]]]],\"AX\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"2\\\\d{4,9}|35\\\\d{4,5}|(?:60\\\\d\\\\d|800)\\\\d{4,6}|7\\\\d{5,11}|(?:[14]\\\\d|3[0-46-9]|50)\\\\d{4,8}\",[5,6,7,8,9,10,11,12],0,\"0\",0,0,0,0,\"18\",0,\"00\"],\"AZ\":[\"994\",\"00\",\"365\\\\d{6}|(?:[124579]\\\\d|60|88)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[28]|2|365|46\",\"1[28]|2|365|46\",\"1[28]|2|365(?:[0-46-9]|5[0-35-9])|46\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[13-9]\"],\"0$1\"]],\"0\"],\"BA\":[\"387\",\"00\",\"6\\\\d{8}|(?:[35689]\\\\d|49|70)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[1-3]|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2-$3\",[\"[3-5]|6[56]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"6\"],\"0$1\"]],\"0\"],\"BB\":[\"1\",\"011\",\"(?:246|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"246$1\",0,\"246\"],\"BD\":[\"880\",\"00\",\"1\\\\d{9}|2\\\\d{7,8}|88\\\\d{4,6}|(?:8[0-79]|9\\\\d)\\\\d{4,8}|(?:[346]\\\\d|[57])\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1-$2\",[\"31[5-8]|[459]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1-$2\",[\"3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:28|4[14]|5)|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,6})\",\"$1-$2\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{7,8})\",\"$1-$2\",[\"2\"],\"0$1\"]],\"0\"],\"BE\":[\"32\",\"00\",\"4\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:80|9)0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[239]|4[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[15-8]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"4\"],\"0$1\"]],\"0\"],\"BF\":[\"226\",\"00\",\"[025-7]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[025-7]\"]]]],\"BG\":[\"359\",\"00\",\"[2-7]\\\\d{6,7}|[89]\\\\d{6,8}|2\\\\d{5}\",[6,7,8,9],[[\"(\\\\d)(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"43[1-6]|70[1-9]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:70|8)0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3\",[\"43[1-7]|7\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[48]|9[08]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"BH\":[\"973\",\"00\",\"[136-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[13679]|8[047]\"]]]],\"BI\":[\"257\",\"00\",\"(?:[267]\\\\d|31)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2367]\"]]]],\"BJ\":[\"229\",\"00\",\"(?:[2689]\\\\d|51)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[25689]\"]]]],\"BL\":[\"590\",\"00\",\"(?:590|69\\\\d|976)\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:2[7-9]|5[12]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"],0,0,0,0,0,0,[\"976[01]\\\\d{5}\"]]],\"BM\":[\"1\",\"011\",\"(?:441|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-8]\\\\d{6})$\",\"441$1\",0,\"441\"],\"BN\":[\"673\",\"00\",\"[2-578]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-578]\"]]]],\"BO\":[\"591\",\"00(?:1\\\\d)?\",\"(?:[2-467]\\\\d\\\\d|8001)\\\\d{5}\",[8,9],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[23]|4[46]\"]],[\"(\\\\d{8})\",\"$1\",[\"[67]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\",0,\"0(1\\\\d)?\"],\"BQ\":[\"599\",\"00\",\"(?:[34]1|7\\\\d)\\\\d{5}\",[7],0,0,0,0,0,0,\"[347]\"],\"BR\":[\"55\",\"00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)\",\"(?:[1-46-9]\\\\d\\\\d|5(?:[0-46-9]\\\\d|5[0-24679]))\\\\d{8}|[1-9]\\\\d{9}|[3589]\\\\d{8}|[34]\\\\d{7}\",[8,9,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"300|4(?:0[02]|37)\",\"4(?:02|37)0|[34]00\"]],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:[358]|90)0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2-$3\",[\"(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1 $2-$3\",[\"[16][1-9]|[2-57-9]\"],\"($1)\"]],\"0\",0,\"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\\\d{10,11}))?\",\"$2\"],\"BS\":[\"1\",\"011\",\"(?:242|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([3-8]\\\\d{6})$\",\"242$1\",0,\"242\"],\"BT\":[\"975\",\"00\",\"[17]\\\\d{7}|[2-8]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-68]|7[246]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[67]|7\"]]]],\"BW\":[\"267\",\"00\",\"90\\\\d{5}|(?:0800|[2-6]|7\\\\d)\\\\d{6}\",[7,8,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-6]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"0\"]]]],\"BY\":[\"375\",\"810\",\"(?:[12]\\\\d|33|44|902)\\\\d{7}|8(?:0[0-79]\\\\d{5,7}|[1-7]\\\\d{9})|8(?:1[0-489]|[5-79]\\\\d)\\\\d{7}|8[1-79]\\\\d{6,7}|8[0-79]\\\\d{5}|8\\\\d{5}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"800\"],\"8 $1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,4})\",\"$1 $2 $3\",[\"800\"],\"8 $1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{3})\",\"$1 $2-$3\",[\"1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])\",\"1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"1(?:[56]|7[467])|2[1-3]\"],\"8 0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-4]\"],\"8 0$1\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"8 $1\"]],\"8\",0,\"0|80?\",0,0,0,0,\"8~10\"],\"BZ\":[\"501\",\"00\",\"(?:0800\\\\d|[2-8])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-8]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"0\"]]]],\"CA\":[\"1\",\"011\",\"(?:[2-8]\\\\d|90)\\\\d{8}\",[10],0,\"1\",0,0,0,0,0,[[\"(?:2(?:04|[23]6|[48]9|50)|3(?:06|43|6[57])|4(?:03|1[68]|3[178]|50)|5(?:06|1[49]|48|79|8[17])|6(?:04|13|39|47|72)|7(?:0[59]|78|8[02])|8(?:[06]7|19|25|73)|90[25])[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|(?:5(?:00|2[12]|33|44|66|77|88)|622)[2-9]\\\\d{6}\"],0,0,0,[\"600[2-9]\\\\d{6}\"]]],\"CC\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10],0,\"0\",0,\"0|([59]\\\\d{7})$\",\"8$1\",0,0,[[\"8(?:51(?:0(?:02|31|60|89)|118)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\\\d|70[23]|959))\\\\d{3}\",[9]],[\"4(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\",[6,8,10]]],\"0011\"],\"CD\":[\"243\",\"00\",\"[189]\\\\d{8}|[1-68]\\\\d{6}\",[7,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[1-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"CF\":[\"236\",\"00\",\"(?:[27]\\\\d{3}|8776)\\\\d{4}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[278]\"]]]],\"CG\":[\"242\",\"00\",\"222\\\\d{6}|(?:0\\\\d|80)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"801\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02]\"]]]],\"CH\":[\"41\",\"00\",\"8\\\\d{11}|[2-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8[047]|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-79]|81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"8\"],\"0$1\"]],\"0\"],\"CI\":[\"225\",\"00\",\"[02-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[02-9]\"]]]],\"CK\":[\"682\",\"00\",\"[2-578]\\\\d{4}\",[5],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"[2-578]\"]]]],\"CL\":[\"56\",\"(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0\",\"12300\\\\d{6}|6\\\\d{9,10}|[2-9]\\\\d{8}\",[9,10,11],[[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"219\",\"2196\"],\"($1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[1-3]\"],\"($1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"9[2-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"60|8\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"60\"]]]],\"CM\":[\"237\",\"00\",\"(?:[26]\\\\d\\\\d|88)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"88\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[26]\"]]]],\"CN\":[\"86\",\"00|1(?:[12]\\\\d|79)\\\\d\\\\d00\",\"1[127]\\\\d{8,9}|2\\\\d{9}(?:\\\\d{2})?|[12]\\\\d{6,7}|86\\\\d{6}|(?:1[03-689]\\\\d|6)\\\\d{7,9}|(?:[3-579]\\\\d|8[0-57-9])\\\\d{6,9}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5,6})\",\"$1 $2\",[\"(?:10|2[0-57-9])[19]\",\"(?:10|2[0-57-9])(?:10|9[56])\",\"(?:10|2[0-57-9])(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]\",\"(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))[19]\",\"85[23](?:10|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:10|9[56])\",\"85[23](?:100|95)|(?:3(?:[157]\\\\d|35|49|9[1-68])|4(?:[17]\\\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\\\d|4[13]|5[1-5]))(?:100|9[56])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"(?:4|80)0\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"10|2(?:[02-57-9]|1[1-9])\",\"10|2(?:[02-57-9]|1[1-9])\",\"10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-578]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"1[3-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"[12]\"],\"0$1\",1]],\"0\",0,\"0|(1(?:[12]\\\\d|79)\\\\d\\\\d)\",0,0,0,0,\"00\"],\"CO\":[\"57\",\"00(?:4(?:[14]4|56)|[579])\",\"(?:1\\\\d|3)\\\\d{9}|[124-8]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"[14][2-9]|[25-8]\"],\"($1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{7})\",\"$1-$2-$3\",[\"1\"],\"0$1\",0,\"$1 $2 $3\"]],\"0\",0,\"0([3579]|4(?:[14]4|56))?\"],\"CR\":[\"506\",\"00\",\"(?:8\\\\d|90)\\\\d{8}|(?:[24-8]\\\\d{3}|3005)\\\\d{4}\",[8,10],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[3-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[89]\"]]],0,0,\"(19(?:0[0-2468]|1[09]|20|66|77|99))\"],\"CU\":[\"53\",\"119\",\"[27]\\\\d{6,7}|[34]\\\\d{5,7}|(?:5|8\\\\d\\\\d)\\\\d{7}\",[6,7,8,10],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"2[1-4]|[34]\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{6,7})\",\"$1 $2\",[\"7\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"8\"],\"0$1\"]],\"0\"],\"CV\":[\"238\",\"0\",\"(?:[2-59]\\\\d\\\\d|800)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[2-589]\"]]]],\"CW\":[\"599\",\"00\",\"(?:[34]1|60|(?:7|9\\\\d)\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[3467]\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9[4-8]\"]]],0,0,0,0,0,\"[69]\"],\"CX\":[\"61\",\"001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011\",\"1(?:[0-79]\\\\d|8[0-24-9])\\\\d{7}|[148]\\\\d{8}|1\\\\d{5,7}\",[6,7,8,9,10],0,\"0\",0,\"0|([59]\\\\d{7})$\",\"8$1\",0,0,[[\"8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|235)|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\\\d|7(?:0[01]|1[0-2])|958))\\\\d{3}\",[9]],[\"4(?:83[0-38]|93[0-4])\\\\d{5}|4(?:[0-3]\\\\d|4[047-9]|5[0-25-9]|6[06-9]|7[02-9]|8[0-24-9]|9[0-27-9])\\\\d{6}\",[9]],[\"180(?:0\\\\d{3}|2)\\\\d{3}\",[7,10]],[\"190[0-26]\\\\d{6}\",[10]],0,0,0,0,[\"14(?:5(?:1[0458]|[23][458])|71\\\\d)\\\\d{4}\",[9]],[\"13(?:00\\\\d{3}|45[0-4])\\\\d{3}|13\\\\d{4}\",[6,8,10]]],\"0011\"],\"CY\":[\"357\",\"00\",\"(?:[279]\\\\d|[58]0)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[257-9]\"]]]],\"CZ\":[\"420\",\"00\",\"(?:[2-578]\\\\d|60)\\\\d{7}|9\\\\d{8,11}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]|9[015-7]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]]],\"DE\":[\"49\",\"00\",\"[2579]\\\\d{5,14}|49(?:[05]\\\\d{10}|[46][1-8]\\\\d{4,9})|49(?:[0-25]\\\\d|3[1-689]|7[1-7])\\\\d{4,8}|49(?:[0-2579]\\\\d|[34][1-9]|6[0-8])\\\\d{3}|49\\\\d{3,4}|(?:1|[368]\\\\d|4[0-8])\\\\d{3,13}\",[4,5,6,7,8,9,10,11,12,13,14,15],[[\"(\\\\d{2})(\\\\d{3,13})\",\"$1 $2\",[\"3[02]|40|[68]9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,12})\",\"$1 $2\",[\"2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\",\"2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2,11})\",\"$1 $2\",[\"[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]\",\"[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"138\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{2,10})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,11})\",\"$1 $2\",[\"181\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{4,10})\",\"$1 $2 $3\",[\"1(?:3|80)|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,8})\",\"$1 $2\",[\"1[67]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7,12})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"185\",\"1850\",\"18500\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"18[68]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{6})\",\"$1 $2\",[\"15[0568]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{7})\",\"$1 $2\",[\"15[1279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{8})\",\"$1 $2\",[\"18\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{7,8})\",\"$1 $2 $3\",[\"1(?:6[023]|7)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{2})(\\\\d{7})\",\"$1 $2 $3\",[\"15[279]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{8})\",\"$1 $2 $3\",[\"15\"],\"0$1\"]],\"0\"],\"DJ\":[\"253\",\"00\",\"(?:2\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[27]\"]]]],\"DK\":[\"45\",\"00\",\"[2-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-9]\"]]]],\"DM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|767|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"767$1\",0,\"767\"],\"DO\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"8[024]9\"],\"DZ\":[\"213\",\"00\",\"(?:[1-4]|[5-79]\\\\d|80)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-8]\"],\"0$1\"]],\"0\"],\"EC\":[\"593\",\"00\",\"1\\\\d{9,10}|(?:[2-7]|9\\\\d)\\\\d{7}\",[8,9,10,11],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2-$3\",[\"[2-7]\"],\"(0$1)\",0,\"$1-$2-$3\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"EE\":[\"372\",\"00\",\"8\\\\d{9}|[4578]\\\\d{7}|(?:[3-8]\\\\d|90)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88\",\"[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88\"]],[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[45]|8(?:00|[1-49])\",\"[45]|8(?:00[1-9]|[1-49])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"EG\":[\"20\",\"00\",\"[189]\\\\d{8,9}|[24-6]\\\\d{8}|[135]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{7,8})\",\"$1 $2\",[\"[23]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,7})\",\"$1 $2\",[\"1[35]|[4-6]|8[2468]|9[235-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[189]\"],\"0$1\"]],\"0\"],\"EH\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],0,\"0\",0,0,0,0,\"528[89]\"],\"ER\":[\"291\",\"00\",\"[178]\\\\d{6}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[178]\"],\"0$1\"]],\"0\"],\"ES\":[\"34\",\"00\",\"[5-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[89]00\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-9]\"]]]],\"ET\":[\"251\",\"00\",\"(?:11|[2-59]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-59]\"],\"0$1\"]],\"0\"],\"FI\":[\"358\",\"00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))\",\"[1-35689]\\\\d{4}|7\\\\d{10,11}|(?:[124-7]\\\\d|3[0-46-9])\\\\d{8}|[1-9]\\\\d{5,8}\",[5,6,7,8,9,10,11,12],[[\"(\\\\d)(\\\\d{4,9})\",\"$1 $2\",[\"[2568][1-8]|3(?:0[1-9]|[1-9])|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[12]00|[368]|70[07-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,8})\",\"$1 $2\",[\"[1245]|7[135]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6,10})\",\"$1 $2\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,\"1[03-79]|[2-9]\",0,\"00\"],\"FJ\":[\"679\",\"0(?:0|52)\",\"45\\\\d{5}|(?:0800\\\\d|[235-9])\\\\d{6}\",[7,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[235-9]|45\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]]],0,0,0,0,0,0,0,\"00\"],\"FK\":[\"500\",\"00\",\"[2-7]\\\\d{4}\",[5]],\"FM\":[\"691\",\"00\",\"(?:[39]\\\\d\\\\d|820)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[389]\"]]]],\"FO\":[\"298\",\"00\",\"[2-9]\\\\d{5}\",[6],[[\"(\\\\d{6})\",\"$1\",[\"[2-9]\"]]],0,0,\"(10(?:01|[12]0|88))\"],\"FR\":[\"33\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"],\"0 $1\"],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"[1-79]\"],\"0$1\"]],\"0\"],\"GA\":[\"241\",\"00\",\"(?:[067]\\\\d|11)\\\\d{6}|[2-7]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"11|[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]]],0,0,\"0(11\\\\d{6}|6[256]\\\\d{6}|7[47]\\\\d{6})\",\"$1\"],\"GB\":[\"44\",\"00\",\"[1-357-9]\\\\d{9}|[18]\\\\d{8}|8\\\\d{6}\",[7,9,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"800\",\"8001\",\"80011\",\"800111\",\"8001111\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"845\",\"8454\",\"84546\",\"845464\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"1(?:38|5[23]|69|76|94)\",\"1(?:(?:38|69)7|5(?:24|39)|768|946)\",\"1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"1(?:[2-69][02-9]|[78])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[25]|7(?:0|6[02-9])\",\"[25]|7(?:0|6(?:[03-9]|2[356]))\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1389]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"(?:1(?:1(?:3(?:[0-58]\\\\d\\\\d|73[03])|(?:4[0-5]|5[0-26-9]|6[0-4]|[78][0-49])\\\\d\\\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\\\d)\\\\d|1(?:[0-7]\\\\d|8[02]))|(?:3(?:0\\\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\\\d)\\\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\\\d{3})\\\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\\\d)|76\\\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\\\d|7[4-79])|295[5-7]|35[34]\\\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\\\d{3}\",[9,10]],[\"7(?:457[0-57-9]|700[01]|911[028])\\\\d{5}|7(?:[1-3]\\\\d\\\\d|4(?:[0-46-9]\\\\d|5[0-689])|5(?:0[0-8]|[13-9]\\\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\\\d|8[02-9]|9[0-689])|8(?:[014-9]\\\\d|[23][0-8])|9(?:[024-9]\\\\d|1[02-9]|3[0-689]))\\\\d{6}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[2-49]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]],0,\" x\"],\"GD\":[\"1\",\"011\",\"(?:473|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"473$1\",0,\"473\"],\"GE\":[\"995\",\"00\",\"(?:[3-57]\\\\d\\\\d|800)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"32\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[57]\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[348]\"],\"0$1\"]],\"0\"],\"GF\":[\"594\",\"00\",\"(?:[56]94|976)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"]],\"0\"],\"GG\":[\"44\",\"00\",\"(?:1481|[357-9]\\\\d{3})\\\\d{6}|8\\\\d{6}(?:\\\\d{2})?\",[7,9,10],0,\"0\",0,\"0|([25-9]\\\\d{5})$\",\"1481$1\",0,0,[[\"1481[25-9]\\\\d{5}\",[10]],[\"7(?:(?:781|839)\\\\d|911[17])\\\\d{5}\",[10]],[\"80[08]\\\\d{7}|800\\\\d{6}|8001111\"],[\"(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\\\d|8[0-3]))\\\\d{7}|845464\\\\d\",[7,10]],[\"70\\\\d{8}\",[10]],0,[\"(?:3[0347]|55)\\\\d{8}\",[10]],[\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\\\d{6}\",[10]],[\"56\\\\d{8}\",[10]]]],\"GH\":[\"233\",\"00\",\"(?:[235]\\\\d{3}|800)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[235]\"],\"0$1\"]],\"0\"],\"GI\":[\"350\",\"00\",\"[256]\\\\d{7}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"2\"]]]],\"GL\":[\"299\",\"00\",\"(?:19|[2-689]\\\\d)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"19|[2-689]\"]]]],\"GM\":[\"220\",\"00\",\"[2-9]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"GN\":[\"224\",\"00\",\"722\\\\d{6}|(?:3|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"3\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[67]\"]]]],\"GP\":[\"590\",\"00\",\"(?:590|69\\\\d|976)\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"590(?:0[1-68]|1[0-2]|2[0-68]|3[1289]|4[0-24-9]|5[3-579]|6[0189]|7[08]|8[0-689]|9\\\\d)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"],0,0,0,0,0,0,[\"976[01]\\\\d{5}\"]]],\"GQ\":[\"240\",\"00\",\"222\\\\d{6}|(?:3\\\\d|55|[89]0)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235]\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[89]\"]]]],\"GR\":[\"30\",\"00\",\"5005000\\\\d{3}|(?:[2689]\\\\d|70)\\\\d{8}\",[10],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"21|7\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2689]\"]]]],\"GT\":[\"502\",\"00\",\"(?:1\\\\d{3}|[2-7])\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"GU\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|671|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([3-9]\\\\d{6})$\",\"671$1\",0,\"671\"],\"GW\":[\"245\",\"00\",\"[49]\\\\d{8}|4\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"40\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"]]]],\"GY\":[\"592\",\"001\",\"(?:862\\\\d|9008)\\\\d{3}|(?:[2-46]\\\\d|77)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46-9]\"]]]],\"HK\":[\"852\",\"00(?:30|5[09]|[126-9]?)\",\"8[0-46-9]\\\\d{6,7}|9\\\\d{4}(?:\\\\d(?:\\\\d(?:\\\\d{4})?)?)?|(?:[235-79]\\\\d|46)\\\\d{6}\",[5,6,7,8,9,11],[[\"(\\\\d{3})(\\\\d{2,5})\",\"$1 $2\",[\"900\",\"9003\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]|8[1-4]|9(?:0[1-9]|[1-8])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"9\"]]],0,0,0,0,0,0,0,\"00\"],\"HN\":[\"504\",\"00\",\"8\\\\d{10}|[237-9]\\\\d{7}\",[8,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[237-9]\"]]]],\"HR\":[\"385\",\"00\",\"(?:[24-69]\\\\d|3[0-79])\\\\d{7}|80\\\\d{5,7}|[1-79]\\\\d{7}|6\\\\d{5,6}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"6[01]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-5]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"HT\":[\"509\",\"00\",\"[2-489]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-489]\"]]]],\"HU\":[\"36\",\"00\",\"[235-7]\\\\d{8}|[1-9]\\\\d{7}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]\"],\"(06 $1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"06 $1\"]],\"06\"],\"ID\":[\"62\",\"00[89]\",\"(?:(?:00[1-9]|8\\\\d)\\\\d{4}|[1-36])\\\\d{6}|00\\\\d{10}|[1-9]\\\\d{8,10}|[2-9]\\\\d{7}\",[7,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"15\"]],[\"(\\\\d{2})(\\\\d{5,9})\",\"$1 $2\",[\"2[124]|[36]1\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,7})\",\"$1 $2\",[\"800\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5,8})\",\"$1 $2\",[\"[2-79]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{3})\",\"$1-$2-$3\",[\"8[1-35-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6,8})\",\"$1 $2\",[\"1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"804\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"80\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1-$2-$3\",[\"8\"],\"0$1\"]],\"0\"],\"IE\":[\"353\",\"00\",\"(?:1\\\\d|[2569])\\\\d{6,8}|4\\\\d{6,9}|7\\\\d{8}|8\\\\d{8,9}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"2[24-9]|47|58|6[237-9]|9[35-9]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[45]0\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2569]|4[1-69]|7[14]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"70\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"81\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"IL\":[\"972\",\"0(?:0|1[2-9])\",\"1\\\\d{6}(?:\\\\d{3,5})?|[57]\\\\d{8}|[1-489]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{4})(\\\\d{3})\",\"$1-$2\",[\"125\"]],[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"121\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[2-489]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"12\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1-$2\",[\"159\"]],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3-$4\",[\"1[7-9]\"]],[\"(\\\\d{3})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3-$4\",[\"15\"]]],\"0\"],\"IM\":[\"44\",\"00\",\"1624\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"0|([5-8]\\\\d{5})$\",\"1624$1\",0,\"74576|(?:16|7[56])24\"],\"IN\":[\"91\",\"00\",\"(?:000800|[2-9]\\\\d\\\\d)\\\\d{7}|1\\\\d{7,12}\",[8,9,10,11,12,13],[[\"(\\\\d{8})\",\"$1\",[\"5(?:0|2[23]|3[03]|[67]1|88)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)\",\"5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)\"],0,1],[\"(\\\\d{4})(\\\\d{4,5})\",\"$1 $2\",[\"180\",\"1800\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"140\"],0,1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"11|2[02]|33|4[04]|79[1-7]|80[2-46]\",\"11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])\",\"11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]\",\"1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807\",\"1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]\",\"1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\\\d|7(?:1(?:[013-8]\\\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\\\d|5[0-367])|70[13-7]))[2-7]\"],\"0$1\",1],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"[6-9]\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{2,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1(?:6|8[06])\",\"1(?:6|8[06]0)\"],0,1],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"18\"],0,1]],\"0\"],\"IO\":[\"246\",\"00\",\"3\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"3\"]]]],\"IQ\":[\"964\",\"00\",\"(?:1|7\\\\d\\\\d)\\\\d{7}|[2-6]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"IR\":[\"98\",\"00\",\"[1-9]\\\\d{9}|(?:[1-8]\\\\d\\\\d|9)\\\\d{3,4}\",[4,5,6,7,10],[[\"(\\\\d{4,5})\",\"$1\",[\"96\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4,5})\",\"$1 $2\",[\"(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-8]\"],\"0$1\"]],\"0\"],\"IS\":[\"354\",\"00|1(?:0(?:01|[12]0)|100)\",\"(?:38\\\\d|[4-9])\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,0,\"00\"],\"IT\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{4,6})\",\"$1 $2\",[\"0[26]\"]],[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"0[13-57-9][0159]|8(?:03|4[17]|9[245])\",\"0[13-57-9][0159]|8(?:03|4[17]|9(?:2|[45][0-4]))\"]],[\"(\\\\d{4})(\\\\d{2,6})\",\"$1 $2\",[\"0(?:[13-579][2-46-8]|8[236-8])\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"894\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[26]|5\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"1[4679]|[38]\"]],[\"(\\\\d{3})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"0[13-57-9][0159]\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{5})\",\"$1 $2 $3\",[\"0[26]\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"3\"]]],0,0,0,0,0,0,[[\"0669[0-79]\\\\d{1,6}|0(?:1(?:[0159]\\\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\\\d\\\\d|3(?:[0159]\\\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\\\d|6[0-8])|7(?:[0159]\\\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\\\d{2,7}\"],[\"3[1-9]\\\\d{8}|3[2-9]\\\\d{7}\",[9,10]],[\"80(?:0\\\\d{3}|3)\\\\d{3}\",[6,9]],[\"(?:0878\\\\d\\\\d|89(?:2|4[5-9]\\\\d))\\\\d{3}|89[45][0-4]\\\\d\\\\d|(?:1(?:44|6[346])|89(?:5[5-9]|9))\\\\d{6}\",[6,8,9,10]],[\"1(?:78\\\\d|99)\\\\d{6}\",[9,10]],0,0,0,[\"55\\\\d{8}\",[10]],[\"84(?:[08]\\\\d{3}|[17])\\\\d{3}\",[6,9]]]],\"JE\":[\"44\",\"00\",\"1534\\\\d{6}|(?:[3578]\\\\d|90)\\\\d{8}\",[10],0,\"0\",0,\"0|([0-24-8]\\\\d{5})$\",\"1534$1\",0,0,[[\"1534[0-24-8]\\\\d{5}\"],[\"7(?:(?:(?:50|82)9|937)\\\\d|7(?:00[378]|97[7-9]))\\\\d{5}\"],[\"80(?:07(?:35|81)|8901)\\\\d{4}\"],[\"(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\\\d{4}\"],[\"701511\\\\d{4}\"],0,[\"(?:3(?:0(?:07(?:35|81)|8901)|3\\\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\\\d{4})\\\\d{4}\"],[\"76(?:464|652)\\\\d{5}|76(?:0[0-2]|2[356]|34|4[01347]|5[49]|6[0-369]|77|81|9[139])\\\\d{6}\"],[\"56\\\\d{8}\"]]],\"JM\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|658|900)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"658|876\"],\"JO\":[\"962\",\"00\",\"(?:(?:[2689]|7\\\\d)\\\\d|32|53)\\\\d{6}\",[8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2356]|87\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"70\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"JP\":[\"81\",\"010\",\"00[1-9]\\\\d{6,14}|[257-9]\\\\d{9}|(?:00|[1-9]\\\\d\\\\d)\\\\d{6}\",[8,9,10,11,12,13,14,15,16,17],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1-$2-$3\",[\"(?:12|57|99)0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51|63)|9(?:49|80|9[16])\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9]|636)|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\",\"1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9]|636[457-9])|9(?:496|802|9(?:1[23]|69))|1(?:45|58)[67]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[36]|4(?:2[09]|7[01])\",\"[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[27-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9])|5(?:2|3[045]|4[0-369]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|49|51|6(?:[0-24]|36|5[0-3589]|72|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:49|55|83)[29]|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\",\"1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|7[015-9]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17|3[015-9]))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3[045]|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9(?:[019]|4[1-3]|6(?:[0-47-9]|5[01346-9])))|3(?:[29]|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[23]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|72|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|829(?:2|66)|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3\",[\"[14]|[289][2-9]|5[3-9]|7[2-4679]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"800\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[257-9]\"],\"0$1\"]],\"0\"],\"KE\":[\"254\",\"000\",\"(?:[17]\\\\d\\\\d|900)\\\\d{6}|(?:2|80)0\\\\d{6,7}|[4-6]\\\\d{6,8}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"[24-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[17]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\"],\"KG\":[\"996\",\"00\",\"8\\\\d{9}|(?:[235-8]\\\\d|99)\\\\d{7}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"3(?:1[346]|[24-79])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[235-79]|88\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d)(\\\\d{2,3})\",\"$1 $2 $3 $4\",[\"8\"],\"0$1\"]],\"0\"],\"KH\":[\"855\",\"00[14-9]\",\"1\\\\d{9}|[1-9]\\\\d{7,8}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"KI\":[\"686\",\"00\",\"(?:[37]\\\\d|6[0-79])\\\\d{6}|(?:[2-48]\\\\d|50)\\\\d{3}\",[5,8],0,\"0\"],\"KM\":[\"269\",\"00\",\"[3478]\\\\d{6}\",[7],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[3478]\"]]]],\"KN\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"869$1\",0,\"869\"],\"KP\":[\"850\",\"00|99\",\"85\\\\d{6}|(?:19\\\\d|[2-7])\\\\d{7}\",[8,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-7]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"KR\":[\"82\",\"00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))\",\"00[1-9]\\\\d{8,11}|(?:[12]|5\\\\d{3})\\\\d{7}|[13-6]\\\\d{9}|(?:[1-6]\\\\d|80)\\\\d{7}|[3-6]\\\\d{4,5}|(?:00|7)0\\\\d{8}\",[5,6,8,9,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1-$2\",[\"(?:3[1-3]|[46][1-4]|5[1-5])1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"1\"]],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1-$2-$3\",[\"60|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1-$2-$3\",[\"[1346]|5[1-5]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2-$3\",[\"[57]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})(\\\\d{4})\",\"$1-$2-$3\",[\"5\"],\"0$1\"]],\"0\",0,\"0(8(?:[1-46-8]|5\\\\d\\\\d))?\"],\"KW\":[\"965\",\"00\",\"(?:18|[2569]\\\\d\\\\d)\\\\d{5}\",[7,8],[[\"(\\\\d{4})(\\\\d{3,4})\",\"$1 $2\",[\"[169]|2(?:[235]|4[1-35-9])|52\"]],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[25]\"]]]],\"KY\":[\"1\",\"011\",\"(?:345|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"345$1\",0,\"345\"],\"KZ\":[\"7\",\"810\",\"33622\\\\d{5}|(?:7\\\\d|80)\\\\d{8}\",[10],0,\"8\",0,0,0,0,\"33|7\",0,\"8~10\"],\"LA\":[\"856\",\"00\",\"[23]\\\\d{9}|3\\\\d{8}|(?:[235-8]\\\\d|41)\\\\d{6}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2[13]|3[14]|[4-8]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"30[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\"],\"LB\":[\"961\",\"00\",\"[7-9]\\\\d{7}|[13-9]\\\\d{6}\",[7,8],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"]]],\"0\"],\"LC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|758|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-8]\\\\d{6})$\",\"758$1\",0,\"758\"],\"LI\":[\"423\",\"00\",\"90\\\\d{5}|(?:[2378]|6\\\\d\\\\d)\\\\d{6}\",[7,9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[237-9]\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"69\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]]],\"0\",0,\"0|(1001)\"],\"LK\":[\"94\",\"00\",\"[1-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[1-689]\"],\"0$1\"]],\"0\"],\"LR\":[\"231\",\"00\",\"(?:2|33|5\\\\d|77|88)\\\\d{7}|[4-6]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[4-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3578]\"],\"0$1\"]],\"0\"],\"LS\":[\"266\",\"00\",\"(?:[256]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2568]\"]]]],\"LT\":[\"370\",\"00\",\"(?:[3469]\\\\d|52|[78]0)\\\\d{6}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"52[0-7]\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"8 $1\",1],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"37|4(?:[15]|6[1-8])\"],\"(8-$1)\",1],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"(8-$1)\",1]],\"8\",0,\"[08]\"],\"LU\":[\"352\",\"00\",\"35[013-9]\\\\d{4,8}|6\\\\d{8}|35\\\\d{2,4}|(?:[2457-9]\\\\d|3[0-46-9])\\\\d{2,9}\",[4,5,6,7,8,9,10,11],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"20[2-689]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"80[01]|90[015]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"20\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,2})\",\"$1 $2 $3 $4 $5\",[\"2(?:[0367]|4[3-8])\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{1,5})\",\"$1 $2 $3 $4\",[\"[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]\"]]],0,0,\"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\\\d)\"],\"LV\":[\"371\",\"00\",\"(?:[268]\\\\d|90)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[269]|8[01]\"]]]],\"LY\":[\"218\",\"00\",\"[2-9]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MA\":[\"212\",\"00\",\"[5-8]\\\\d{8}\",[9],[[\"(\\\\d{5})(\\\\d{4})\",\"$1-$2\",[\"5(?:29|38)\",\"5(?:29|38)[89]\",\"5(?:29|38)[89]0\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5[45]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1-$2\",[\"5(?:2[2-489]|3[5-9]|9)|892\",\"5(?:2(?:[2-49]|8[235-9])|3[5-9]|9)|892\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1-$2\",[\"8\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1-$2\",[\"[5-7]\"],\"0$1\"]],\"0\",0,0,0,0,0,[[\"5(?:29(?:[189][05]|2[29]|3[01])|38[89][05])\\\\d{4}|5(?:2(?:[015-7]\\\\d|2[02-9]|3[0-578]|4[02-46-8]|8[0235-7]|90)|3(?:[0-47]\\\\d|5[02-9]|6[02-8]|80|9[3-9])|(?:4[067]|5[03])\\\\d)\\\\d{5}\"],[\"(?:6(?:[0-79]\\\\d|8[0-247-9])|7(?:0[0-8]|6[1267]|7[0-37]))\\\\d{6}\"],[\"80\\\\d{7}\"],[\"89\\\\d{7}\"],0,0,0,0,[\"592(?:4[0-2]|93)\\\\d{4}\"]]],\"MC\":[\"377\",\"00\",\"870\\\\d{5}|(?:[349]|6\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"4\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[39]\"]],[\"(\\\\d)(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4 $5\",[\"6\"],\"0$1\"]],\"0\"],\"MD\":[\"373\",\"00\",\"(?:[235-7]\\\\d|[89]0)\\\\d{6}\",[8],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"22|3\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[25-7]\"],\"0$1\"]],\"0\"],\"ME\":[\"382\",\"00\",\"(?:20|[3-79]\\\\d)\\\\d{6}|80\\\\d{6,7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[2-9]\"],\"0$1\"]],\"0\"],\"MF\":[\"590\",\"00\",\"(?:590|69\\\\d|976)\\\\d{6}\",[9],0,\"0\",0,0,0,0,0,[[\"590(?:0[079]|[14]3|[27][79]|30|5[0-268]|87)\\\\d{4}\"],[\"69(?:0\\\\d\\\\d|1(?:2[29]|3[0-5]))\\\\d{4}\"],0,0,0,0,0,0,[\"976[01]\\\\d{5}\"]]],\"MG\":[\"261\",\"00\",\"[23]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[23]\"],\"0$1\"]],\"0\",0,\"0|([24-9]\\\\d{6})$\",\"20$1\"],\"MH\":[\"692\",\"011\",\"329\\\\d{4}|(?:[256]\\\\d|45)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[2-6]\"]]],\"1\"],\"MK\":[\"389\",\"00\",\"[2-578]\\\\d{7}\",[8],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[347]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[58]\"],\"0$1\"]],\"0\"],\"ML\":[\"223\",\"00\",\"[24-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24-9]\"]]]],\"MM\":[\"95\",\"00\",\"1\\\\d{5,7}|95\\\\d{6}|(?:[4-7]|9[0-46-9])\\\\d{6,8}|(?:2|8\\\\d)\\\\d{5,8}\",[6,7,8,9,10],[[\"(\\\\d)(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"16|2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[4-7]|8[1-35]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4,6})\",\"$1 $2 $3\",[\"9(?:2[0-4]|[35-9]|4[137-9])\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"92\"],\"0$1\"],[\"(\\\\d)(\\\\d{5})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"],\"0$1\"]],\"0\"],\"MN\":[\"976\",\"001\",\"[12]\\\\d{7,9}|[57-9]\\\\d{7}\",[8,9,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[12]1\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[57-9]\"]],[\"(\\\\d{3})(\\\\d{5,6})\",\"$1 $2\",[\"[12]2[1-3]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5,6})\",\"$1 $2\",[\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])\",\"[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]\"],\"0$1\"],[\"(\\\\d{5})(\\\\d{4,5})\",\"$1 $2\",[\"[12]\"],\"0$1\"]],\"0\"],\"MO\":[\"853\",\"00\",\"(?:28|[68]\\\\d)\\\\d{6}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[268]\"]]]],\"MP\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:67|90)0\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"670$1\",0,\"670\"],\"MQ\":[\"596\",\"00\",\"69\\\\d{7}|(?:59|97)6\\\\d{6}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[569]\"],\"0$1\"]],\"0\"],\"MR\":[\"222\",\"00\",\"(?:[2-4]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2-48]\"]]]],\"MS\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|664|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([34]\\\\d{6})$\",\"664$1\",0,\"664\"],\"MT\":[\"356\",\"00\",\"3550\\\\d{4}|(?:[2579]\\\\d\\\\d|800)\\\\d{5}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2357-9]\"]]]],\"MU\":[\"230\",\"0(?:0|[24-7]0|3[03])\",\"(?:[2-468]|5\\\\d)\\\\d{6}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-46]|8[013]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"5\"]]],0,0,0,0,0,0,0,\"020\"],\"MV\":[\"960\",\"0(?:0|19)\",\"(?:800|9[0-57-9]\\\\d)\\\\d{7}|[34679]\\\\d{6}\",[7,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[3467]|9[13-9]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]],0,0,0,0,0,0,0,\"00\"],\"MW\":[\"265\",\"00\",\"1\\\\d{6}(?:\\\\d{2})?|(?:[23]1|77|88|99)\\\\d{7}\",[7,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[137-9]\"],\"0$1\"]],\"0\"],\"MX\":[\"52\",\"0[09]\",\"(?:1(?:[01467]\\\\d|[2359][1-9]|8[1-79])|[2-9]\\\\d)\\\\d{8}\",[10,11],[[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"33|5[56]|81\"],0,1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2-9]\"],0,1],[\"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$2 $3 $4\",[\"1(?:33|5[56]|81)\"],0,1],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$2 $3 $4\",[\"1\"],0,1]],\"01\",0,\"0(?:[12]|4[45])|1\",0,0,0,0,\"00\"],\"MY\":[\"60\",\"00\",\"1\\\\d{8,9}|(?:3\\\\d|[4-9])\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"[4-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1-$2 $3\",[\"1(?:[02469]|[378][1-9])|8\"],\"0$1\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"3\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1-$2-$3-$4\",[\"1[36-8]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"15\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1-$2 $3\",[\"1\"],\"0$1\"]],\"0\"],\"MZ\":[\"258\",\"00\",\"(?:2|8\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2|8[2-79]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"8\"]]]],\"NA\":[\"264\",\"00\",\"[68]\\\\d{7,8}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"88\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"87\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"NC\":[\"687\",\"00\",\"[2-57-9]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1.$2.$3\",[\"[2-57-9]\"]]]],\"NE\":[\"227\",\"00\",\"[027-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"08\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[089]|2[013]|7[04]\"]]]],\"NF\":[\"672\",\"00\",\"[13]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"1[0-3]\"]],[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"[13]\"]]],0,0,\"([0-258]\\\\d{4})$\",\"3$1\"],\"NG\":[\"234\",\"009\",\"(?:[124-7]|9\\\\d{3})\\\\d{6}|[1-9]\\\\d{7}|[78]\\\\d{9,13}\",[7,8,10,11,12,13,14],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"78\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[12]|9(?:0[3-9]|[1-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-7]|8[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})(\\\\d{5,6})\",\"$1 $2 $3\",[\"[78]\"],\"0$1\"]],\"0\"],\"NI\":[\"505\",\"00\",\"(?:1800|[25-8]\\\\d{3})\\\\d{4}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[125-8]\"]]]],\"NL\":[\"31\",\"00\",\"(?:[124-7]\\\\d\\\\d|3(?:[02-9]\\\\d|1[0-8]))\\\\d{6}|[89]\\\\d{6,9}|1\\\\d{4,5}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{4,7})\",\"$1 $2\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"66\"],\"0$1\"],[\"(\\\\d)(\\\\d{8})\",\"$1 $2\",[\"6\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1[16-8]|2[259]|3[124]|4[17-9]|5[124679]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-57-9]\"],\"0$1\"]],\"0\"],\"NO\":[\"47\",\"00\",\"(?:0|[2-9]\\\\d{3})\\\\d{4}\",[5,8],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"[489]|5[89]\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[235-7]\"]]],0,0,0,0,0,\"[02-689]|7[0-8]\"],\"NP\":[\"977\",\"00\",\"(?:1\\\\d|9)\\\\d{9}|[1-9]\\\\d{7}\",[8,10,11],[[\"(\\\\d)(\\\\d{7})\",\"$1-$2\",[\"1[2-6]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1-$2\",[\"1[01]|[2-8]|9(?:[1-579]|6[2-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"9\"]]],\"0\"],\"NR\":[\"674\",\"00\",\"(?:444|(?:55|8\\\\d)\\\\d|666)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[4-68]\"]]]],\"NU\":[\"683\",\"00\",\"(?:[47]|888\\\\d)\\\\d{3}\",[4,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"8\"]]]],\"NZ\":[\"64\",\"0(?:0|161)\",\"[29]\\\\d{7,9}|50\\\\d{5}(?:\\\\d{2,3})?|6[0-35-9]\\\\d{6}|7\\\\d{7,8}|8\\\\d{4,9}|(?:11\\\\d|[34])\\\\d{7}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,8})\",\"$1 $2\",[\"8[1-579]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"50[036-8]|[89]0\",\"50(?:[0367]|88)|[89]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1-$2 $3\",[\"24|[346]|7[2-57-9]|9[2-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:10|74)|[59]|80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1|2[028]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,5})\",\"$1 $2 $3\",[\"2(?:[169]|7[0-35-9])|7|86\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\"],\"OM\":[\"968\",\"00\",\"(?:1505|[279]\\\\d{3}|500)\\\\d{4}|8007\\\\d{4,5}\",[7,8,9],[[\"(\\\\d{3})(\\\\d{4,6})\",\"$1 $2\",[\"[58]\"]],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[179]\"]]]],\"PA\":[\"507\",\"00\",\"8\\\\d{9}|[68]\\\\d{7}|[1-57-9]\\\\d{6}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[1-57-9]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1-$2\",[\"[68]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]]],\"PE\":[\"51\",\"19(?:1[124]|77|90)00\",\"(?:[14-8]|9\\\\d)\\\\d{7}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"1\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[4-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"]]],\"0\",0,0,0,0,0,0,0,\" Anexo \"],\"PF\":[\"689\",\"00\",\"[48]\\\\d{7}|4\\\\d{5}\",[6,8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"44\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[48]\"]]]],\"PG\":[\"675\",\"00|140[1-3]\",\"(?:180|[78]\\\\d{3})\\\\d{4}|(?:[2-589]\\\\d|64)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"18|[2-69]|85\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[78]\"]]],0,0,0,0,0,0,0,\"00\"],\"PH\":[\"63\",\"00\",\"1800\\\\d{7,9}|(?:2|[89]\\\\d{4})\\\\d{5}|[2-8]\\\\d{8}|[28]\\\\d{7}\",[6,8,9,10,11,12,13],[[\"(\\\\d)(\\\\d{5})\",\"$1 $2\",[\"2\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2\",\"3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"346|4(?:27|9[35])|883\",\"3469|4(?:279|9(?:30|56))|8834\"],\"(0$1)\"],[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[3-7]|8[2-8]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{4})(\\\\d{1,2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3 $4\",[\"1\"]]],\"0\"],\"PK\":[\"92\",\"00\",\"122\\\\d{6}|[24-8]\\\\d{10,11}|9(?:[013-9]\\\\d{8,10}|2(?:[01]\\\\d\\\\d|2(?:[06-8]\\\\d|1[01]))\\\\d{7})|(?:[2-8]\\\\d{3}|92(?:[0-7]\\\\d|8[1-9]))\\\\d{6}|[24-9]\\\\d{8}|[89]\\\\d{7}\",[8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{2,7})\",\"$1 $2 $3\",[\"[89]0\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"1\"]],[\"(\\\\d{3})(\\\\d{6,7})\",\"$1 $2\",[\"2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])\",\"9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{7,8})\",\"$1 $2\",[\"(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\"],\"(0$1)\"],[\"(\\\\d{5})(\\\\d{5})\",\"$1 $2\",[\"58\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{7})\",\"$1 $2\",[\"3\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"[24-9]\"],\"(0$1)\"]],\"0\"],\"PL\":[\"48\",\"00\",\"6\\\\d{5}(?:\\\\d{2})?|8\\\\d{9}|[1-9]\\\\d{6}(?:\\\\d{2})?\",[6,7,8,9,10],[[\"(\\\\d{5})\",\"$1\",[\"19\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"11|64\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1 $2 $3\",[\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1\",\"(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19\"]],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"64\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"1[2-8]|[2-7]|8[1-79]|9[145]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"8\"]]]],\"PM\":[\"508\",\"00\",\"[45]\\\\d{5}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[45]\"],\"0$1\"]],\"0\"],\"PR\":[\"1\",\"011\",\"(?:[589]\\\\d\\\\d|787)\\\\d{7}\",[10],0,\"1\",0,0,0,0,\"787|939\"],\"PS\":[\"970\",\"00\",\"[2489]2\\\\d{6}|(?:1\\\\d|5)\\\\d{8}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[2489]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"PT\":[\"351\",\"00\",\"(?:[26-9]\\\\d|30)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2[12]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[236-9]\"]]]],\"PW\":[\"680\",\"01[12]\",\"(?:[24-8]\\\\d\\\\d|345|900)\\\\d{4}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-9]\"]]]],\"PY\":[\"595\",\"00\",\"59\\\\d{4,6}|9\\\\d{5,10}|(?:[2-46-8]\\\\d|5[0-8])\\\\d{4,7}\",[6,7,8,9,10,11],[[\"(\\\\d{3})(\\\\d{3,6})\",\"$1 $2\",[\"[2-9]0\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{3})(\\\\d{4,5})\",\"$1 $2\",[\"2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"87\"]],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"9(?:[5-79]|8[1-6])\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-8]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"9\"]]],\"0\"],\"QA\":[\"974\",\"00\",\"[2-7]\\\\d{7}|(?:2\\\\d\\\\d|800)\\\\d{4}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"2[126]|8\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[2-7]\"]]]],\"RE\":[\"262\",\"00\",\"9769\\\\d{5}|(?:26|[68]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2689]\"],\"0$1\"]],\"0\",0,0,0,0,\"26[23]|69|[89]\"],\"RO\":[\"40\",\"00\",\"(?:[237]\\\\d|[89]0)\\\\d{7}|[23]\\\\d{5}\",[6,9],[[\"(\\\\d{3})(\\\\d{3})\",\"$1 $2\",[\"2[3-6]\",\"2[3-6]\\\\d9\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"219|31\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[23]1\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[237-9]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\" int \"],\"RS\":[\"381\",\"00\",\"38[02-9]\\\\d{6,9}|6\\\\d{7,9}|90\\\\d{4,8}|38\\\\d{5,6}|(?:7\\\\d\\\\d|800)\\\\d{3,9}|(?:[12]\\\\d|3[0-79])\\\\d{5,10}\",[6,7,8,9,10,11,12],[[\"(\\\\d{3})(\\\\d{3,9})\",\"$1 $2\",[\"(?:2[389]|39)0|[7-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{5,10})\",\"$1 $2\",[\"[1-36]\"],\"0$1\"]],\"0\"],\"RU\":[\"7\",\"810\",\"[347-9]\\\\d{9}\",[10],[[\"(\\\\d{4})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-8]|2[1-9])\",\"7(?:1(?:[0-6]2|7|8[27])|2(?:1[23]|[2-9]2))\",\"7(?:1(?:[0-6]2|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2\"],\"8 ($1)\",1],[\"(\\\\d{5})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"7(?:1[0-68]|2[1-9])\",\"7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))\",\"7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"8 ($1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[3489]\"],\"8 ($1)\",1]],\"8\",0,0,0,0,\"3[04-689]|[489]\",0,\"8~10\"],\"RW\":[\"250\",\"00\",\"(?:06|[27]\\\\d\\\\d|[89]00)\\\\d{6}\",[8,9],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"0\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[7-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"]]],\"0\"],\"SA\":[\"966\",\"00\",\"92\\\\d{7}|(?:[15]|8\\\\d)\\\\d{8}\",[9,10],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"9\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"81\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]]],\"0\"],\"SB\":[\"677\",\"0[01]\",\"(?:[1-6]|[7-9]\\\\d\\\\d)\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7|8[4-9]|9(?:[1-8]|9[0-8])\"]]]],\"SC\":[\"248\",\"010|0[0-2]\",\"8000\\\\d{3}|(?:[249]\\\\d|64)\\\\d{5}\",[7],[[\"(\\\\d)(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[246]|9[57]\"]]],0,0,0,0,0,0,0,\"00\"],\"SD\":[\"249\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"SE\":[\"46\",\"00\",\"(?:[26]\\\\d\\\\d|9)\\\\d{9}|[1-9]\\\\d{8}|[1-689]\\\\d{7}|[1-4689]\\\\d{6}|2\\\\d{5}\",[6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"20\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3\",[\"[12][136]|3[356]|4[0246]|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d)(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{2})\",\"$1-$2 $3\",[\"1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{3})(\\\\d{2,3})(\\\\d{3})\",\"$1-$2 $3\",[\"9(?:00|39|44)\"],\"0$1\",0,\"$1 $2 $3\"],[\"(\\\\d{2})(\\\\d{2,3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"10|7\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"8\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4\",[\"[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{3})\",\"$1-$2 $3 $4\",[\"9\"],\"0$1\",0,\"$1 $2 $3 $4\"],[\"(\\\\d{3})(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1-$2 $3 $4 $5\",[\"[26]\"],\"0$1\",0,\"$1 $2 $3 $4 $5\"]],\"0\"],\"SG\":[\"65\",\"0[0-3]\\\\d\",\"(?:(?:1\\\\d|8)\\\\d\\\\d|7000)\\\\d{7}|[3689]\\\\d{7}\",[8,10,11],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[369]|8(?:0[1-3]|[1-9])\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"]],[\"(\\\\d{4})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]]]],\"SH\":[\"290\",\"00\",\"(?:[256]\\\\d|8)\\\\d{3}\",[4,5],0,0,0,0,0,0,\"[256]\"],\"SI\":[\"386\",\"00|10(?:22|66|88|99)\",\"[1-7]\\\\d{7}|8\\\\d{4,7}|90\\\\d{4,6}\",[5,6,7,8],[[\"(\\\\d{2})(\\\\d{3,6})\",\"$1 $2\",[\"8[09]|9\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"59|8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[37][01]|4[0139]|51|6\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[1-57]\"],\"(0$1)\"]],\"0\",0,0,0,0,0,0,\"00\"],\"SJ\":[\"47\",\"00\",\"0\\\\d{4}|(?:[4589]\\\\d|79)\\\\d{6}\",[5,8],0,0,0,0,0,0,\"79\"],\"SK\":[\"421\",\"00\",\"[2-689]\\\\d{8}|[2-59]\\\\d{6}|[2-5]\\\\d{5}\",[6,7,9],[[\"(\\\\d)(\\\\d{2})(\\\\d{3,4})\",\"$1 $2 $3\",[\"21\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{2})(\\\\d{2,3})\",\"$1 $2 $3\",[\"[3-5][1-8]1\",\"[3-5][1-8]1[67]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{3})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"2\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[689]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1/$2 $3 $4\",[\"[3-5]\"],\"0$1\"]],\"0\"],\"SL\":[\"232\",\"00\",\"(?:[2378]\\\\d|66|99)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"[236-9]\"],\"(0$1)\"]],\"0\"],\"SM\":[\"378\",\"00\",\"(?:0549|[5-7]\\\\d)\\\\d{6}\",[8,10],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[5-7]\"]],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"0\"]]],0,0,\"([89]\\\\d{5})$\",\"0549$1\"],\"SN\":[\"221\",\"00\",\"(?:[378]\\\\d{4}|93330)\\\\d{4}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"8\"]],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[379]\"]]]],\"SO\":[\"252\",\"00\",\"[346-9]\\\\d{8}|[12679]\\\\d{7}|[1-5]\\\\d{6}|[1348]\\\\d{5}\",[6,7,8,9],[[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"8[125]\"]],[\"(\\\\d{6})\",\"$1\",[\"[134]\"]],[\"(\\\\d)(\\\\d{6})\",\"$1 $2\",[\"[15]|2[0-79]|3[0-46-8]|4[0-7]\"]],[\"(\\\\d)(\\\\d{7})\",\"$1 $2\",[\"24|[67]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3478]|64|90\"]],[\"(\\\\d{2})(\\\\d{5,7})\",\"$1 $2\",[\"1|28|6[1-35-9]|9[2-9]\"]]],\"0\"],\"SR\":[\"597\",\"00\",\"(?:[2-5]|68|[78]\\\\d)\\\\d{5}\",[6,7],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1-$2-$3\",[\"56\"]],[\"(\\\\d{3})(\\\\d{3})\",\"$1-$2\",[\"[2-5]\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1-$2\",[\"[6-8]\"]]]],\"SS\":[\"211\",\"00\",\"[19]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[19]\"],\"0$1\"]],\"0\"],\"ST\":[\"239\",\"00\",\"(?:22|9\\\\d)\\\\d{5}\",[7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[29]\"]]]],\"SV\":[\"503\",\"00\",\"[267]\\\\d{7}|[89]00\\\\d{4}(?:\\\\d{4})?\",[7,8,11],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[89]\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[267]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"]]]],\"SX\":[\"1\",\"011\",\"7215\\\\d{6}|(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|(5\\\\d{6})$\",\"721$1\",0,\"721\"],\"SY\":[\"963\",\"00\",\"[1-39]\\\\d{8}|[1-5]\\\\d{7}\",[8,9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-5]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\",1]],\"0\"],\"SZ\":[\"268\",\"00\",\"0800\\\\d{4}|(?:[237]\\\\d|900)\\\\d{6}\",[8,9],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[0237]\"]],[\"(\\\\d{5})(\\\\d{4})\",\"$1 $2\",[\"9\"]]]],\"TA\":[\"290\",\"00\",\"8\\\\d{3}\",[4],0,0,0,0,0,0,\"8\"],\"TC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|649|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-479]\\\\d{6})$\",\"649$1\",0,\"649\"],\"TD\":[\"235\",\"00|16\",\"(?:22|[69]\\\\d|77)\\\\d{6}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[2679]\"]]],0,0,0,0,0,0,0,\"00\"],\"TG\":[\"228\",\"00\",\"[279]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[279]\"]]]],\"TH\":[\"66\",\"00[1-9]\",\"1\\\\d{9}|[1689]\\\\d{8}|[1-57]\\\\d{7}\",[8,9,10],[[\"(\\\\d)(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"2\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[13-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"1\"]]],\"0\"],\"TJ\":[\"992\",\"810\",\"(?:[02]0|11|[3-57-9]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{6})(\\\\d)(\\\\d{2})\",\"$1 $2 $3\",[\"331\",\"3317\"],0,1],[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[34]7|91[78]\"],0,1],[\"(\\\\d{4})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"3\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[02457-9]|11\"],0,1]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TK\":[\"690\",\"00\",\"[2-47]\\\\d{3,6}\",[4,5,6,7]],\"TL\":[\"670\",\"00\",\"7\\\\d{7}|(?:[2-47]\\\\d|[89]0)\\\\d{5}\",[7,8],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[2-489]|70\"]],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"7\"]]]],\"TM\":[\"993\",\"810\",\"[1-6]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"12\"],\"(8 $1)\"],[\"(\\\\d{3})(\\\\d)(\\\\d{2})(\\\\d{2})\",\"$1 $2-$3-$4\",[\"[1-5]\"],\"(8 $1)\"],[\"(\\\\d{2})(\\\\d{6})\",\"$1 $2\",[\"6\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"TN\":[\"216\",\"00\",\"[2-57-9]\\\\d{7}\",[8],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-57-9]\"]]]],\"TO\":[\"676\",\"00\",\"(?:0800|[5-8]\\\\d{3})\\\\d{3}|[2-8]\\\\d{4}\",[5,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1-$2\",[\"[2-4]|50|6[09]|7[0-24-69]|8[05]\"]],[\"(\\\\d{4})(\\\\d{3})\",\"$1 $2\",[\"0\"]],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[5-8]\"]]]],\"TR\":[\"90\",\"00\",\"4\\\\d{6}|8\\\\d{11,12}|(?:[2-58]\\\\d\\\\d|900)\\\\d{7}\",[7,10,12,13],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"512|8[0589]|90\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"5(?:[0-59]|61)\",\"5(?:[0-59]|616)\",\"5(?:[0-59]|6161)\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[24][1-8]|3[1-9]\"],\"(0$1)\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{6,7})\",\"$1 $2 $3\",[\"80\"],\"0$1\",1]],\"0\"],\"TT\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-46-8]\\\\d{6})$\",\"868$1\",0,\"868\"],\"TV\":[\"688\",\"00\",\"(?:2|7\\\\d\\\\d|90)\\\\d{4}\",[5,6,7],[[\"(\\\\d{2})(\\\\d{3})\",\"$1 $2\",[\"2\"]],[\"(\\\\d{2})(\\\\d{4})\",\"$1 $2\",[\"90\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"TW\":[\"886\",\"0(?:0[25-79]|19)\",\"[2-689]\\\\d{8}|7\\\\d{9,10}|[2-8]\\\\d{7}|2\\\\d{6}\",[7,8,9,10,11],[[\"(\\\\d{2})(\\\\d)(\\\\d{4})\",\"$1 $2 $3\",[\"202\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[258]0\"],\"0$1\"],[\"(\\\\d)(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]\",\"[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4,5})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\",0,0,0,0,0,0,0,\"#\"],\"TZ\":[\"255\",\"00[056]\",\"(?:[26-8]\\\\d|41|90)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[24]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[67]\"],\"0$1\"]],\"0\"],\"UA\":[\"380\",\"00\",\"[89]\\\\d{9}|[3-9]\\\\d{8}\",[9,10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]\",\"6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4[45][0-5]|5(?:0|6[37])|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\",\"4[45][0-5]|5(?:0|6(?:3[14-7]|7))|6(?:[12][018]|[36-8])|7|89|9[1-9]|(?:48|57)[0137-9]\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"[3-6]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[89]\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"0~0\"],\"UG\":[\"256\",\"00[057]\",\"800\\\\d{6}|(?:[29]0|[347]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{4})(\\\\d{5})\",\"$1 $2\",[\"202\",\"2024\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{6})\",\"$1 $2\",[\"[27-9]|4(?:6[45]|[7-9])\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[34]\"],\"0$1\"]],\"0\"],\"US\":[\"1\",\"011\",\"[2-9]\\\\d{9}\",[10],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"($1) $2-$3\",[\"[2-9]\"],0,1,\"$1-$2-$3\"]],\"1\",0,0,0,0,0,[[\"(?:2(?:0[1-35-9]|1[02-9]|2[03-589]|3[149]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-57-9]|1[02-9]|2[01356]|3[0-24679]|4[167]|5[12]|6[014]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[0235]|58|6[39]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[19]|6[1-47]|7[013-5]|8[056])|6(?:0[1-35-9]|1[024-9]|2[03689]|[34][016]|5[0179]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-7]|3[1247]|4[037]|5[47]|6[02359]|7[02-59]|8[156])|8(?:0[1-68]|1[02-8]|2[08]|3[0-289]|4[3578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[0179]|5[12469]|7[0-389]|8[04-69]))[2-9]\\\\d{6}\"],[\"\"],[\"8(?:00|33|44|55|66|77|88)[2-9]\\\\d{6}\"],[\"900[2-9]\\\\d{6}\"],[\"52(?:3(?:[2-46-9][02-9]\\\\d|5(?:[02-46-9]\\\\d|5[0-46-9]))|4(?:[2-478][02-9]\\\\d|5(?:[034]\\\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\\\d)|9(?:[05-9]\\\\d|2[0-5]|49)))\\\\d{4}|52[34][2-9]1[02-9]\\\\d{4}|5(?:00|2[12]|33|44|66|77|88)[2-9]\\\\d{6}\"]]],\"UY\":[\"598\",\"0(?:0|1[3-9]\\\\d)\",\"4\\\\d{9}|[249]\\\\d{7}|(?:[49]\\\\d|80)\\\\d{5}\",[7,8,10],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"405|8|90\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"9\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[24]\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"4\"],\"0$1\"]],\"0\",0,0,0,0,0,0,\"00\",\" int. \"],\"UZ\":[\"998\",\"810\",\"55501\\\\d{4}|(?:33|[679]\\\\d|88)\\\\d{7}\",[9],[[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[35-9]\"],\"8 $1\"]],\"8\",0,0,0,0,0,0,\"8~10\"],\"VA\":[\"39\",\"00\",\"0\\\\d{5,10}|3[0-8]\\\\d{7,10}|55\\\\d{8}|8\\\\d{5}(?:\\\\d{2,4})?|(?:1\\\\d|39)\\\\d{7,8}\",[6,7,8,9,10,11],0,0,0,0,0,0,\"06698\"],\"VC\":[\"1\",\"011\",\"(?:[58]\\\\d\\\\d|784|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-7]\\\\d{6})$\",\"784$1\",0,\"784\"],\"VE\":[\"58\",\"00\",\"[68]00\\\\d{7}|(?:[24]\\\\d|[59]0)\\\\d{8}\",[10],[[\"(\\\\d{3})(\\\\d{7})\",\"$1-$2\",[\"[24-689]\"],\"0$1\"]],\"0\"],\"VG\":[\"1\",\"011\",\"(?:284|[58]\\\\d\\\\d|900)\\\\d{7}\",[10],0,\"1\",0,\"1|([2-578]\\\\d{6})$\",\"284$1\",0,\"284\"],\"VI\":[\"1\",\"011\",\"[58]\\\\d{9}|(?:34|90)0\\\\d{7}\",[10],0,\"1\",0,\"1|([2-9]\\\\d{6})$\",\"340$1\",0,\"340\"],\"VN\":[\"84\",\"00\",\"[12]\\\\d{9}|[135-9]\\\\d{8}|[16]\\\\d{7}|[16-8]\\\\d{6}\",[7,8,9,10],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"80\"],\"0$1\",1],[\"(\\\\d{4})(\\\\d{4,6})\",\"$1 $2\",[\"1\"],0,1],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3 $4\",[\"[69]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[3578]\"],\"0$1\",1],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"2[48]\"],\"0$1\",1],[\"(\\\\d{3})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"2\"],\"0$1\",1]],\"0\"],\"VU\":[\"678\",\"00\",\"(?:[23]\\\\d|[48]8)\\\\d{3}|(?:[57]\\\\d|90)\\\\d{5}\",[5,7],[[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"[579]\"]]]],\"WF\":[\"681\",\"00\",\"(?:[45]0|68|72|8\\\\d)\\\\d{4}\",[6],[[\"(\\\\d{2})(\\\\d{2})(\\\\d{2})\",\"$1 $2 $3\",[\"[4-8]\"]]]],\"WS\":[\"685\",\"0\",\"(?:[2-6]|8\\\\d{5})\\\\d{4}|[78]\\\\d{6}|[68]\\\\d{5}\",[5,6,7,10],[[\"(\\\\d{5})\",\"$1\",[\"[2-5]|6[1-9]\"]],[\"(\\\\d{3})(\\\\d{3,7})\",\"$1 $2\",[\"[68]\"]],[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"7\"]]]],\"XK\":[\"383\",\"00\",\"[23]\\\\d{7,8}|(?:4\\\\d\\\\d|[89]00)\\\\d{5}\",[8,9],[[\"(\\\\d{3})(\\\\d{5})\",\"$1 $2\",[\"[89]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[2-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[23]\"],\"0$1\"]],\"0\"],\"YE\":[\"967\",\"00\",\"(?:1|7\\\\d)\\\\d{7}|[1-7]\\\\d{6}\",[7,8,9],[[\"(\\\\d)(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"[1-6]|7[24-68]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"7\"],\"0$1\"]],\"0\"],\"YT\":[\"262\",\"00\",\"80\\\\d{7}|(?:26|63)9\\\\d{6}\",[9],0,\"0\",0,0,0,0,\"269|63\"],\"ZA\":[\"27\",\"00\",\"[1-79]\\\\d{8}|8\\\\d{4,9}\",[5,6,7,8,9,10],[[\"(\\\\d{2})(\\\\d{3,4})\",\"$1 $2\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{2,3})\",\"$1 $2 $3\",[\"8[1-4]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"860\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"[1-9]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"8\"],\"0$1\"]],\"0\"],\"ZM\":[\"260\",\"00\",\"(?:63|80)0\\\\d{6}|(?:21|[79]\\\\d)\\\\d{7}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[28]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"[79]\"],\"0$1\"]],\"0\"],\"ZW\":[\"263\",\"00\",\"2(?:[0-57-9]\\\\d{6,8}|6[0-24-9]\\\\d{6,7})|[38]\\\\d{9}|[35-8]\\\\d{8}|[3-6]\\\\d{7}|[1-689]\\\\d{6}|[1-3569]\\\\d{5}|[1356]\\\\d{4}\",[5,6,7,8,9,10],[[\"(\\\\d{3})(\\\\d{3,5})\",\"$1 $2\",[\"2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]\"],\"0$1\"],[\"(\\\\d)(\\\\d{3})(\\\\d{2,4})\",\"$1 $2 $3\",[\"[49]\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{4})\",\"$1 $2\",[\"80\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{7})\",\"$1 $2\",[\"24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2\",\"2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]\"],\"(0$1)\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{4})\",\"$1 $2 $3\",[\"7\"],\"0$1\"],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)\",\"2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{6})\",\"$1 $2\",[\"8\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3,5})\",\"$1 $2\",[\"1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]\"],\"0$1\"],[\"(\\\\d{2})(\\\\d{3})(\\\\d{3,4})\",\"$1 $2 $3\",[\"29[013-9]|39|54\"],\"0$1\"],[\"(\\\\d{4})(\\\\d{3,5})\",\"$1 $2\",[\"(?:25|54)8\",\"258|5483\"],\"0$1\"]],\"0\"]},\"nonGeographic\":{\"800\":[\"800\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,[\"[1-9]\\\\d{7}\"]]],\"808\":[\"808\",0,\"[1-9]\\\\d{7}\",[8],[[\"(\\\\d{4})(\\\\d{4})\",\"$1 $2\",[\"[1-9]\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,[\"[1-9]\\\\d{7}\"]]],\"870\":[\"870\",0,\"[35-7]\\\\d{8}\",[9],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"[35-7]\"]]],0,0,0,0,0,0,[0,[\"(?:[356]\\\\d|7[6-8])\\\\d{7}\"]]],\"878\":[\"878\",0,\"10\\\\d{10}\",[12],[[\"(\\\\d{2})(\\\\d{5})(\\\\d{5})\",\"$1 $2 $3\",[\"1\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"10\\\\d{10}\"]]],\"881\":[\"881\",0,\"[0-36-9]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\",[\"[0-36-9]\"]]],0,0,0,0,0,0,[0,[\"[0-36-9]\\\\d{8}\"]]],\"882\":[\"882\",0,\"[13]\\\\d{6}(?:\\\\d{2,5})?|285\\\\d{9}|[19]\\\\d{7}\",[7,8,9,10,11,12],[[\"(\\\\d{2})(\\\\d{5})\",\"$1 $2\",[\"16|342\"]],[\"(\\\\d{2})(\\\\d{2})(\\\\d{4})\",\"$1 $2 $3\",[\"[19]\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{3})\",\"$1 $2 $3\",[\"3[23]\"]],[\"(\\\\d{2})(\\\\d{3,4})(\\\\d{4})\",\"$1 $2 $3\",[\"1\"]],[\"(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34[57]\"]],[\"(\\\\d{3})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"34\"]],[\"(\\\\d{2})(\\\\d{4,5})(\\\\d{5})\",\"$1 $2 $3\",[\"[1-3]\"]]],0,0,0,0,0,0,[0,[\"3(?:37\\\\d\\\\d|42)\\\\d{4}|3(?:2|47|7\\\\d{3})\\\\d{7}\",[7,9,10,12]],0,0,0,0,0,0,[\"1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\\\d{4}|6\\\\d{5,10})|(?:(?:285\\\\d\\\\d|3(?:45|[69]\\\\d{3}))\\\\d|9[89])\\\\d{6}\"]]],\"883\":[\"883\",0,\"51\\\\d{7}(?:\\\\d{3})?\",[9,12],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3\",[\"510\"]],[\"(\\\\d{3})(\\\\d{3})(\\\\d{3})(\\\\d{3})\",\"$1 $2 $3 $4\",[\"510\"]],[\"(\\\\d{4})(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"5\"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,[\"51[013]0\\\\d{8}|5100\\\\d{5}\"]]],\"888\":[\"888\",0,\"\\\\d{11}\",[11],[[\"(\\\\d{3})(\\\\d{3})(\\\\d{5})\",\"$1 $2 $3\"]],0,0,0,0,0,0,[0,0,0,0,0,0,[\"\\\\d{11}\"]]],\"979\":[\"979\",0,\"[1359]\\\\d{8}\",[9],[[\"(\\\\d)(\\\\d{4})(\\\\d{4})\",\"$1 $2 $3\",[\"[1359]\"]]],0,0,0,0,0,0,[0,0,0,[\"[1359]\\\\d{8}\"]]]}}","// Importing from `.json.js` a workaround for a bug in web browsers' \"native\"\r\n// ES6 importing system which is uncapable of importing \"*.json\" files.\r\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\r\nimport metadata from '../metadata.min.json.js'\r\nexport default metadata\r\n\r\nexport function withMetadata(func, _arguments) {\r\n\tvar args = Array.prototype.slice.call(_arguments)\r\n\targs.push(metadata)\r\n\treturn func.apply(this, args)\r\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// https://stackoverflow.com/a/46971044/970769\nvar ParseError = function ParseError(code) {\n _classCallCheck(this, ParseError);\n\n this.name = this.constructor.name;\n this.message = code;\n this.stack = new Error(code).stack;\n};\n\nexport { ParseError as default };\nParseError.prototype = Object.create(Error.prototype);\nParseError.prototype.constructor = ParseError;\n//# sourceMappingURL=ParseError.js.map","// The minimum length of the national significant number.\nexport var MIN_LENGTH_FOR_NSN = 2; // The ITU says the maximum length should be 15,\n// but one can find longer numbers in Germany.\n\nexport var MAX_LENGTH_FOR_NSN = 17; // The maximum length of the country calling code.\n\nexport var MAX_LENGTH_COUNTRY_CODE = 3; // Digits accepted in phone numbers\n// (ascii, fullwidth, arabic-indic, and eastern arabic digits).\n\nexport var VALID_DIGITS = \"0-9\\uFF10-\\uFF19\\u0660-\\u0669\\u06F0-\\u06F9\"; // `DASHES` will be right after the opening square bracket of the \"character class\"\n\nvar DASHES = \"-\\u2010-\\u2015\\u2212\\u30FC\\uFF0D\";\nvar SLASHES = \"\\uFF0F/\";\nvar DOTS = \"\\uFF0E.\";\nexport var WHITESPACE = \" \\xA0\\xAD\\u200B\\u2060\\u3000\";\nvar BRACKETS = \"()\\uFF08\\uFF09\\uFF3B\\uFF3D\\\\[\\\\]\"; // export const OPENING_BRACKETS = '(\\uFF08\\uFF3B\\\\\\['\n\nvar TILDES = \"~\\u2053\\u223C\\uFF5E\"; // Regular expression of acceptable punctuation found in phone numbers. This\n// excludes punctuation found as a leading character only. This consists of dash\n// characters, white space characters, full stops, slashes, square brackets,\n// parentheses and tildes. Full-width variants are also present.\n\nexport var VALID_PUNCTUATION = \"\".concat(DASHES).concat(SLASHES).concat(DOTS).concat(WHITESPACE).concat(BRACKETS).concat(TILDES);\nexport var PLUS_CHARS = \"+\\uFF0B\"; // const LEADING_PLUS_CHARS_PATTERN = new RegExp('^[' + PLUS_CHARS + ']+')\n//# sourceMappingURL=constants.js.map","// Copy-pasted from:\n// https://github.com/substack/semver-compare/blob/master/index.js\n//\n// Inlining this function because some users reported issues with\n// importing from `semver-compare` in a browser with ES6 \"native\" modules.\n//\n// Fixes `semver-compare` not being able to compare versions with alpha/beta/etc \"tags\".\n// https://github.com/catamphetamine/libphonenumber-js/issues/381\nexport default function (a, b) {\n a = a.split('-');\n b = b.split('-');\n var pa = a[0].split('.');\n var pb = b[0].split('.');\n\n for (var i = 0; i < 3; i++) {\n var na = Number(pa[i]);\n var nb = Number(pb[i]);\n if (na > nb) return 1;\n if (nb > na) return -1;\n if (!isNaN(na) && isNaN(nb)) return 1;\n if (isNaN(na) && !isNaN(nb)) return -1;\n }\n\n if (a[1] && b[1]) {\n return a[1] > b[1] ? 1 : a[1] < b[1] ? -1 : 0;\n }\n\n return !a[1] && b[1] ? 1 : a[1] && !b[1] ? -1 : 0;\n}\n//# sourceMappingURL=semver-compare.js.map","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport compare from './tools/semver-compare'; // Added \"possibleLengths\" and renamed\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\n\nvar V2 = '1.0.18'; // Added \"idd_prefix\" and \"default_idd_prefix\".\n\nvar V3 = '1.2.0'; // Moved `001` country code to \"nonGeographic\" section of metadata.\n\nvar V4 = '1.7.35';\nvar DEFAULT_EXT_PREFIX = ' ext. ';\nvar CALLING_CODE_REG_EXP = /^\\d+$/;\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\n\nvar Metadata =\n/*#__PURE__*/\nfunction () {\n function Metadata(metadata) {\n _classCallCheck(this, Metadata);\n\n validateMetadata(metadata);\n this.metadata = metadata;\n setVersion.call(this, metadata);\n }\n\n _createClass(Metadata, [{\n key: \"getCountries\",\n value: function getCountries() {\n return Object.keys(this.metadata.countries).filter(function (_) {\n return _ !== '001';\n });\n }\n }, {\n key: \"getCountryMetadata\",\n value: function getCountryMetadata(countryCode) {\n return this.metadata.countries[countryCode];\n }\n }, {\n key: \"nonGeographic\",\n value: function nonGeographic() {\n if (this.v1 || this.v2 || this.v3) return; // `nonGeographical` was a typo.\n // It's present in metadata generated from `1.7.35` to `1.7.37`.\n\n return this.metadata.nonGeographic || this.metadata.nonGeographical;\n }\n }, {\n key: \"hasCountry\",\n value: function hasCountry(country) {\n return this.getCountryMetadata(country) !== undefined;\n }\n }, {\n key: \"hasCallingCode\",\n value: function hasCallingCode(callingCode) {\n if (this.getCountryCodesForCallingCode(callingCode)) {\n return true;\n }\n\n if (this.nonGeographic()) {\n if (this.nonGeographic()[callingCode]) {\n return true;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return true;\n }\n }\n }\n }, {\n key: \"isNonGeographicCallingCode\",\n value: function isNonGeographicCallingCode(callingCode) {\n if (this.nonGeographic()) {\n return this.nonGeographic()[callingCode] ? true : false;\n } else {\n return this.getCountryCodesForCallingCode(callingCode) ? false : true;\n }\n } // Deprecated.\n\n }, {\n key: \"country\",\n value: function country(countryCode) {\n return this.selectNumberingPlan(countryCode);\n }\n }, {\n key: \"selectNumberingPlan\",\n value: function selectNumberingPlan(countryCode, callingCode) {\n // Supports just passing `callingCode` as the first argument.\n if (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\n callingCode = countryCode;\n countryCode = null;\n }\n\n if (countryCode && countryCode !== '001') {\n if (!this.hasCountry(countryCode)) {\n throw new Error(\"Unknown country: \".concat(countryCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this);\n } else if (callingCode) {\n if (!this.hasCallingCode(callingCode)) {\n throw new Error(\"Unknown calling code: \".concat(callingCode));\n }\n\n this.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this);\n } else {\n this.numberingPlan = undefined;\n }\n\n return this;\n }\n }, {\n key: \"getCountryCodesForCallingCode\",\n value: function getCountryCodesForCallingCode(callingCode) {\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes) {\n // Metadata before V4 included \"non-geographic entity\" calling codes\n // inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\n // Now the semantics of `country_calling_codes` has changed:\n // it's specifically for \"countries\" now.\n // Older versions of custom metadata will simply skip parsing\n // \"non-geographic entity\" phone numbers with new versions\n // of this library: it's not considered a bug,\n // because such numbers are extremely rare,\n // and developers extremely rarely use custom metadata.\n if (countryCodes.length === 1 && countryCodes[0].length === 3) {\n return;\n }\n\n return countryCodes;\n }\n }\n }, {\n key: \"getCountryCodeForCallingCode\",\n value: function getCountryCodeForCallingCode(callingCode) {\n var countryCodes = this.getCountryCodesForCallingCode(callingCode);\n\n if (countryCodes) {\n return countryCodes[0];\n }\n }\n }, {\n key: \"getNumberingPlanMetadata\",\n value: function getNumberingPlanMetadata(callingCode) {\n var countryCode = this.getCountryCodeForCallingCode(callingCode);\n\n if (countryCode) {\n return this.getCountryMetadata(countryCode);\n }\n\n if (this.nonGeographic()) {\n var metadata = this.nonGeographic()[callingCode];\n\n if (metadata) {\n return metadata;\n }\n } else {\n // A hacky workaround for old custom metadata (generated before V4).\n var countryCodes = this.countryCallingCodes()[callingCode];\n\n if (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\n return this.metadata.countries['001'];\n }\n }\n } // Deprecated.\n\n }, {\n key: \"countryCallingCode\",\n value: function countryCallingCode() {\n return this.numberingPlan.callingCode();\n } // Deprecated.\n\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n return this.numberingPlan.IDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n return this.numberingPlan.defaultIDDPrefix();\n } // Deprecated.\n\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n return this.numberingPlan.nationalNumberPattern();\n } // Deprecated.\n\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n return this.numberingPlan.possibleLengths();\n } // Deprecated.\n\n }, {\n key: \"formats\",\n value: function formats() {\n return this.numberingPlan.formats();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n return this.numberingPlan.nationalPrefixForParsing();\n } // Deprecated.\n\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.numberingPlan.nationalPrefixTransformRule();\n } // Deprecated.\n\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.numberingPlan.leadingDigits();\n } // Deprecated.\n\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n return this.numberingPlan.hasTypes();\n } // Deprecated.\n\n }, {\n key: \"type\",\n value: function type(_type) {\n return this.numberingPlan.type(_type);\n } // Deprecated.\n\n }, {\n key: \"ext\",\n value: function ext() {\n return this.numberingPlan.ext();\n }\n }, {\n key: \"countryCallingCodes\",\n value: function countryCallingCodes() {\n if (this.v1) return this.metadata.country_phone_code_to_countries;\n return this.metadata.country_calling_codes;\n } // Deprecated.\n\n }, {\n key: \"chooseCountryByCountryCallingCode\",\n value: function chooseCountryByCountryCallingCode(callingCode) {\n return this.selectNumberingPlan(callingCode);\n }\n }, {\n key: \"hasSelectedNumberingPlan\",\n value: function hasSelectedNumberingPlan() {\n return this.numberingPlan !== undefined;\n }\n }]);\n\n return Metadata;\n}();\n\nexport { Metadata as default };\n\nvar NumberingPlan =\n/*#__PURE__*/\nfunction () {\n function NumberingPlan(metadata, globalMetadataObject) {\n _classCallCheck(this, NumberingPlan);\n\n this.globalMetadataObject = globalMetadataObject;\n this.metadata = metadata;\n setVersion.call(this, globalMetadataObject.metadata);\n }\n\n _createClass(NumberingPlan, [{\n key: \"callingCode\",\n value: function callingCode() {\n return this.metadata[0];\n } // Formatting information for regions which share\n // a country calling code is contained by only one region\n // for performance reasons. For example, for NANPA region\n // (\"North American Numbering Plan Administration\",\n // which includes USA, Canada, Cayman Islands, Bahamas, etc)\n // it will be contained in the metadata for `US`.\n\n }, {\n key: \"getDefaultCountryMetadataForRegion\",\n value: function getDefaultCountryMetadataForRegion() {\n return this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode());\n }\n }, {\n key: \"IDDPrefix\",\n value: function IDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[1];\n }\n }, {\n key: \"defaultIDDPrefix\",\n value: function defaultIDDPrefix() {\n if (this.v1 || this.v2) return;\n return this.metadata[12];\n }\n }, {\n key: \"nationalNumberPattern\",\n value: function nationalNumberPattern() {\n if (this.v1 || this.v2) return this.metadata[1];\n return this.metadata[2];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.v1) return;\n return this.metadata[this.v2 ? 2 : 3];\n }\n }, {\n key: \"_getFormats\",\n value: function _getFormats(metadata) {\n return metadata[this.v1 ? 2 : this.v2 ? 3 : 4];\n } // For countries of the same region (e.g. NANPA)\n // formats are all stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"formats\",\n value: function formats() {\n var _this = this;\n\n var formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || [];\n return formats.map(function (_) {\n return new Format(_, _this);\n });\n }\n }, {\n key: \"nationalPrefix\",\n value: function nationalPrefix() {\n return this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5];\n }\n }, {\n key: \"_getNationalPrefixFormattingRule\",\n value: function _getNationalPrefixFormattingRule(metadata) {\n return metadata[this.v1 ? 4 : this.v2 ? 5 : 6];\n } // For countries of the same region (e.g. NANPA)\n // national prefix formatting rule is stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"_nationalPrefixForParsing\",\n value: function _nationalPrefixForParsing() {\n return this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7];\n }\n }, {\n key: \"nationalPrefixForParsing\",\n value: function nationalPrefixForParsing() {\n // If `national_prefix_for_parsing` is not set explicitly,\n // then infer it from `national_prefix` (if any)\n return this._nationalPrefixForParsing() || this.nationalPrefix();\n }\n }, {\n key: \"nationalPrefixTransformRule\",\n value: function nationalPrefixTransformRule() {\n return this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8];\n }\n }, {\n key: \"_getNationalPrefixIsOptionalWhenFormatting\",\n value: function _getNationalPrefixIsOptionalWhenFormatting() {\n return !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9];\n } // For countries of the same region (e.g. NANPA)\n // \"national prefix is optional when formatting\" flag is\n // stored in the \"main\" country for that region.\n // E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\n\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) || this._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion());\n }\n }, {\n key: \"leadingDigits\",\n value: function leadingDigits() {\n return this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10];\n }\n }, {\n key: \"types\",\n value: function types() {\n return this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11];\n }\n }, {\n key: \"hasTypes\",\n value: function hasTypes() {\n // Versions 1.2.0 - 1.2.4: can be `[]`.\n\n /* istanbul ignore next */\n if (this.types() && this.types().length === 0) {\n return false;\n } // Versions <= 1.2.4: can be `undefined`.\n // Version >= 1.2.5: can be `0`.\n\n\n return !!this.types();\n }\n }, {\n key: \"type\",\n value: function type(_type2) {\n if (this.hasTypes() && getType(this.types(), _type2)) {\n return new Type(getType(this.types(), _type2), this);\n }\n }\n }, {\n key: \"ext\",\n value: function ext() {\n if (this.v1 || this.v2) return DEFAULT_EXT_PREFIX;\n return this.metadata[13] || DEFAULT_EXT_PREFIX;\n }\n }]);\n\n return NumberingPlan;\n}();\n\nvar Format =\n/*#__PURE__*/\nfunction () {\n function Format(format, metadata) {\n _classCallCheck(this, Format);\n\n this._format = format;\n this.metadata = metadata;\n }\n\n _createClass(Format, [{\n key: \"pattern\",\n value: function pattern() {\n return this._format[0];\n }\n }, {\n key: \"format\",\n value: function format() {\n return this._format[1];\n }\n }, {\n key: \"leadingDigitsPatterns\",\n value: function leadingDigitsPatterns() {\n return this._format[2] || [];\n }\n }, {\n key: \"nationalPrefixFormattingRule\",\n value: function nationalPrefixFormattingRule() {\n return this._format[3] || this.metadata.nationalPrefixFormattingRule();\n }\n }, {\n key: \"nationalPrefixIsOptionalWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsOptionalWhenFormattingInNationalFormat() {\n return !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n }\n }, {\n key: \"nationalPrefixIsMandatoryWhenFormattingInNationalFormat\",\n value: function nationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\n // National prefix is omitted if there's no national prefix formatting rule\n // set for this country, or when the national prefix formatting rule\n // contains no national prefix itself, or when this rule is set but\n // national prefix is optional for this phone number format\n // (and it is not enforced explicitly)\n return this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat();\n } // Checks whether national prefix formatting rule contains national prefix.\n\n }, {\n key: \"usesNationalPrefix\",\n value: function usesNationalPrefix() {\n return this.nationalPrefixFormattingRule() && // Check that national prefix formatting rule is not a \"dummy\" one.\n !FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule()) // In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\n // when `national_prefix_formatting_rule` is not present.\n // So, `true` or `false` are returned explicitly here, so that\n // `0` number isn't returned.\n ? true : false;\n }\n }, {\n key: \"internationalFormat\",\n value: function internationalFormat() {\n return this._format[5] || this.format();\n }\n }]);\n\n return Format;\n}();\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\n\n\nvar FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/;\n\nvar Type =\n/*#__PURE__*/\nfunction () {\n function Type(type, metadata) {\n _classCallCheck(this, Type);\n\n this.type = type;\n this.metadata = metadata;\n }\n\n _createClass(Type, [{\n key: \"pattern\",\n value: function pattern() {\n if (this.metadata.v1) return this.type;\n return this.type[0];\n }\n }, {\n key: \"possibleLengths\",\n value: function possibleLengths() {\n if (this.metadata.v1) return;\n return this.type[1] || this.metadata.possibleLengths();\n }\n }]);\n\n return Type;\n}();\n\nfunction getType(types, type) {\n switch (type) {\n case 'FIXED_LINE':\n return types[0];\n\n case 'MOBILE':\n return types[1];\n\n case 'TOLL_FREE':\n return types[2];\n\n case 'PREMIUM_RATE':\n return types[3];\n\n case 'PERSONAL_NUMBER':\n return types[4];\n\n case 'VOICEMAIL':\n return types[5];\n\n case 'UAN':\n return types[6];\n\n case 'PAGER':\n return types[7];\n\n case 'VOIP':\n return types[8];\n\n case 'SHARED_COST':\n return types[9];\n }\n}\n\nexport function validateMetadata(metadata) {\n if (!metadata) {\n throw new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.');\n } // `country_phone_code_to_countries` was renamed to\n // `country_calling_codes` in `1.0.18`.\n\n\n if (!is_object(metadata) || !is_object(metadata.countries)) {\n throw new Error(\"[libphonenumber-js] `metadata` argument was passed but it's not a valid metadata. Must be an object having `.countries` child object property. Got \".concat(is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata, \".\"));\n }\n} // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar is_object = function is_object(_) {\n return _typeof(_) === 'object';\n}; // Babel transforms `typeof` into some \"branches\"\n// so istanbul will show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\n\nvar type_of = function type_of(_) {\n return _typeof(_);\n};\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\n\n\nexport function getExtPrefix(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).ext();\n }\n\n return DEFAULT_EXT_PREFIX;\n}\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\n\nexport function getCountryCallingCode(country, metadata) {\n metadata = new Metadata(metadata);\n\n if (metadata.hasCountry(country)) {\n return metadata.country(country).countryCallingCode();\n }\n\n throw new Error(\"Unknown country: \".concat(country));\n}\nexport function isSupportedCountry(country, metadata) {\n // metadata = new Metadata(metadata)\n // return metadata.hasCountry(country)\n return metadata.countries[country] !== undefined;\n}\n\nfunction setVersion(metadata) {\n var version = metadata.version;\n\n if (typeof version === 'number') {\n this.v1 = version === 1;\n this.v2 = version === 2;\n this.v3 = version === 3;\n this.v4 = version === 4;\n } else {\n if (!version) {\n this.v1 = true;\n } else if (compare(version, V3) === -1) {\n this.v2 = true;\n } else if (compare(version, V4) === -1) {\n this.v3 = true;\n } else {\n this.v4 = true;\n }\n }\n} // const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\n// function isCountryCode(countryCode) {\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\n// }\n//# sourceMappingURL=metadata.js.map","import { VALID_DIGITS } from '../../constants'; // The RFC 3966 format for extensions.\n\nvar RFC3966_EXTN_PREFIX = ';ext=';\n/**\r\n * Helper method for constructing regular expressions for parsing. Creates\r\n * an expression that captures up to max_length digits.\r\n * @return {string} RegEx pattern to capture extension digits.\r\n */\n\nvar getExtensionDigitsPattern = function getExtensionDigitsPattern(maxLength) {\n return \"([\".concat(VALID_DIGITS, \"]{1,\").concat(maxLength, \"})\");\n};\n/**\r\n * Helper initialiser method to create the regular-expression pattern to match\r\n * extensions.\r\n * Copy-pasted from Google's `libphonenumber`:\r\n * https://github.com/google/libphonenumber/blob/55b2646ec9393f4d3d6661b9c82ef9e258e8b829/javascript/i18n/phonenumbers/phonenumberutil.js#L759-L766\r\n * @return {string} RegEx pattern to capture extensions.\r\n */\n\n\nexport default function createExtensionPattern(purpose) {\n // We cap the maximum length of an extension based on the ambiguity of the way\n // the extension is prefixed. As per ITU, the officially allowed length for\n // extensions is actually 40, but we don't support this since we haven't seen real\n // examples and this introduces many false interpretations as the extension labels\n // are not standardized.\n\n /** @type {string} */\n var extLimitAfterExplicitLabel = '20';\n /** @type {string} */\n\n var extLimitAfterLikelyLabel = '15';\n /** @type {string} */\n\n var extLimitAfterAmbiguousChar = '9';\n /** @type {string} */\n\n var extLimitWhenNotSure = '6';\n /** @type {string} */\n\n var possibleSeparatorsBetweenNumberAndExtLabel = \"[ \\xA0\\\\t,]*\"; // Optional full stop (.) or colon, followed by zero or more spaces/tabs/commas.\n\n /** @type {string} */\n\n var possibleCharsAfterExtLabel = \"[:\\\\.\\uFF0E]?[ \\xA0\\\\t,-]*\";\n /** @type {string} */\n\n var optionalExtnSuffix = \"#?\"; // Here the extension is called out in more explicit way, i.e mentioning it obvious\n // patterns like \"ext.\".\n\n /** @type {string} */\n\n var explicitExtLabels = \"(?:e?xt(?:ensi(?:o\\u0301?|\\xF3))?n?|\\uFF45?\\uFF58\\uFF54\\uFF4E?|\\u0434\\u043E\\u0431|anexo)\"; // One-character symbols that can be used to indicate an extension, and less\n // commonly used or more ambiguous extension labels.\n\n /** @type {string} */\n\n var ambiguousExtLabels = \"(?:[x\\uFF58#\\uFF03~\\uFF5E]|int|\\uFF49\\uFF4E\\uFF54)\"; // When extension is not separated clearly.\n\n /** @type {string} */\n\n var ambiguousSeparator = \"[- ]+\"; // This is the same as possibleSeparatorsBetweenNumberAndExtLabel, but not matching\n // comma as extension label may have it.\n\n /** @type {string} */\n\n var possibleSeparatorsNumberExtLabelNoComma = \"[ \\xA0\\\\t]*\"; // \",,\" is commonly used for auto dialling the extension when connected. First\n // comma is matched through possibleSeparatorsBetweenNumberAndExtLabel, so we do\n // not repeat it here. Semi-colon works in Iphone and Android also to pop up a\n // button with the extension number following.\n\n /** @type {string} */\n\n var autoDiallingAndExtLabelsFound = \"(?:,{2}|;)\";\n /** @type {string} */\n\n var rfcExtn = RFC3966_EXTN_PREFIX + getExtensionDigitsPattern(extLimitAfterExplicitLabel);\n /** @type {string} */\n\n var explicitExtn = possibleSeparatorsBetweenNumberAndExtLabel + explicitExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterExplicitLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var ambiguousExtn = possibleSeparatorsBetweenNumberAndExtLabel + ambiguousExtLabels + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix;\n /** @type {string} */\n\n var americanStyleExtnWithSuffix = ambiguousSeparator + getExtensionDigitsPattern(extLimitWhenNotSure) + \"#\";\n /** @type {string} */\n\n var autoDiallingExtn = possibleSeparatorsNumberExtLabelNoComma + autoDiallingAndExtLabelsFound + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterLikelyLabel) + optionalExtnSuffix;\n /** @type {string} */\n\n var onlyCommasExtn = possibleSeparatorsNumberExtLabelNoComma + \"(?:,)+\" + possibleCharsAfterExtLabel + getExtensionDigitsPattern(extLimitAfterAmbiguousChar) + optionalExtnSuffix; // The first regular expression covers RFC 3966 format, where the extension is added\n // using \";ext=\". The second more generic where extension is mentioned with explicit\n // labels like \"ext:\". In both the above cases we allow more numbers in extension than\n // any other extension labels. The third one captures when single character extension\n // labels or less commonly used labels are used. In such cases we capture fewer\n // extension digits in order to reduce the chance of falsely interpreting two\n // numbers beside each other as a number + extension. The fourth one covers the\n // special case of American numbers where the extension is written with a hash\n // at the end, such as \"- 503#\". The fifth one is exclusively for extension\n // autodialling formats which are used when dialling and in this case we accept longer\n // extensions. The last one is more liberal on the number of commas that acts as\n // extension labels, so we have a strict cap on the number of digits in such extensions.\n\n return rfcExtn + \"|\" + explicitExtn + \"|\" + ambiguousExtn + \"|\" + americanStyleExtnWithSuffix + \"|\" + autoDiallingExtn + \"|\" + onlyCommasExtn;\n}\n//# sourceMappingURL=createExtensionPattern.js.map","import { MIN_LENGTH_FOR_NSN, VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from '../constants';\nimport createExtensionPattern from './extension/createExtensionPattern'; // Regular expression of viable phone numbers. This is location independent.\n// Checks we have at least three leading digits, and only valid punctuation,\n// alpha characters and digits in the phone number. Does not include extension\n// data. The symbol 'x' is allowed here as valid punctuation since it is often\n// used as a placeholder for carrier codes, for example in Brazilian phone\n// numbers. We also allow multiple '+' characters at the start.\n//\n// Corresponds to the following:\n// [digits]{minLengthNsn}|\n// plus_sign*\n// (([punctuation]|[star])*[digits]){3,}([punctuation]|[star]|[digits]|[alpha])*\n//\n// The first reg-ex is to allow short numbers (two digits long) to be parsed if\n// they are entered as \"15\" etc, but only if there is no punctuation in them.\n// The second expression restricts the number of digits to three or more, but\n// then allows them to be in international form, and to have alpha-characters\n// and punctuation. We split up the two reg-exes here and combine them when\n// creating the reg-ex VALID_PHONE_NUMBER_PATTERN itself so we can prefix it\n// with ^ and append $ to each branch.\n//\n// \"Note VALID_PUNCTUATION starts with a -,\n// so must be the first in the range\" (c) Google devs.\n// (wtf did they mean by saying that; probably nothing)\n//\n\nvar MIN_LENGTH_PHONE_NUMBER_PATTERN = '[' + VALID_DIGITS + ']{' + MIN_LENGTH_FOR_NSN + '}'; //\n// And this is the second reg-exp:\n// (see MIN_LENGTH_PHONE_NUMBER_PATTERN for a full description of this reg-exp)\n//\n\nexport var VALID_PHONE_NUMBER = '[' + PLUS_CHARS + ']{0,1}' + '(?:' + '[' + VALID_PUNCTUATION + ']*' + '[' + VALID_DIGITS + ']' + '){3,}' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*';\nexport var VALID_PHONE_NUMBER_WITH_EXTENSION = VALID_PHONE_NUMBER + // Phone number extensions\n'(?:' + createExtensionPattern() + ')?'; // The combined regular expression for valid phone numbers:\n//\n\nvar VALID_PHONE_NUMBER_PATTERN = new RegExp( // Either a short two-digit-only phone number\n'^' + MIN_LENGTH_PHONE_NUMBER_PATTERN + '$' + '|' + // Or a longer fully parsed phone number (min 3 characters)\n'^' + VALID_PHONE_NUMBER_WITH_EXTENSION + '$', 'i'); // Checks to see if the string of characters could possibly be a phone number at\n// all. At the moment, checks to see that the string begins with at least 2\n// digits, ignoring any punctuation commonly found in phone numbers. This method\n// does not require the number to be normalized in advance - but does assume\n// that leading non-number symbols have been removed, such as by the method\n// `extract_possible_number`.\n//\n\nexport default function isViablePhoneNumber(number) {\n return number.length >= MIN_LENGTH_FOR_NSN && VALID_PHONE_NUMBER_PATTERN.test(number);\n}\n//# sourceMappingURL=isViablePhoneNumber.js.map","import createExtensionPattern from './createExtensionPattern'; // Regexp of all known extension prefixes used by different regions followed by\n// 1 or more valid digits, for use when parsing.\n\nvar EXTN_PATTERN = new RegExp('(?:' + createExtensionPattern() + ')$', 'i'); // Strips any extension (as in, the part of the number dialled after the call is\n// connected, usually indicated with extn, ext, x or similar) from the end of\n// the number, and returns it.\n\nexport default function extractExtension(number) {\n var start = number.search(EXTN_PATTERN);\n\n if (start < 0) {\n return {};\n } // If we find a potential extension, and the number preceding this is a viable\n // number, we assume it is an extension.\n\n\n var numberWithoutExtension = number.slice(0, start);\n var matches = number.match(EXTN_PATTERN);\n var i = 1;\n\n while (i < matches.length) {\n if (matches[i]) {\n return {\n number: numberWithoutExtension,\n ext: matches[i]\n };\n }\n\n i++;\n }\n}\n//# sourceMappingURL=extractExtension.js.map","// These mappings map a character (key) to a specific digit that should\n// replace it for normalization purposes. Non-European digits that\n// may be used in phone numbers are mapped to a European equivalent.\n//\n// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\n//\nexport var DIGITS = {\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 \"\\uFF10\": '0',\n // Fullwidth digit 0\n \"\\uFF11\": '1',\n // Fullwidth digit 1\n \"\\uFF12\": '2',\n // Fullwidth digit 2\n \"\\uFF13\": '3',\n // Fullwidth digit 3\n \"\\uFF14\": '4',\n // Fullwidth digit 4\n \"\\uFF15\": '5',\n // Fullwidth digit 5\n \"\\uFF16\": '6',\n // Fullwidth digit 6\n \"\\uFF17\": '7',\n // Fullwidth digit 7\n \"\\uFF18\": '8',\n // Fullwidth digit 8\n \"\\uFF19\": '9',\n // Fullwidth digit 9\n \"\\u0660\": '0',\n // Arabic-indic digit 0\n \"\\u0661\": '1',\n // Arabic-indic digit 1\n \"\\u0662\": '2',\n // Arabic-indic digit 2\n \"\\u0663\": '3',\n // Arabic-indic digit 3\n \"\\u0664\": '4',\n // Arabic-indic digit 4\n \"\\u0665\": '5',\n // Arabic-indic digit 5\n \"\\u0666\": '6',\n // Arabic-indic digit 6\n \"\\u0667\": '7',\n // Arabic-indic digit 7\n \"\\u0668\": '8',\n // Arabic-indic digit 8\n \"\\u0669\": '9',\n // Arabic-indic digit 9\n \"\\u06F0\": '0',\n // Eastern-Arabic digit 0\n \"\\u06F1\": '1',\n // Eastern-Arabic digit 1\n \"\\u06F2\": '2',\n // Eastern-Arabic digit 2\n \"\\u06F3\": '3',\n // Eastern-Arabic digit 3\n \"\\u06F4\": '4',\n // Eastern-Arabic digit 4\n \"\\u06F5\": '5',\n // Eastern-Arabic digit 5\n \"\\u06F6\": '6',\n // Eastern-Arabic digit 6\n \"\\u06F7\": '7',\n // Eastern-Arabic digit 7\n \"\\u06F8\": '8',\n // Eastern-Arabic digit 8\n \"\\u06F9\": '9' // Eastern-Arabic digit 9\n\n};\nexport function parseDigit(character) {\n return DIGITS[character];\n}\n/**\r\n * Parses phone number digits from a string.\r\n * Drops all punctuation leaving only digits.\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * parseDigits('8 (800) 555')\r\n * // Outputs '8800555'.\r\n * ```\r\n */\n\nexport default function parseDigits(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var character = _ref;\n var digit = parseDigit(character);\n\n if (digit) {\n result += digit;\n }\n }\n\n return result;\n}\n//# sourceMappingURL=parseDigits.js.map","import { parseDigit } from './helpers/parseDigits';\n/**\r\n * Parses phone number characters from a string.\r\n * Drops all punctuation leaving only digits and the leading `+` sign (if any).\r\n * Also converts wide-ascii and arabic-indic numerals to conventional numerals.\r\n * E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n * @param {string} string\r\n * @return {string}\r\n * @example\r\n * ```js\r\n * // Outputs '8800555'.\r\n * parseIncompletePhoneNumber('8 (800) 555')\r\n * // Outputs '+7800555'.\r\n * parseIncompletePhoneNumber('+7 800 555')\r\n * ```\r\n */\n\nexport default function parseIncompletePhoneNumber(string) {\n var result = ''; // Using `.split('')` here instead of normal `for ... of`\n // because the importing application doesn't neccessarily include an ES6 polyfill.\n // The `.split('')` approach discards \"exotic\" UTF-8 characters\n // (the ones consisting of four bytes) but digits\n // (including non-European ones) don't fall into that range\n // so such \"exotic\" characters would be discarded anyway.\n\n for (var _iterator = string.split(''), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var character = _ref;\n result += parsePhoneNumberCharacter(character, result) || '';\n }\n\n return result;\n}\n/**\r\n * Parses next character while parsing phone number digits (including a `+`)\r\n * from text: discards everything except `+` and digits, and `+` is only allowed\r\n * at the start of a phone number.\r\n * For example, is used in `react-phone-number-input` where it uses\r\n * [`input-format`](https://gitlab.com/catamphetamine/input-format).\r\n * @param {string} character - Yet another character from raw input string.\r\n * @param {string?} prevParsedCharacters - Previous parsed characters.\r\n * @param {object} meta - Optional custom use-case-specific metadata.\r\n * @return {string?} The parsed character.\r\n */\n\nexport function parsePhoneNumberCharacter(character, prevParsedCharacters) {\n // Only allow a leading `+`.\n if (character === '+') {\n // If this `+` is not the first parsed character\n // then discard it.\n if (prevParsedCharacters) {\n return;\n }\n\n return '+';\n } // Allow digits.\n\n\n return parseDigit(character);\n}\n//# sourceMappingURL=parseIncompletePhoneNumber.js.map","import mergeArrays from './mergeArrays';\nexport default function checkNumberLength(nationalNumber, metadata) {\n return checkNumberLengthForType(nationalNumber, undefined, metadata);\n} // Checks whether a number is possible for the country based on its length.\n// Should only be called for the \"new\" metadata which has \"possible lengths\".\n\nexport function checkNumberLengthForType(nationalNumber, type, metadata) {\n var type_info = metadata.type(type); // There should always be \"\" set for every type element.\n // This is declared in the XML schema.\n // For size efficiency, where a sub-description (e.g. fixed-line)\n // has the same \"\" as the \"general description\", this is missing,\n // so we fall back to the \"general description\". Where no numbers of the type\n // exist at all, there is one possible length (-1) which is guaranteed\n // not to match the length of any real phone number.\n\n var possible_lengths = type_info && type_info.possibleLengths() || metadata.possibleLengths(); // let local_lengths = type_info && type.possibleLengthsLocal() || metadata.possibleLengthsLocal()\n // Metadata before version `1.0.18` didn't contain `possible_lengths`.\n\n if (!possible_lengths) {\n return 'IS_POSSIBLE';\n }\n\n if (type === 'FIXED_LINE_OR_MOBILE') {\n // No such country in metadata.\n\n /* istanbul ignore next */\n if (!metadata.type('FIXED_LINE')) {\n // The rare case has been encountered where no fixedLine data is available\n // (true for some non-geographic entities), so we just check mobile.\n return checkNumberLengthForType(nationalNumber, 'MOBILE', metadata);\n }\n\n var mobile_type = metadata.type('MOBILE');\n\n if (mobile_type) {\n // Merge the mobile data in if there was any. \"Concat\" creates a new\n // array, it doesn't edit possible_lengths in place, so we don't need a copy.\n // Note that when adding the possible lengths from mobile, we have\n // to again check they aren't empty since if they are this indicates\n // they are the same as the general desc and should be obtained from there.\n possible_lengths = mergeArrays(possible_lengths, mobile_type.possibleLengths()); // The current list is sorted; we need to merge in the new list and\n // re-sort (duplicates are okay). Sorting isn't so expensive because\n // the lists are very small.\n // if (local_lengths) {\n // \tlocal_lengths = mergeArrays(local_lengths, mobile_type.possibleLengthsLocal())\n // } else {\n // \tlocal_lengths = mobile_type.possibleLengthsLocal()\n // }\n }\n } // If the type doesn't exist then return 'INVALID_LENGTH'.\n else if (type && !type_info) {\n return 'INVALID_LENGTH';\n }\n\n var actual_length = nationalNumber.length; // In `libphonenumber-js` all \"local-only\" formats are dropped for simplicity.\n // // This is safe because there is never an overlap beween the possible lengths\n // // and the local-only lengths; this is checked at build time.\n // if (local_lengths && local_lengths.indexOf(nationalNumber.length) >= 0)\n // {\n // \treturn 'IS_POSSIBLE_LOCAL_ONLY'\n // }\n\n var minimum_length = possible_lengths[0];\n\n if (minimum_length === actual_length) {\n return 'IS_POSSIBLE';\n }\n\n if (minimum_length > actual_length) {\n return 'TOO_SHORT';\n }\n\n if (possible_lengths[possible_lengths.length - 1] < actual_length) {\n return 'TOO_LONG';\n } // We skip the first element since we've already checked it.\n\n\n return possible_lengths.indexOf(actual_length, 1) >= 0 ? 'IS_POSSIBLE' : 'INVALID_LENGTH';\n}\n//# sourceMappingURL=checkNumberLength.js.map","/**\r\n * Merges two arrays.\r\n * @param {*} a\r\n * @param {*} b\r\n * @return {*}\r\n */\nexport default function mergeArrays(a, b) {\n var merged = a.slice();\n\n for (var _iterator = b, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var element = _ref;\n\n if (a.indexOf(element) < 0) {\n merged.push(element);\n }\n }\n\n return merged.sort(function (a, b) {\n return a - b;\n }); // ES6 version, requires Set polyfill.\n // let merged = new Set(a)\n // for (const element of b) {\n // \tmerged.add(i)\n // }\n // return Array.from(merged).sort((a, b) => a - b)\n}\n//# sourceMappingURL=mergeArrays.js.map","import Metadata from './metadata';\nimport checkNumberLength from './helpers/checkNumberLength';\nexport default function isPossiblePhoneNumber(input, options, metadata) {\n /* istanbul ignore if */\n if (options === undefined) {\n options = {};\n }\n\n metadata = new Metadata(metadata);\n\n if (options.v2) {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else {\n if (!input.phone) {\n return false;\n }\n\n if (input.country) {\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else {\n if (!input.countryCallingCode) {\n throw new Error('Invalid phone number object passed');\n }\n\n metadata.selectNumberingPlan(input.countryCallingCode);\n }\n }\n\n if (metadata.possibleLengths()) {\n return isPossibleNumber(input.phone || input.nationalNumber, metadata);\n } else {\n // There was a bug between `1.7.35` and `1.7.37` where \"possible_lengths\"\n // were missing for \"non-geographical\" numbering plans.\n // Just assume the number is possible in such cases:\n // it's unlikely that anyone generated their custom metadata\n // in that short period of time (one day).\n // This code can be removed in some future major version update.\n if (input.countryCallingCode && metadata.isNonGeographicCallingCode(input.countryCallingCode)) {\n // \"Non-geographic entities\" did't have `possibleLengths`\n // due to a bug in metadata generation process.\n return true;\n } else {\n throw new Error('Missing \"possibleLengths\" in metadata. Perhaps the metadata has been generated before v1.0.18.');\n }\n }\n}\nexport function isPossibleNumber(nationalNumber, metadata) {\n //, isInternational) {\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'IS_POSSIBLE':\n return true;\n // This library ignores \"local-only\" phone numbers (for simplicity).\n // See the readme for more info on what are \"local-only\" phone numbers.\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // \treturn !isInternational\n\n default:\n return false;\n }\n}\n//# sourceMappingURL=isPossibleNumber_.js.map","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport isViablePhoneNumber from './isViablePhoneNumber'; // https://www.ietf.org/rfc/rfc3966.txt\n\n/**\r\n * @param {string} text - Phone URI (RFC 3966).\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nexport function parseRFC3966(text) {\n var number;\n var ext; // Replace \"tel:\" with \"tel=\" for parsing convenience.\n\n text = text.replace(/^tel:/, 'tel=');\n\n for (var _iterator = text.split(';'), _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var part = _ref;\n\n var _part$split = part.split('='),\n _part$split2 = _slicedToArray(_part$split, 2),\n name = _part$split2[0],\n value = _part$split2[1];\n\n switch (name) {\n case 'tel':\n number = value;\n break;\n\n case 'ext':\n ext = value;\n break;\n\n case 'phone-context':\n // Only \"country contexts\" are supported.\n // \"Domain contexts\" are ignored.\n if (value[0] === '+') {\n number = value + number;\n }\n\n break;\n }\n } // If the phone number is not viable, then abort.\n\n\n if (!isViablePhoneNumber(number)) {\n return {};\n }\n\n var result = {\n number: number\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * @param {object} - `{ ?number, ?extension }`.\r\n * @return {string} Phone URI (RFC 3966).\r\n */\n\nexport function formatRFC3966(_ref2) {\n var number = _ref2.number,\n ext = _ref2.ext;\n\n if (!number) {\n return '';\n }\n\n if (number[0] !== '+') {\n throw new Error(\"\\\"formatRFC3966()\\\" expects \\\"number\\\" to be in E.164 format.\");\n }\n\n return \"tel:\".concat(number).concat(ext ? ';ext=' + ext : '');\n}\n//# sourceMappingURL=RFC3966.js.map","/**\r\n * Checks whether the entire input sequence can be matched\r\n * against the regular expression.\r\n * @return {boolean}\r\n */\nexport default function matchesEntirely(text, regular_expression) {\n // If assigning the `''` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n text = text || '';\n return new RegExp('^(?:' + regular_expression + ')$').test(text);\n}\n//# sourceMappingURL=matchesEntirely.js.map","import Metadata from '../metadata';\nimport matchesEntirely from './matchesEntirely';\nvar NON_FIXED_LINE_PHONE_TYPES = ['MOBILE', 'PREMIUM_RATE', 'TOLL_FREE', 'SHARED_COST', 'VOIP', 'PERSONAL_NUMBER', 'PAGER', 'UAN', 'VOICEMAIL']; // Finds out national phone number type (fixed line, mobile, etc)\n\nexport default function getNumberType(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {}; // When `parse()` returned `{}`\n // meaning that the phone number is not a valid one.\n\n if (!input.country) {\n return;\n }\n\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(input.country, input.countryCallingCode);\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // The following is copy-pasted from the original function:\n // https://github.com/googlei18n/libphonenumber/blob/3ea547d4fbaa2d0b67588904dfa5d3f2557c27ff/javascript/i18n/phonenumbers/phonenumberutil.js#L2835\n // Is this national number even valid for this country\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern())) {\n return;\n } // Is it fixed line number\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'FIXED_LINE', metadata)) {\n // Because duplicate regular expressions are removed\n // to reduce metadata size, if \"mobile\" pattern is \"\"\n // then it means it was removed due to being a duplicate of the fixed-line pattern.\n //\n if (metadata.type('MOBILE') && metadata.type('MOBILE').pattern() === '') {\n return 'FIXED_LINE_OR_MOBILE';\n } // v1 metadata.\n // Legacy.\n // Deprecated.\n\n\n if (!metadata.type('MOBILE')) {\n return 'FIXED_LINE_OR_MOBILE';\n } // Check if the number happens to qualify as both fixed line and mobile.\n // (no such country in the minimal metadata set)\n\n /* istanbul ignore if */\n\n\n if (isNumberTypeEqualTo(nationalNumber, 'MOBILE', metadata)) {\n return 'FIXED_LINE_OR_MOBILE';\n }\n\n return 'FIXED_LINE';\n }\n\n for (var _i = 0, _NON_FIXED_LINE_PHONE = NON_FIXED_LINE_PHONE_TYPES; _i < _NON_FIXED_LINE_PHONE.length; _i++) {\n var type = _NON_FIXED_LINE_PHONE[_i];\n\n if (isNumberTypeEqualTo(nationalNumber, type, metadata)) {\n return type;\n }\n }\n}\nexport function isNumberTypeEqualTo(nationalNumber, type, metadata) {\n type = metadata.type(type);\n\n if (!type || !type.pattern()) {\n return false;\n } // Check if any possible number lengths are present;\n // if so, we use them to avoid checking\n // the validation pattern if they don't match.\n // If they are absent, this means they match\n // the general description, which we have\n // already checked before a specific number type.\n\n\n if (type.possibleLengths() && type.possibleLengths().indexOf(nationalNumber.length) < 0) {\n return false;\n }\n\n return matchesEntirely(nationalNumber, type.pattern());\n}\n//# sourceMappingURL=getNumberType.js.map","import applyInternationalSeparatorStyle from './applyInternationalSeparatorStyle'; // This was originally set to $1 but there are some countries for which the\n// first group is not used in the national pattern (e.g. Argentina) so the $1\n// group does not match correctly. Therefore, we use `\\d`, so that the first\n// group actually used in the pattern will be matched.\n\nexport var FIRST_GROUP_PATTERN = /(\\$\\d)/;\nexport default function formatNationalNumberUsingFormat(number, format, _ref) {\n var useInternationalFormat = _ref.useInternationalFormat,\n withNationalPrefix = _ref.withNationalPrefix,\n carrierCode = _ref.carrierCode,\n metadata = _ref.metadata;\n var formattedNumber = number.replace(new RegExp(format.pattern()), useInternationalFormat ? format.internationalFormat() : // This library doesn't use `domestic_carrier_code_formatting_rule`,\n // because that one is only used when formatting phone numbers\n // for dialing from a mobile phone, and this is not a dialing library.\n // carrierCode && format.domesticCarrierCodeFormattingRule()\n // \t// First, replace the $CC in the formatting rule with the desired carrier code.\n // \t// Then, replace the $FG in the formatting rule with the first group\n // \t// and the carrier code combined in the appropriate way.\n // \t? format.format().replace(FIRST_GROUP_PATTERN, format.domesticCarrierCodeFormattingRule().replace('$CC', carrierCode))\n // \t: (\n // \t\twithNationalPrefix && format.nationalPrefixFormattingRule()\n // \t\t\t? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule())\n // \t\t\t: format.format()\n // \t)\n withNationalPrefix && format.nationalPrefixFormattingRule() ? format.format().replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule()) : format.format());\n\n if (useInternationalFormat) {\n return applyInternationalSeparatorStyle(formattedNumber);\n }\n\n return formattedNumber;\n}\n//# sourceMappingURL=formatNationalNumberUsingFormat.js.map","import { VALID_PUNCTUATION } from '../constants'; // Removes brackets and replaces dashes with spaces.\n//\n// E.g. \"(999) 111-22-33\" -> \"999 111 22 33\"\n//\n// For some reason Google's metadata contains ``s with brackets and dashes.\n// Meanwhile, there's no single opinion about using punctuation in international phone numbers.\n//\n// For example, Google's `` for USA is `+1 213-373-4253`.\n// And here's a quote from WikiPedia's \"North American Numbering Plan\" page:\n// https://en.wikipedia.org/wiki/North_American_Numbering_Plan\n//\n// \"The country calling code for all countries participating in the NANP is 1.\n// In international format, an NANP number should be listed as +1 301 555 01 00,\n// where 301 is an area code (Maryland).\"\n//\n// I personally prefer the international format without any punctuation.\n// For example, brackets are remnants of the old age, meaning that the\n// phone number part in brackets (so called \"area code\") can be omitted\n// if dialing within the same \"area\".\n// And hyphens were clearly introduced for splitting local numbers into memorizable groups.\n// For example, remembering \"5553535\" is difficult but \"555-35-35\" is much simpler.\n// Imagine a man taking a bus from home to work and seeing an ad with a phone number.\n// He has a couple of seconds to memorize that number until it passes by.\n// If it were spaces instead of hyphens the man wouldn't necessarily get it,\n// but with hyphens instead of spaces the grouping is more explicit.\n// I personally think that hyphens introduce visual clutter,\n// so I prefer replacing them with spaces in international numbers.\n// In the modern age all output is done on displays where spaces are clearly distinguishable\n// so hyphens can be safely replaced with spaces without losing any legibility.\n//\n\nexport default function applyInternationalSeparatorStyle(formattedNumber) {\n return formattedNumber.replace(new RegExp(\"[\".concat(VALID_PUNCTUATION, \"]+\"), 'g'), ' ').trim();\n}\n//# sourceMappingURL=applyInternationalSeparatorStyle.js.map","import Metadata from '../metadata';\n/**\r\n * Pattern that makes it easy to distinguish whether a region has a single\r\n * international dialing prefix or not. If a region has a single international\r\n * prefix (e.g. 011 in USA), it will be represented as a string that contains\r\n * a sequence of ASCII digits, and possibly a tilde, which signals waiting for\r\n * the tone. If there are multiple available international prefixes in a\r\n * region, they will be represented as a regex string that always contains one\r\n * or more characters that are not ASCII digits or a tilde.\r\n */\n\nvar SINGLE_IDD_PREFIX_REG_EXP = /^[\\d]+(?:[~\\u2053\\u223C\\uFF5E][\\d]+)?$/; // For regions that have multiple IDD prefixes\n// a preferred IDD prefix is returned.\n\nexport default function getIddPrefix(country, callingCode, metadata) {\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n\n if (SINGLE_IDD_PREFIX_REG_EXP.test(countryMetadata.IDDPrefix())) {\n return countryMetadata.IDDPrefix();\n }\n\n return countryMetadata.defaultIDDPrefix();\n}\n//# sourceMappingURL=getIddPrefix.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport matchesEntirely from './helpers/matchesEntirely';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat';\nimport Metadata, { getCountryCallingCode } from './metadata';\nimport getIddPrefix from './helpers/getIddPrefix';\nimport { formatRFC3966 } from './helpers/RFC3966';\nvar DEFAULT_OPTIONS = {\n formatExtension: function formatExtension(formattedNumber, extension, metadata) {\n return \"\".concat(formattedNumber).concat(metadata.ext()).concat(extension);\n } // Formats a phone number\n //\n // Example use cases:\n //\n // ```js\n // formatNumber('8005553535', 'RU', 'INTERNATIONAL')\n // formatNumber('8005553535', 'RU', 'INTERNATIONAL', metadata)\n // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL')\n // formatNumber({ phone: '8005553535', country: 'RU' }, 'INTERNATIONAL', metadata)\n // formatNumber('+78005553535', 'NATIONAL')\n // formatNumber('+78005553535', 'NATIONAL', metadata)\n // ```\n //\n\n};\nexport default function formatNumber(input, format, options, metadata) {\n // Apply default options.\n if (options) {\n options = _objectSpread({}, DEFAULT_OPTIONS, options);\n } else {\n options = DEFAULT_OPTIONS;\n }\n\n metadata = new Metadata(metadata);\n\n if (input.country && input.country !== '001') {\n // Validate `input.country`.\n if (!metadata.hasCountry(input.country)) {\n throw new Error(\"Unknown country: \".concat(input.country));\n }\n\n metadata.country(input.country);\n } else if (input.countryCallingCode) {\n metadata.selectNumberingPlan(input.countryCallingCode);\n } else return input.phone || '';\n\n var countryCallingCode = metadata.countryCallingCode();\n var nationalNumber = options.v2 ? input.nationalNumber : input.phone; // This variable should have been declared inside `case`s\n // but Babel has a bug and it says \"duplicate variable declaration\".\n\n var number;\n\n switch (format) {\n case 'NATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return '';\n }\n\n number = formatNationalNumber(nationalNumber, input.carrierCode, 'NATIONAL', metadata, options);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'INTERNATIONAL':\n // Legacy argument support.\n // (`{ country: ..., phone: '' }`)\n if (!nationalNumber) {\n return \"+\".concat(countryCallingCode);\n }\n\n number = formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata, options);\n number = \"+\".concat(countryCallingCode, \" \").concat(number);\n return addExtension(number, input.ext, metadata, options.formatExtension);\n\n case 'E.164':\n // `E.164` doesn't define \"phone number extensions\".\n return \"+\".concat(countryCallingCode).concat(nationalNumber);\n\n case 'RFC3966':\n return formatRFC3966({\n number: \"+\".concat(countryCallingCode).concat(nationalNumber),\n ext: input.ext\n });\n // For reference, here's Google's IDD formatter:\n // https://github.com/google/libphonenumber/blob/32719cf74e68796788d1ca45abc85dcdc63ba5b9/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L1546\n // Not saying that this IDD formatter replicates it 1:1, but it seems to work.\n // Who would even need to format phone numbers in IDD format anyway?\n\n case 'IDD':\n if (!options.fromCountry) {\n return; // throw new Error('`fromCountry` option not passed for IDD-prefixed formatting.')\n }\n\n var formattedNumber = formatIDD(nationalNumber, input.carrierCode, countryCallingCode, options.fromCountry, metadata);\n return addExtension(formattedNumber, input.ext, metadata, options.formatExtension);\n\n default:\n throw new Error(\"Unknown \\\"format\\\" argument passed to \\\"formatNumber()\\\": \\\"\".concat(format, \"\\\"\"));\n }\n}\n\nfunction formatNationalNumber(number, carrierCode, formatAs, metadata, options) {\n var format = chooseFormatForNumber(metadata.formats(), number);\n\n if (!format) {\n return number;\n }\n\n return formatNationalNumberUsingFormat(number, format, {\n useInternationalFormat: formatAs === 'INTERNATIONAL',\n withNationalPrefix: format.nationalPrefixIsOptionalWhenFormattingInNationalFormat() && options && options.nationalPrefix === false ? false : true,\n carrierCode: carrierCode,\n metadata: metadata\n });\n}\n\nfunction chooseFormatForNumber(availableFormats, nationalNnumber) {\n for (var _iterator = availableFormats, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var format = _ref;\n\n // Validate leading digits\n if (format.leadingDigitsPatterns().length > 0) {\n // The last leading_digits_pattern is used here, as it is the most detailed\n var lastLeadingDigitsPattern = format.leadingDigitsPatterns()[format.leadingDigitsPatterns().length - 1]; // If leading digits don't match then move on to the next phone number format\n\n if (nationalNnumber.search(lastLeadingDigitsPattern) !== 0) {\n continue;\n }\n } // Check that the national number matches the phone number format regular expression\n\n\n if (matchesEntirely(nationalNnumber, format.pattern())) {\n return format;\n }\n }\n}\n\nfunction addExtension(formattedNumber, ext, metadata, formatExtension) {\n return ext ? formatExtension(formattedNumber, ext, metadata) : formattedNumber;\n}\n\nfunction formatIDD(nationalNumber, carrierCode, countryCallingCode, fromCountry, metadata) {\n var fromCountryCallingCode = getCountryCallingCode(fromCountry, metadata.metadata); // When calling within the same country calling code.\n\n if (fromCountryCallingCode === countryCallingCode) {\n var formattedNumber = formatNationalNumber(nationalNumber, carrierCode, 'NATIONAL', metadata); // For NANPA regions, return the national format for these regions\n // but prefix it with the country calling code.\n\n if (countryCallingCode === '1') {\n return countryCallingCode + ' ' + formattedNumber;\n } // If regions share a country calling code, the country calling code need\n // not be dialled. This also applies when dialling within a region, so this\n // if clause covers both these cases. Technically this is the case for\n // dialling from La Reunion to other overseas departments of France (French\n // Guiana, Martinique, Guadeloupe), but not vice versa - so we don't cover\n // this edge case for now and for those cases return the version including\n // country calling code. Details here:\n // http://www.petitfute.com/voyage/225-info-pratiques-reunion\n //\n\n\n return formattedNumber;\n }\n\n var iddPrefix = getIddPrefix(fromCountry, undefined, metadata.metadata);\n\n if (iddPrefix) {\n return \"\".concat(iddPrefix, \" \").concat(countryCallingCode, \" \").concat(formatNationalNumber(nationalNumber, null, 'INTERNATIONAL', metadata));\n }\n}\n//# sourceMappingURL=format_.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nimport Metadata from './metadata';\nimport isPossibleNumber from './isPossibleNumber_';\nimport isValidNumber from './validate_';\nimport isValidNumberForRegion from './isValidNumberForRegion_';\nimport getNumberType from './helpers/getNumberType';\nimport formatNumber from './format_';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\n\nvar PhoneNumber =\n/*#__PURE__*/\nfunction () {\n function PhoneNumber(countryCallingCode, nationalNumber, metadata) {\n _classCallCheck(this, PhoneNumber);\n\n if (!countryCallingCode) {\n throw new TypeError('`country` or `countryCallingCode` not passed');\n }\n\n if (!nationalNumber) {\n throw new TypeError('`nationalNumber` not passed');\n }\n\n var _metadata = new Metadata(metadata); // If country code is passed then derive `countryCallingCode` from it.\n // Also store the country code as `.country`.\n\n\n if (isCountryCode(countryCallingCode)) {\n this.country = countryCallingCode;\n\n _metadata.country(countryCallingCode);\n\n countryCallingCode = _metadata.countryCallingCode();\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (_metadata.isNonGeographicCallingCode(countryCallingCode)) {\n this.country = '001';\n }\n }\n }\n\n this.countryCallingCode = countryCallingCode;\n this.nationalNumber = nationalNumber;\n this.number = '+' + this.countryCallingCode + this.nationalNumber;\n this.metadata = metadata;\n }\n\n _createClass(PhoneNumber, [{\n key: \"isPossible\",\n value: function isPossible() {\n return isPossibleNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isValid\",\n value: function isValid() {\n return isValidNumber(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"isNonGeographic\",\n value: function isNonGeographic() {\n var metadata = new Metadata(this.metadata);\n return metadata.isNonGeographicCallingCode(this.countryCallingCode);\n }\n }, {\n key: \"isEqual\",\n value: function isEqual(phoneNumber) {\n return this.number === phoneNumber.number && this.ext === phoneNumber.ext;\n } // // Is just an alias for `this.isValid() && this.country === country`.\n // // https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\n // isValidForRegion(country) {\n // \treturn isValidNumberForRegion(this, country, { v2: true }, this.metadata)\n // }\n\n }, {\n key: \"getType\",\n value: function getType() {\n return getNumberType(this, {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"format\",\n value: function format(_format, options) {\n return formatNumber(this, _format, options ? _objectSpread({}, options, {\n v2: true\n }) : {\n v2: true\n }, this.metadata);\n }\n }, {\n key: \"formatNational\",\n value: function formatNational(options) {\n return this.format('NATIONAL', options);\n }\n }, {\n key: \"formatInternational\",\n value: function formatInternational(options) {\n return this.format('INTERNATIONAL', options);\n }\n }, {\n key: \"getURI\",\n value: function getURI(options) {\n return this.format('RFC3966', options);\n }\n }]);\n\n return PhoneNumber;\n}();\n\nexport { PhoneNumber as default };\n\nvar isCountryCode = function isCountryCode(value) {\n return /^[A-Z]{2}$/.test(value);\n};\n//# sourceMappingURL=PhoneNumber.js.map","import Metadata from './metadata';\nimport matchesEntirely from './helpers/matchesEntirely';\nimport getNumberType from './helpers/getNumberType';\n/**\r\n * Checks if a given phone number is valid.\r\n *\r\n * If the `number` is a string, it will be parsed to an object,\r\n * but only if it contains only valid phone number characters (including punctuation).\r\n * If the `number` is an object, it is used as is.\r\n *\r\n * The optional `defaultCountry` argument is the default country.\r\n * I.e. it does not restrict to just that country,\r\n * e.g. in those cases where several countries share\r\n * the same phone numbering rules (NANPA, Britain, etc).\r\n * For example, even though the number `07624 369230`\r\n * belongs to the Isle of Man (\"IM\" country code)\r\n * calling `isValidNumber('07624369230', 'GB', metadata)`\r\n * still returns `true` because the country is not restricted to `GB`,\r\n * it's just that `GB` is the default one for the phone numbering rules.\r\n * For restricting the country see `isValidNumberForRegion()`\r\n * though restricting a country might not be a good idea.\r\n * https://github.com/googlei18n/libphonenumber/blob/master/FAQ.md#when-should-i-use-isvalidnumberforregion\r\n *\r\n * Examples:\r\n *\r\n * ```js\r\n * isValidNumber('+78005553535', metadata)\r\n * isValidNumber('8005553535', 'RU', metadata)\r\n * isValidNumber('88005553535', 'RU', metadata)\r\n * isValidNumber({ phone: '8005553535', country: 'RU' }, metadata)\r\n * ```\r\n */\n\nexport default function isValidNumber(input, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // This is just to support `isValidNumber({})`\n // for cases when `parseNumber()` returns `{}`.\n\n if (!input.country) {\n return false;\n }\n\n metadata.selectNumberingPlan(input.country, input.countryCallingCode); // By default, countries only have type regexps when it's required for\n // distinguishing different countries having the same `countryCallingCode`.\n\n if (metadata.hasTypes()) {\n return getNumberType(input, options, metadata.metadata) !== undefined;\n } // If there are no type regexps for this country in metadata then use\n // `nationalNumberPattern` as a \"better than nothing\" replacement.\n\n\n var national_number = options.v2 ? input.nationalNumber : input.phone;\n return matchesEntirely(national_number, metadata.nationalNumberPattern());\n}\n//# sourceMappingURL=validate_.js.map","import Metadata from '../metadata';\nimport { VALID_DIGITS } from '../constants';\nvar CAPTURING_DIGIT_PATTERN = new RegExp('([' + VALID_DIGITS + '])');\nexport default function stripIddPrefix(number, country, callingCode, metadata) {\n if (!country) {\n return;\n } // Check if the number is IDD-prefixed.\n\n\n var countryMetadata = new Metadata(metadata);\n countryMetadata.selectNumberingPlan(country, callingCode);\n var IDDPrefixPattern = new RegExp(countryMetadata.IDDPrefix());\n\n if (number.search(IDDPrefixPattern) !== 0) {\n return;\n } // Strip IDD prefix.\n\n\n number = number.slice(number.match(IDDPrefixPattern)[0].length); // If there're any digits after an IDD prefix,\n // then those digits are a country calling code.\n // Since no country code starts with a `0`,\n // the code below validates that the next digit (if present) is not `0`.\n\n var matchedGroups = number.match(CAPTURING_DIGIT_PATTERN);\n\n if (matchedGroups && matchedGroups[1] != null && matchedGroups[1].length > 0) {\n if (matchedGroups[1] === '0') {\n return;\n }\n }\n\n return number;\n}\n//# sourceMappingURL=stripIddPrefix.js.map","import extractNationalNumberFromPossiblyIncompleteNumber from './extractNationalNumberFromPossiblyIncompleteNumber';\nimport matchesEntirely from './matchesEntirely';\nimport checkNumberLength from './checkNumberLength';\n/**\r\n * Strips national prefix and carrier code from a complete phone number.\r\n * The difference from the non-\"FromCompleteNumber\" function is that\r\n * it won't extract national prefix if the resultant number is too short\r\n * to be a complete number for the selected phone numbering plan.\r\n * @param {string} number — Complete phone number digits.\r\n * @param {Metadata} metadata — Metadata with a phone numbering plan selected.\r\n * @return {object} `{ nationalNumber: string, carrierCode: string? }`.\r\n */\n\nexport default function extractNationalNumber(number, metadata) {\n // Parsing national prefixes and carrier codes\n // is only required for local phone numbers\n // but some people don't understand that\n // and sometimes write international phone numbers\n // with national prefixes (or maybe even carrier codes).\n // http://ucken.blogspot.ru/2016/03/trunk-prefixes-in-skype4b.html\n // Google's original library forgives such mistakes\n // and so does this library, because it has been requested:\n // https://github.com/catamphetamine/libphonenumber-js/issues/127\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(number, metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n\n if (!shouldExtractNationalPrefix(number, nationalNumber, metadata)) {\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n } // If a national prefix has been extracted, check to see\n // if the resultant number isn't too short.\n // Same code in Google's `libphonenumber`:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3291-L3302\n // For some reason, they do this check right after the `national_number_pattern` check\n // this library does in `shouldExtractNationalPrefix()` function.\n // Why is there a second \"resultant\" number validity check?\n // They don't provide an explanation.\n // This library just copies the behavior.\n\n\n if (number.length !== nationalNumber.length + (carrierCode ? carrierCode.length : 0)) {\n // If not using legacy generated metadata (before version `1.0.18`)\n // then it has \"possible lengths\", so use those to validate the number length.\n if (metadata.possibleLengths()) {\n // \"We require that the NSN remaining after stripping the national prefix and\n // carrier code be long enough to be a possible length for the region.\n // Otherwise, we don't do the stripping, since the original number could be\n // a valid short number.\"\n // https://github.com/google/libphonenumber/blob/876268eb1ad6cdc1b7b5bef17fc5e43052702d57/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L3236-L3250\n switch (checkNumberLength(nationalNumber, metadata)) {\n case 'TOO_SHORT':\n case 'INVALID_LENGTH':\n // case 'IS_POSSIBLE_LOCAL_ONLY':\n // Don't strip the national prefix.\n return {\n nationalNumber: number\n };\n }\n }\n }\n\n return {\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n} // In some countries, the same digit could be a national prefix\n// or a leading digit of a valid phone number.\n// For example, in Russia, national prefix is `8`,\n// and also `800 555 35 35` is a valid number\n// in which `8` is not a national prefix, but the first digit\n// of a national (significant) number.\n// Same's with Belarus:\n// `82004910060` is a valid national (significant) number,\n// but `2004910060` is not.\n// To support such cases (to prevent the code from always stripping\n// national prefix), a condition is imposed: a national prefix\n// is not extracted when the original number is \"viable\" and the\n// resultant number is not, a \"viable\" national number being the one\n// that matches `national_number_pattern`.\n\nfunction shouldExtractNationalPrefix(number, nationalSignificantNumber, metadata) {\n // The equivalent in Google's code is:\n // https://github.com/google/libphonenumber/blob/e326fa1fc4283bb05eb35cb3c15c18f98a31af33/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java#L2969-L3004\n if (matchesEntirely(number, metadata.nationalNumberPattern()) && !matchesEntirely(nationalSignificantNumber, metadata.nationalNumberPattern())) {\n return false;\n } // Just \"possible\" number check would be more relaxed, so it's not used.\n // if (isPossibleNumber(number, metadata) &&\n // \t!isPossibleNumber(numberWithNationalPrefixExtracted, metadata)) {\n // \treturn false\n // }\n\n\n return true;\n}\n//# sourceMappingURL=extractNationalNumber.js.map","/**\r\n * Strips any national prefix (such as 0, 1) present in a\r\n * (possibly incomplete) number provided.\r\n * \"Carrier codes\" are only used in Colombia and Brazil,\r\n * and only when dialing within those countries from a mobile phone to a fixed line number.\r\n * Sometimes it won't actually strip national prefix\r\n * and will instead prepend some digits to the `number`:\r\n * for example, when number `2345678` is passed with `VI` country selected,\r\n * it will return `{ number: \"3402345678\" }`, because `340` area code is prepended.\r\n * @param {string} number — National number digits.\r\n * @param {object} metadata — Metadata with country selected.\r\n * @return {object} `{ nationalNumber: string, nationalPrefix: string? carrierCode: string? }`.\r\n */\nexport default function extractNationalNumberFromPossiblyIncompleteNumber(number, metadata) {\n if (number && metadata.numberingPlan.nationalPrefixForParsing()) {\n // See METADATA.md for the description of\n // `national_prefix_for_parsing` and `national_prefix_transform_rule`.\n // Attempt to parse the first digits as a national prefix.\n var prefixPattern = new RegExp('^(?:' + metadata.numberingPlan.nationalPrefixForParsing() + ')');\n var prefixMatch = prefixPattern.exec(number);\n\n if (prefixMatch) {\n var nationalNumber;\n var carrierCode; // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n // If a `national_prefix_for_parsing` has any \"capturing groups\"\n // then it means that the national (significant) number is equal to\n // those \"capturing groups\" transformed via `national_prefix_transform_rule`,\n // and nothing could be said about the actual national prefix:\n // what is it and was it even there.\n // If a `national_prefix_for_parsing` doesn't have any \"capturing groups\",\n // then everything it matches is a national prefix.\n // To determine whether `national_prefix_for_parsing` matched any\n // \"capturing groups\", the value of the result of calling `.exec()`\n // is looked at, and if it has non-undefined values where there're\n // \"capturing groups\" in the regular expression, then it means\n // that \"capturing groups\" have been matched.\n // It's not possible to tell whether there'll be any \"capturing gropus\"\n // before the matching process, because a `national_prefix_for_parsing`\n // could exhibit both behaviors.\n\n var capturedGroupsCount = prefixMatch.length - 1;\n var hasCapturedGroups = capturedGroupsCount > 0 && prefixMatch[capturedGroupsCount];\n\n if (metadata.nationalPrefixTransformRule() && hasCapturedGroups) {\n nationalNumber = number.replace(prefixPattern, metadata.nationalPrefixTransformRule()); // If there's more than one captured group,\n // then carrier code is the second one.\n\n if (capturedGroupsCount > 1) {\n carrierCode = prefixMatch[1];\n }\n } // If there're no \"capturing groups\",\n // or if there're \"capturing groups\" but no\n // `national_prefix_transform_rule`,\n // then just strip the national prefix from the number,\n // and possibly a carrier code.\n // Seems like there could be more.\n else {\n // `prefixBeforeNationalNumber` is the whole substring matched by\n // the `national_prefix_for_parsing` regular expression.\n // There seem to be no guarantees that it's just a national prefix.\n // For example, if there's a carrier code, it's gonna be a\n // part of `prefixBeforeNationalNumber` too.\n var prefixBeforeNationalNumber = prefixMatch[0];\n nationalNumber = number.slice(prefixBeforeNationalNumber.length); // If there's at least one captured group,\n // then carrier code is the first one.\n\n if (hasCapturedGroups) {\n carrierCode = prefixMatch[1];\n }\n } // Tries to guess whether a national prefix was present in the input.\n // This is not something copy-pasted from Google's library:\n // they don't seem to have an equivalent for that.\n // So this isn't an \"officially approved\" way of doing something like that.\n // But since there seems no other existing method, this library uses it.\n\n\n var nationalPrefix;\n\n if (hasCapturedGroups) {\n var possiblePositionOfTheFirstCapturedGroup = number.indexOf(prefixMatch[1]);\n var possibleNationalPrefix = number.slice(0, possiblePositionOfTheFirstCapturedGroup); // Example: an Argentinian (AR) phone number `0111523456789`.\n // `prefixMatch[0]` is `01115`, and `$1` is `11`,\n // and the rest of the phone number is `23456789`.\n // The national number is transformed via `9$1` to `91123456789`.\n // National prefix `0` is detected being present at the start.\n // if (possibleNationalPrefix.indexOf(metadata.numberingPlan.nationalPrefix()) === 0) {\n\n if (possibleNationalPrefix === metadata.numberingPlan.nationalPrefix()) {\n nationalPrefix = metadata.numberingPlan.nationalPrefix();\n }\n } else {\n nationalPrefix = prefixMatch[0];\n }\n\n return {\n nationalNumber: nationalNumber,\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode\n };\n }\n }\n\n return {\n nationalNumber: number\n };\n}\n//# sourceMappingURL=extractNationalNumberFromPossiblyIncompleteNumber.js.map","import stripIddPrefix from './stripIddPrefix';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './extractCountryCallingCodeFromInternationalNumberWithoutPlusSign';\nimport Metadata from '../metadata';\nimport { MAX_LENGTH_COUNTRY_CODE } from '../constants';\n/**\r\n * Converts a phone number digits (possibly with a `+`)\r\n * into a calling code and the rest phone number digits.\r\n * The \"rest phone number digits\" could include\r\n * a national prefix, carrier code, and national\r\n * (significant) number.\r\n * @param {string} number — Phone number digits (possibly with a `+`).\r\n * @param {string} [country] — Default country.\r\n * @param {string} [callingCode] — Default calling code (some phone numbering plans are non-geographic).\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`\r\n * @example\r\n * // Returns `{ countryCallingCode: \"1\", number: \"2133734253\" }`.\r\n * extractCountryCallingCode('2133734253', 'US', null, metadata)\r\n * extractCountryCallingCode('2133734253', null, '1', metadata)\r\n * extractCountryCallingCode('+12133734253', null, null, metadata)\r\n * extractCountryCallingCode('+12133734253', 'RU', null, metadata)\r\n */\n\nexport default function extractCountryCallingCode(number, country, callingCode, metadata) {\n if (!number) {\n return {};\n } // If this is not an international phone number,\n // then either extract an \"IDD\" prefix, or extract a\n // country calling code from a number by autocorrecting it\n // by prepending a leading `+` in cases when it starts\n // with the country calling code.\n // https://wikitravel.org/en/International_dialling_prefix\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n\n\n if (number[0] !== '+') {\n // Convert an \"out-of-country\" dialing phone number\n // to a proper international phone number.\n var numberWithoutIDD = stripIddPrefix(number, country, callingCode, metadata); // If an IDD prefix was stripped then\n // convert the number to international one\n // for subsequent parsing.\n\n if (numberWithoutIDD && numberWithoutIDD !== number) {\n number = '+' + numberWithoutIDD;\n } else {\n // Check to see if the number starts with the country calling code\n // for the default country. If so, we remove the country calling code,\n // and do some checks on the validity of the number before and after.\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n if (country || callingCode) {\n var _extractCountryCallin = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n shorterNumber = _extractCountryCallin.number;\n\n if (countryCallingCode) {\n return {\n countryCallingCode: countryCallingCode,\n number: shorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n }\n } // Fast abortion: country codes do not begin with a '0'\n\n\n if (number[1] === '0') {\n return {};\n }\n\n metadata = new Metadata(metadata); // The thing with country phone codes\n // is that they are orthogonal to each other\n // i.e. there's no such country phone code A\n // for which country phone code B exists\n // where B starts with A.\n // Therefore, while scanning digits,\n // if a valid country code is found,\n // that means that it is the country code.\n //\n\n var i = 2;\n\n while (i - 1 <= MAX_LENGTH_COUNTRY_CODE && i <= number.length) {\n var _countryCallingCode = number.slice(1, i);\n\n if (metadata.hasCallingCode(_countryCallingCode)) {\n metadata.selectNumberingPlan(_countryCallingCode);\n return {\n countryCallingCode: _countryCallingCode,\n number: number.slice(i)\n };\n }\n\n i++;\n }\n\n return {};\n}\n//# sourceMappingURL=extractCountryCallingCode.js.map","import Metadata from '../metadata';\nimport matchesEntirely from './matchesEntirely';\nimport extractNationalNumber from './extractNationalNumber';\nimport checkNumberLength from './checkNumberLength';\nimport getCountryCallingCode from '../getCountryCallingCode';\n/**\r\n * Sometimes some people incorrectly input international phone numbers\r\n * without the leading `+`. This function corrects such input.\r\n * @param {string} number — Phone number digits.\r\n * @param {string?} country\r\n * @param {string?} callingCode\r\n * @param {object} metadata\r\n * @return {object} `{ countryCallingCode: string?, number: string }`.\r\n */\n\nexport default function extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(number, country, callingCode, metadata) {\n var countryCallingCode = country ? getCountryCallingCode(country, metadata) : callingCode;\n\n if (number.indexOf(countryCallingCode) === 0) {\n metadata = new Metadata(metadata);\n metadata.selectNumberingPlan(country, callingCode);\n var possibleShorterNumber = number.slice(countryCallingCode.length);\n\n var _extractNationalNumbe = extractNationalNumber(possibleShorterNumber, metadata),\n possibleShorterNationalNumber = _extractNationalNumbe.nationalNumber;\n\n var _extractNationalNumbe2 = extractNationalNumber(number, metadata),\n nationalNumber = _extractNationalNumbe2.nationalNumber; // If the number was not valid before but is valid now,\n // or if it was too long before, we consider the number\n // with the country calling code stripped to be a better result\n // and keep that instead.\n // For example, in Germany (+49), `49` is a valid area code,\n // so if a number starts with `49`, it could be both a valid\n // national German number or an international number without\n // a leading `+`.\n\n\n if (!matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) && matchesEntirely(possibleShorterNationalNumber, metadata.nationalNumberPattern()) || checkNumberLength(nationalNumber, metadata) === 'TOO_LONG') {\n return {\n countryCallingCode: countryCallingCode,\n number: possibleShorterNumber\n };\n }\n }\n\n return {\n number: number\n };\n}\n//# sourceMappingURL=extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js.map","import Metadata from '../metadata';\nimport getNumberType from './getNumberType';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nexport default function getCountryByCallingCode(callingCode, nationalPhoneNumber, metadata) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(callingCode)) {\n return '001';\n }\n } // Is always non-empty, because `callingCode` is always valid\n\n\n var possibleCountries = metadata.getCountryCodesForCallingCode(callingCode);\n\n if (!possibleCountries) {\n return;\n } // If there's just one country corresponding to the country code,\n // then just return it, without further phone number digits validation.\n\n\n if (possibleCountries.length === 1) {\n return possibleCountries[0];\n }\n\n return selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata.metadata);\n}\n\nfunction selectCountryFromList(possibleCountries, nationalPhoneNumber, metadata) {\n // Re-create `metadata` because it will be selecting a `country`.\n metadata = new Metadata(metadata);\n\n for (var _iterator = possibleCountries, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i >= _iterator.length) break;\n _ref = _iterator[_i++];\n } else {\n _i = _iterator.next();\n if (_i.done) break;\n _ref = _i.value;\n }\n\n var country = _ref;\n metadata.country(country); // Leading digits check would be the simplest one\n\n if (metadata.leadingDigits()) {\n if (nationalPhoneNumber && nationalPhoneNumber.search(metadata.leadingDigits()) === 0) {\n return country;\n }\n } // Else perform full validation with all of those\n // fixed-line/mobile/etc regular expressions.\n else if (getNumberType({\n phone: nationalPhoneNumber,\n country: country\n }, undefined, metadata.metadata)) {\n return country;\n }\n }\n}\n//# sourceMappingURL=getCountryByCallingCode.js.map","// This is a port of Google Android `libphonenumber`'s\n// `phonenumberutil.js` of December 31th, 2018.\n//\n// https://github.com/googlei18n/libphonenumber/commits/master/javascript/i18n/phonenumbers/phonenumberutil.js\nimport { VALID_DIGITS, PLUS_CHARS, MIN_LENGTH_FOR_NSN, MAX_LENGTH_FOR_NSN } from './constants';\nimport ParseError from './ParseError';\nimport Metadata from './metadata';\nimport isViablePhoneNumber from './helpers/isViablePhoneNumber';\nimport extractExtension from './helpers/extension/extractExtension';\nimport parseIncompletePhoneNumber from './parseIncompletePhoneNumber';\nimport getCountryCallingCode from './getCountryCallingCode';\nimport { isPossibleNumber } from './isPossibleNumber_';\nimport { parseRFC3966 } from './helpers/RFC3966';\nimport PhoneNumber from './PhoneNumber';\nimport matchesEntirely from './helpers/matchesEntirely';\nimport extractCountryCallingCode from './helpers/extractCountryCallingCode';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign';\nimport extractNationalNumber from './helpers/extractNationalNumber';\nimport stripIddPrefix from './helpers/stripIddPrefix';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode'; // We don't allow input strings for parsing to be longer than 250 chars.\n// This prevents malicious input from consuming CPU.\n\nvar MAX_INPUT_STRING_LENGTH = 250; // This consists of the plus symbol, digits, and arabic-indic digits.\n\nvar PHONE_NUMBER_START_PATTERN = new RegExp('[' + PLUS_CHARS + VALID_DIGITS + ']'); // Regular expression of trailing characters that we want to remove.\n// A trailing `#` is sometimes used when writing phone numbers with extensions in US.\n// Example: \"+1 (645) 123 1234-910#\" number has extension \"910\".\n\nvar AFTER_PHONE_NUMBER_END_PATTERN = new RegExp('[^' + VALID_DIGITS + '#' + ']+$');\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false; // `options`:\n// {\n// country:\n// {\n// restrict - (a two-letter country code)\n// the phone number must be in this country\n//\n// default - (a two-letter country code)\n// default country to use for phone number parsing and validation\n// (if no country code could be derived from the phone number)\n// }\n// }\n//\n// Returns `{ country, number }`\n//\n// Example use cases:\n//\n// ```js\n// parse('8 (800) 555-35-35', 'RU')\n// parse('8 (800) 555-35-35', 'RU', metadata)\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } })\n// parse('8 (800) 555-35-35', { country: { default: 'RU' } }, metadata)\n// parse('+7 800 555 35 35')\n// parse('+7 800 555 35 35', metadata)\n// ```\n//\n\nexport default function parse(text, options, metadata) {\n // If assigning the `{}` default value is moved to the arguments above,\n // code coverage would decrease for some weird reason.\n options = options || {};\n metadata = new Metadata(metadata); // Validate `defaultCountry`.\n\n if (options.defaultCountry && !metadata.hasCountry(options.defaultCountry)) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n throw new Error(\"Unknown country: \".concat(options.defaultCountry));\n } // Parse the phone number.\n\n\n var _parseInput = parseInput(text, options.v2),\n formattedPhoneNumber = _parseInput.number,\n ext = _parseInput.ext; // If the phone number is not viable then return nothing.\n\n\n if (!formattedPhoneNumber) {\n if (options.v2) {\n throw new ParseError('NOT_A_NUMBER');\n }\n\n return {};\n }\n\n var _parsePhoneNumber = parsePhoneNumber(formattedPhoneNumber, options.defaultCountry, options.defaultCallingCode, metadata),\n country = _parsePhoneNumber.country,\n nationalNumber = _parsePhoneNumber.nationalNumber,\n countryCallingCode = _parsePhoneNumber.countryCallingCode,\n carrierCode = _parsePhoneNumber.carrierCode;\n\n if (!metadata.hasSelectedNumberingPlan()) {\n if (options.v2) {\n throw new ParseError('INVALID_COUNTRY');\n }\n\n return {};\n } // Validate national (significant) number length.\n\n\n if (!nationalNumber || nationalNumber.length < MIN_LENGTH_FOR_NSN) {\n // Won't throw here because the regexp already demands length > 1.\n\n /* istanbul ignore if */\n if (options.v2) {\n throw new ParseError('TOO_SHORT');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n } // Validate national (significant) number length.\n //\n // A sidenote:\n //\n // They say that sometimes national (significant) numbers\n // can be longer than `MAX_LENGTH_FOR_NSN` (e.g. in Germany).\n // https://github.com/googlei18n/libphonenumber/blob/7e1748645552da39c4e1ba731e47969d97bdb539/resources/phonenumber.proto#L36\n // Such numbers will just be discarded.\n //\n\n\n if (nationalNumber.length > MAX_LENGTH_FOR_NSN) {\n if (options.v2) {\n throw new ParseError('TOO_LONG');\n } // Google's demo just throws an error in this case.\n\n\n return {};\n }\n\n if (options.v2) {\n var phoneNumber = new PhoneNumber(countryCallingCode, nationalNumber, metadata.metadata);\n\n if (country) {\n phoneNumber.country = country;\n }\n\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n\n if (ext) {\n phoneNumber.ext = ext;\n }\n\n return phoneNumber;\n } // Check if national phone number pattern matches the number.\n // National number pattern is different for each country,\n // even for those ones which are part of the \"NANPA\" group.\n\n\n var valid = (options.extended ? metadata.hasSelectedNumberingPlan() : country) ? matchesEntirely(nationalNumber, metadata.nationalNumberPattern()) : false;\n\n if (!options.extended) {\n return valid ? result(country, nationalNumber, ext) : {};\n } // isInternational: countryCallingCode !== undefined\n\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n carrierCode: carrierCode,\n valid: valid,\n possible: valid ? true : options.extended === true && metadata.possibleLengths() && isPossibleNumber(nationalNumber, metadata) ? true : false,\n phone: nationalNumber,\n ext: ext\n };\n}\n/**\r\n * Extracts a formatted phone number from text.\r\n * Doesn't guarantee that the extracted phone number\r\n * is a valid phone number (for example, doesn't validate its length).\r\n * @param {string} text\r\n * @param {boolean} throwOnError — By default, it won't throw if the text is too long.\r\n * @return {string}\r\n * @example\r\n * // Returns \"(213) 373-4253\".\r\n * extractFormattedPhoneNumber(\"Call (213) 373-4253 for assistance.\")\r\n */\n\nexport function extractFormattedPhoneNumber(text, throwOnError) {\n if (!text) {\n return;\n }\n\n if (text.length > MAX_INPUT_STRING_LENGTH) {\n if (throwOnError) {\n throw new ParseError('TOO_LONG');\n }\n\n return;\n } // Attempt to extract a possible number from the string passed in\n\n\n var startsAt = text.search(PHONE_NUMBER_START_PATTERN);\n\n if (startsAt < 0) {\n return;\n }\n\n return text // Trim everything to the left of the phone number\n .slice(startsAt) // Remove trailing non-numerical characters\n .replace(AFTER_PHONE_NUMBER_END_PATTERN, '');\n}\n/**\r\n * @param {string} text - Input.\r\n * @return {object} `{ ?number, ?ext }`.\r\n */\n\nfunction parseInput(text, v2) {\n // Parse RFC 3966 phone number URI.\n if (text && text.indexOf('tel:') === 0) {\n return parseRFC3966(text);\n }\n\n var number = extractFormattedPhoneNumber(text, v2); // If the phone number is not viable, then abort.\n\n if (!number || !isViablePhoneNumber(number)) {\n return {};\n } // Attempt to parse extension first, since it doesn't require region-specific\n // data and we want to have the non-normalised number here.\n\n\n var withExtensionStripped = extractExtension(number);\n\n if (withExtensionStripped.ext) {\n return withExtensionStripped;\n }\n\n return {\n number: number\n };\n}\n/**\r\n * Creates `parse()` result object.\r\n */\n\n\nfunction result(country, nationalNumber, ext) {\n var result = {\n country: country,\n phone: nationalNumber\n };\n\n if (ext) {\n result.ext = ext;\n }\n\n return result;\n}\n/**\r\n * Parses a viable phone number.\r\n * @param {string} formattedPhoneNumber — Example: \"(213) 373-4253\".\r\n * @param {string} [defaultCountry]\r\n * @param {string} [defaultCallingCode]\r\n * @param {Metadata} metadata\r\n * @return {object} Returns `{ country: string?, countryCallingCode: string?, nationalNumber: string? }`.\r\n */\n\n\nfunction parsePhoneNumber(formattedPhoneNumber, defaultCountry, defaultCallingCode, metadata) {\n // Extract calling code from phone number.\n var _extractCountryCallin = extractCountryCallingCode(parseIncompletePhoneNumber(formattedPhoneNumber), defaultCountry, defaultCallingCode, metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number; // Choose a country by `countryCallingCode`.\n\n\n var country;\n\n if (countryCallingCode) {\n metadata.selectNumberingPlan(countryCallingCode);\n } // If `formattedPhoneNumber` is in \"national\" format\n // then `number` is defined and `countryCallingCode` isn't.\n else if (number && (defaultCountry || defaultCallingCode)) {\n metadata.selectNumberingPlan(defaultCountry, defaultCallingCode);\n\n if (defaultCountry) {\n country = defaultCountry;\n } else {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n country = '001';\n }\n }\n }\n\n countryCallingCode = defaultCallingCode || getCountryCallingCode(defaultCountry, metadata.metadata);\n } else return {};\n\n if (!number) {\n return {\n countryCallingCode: countryCallingCode\n };\n }\n\n var _extractNationalNumbe = extractNationalNumber(parseIncompletePhoneNumber(number), metadata),\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode; // Sometimes there are several countries\n // corresponding to the same country phone code\n // (e.g. NANPA countries all having `1` country phone code).\n // Therefore, to reliably determine the exact country,\n // national (significant) number should have been parsed first.\n //\n // When `metadata.json` is generated, all \"ambiguous\" country phone codes\n // get their countries populated with the full set of\n // \"phone number type\" regular expressions.\n //\n\n\n var exactCountry = getCountryByCallingCode(countryCallingCode, nationalNumber, metadata);\n\n if (exactCountry) {\n country = exactCountry;\n /* istanbul ignore if */\n\n if (exactCountry === '001') {// Can't happen with `USE_NON_GEOGRAPHIC_COUNTRY_CODE` being `false`.\n // If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` is set to `true` for some reason,\n // then remove the \"istanbul ignore if\".\n } else {\n metadata.country(country);\n }\n }\n\n return {\n country: country,\n countryCallingCode: countryCallingCode,\n nationalNumber: nationalNumber,\n carrierCode: carrierCode\n };\n}\n//# sourceMappingURL=parse_.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parseNumber from './parse_';\nexport default function parsePhoneNumber(text, options, metadata) {\n return parseNumber(text, _objectSpread({}, options, {\n v2: true\n }), metadata);\n}\n//# sourceMappingURL=parsePhoneNumber_.js.map","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport parsePhoneNumber_ from './parsePhoneNumber_';\nexport default function parsePhoneNumber() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumber_(text, options, metadata);\n}\nexport function normalizeArguments(args) {\n var _Array$prototype$slic = Array.prototype.slice.call(args),\n _Array$prototype$slic2 = _slicedToArray(_Array$prototype$slic, 4),\n arg_1 = _Array$prototype$slic2[0],\n arg_2 = _Array$prototype$slic2[1],\n arg_3 = _Array$prototype$slic2[2],\n arg_4 = _Array$prototype$slic2[3];\n\n var text;\n var options;\n var metadata; // If the phone number is passed as a string.\n // `parsePhoneNumber('88005553535', ...)`.\n\n if (typeof arg_1 === 'string') {\n text = arg_1;\n } else throw new TypeError('A text for parsing must be a string.'); // If \"default country\" argument is being passed then move it to `options`.\n // `parsePhoneNumber('88005553535', 'RU', [options], metadata)`.\n\n\n if (!arg_2 || typeof arg_2 === 'string') {\n if (arg_4) {\n options = arg_3;\n metadata = arg_4;\n } else {\n options = undefined;\n metadata = arg_3;\n }\n\n if (arg_2) {\n options = _objectSpread({\n defaultCountry: arg_2\n }, options);\n }\n } // `defaultCountry` is not passed.\n // Example: `parsePhoneNumber('+78005553535', [options], metadata)`.\n else if (isObject(arg_2)) {\n if (arg_3) {\n options = arg_2;\n metadata = arg_3;\n } else {\n metadata = arg_2;\n }\n } else throw new Error(\"Invalid second argument: \".concat(arg_2));\n\n return {\n text: text,\n options: options,\n metadata: metadata\n };\n} // Otherwise istanbul would show this as \"branch not covered\".\n\n/* istanbul ignore next */\n\nvar isObject = function isObject(_) {\n return _typeof(_) === 'object';\n};\n//# sourceMappingURL=parsePhoneNumber.js.map","function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport parsePhoneNumber from './parsePhoneNumber_';\nimport ParseError from './ParseError';\nimport { isSupportedCountry } from './metadata';\nexport default function parsePhoneNumberFromString(text, options, metadata) {\n // Validate `defaultCountry`.\n if (options && options.defaultCountry && !isSupportedCountry(options.defaultCountry, metadata)) {\n options = _objectSpread({}, options, {\n defaultCountry: undefined\n });\n } // Parse phone number.\n\n\n try {\n return parsePhoneNumber(text, options, metadata);\n } catch (error) {\n /* istanbul ignore else */\n if (error instanceof ParseError) {//\n } else {\n throw error;\n }\n }\n}\n//# sourceMappingURL=parsePhoneNumberFromString_.js.map","import { normalizeArguments } from './parsePhoneNumber';\nimport parsePhoneNumberFromString_ from './parsePhoneNumberFromString_';\nexport default function parsePhoneNumberFromString() {\n var _normalizeArguments = normalizeArguments(arguments),\n text = _normalizeArguments.text,\n options = _normalizeArguments.options,\n metadata = _normalizeArguments.metadata;\n\n return parsePhoneNumberFromString_(text, options, metadata);\n}\n//# sourceMappingURL=parsePhoneNumberFromString.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { parsePhoneNumberFromString } from 'libphonenumber-js';\nexport var IS_PHONE_NUMBER = 'isPhoneNumber';\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param value the potential phone number string to test\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function isPhoneNumber(value, region) {\n try {\n var phoneNum = parsePhoneNumberFromString(value, region);\n var result = phoneNum === null || phoneNum === void 0 ? void 0 : phoneNum.isValid();\n return !!result;\n }\n catch (error) {\n // logging?\n return false;\n }\n}\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function IsPhoneNumber(region, validationOptions) {\n return ValidateBy({\n name: IS_PHONE_NUMBER,\n constraints: [region],\n validator: {\n validate: function (value, args) { return isPhoneNumber(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid phone number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsPhoneNumber.js.map","import { withMetadata } from '../metadata'\r\nimport { parsePhoneNumberFromString as _parsePhoneNumberFromString } from '../../core/index'\r\n\r\nexport function parsePhoneNumberFromString() {\r\n\treturn withMetadata(_parsePhoneNumberFromString, arguments)\r\n}","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\nexport var IS_MILITARY_TIME = 'isMilitaryTime';\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function isMilitaryTime(value) {\n var militaryTimeRegex = /^([01]\\d|2[0-3]):?([0-5]\\d)$/;\n return typeof value === 'string' && matchesValidator(value, militaryTimeRegex);\n}\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function IsMilitaryTime(validationOptions) {\n return ValidateBy({\n name: IS_MILITARY_TIME,\n validator: {\n validate: function (value, args) { return isMilitaryTime(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid representation of military time in the format HH:MM'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMilitaryTime.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHash;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar lengths = {\n md5: 32,\n md4: 32,\n sha1: 40,\n sha256: 64,\n sha384: 96,\n sha512: 128,\n ripemd128: 32,\n ripemd160: 40,\n tiger128: 32,\n tiger160: 40,\n tiger192: 48,\n crc32: 8,\n crc32b: 8\n};\n\nfunction isHash(str, algorithm) {\n (0, _assertString.default)(str);\n var hash = new RegExp(\"^[a-fA-F0-9]{\".concat(lengths[algorithm], \"}$\"));\n return hash.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHashValidator from 'validator/lib/isHash';\nexport var IS_HASH = 'isHash';\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function isHash(value, algorithm) {\n return typeof value === 'string' && isHashValidator(value, algorithm);\n}\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function IsHash(algorithm, validationOptions) {\n return ValidateBy({\n name: IS_HASH,\n constraints: [algorithm],\n validator: {\n validate: function (value, args) { return isHash(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hash of type $constraint1'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsHash.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISSN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar issn = '^\\\\d{4}-?\\\\d{3}[\\\\dX]$';\n\nfunction isISSN(str) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n (0, _assertString.default)(str);\n var testIssn = issn;\n testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn;\n testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i');\n\n if (!testIssn.test(str)) {\n return false;\n }\n\n var digits = str.replace('-', '').toUpperCase();\n var checksum = 0;\n\n for (var i = 0; i < digits.length; i++) {\n var digit = digits[i];\n checksum += (digit === 'X' ? 10 : +digit) * (8 - i);\n }\n\n return checksum % 11 === 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISSNValidator from 'validator/lib/isISSN';\nexport var IS_ISSN = 'isISSN';\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function isISSN(value, options) {\n return typeof value === 'string' && isISSNValidator(value, options);\n}\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function IsISSN(options, validationOptions) {\n return ValidateBy({\n name: IS_ISSN,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isISSN(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a ISSN'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISSN.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { isISO8601 } from './IsISO8601';\nexport var IS_DATE_STRING = 'isDateString';\n/**\n * Alias for IsISO8601 validator\n */\nexport function isDateString(value, options) {\n return isISO8601(value, options);\n}\n/**\n * Alias for IsISO8601 validator\n */\nexport function IsDateString(options, validationOptions) {\n return ValidateBy({\n name: IS_DATE_STRING,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isDateString(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO 8601 date string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDateString.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBoolean;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction isBoolean(str) {\n (0, _assertString.default)(str);\n return ['true', 'false', '1', '0'].indexOf(str) >= 0;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBooleanValidator from 'validator/lib/isBoolean';\nexport var IS_BOOLEAN_STRING = 'isBooleanString';\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function isBooleanString(value) {\n return typeof value === 'string' && isBooleanValidator(value);\n}\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function IsBooleanString(validationOptions) {\n return ValidateBy({\n name: IS_BOOLEAN_STRING,\n validator: {\n validate: function (value, args) { return isBooleanString(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a boolean string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBooleanString.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isNumeric;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _alpha = require(\"./alpha\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar numericNoSymbols = /^[0-9]+$/;\n\nfunction isNumeric(str, options) {\n (0, _assertString.default)(str);\n\n if (options && options.no_symbols) {\n return numericNoSymbols.test(str);\n }\n\n return new RegExp(\"^[+-]?([0-9]*[\".concat((options || {}).locale ? _alpha.decimal[options.locale] : '.', \"])?[0-9]+$\")).test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isNumericValidator from 'validator/lib/isNumeric';\nexport var IS_NUMBER_STRING = 'isNumberString';\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function isNumberString(value, options) {\n return typeof value === 'string' && isNumericValidator(value, options);\n}\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function IsNumberString(options, validationOptions) {\n return ValidateBy({\n name: IS_NUMBER_STRING,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isNumberString(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a number string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNumberString.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBase32;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar base32 = /^[A-Z2-7]+=*$/;\n\nfunction isBase32(str) {\n (0, _assertString.default)(str);\n var len = str.length;\n\n if (len % 8 === 0 && base32.test(str)) {\n return true;\n }\n\n return false;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase32Validator from 'validator/lib/isBase32';\nexport var IS_BASE32 = 'isBase32';\n/**\n * Checks if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase32(value) {\n return typeof value === 'string' && isBase32Validator(value);\n}\n/**\n * Check if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase32(validationOptions) {\n return ValidateBy({\n name: IS_BASE32,\n validator: {\n validate: function (value, args) { return isBase32(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be base32 encoded'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBase32.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBIC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar isBICReg = /^[A-z]{4}[A-z]{2}\\w{2}(\\w{3})?$/;\n\nfunction isBIC(str) {\n (0, _assertString.default)(str);\n return isBICReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBICValidator from 'validator/lib/isBIC';\nexport var IS_BIC = 'isBIC';\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function isBIC(value) {\n return typeof value === 'string' && isBICValidator(value);\n}\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function IsBIC(validationOptions) {\n return ValidateBy({\n name: IS_BIC,\n validator: {\n validate: function (value, args) { return isBIC(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a BIC or SWIFT code'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBIC.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isBtcAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// supports Bech32 addresses\nvar btc = /^(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$/;\n\nfunction isBtcAddress(str) {\n (0, _assertString.default)(str);\n return btc.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBtcAddressValidator from 'validator/lib/isBtcAddress';\nexport var IS_BTC_ADDRESS = 'isBtcAddress';\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function isBtcAddress(value) {\n return typeof value === 'string' && isBtcAddressValidator(value);\n}\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function IsBtcAddress(validationOptions) {\n return ValidateBy({\n name: IS_BTC_ADDRESS,\n validator: {\n validate: function (value, args) { return isBtcAddress(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a BTC address'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBtcAddress.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isDataURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validMediaType = /^[a-z]+\\/[a-z0-9\\-\\+]+$/i;\nvar validAttribute = /^[a-z\\-]+=[a-z0-9\\-]+$/i;\nvar validData = /^[a-z0-9!\\$&'\\(\\)\\*\\+,;=\\-\\._~:@\\/\\?%\\s]*$/i;\n\nfunction isDataURI(str) {\n (0, _assertString.default)(str);\n var data = str.split(',');\n\n if (data.length < 2) {\n return false;\n }\n\n var attributes = data.shift().trim().split(';');\n var schemeAndMediaType = attributes.shift();\n\n if (schemeAndMediaType.substr(0, 5) !== 'data:') {\n return false;\n }\n\n var mediaType = schemeAndMediaType.substr(5);\n\n if (mediaType !== '' && !validMediaType.test(mediaType)) {\n return false;\n }\n\n for (var i = 0; i < attributes.length; i++) {\n if (i === attributes.length - 1 && attributes[i].toLowerCase() === 'base64') {// ok\n } else if (!validAttribute.test(attributes[i])) {\n return false;\n }\n }\n\n for (var _i = 0; _i < data.length; _i++) {\n if (!validData.test(data[_i])) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDataURIValidator from 'validator/lib/isDataURI';\nexport var IS_DATA_URI = 'isDataURI';\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isDataURI(value) {\n return typeof value === 'string' && isDataURIValidator(value);\n}\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsDataURI(validationOptions) {\n return ValidateBy({\n name: IS_DATA_URI,\n validator: {\n validate: function (value, args) { return isDataURI(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a data uri format'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDataURI.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEAN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * The most commonly used EAN standard is\n * the thirteen-digit EAN-13, while the\n * less commonly used 8-digit EAN-8 barcode was\n * introduced for use on small packages.\n * EAN consists of:\n * GS1 prefix, manufacturer code, product code and check digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number\n */\n\n/**\n * Define EAN Lenghts; 8 for EAN-8; 13 for EAN-13\n * and Regular Expression for valid EANs (EAN-8, EAN-13),\n * with exact numberic matching of 8 or 13 digits [0-9]\n */\nvar LENGTH_EAN_8 = 8;\nvar validEanRegex = /^(\\d{8}|\\d{13})$/;\n/**\n * Get position weight given:\n * EAN length and digit index/position\n *\n * @param {number} length\n * @param {number} index\n * @return {number}\n */\n\nfunction getPositionWeightThroughLengthAndIndex(length, index) {\n if (length === LENGTH_EAN_8) {\n return index % 2 === 0 ? 3 : 1;\n }\n\n return index % 2 === 0 ? 1 : 3;\n}\n/**\n * Calculate EAN Check Digit\n * Reference: https://en.wikipedia.org/wiki/International_Article_Number#Calculation_of_checksum_digit\n *\n * @param {string} ean\n * @return {number}\n */\n\n\nfunction calculateCheckDigit(ean) {\n var checksum = ean.slice(0, -1).split('').map(function (char, index) {\n return Number(char) * getPositionWeightThroughLengthAndIndex(ean.length, index);\n }).reduce(function (acc, partialSum) {\n return acc + partialSum;\n }, 0);\n var remainder = 10 - checksum % 10;\n return remainder < 10 ? remainder : 0;\n}\n/**\n * Check if string is valid EAN:\n * Matches EAN-8/EAN-13 regex\n * Has valid check digit.\n *\n * @param {string} str\n * @return {boolean}\n */\n\n\nfunction isEAN(str) {\n (0, _assertString.default)(str);\n var actualCheckDigit = Number(str.slice(-1));\n return validEanRegex.test(str) && actualCheckDigit === calculateCheckDigit(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEANValidator from 'validator/lib/isEAN';\nexport var IS_EAN = 'isEAN';\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function isEAN(value) {\n return typeof value === 'string' && isEANValidator(value);\n}\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsEAN(validationOptions) {\n return ValidateBy({\n name: IS_EAN,\n validator: {\n validate: function (value, args) { return isEAN(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an EAN (European Article Number)'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsEAN.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isEthereumAddress;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar eth = /^(0x)[0-9a-f]{40}$/i;\n\nfunction isEthereumAddress(str) {\n (0, _assertString.default)(str);\n return eth.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEthereumAddressValidator from 'validator/lib/isEthereumAddress';\nexport var IS_ETHEREUM_ADDRESS = 'isEthereumAddress';\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function isEthereumAddress(value) {\n return typeof value === 'string' && isEthereumAddressValidator(value);\n}\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function IsEthereumAddress(validationOptions) {\n return ValidateBy({\n name: IS_ETHEREUM_ADDRESS,\n validator: {\n validate: function (value, args) { return isEthereumAddress(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an Ethereum address'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsEthereumAddress.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isHSL;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar hslcomma = /^(hsl)a?\\(\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn|\\s*)(\\s*,\\s*(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}\\s*(,\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?)\\s*)?\\)$/i;\nvar hslspace = /^(hsl)a?\\(\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?))(deg|grad|rad|turn|\\s)(\\s*(\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%){2}\\s*(\\/\\s*((\\+|\\-)?([0-9]+(\\.[0-9]+)?(e(\\+|\\-)?[0-9]+)?|\\.[0-9]+(e(\\+|\\-)?[0-9]+)?)%?)\\s*)?\\)$/i;\n\nfunction isHSL(str) {\n (0, _assertString.default)(str);\n return hslcomma.test(str) || hslspace.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHSLValidator from 'validator/lib/isHSL';\nexport var IS_HSL = 'isHSL';\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function isHSL(value) {\n return typeof value === 'string' && isHSLValidator(value);\n}\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function IsHSL(validationOptions) {\n return ValidateBy({\n name: IS_HSL,\n validator: {\n validate: function (value, args) { return isHSL(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a HSL color'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsHSL.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIBAN;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * List of country codes with\n * corresponding IBAN regular expression\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n */\nvar ibanRegexThroughCountryCode = {\n AD: /^(AD[0-9]{2})\\d{8}[A-Z0-9]{12}$/,\n AE: /^(AE[0-9]{2})\\d{3}\\d{16}$/,\n AL: /^(AL[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n AT: /^(AT[0-9]{2})\\d{16}$/,\n AZ: /^(AZ[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n BA: /^(BA[0-9]{2})\\d{16}$/,\n BE: /^(BE[0-9]{2})\\d{12}$/,\n BG: /^(BG[0-9]{2})[A-Z]{4}\\d{6}[A-Z0-9]{8}$/,\n BH: /^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,\n BR: /^(BR[0-9]{2})\\d{23}[A-Z]{1}[A-Z0-9]{1}$/,\n BY: /^(BY[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n CH: /^(CH[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n CR: /^(CR[0-9]{2})\\d{18}$/,\n CY: /^(CY[0-9]{2})\\d{8}[A-Z0-9]{16}$/,\n CZ: /^(CZ[0-9]{2})\\d{20}$/,\n DE: /^(DE[0-9]{2})\\d{18}$/,\n DK: /^(DK[0-9]{2})\\d{14}$/,\n DO: /^(DO[0-9]{2})[A-Z]{4}\\d{20}$/,\n EE: /^(EE[0-9]{2})\\d{16}$/,\n EG: /^(EG[0-9]{2})\\d{25}$/,\n ES: /^(ES[0-9]{2})\\d{20}$/,\n FI: /^(FI[0-9]{2})\\d{14}$/,\n FO: /^(FO[0-9]{2})\\d{14}$/,\n FR: /^(FR[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n GB: /^(GB[0-9]{2})[A-Z]{4}\\d{14}$/,\n GE: /^(GE[0-9]{2})[A-Z0-9]{2}\\d{16}$/,\n GI: /^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,\n GL: /^(GL[0-9]{2})\\d{14}$/,\n GR: /^(GR[0-9]{2})\\d{7}[A-Z0-9]{16}$/,\n GT: /^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,\n HR: /^(HR[0-9]{2})\\d{17}$/,\n HU: /^(HU[0-9]{2})\\d{24}$/,\n IE: /^(IE[0-9]{2})[A-Z0-9]{4}\\d{14}$/,\n IL: /^(IL[0-9]{2})\\d{19}$/,\n IQ: /^(IQ[0-9]{2})[A-Z]{4}\\d{15}$/,\n IR: /^(IR[0-9]{2})0\\d{2}0\\d{18}$/,\n IS: /^(IS[0-9]{2})\\d{22}$/,\n IT: /^(IT[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n JO: /^(JO[0-9]{2})[A-Z]{4}\\d{22}$/,\n KW: /^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,\n KZ: /^(KZ[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LB: /^(LB[0-9]{2})\\d{4}[A-Z0-9]{20}$/,\n LC: /^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,\n LI: /^(LI[0-9]{2})\\d{5}[A-Z0-9]{12}$/,\n LT: /^(LT[0-9]{2})\\d{16}$/,\n LU: /^(LU[0-9]{2})\\d{3}[A-Z0-9]{13}$/,\n LV: /^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,\n MC: /^(MC[0-9]{2})\\d{10}[A-Z0-9]{11}\\d{2}$/,\n MD: /^(MD[0-9]{2})[A-Z0-9]{20}$/,\n ME: /^(ME[0-9]{2})\\d{18}$/,\n MK: /^(MK[0-9]{2})\\d{3}[A-Z0-9]{10}\\d{2}$/,\n MR: /^(MR[0-9]{2})\\d{23}$/,\n MT: /^(MT[0-9]{2})[A-Z]{4}\\d{5}[A-Z0-9]{18}$/,\n MU: /^(MU[0-9]{2})[A-Z]{4}\\d{19}[A-Z]{3}$/,\n NL: /^(NL[0-9]{2})[A-Z]{4}\\d{10}$/,\n NO: /^(NO[0-9]{2})\\d{11}$/,\n PK: /^(PK[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n PL: /^(PL[0-9]{2})\\d{24}$/,\n PS: /^(PS[0-9]{2})[A-Z0-9]{4}\\d{21}$/,\n PT: /^(PT[0-9]{2})\\d{21}$/,\n QA: /^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,\n RO: /^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,\n RS: /^(RS[0-9]{2})\\d{18}$/,\n SA: /^(SA[0-9]{2})\\d{2}[A-Z0-9]{18}$/,\n SC: /^(SC[0-9]{2})[A-Z]{4}\\d{20}[A-Z]{3}$/,\n SE: /^(SE[0-9]{2})\\d{20}$/,\n SI: /^(SI[0-9]{2})\\d{15}$/,\n SK: /^(SK[0-9]{2})\\d{20}$/,\n SM: /^(SM[0-9]{2})[A-Z]{1}\\d{10}[A-Z0-9]{12}$/,\n SV: /^(SV[0-9]{2})[A-Z0-9]{4}\\d{20}$/,\n TL: /^(TL[0-9]{2})\\d{19}$/,\n TN: /^(TN[0-9]{2})\\d{20}$/,\n TR: /^(TR[0-9]{2})\\d{5}[A-Z0-9]{17}$/,\n UA: /^(UA[0-9]{2})\\d{6}[A-Z0-9]{19}$/,\n VA: /^(VA[0-9]{2})\\d{18}$/,\n VG: /^(VG[0-9]{2})[A-Z0-9]{4}\\d{16}$/,\n XK: /^(XK[0-9]{2})\\d{16}$/\n};\n/**\n * Check whether string has correct universal IBAN format\n * The IBAN consists of up to 34 alphanumeric characters, as follows:\n * Country Code using ISO 3166-1 alpha-2, two letters\n * check digits, two digits and\n * Basic Bank Account Number (BBAN), up to 30 alphanumeric characters.\n * NOTE: Permitted IBAN characters are: digits [0-9] and the 26 latin alphabetic [A-Z]\n *\n * @param {string} str - string under validation\n * @return {boolean}\n */\n\nfunction hasValidIbanFormat(str) {\n // Strip white spaces and hyphens\n var strippedStr = str.replace(/[\\s\\-]+/gi, '').toUpperCase();\n var isoCountryCode = strippedStr.slice(0, 2).toUpperCase();\n return isoCountryCode in ibanRegexThroughCountryCode && ibanRegexThroughCountryCode[isoCountryCode].test(strippedStr);\n}\n/**\n * Check whether string has valid IBAN Checksum\n * by performing basic mod-97 operation and\n * the remainder should equal 1\n * -- Start by rearranging the IBAN by moving the four initial characters to the end of the string\n * -- Replace each letter in the string with two digits, A -> 10, B = 11, Z = 35\n * -- Interpret the string as a decimal integer and\n * -- compute the remainder on division by 97 (mod 97)\n * Reference: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n *\n * @param {string} str\n * @return {boolean}\n */\n\n\nfunction hasValidIbanChecksum(str) {\n var strippedStr = str.replace(/[^A-Z0-9]+/gi, '').toUpperCase(); // Keep only digits and A-Z latin alphabetic\n\n var rearranged = strippedStr.slice(4) + strippedStr.slice(0, 4);\n var alphaCapsReplacedWithDigits = rearranged.replace(/[A-Z]/g, function (char) {\n return char.charCodeAt(0) - 55;\n });\n var remainder = alphaCapsReplacedWithDigits.match(/\\d{1,7}/g).reduce(function (acc, value) {\n return Number(acc + value) % 97;\n }, '');\n return remainder === 1;\n}\n\nfunction isIBAN(str) {\n (0, _assertString.default)(str);\n return hasValidIbanFormat(str) && hasValidIbanChecksum(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIBANValidator from 'validator/lib/isIBAN';\nexport var IS_IBAN = 'isIBAN';\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function isIBAN(value) {\n return typeof value === 'string' && isIBANValidator(value);\n}\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsIBAN(validationOptions) {\n return ValidateBy({\n name: IS_IBAN,\n validator: {\n validate: function (value, args) { return isIBAN(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an IBAN'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsIBAN.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isIdentityCard;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar validators = {\n ES: function ES(str) {\n (0, _assertString.default)(str);\n var DNI = /^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/;\n var charsValue = {\n X: 0,\n Y: 1,\n Z: 2\n };\n var controlDigits = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E']; // sanitize user input\n\n var sanitized = str.trim().toUpperCase(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n } // validate the control digit\n\n\n var number = sanitized.slice(0, -1).replace(/[X,Y,Z]/g, function (char) {\n return charsValue[char];\n });\n return sanitized.endsWith(controlDigits[number % 23]);\n },\n IN: function IN(str) {\n var DNI = /^[1-9]\\d{3}\\s?\\d{4}\\s?\\d{4}$/; // multiplication table\n\n var d = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 0, 6, 7, 8, 9, 5], [2, 3, 4, 0, 1, 7, 8, 9, 5, 6], [3, 4, 0, 1, 2, 8, 9, 5, 6, 7], [4, 0, 1, 2, 3, 9, 5, 6, 7, 8], [5, 9, 8, 7, 6, 0, 4, 3, 2, 1], [6, 5, 9, 8, 7, 1, 0, 4, 3, 2], [7, 6, 5, 9, 8, 2, 1, 0, 4, 3], [8, 7, 6, 5, 9, 3, 2, 1, 0, 4], [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]]; // permutation table\n\n var p = [[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 5, 7, 6, 2, 8, 3, 0, 9, 4], [5, 8, 0, 3, 7, 9, 6, 1, 4, 2], [8, 9, 1, 6, 0, 4, 3, 5, 2, 7], [9, 4, 5, 3, 1, 2, 6, 8, 7, 0], [4, 2, 8, 6, 5, 7, 3, 9, 0, 1], [2, 7, 9, 3, 8, 0, 6, 4, 1, 5], [7, 0, 4, 6, 9, 1, 3, 2, 5, 8]]; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n var c = 0;\n var invertedArray = sanitized.replace(/\\s/g, '').split('').map(Number).reverse();\n invertedArray.forEach(function (val, i) {\n c = d[c][p[i % 8][val]];\n });\n return c === 0;\n },\n IT: function IT(str) {\n if (str.length !== 9) return false;\n if (str === 'CA00000AA') return false; // https://it.wikipedia.org/wiki/Carta_d%27identit%C3%A0_elettronica_italiana\n\n return str.search(/C[A-Z][0-9]{5}[A-Z]{2}/i) > -1;\n },\n NO: function NO(str) {\n var sanitized = str.trim();\n if (isNaN(Number(sanitized))) return false;\n if (sanitized.length !== 11) return false;\n if (sanitized === '00000000000') return false; // https://no.wikipedia.org/wiki/F%C3%B8dselsnummer\n\n var f = sanitized.split('').map(Number);\n var k1 = (11 - (3 * f[0] + 7 * f[1] + 6 * f[2] + 1 * f[3] + 8 * f[4] + 9 * f[5] + 4 * f[6] + 5 * f[7] + 2 * f[8]) % 11) % 11;\n var k2 = (11 - (5 * f[0] + 4 * f[1] + 3 * f[2] + 2 * f[3] + 7 * f[4] + 6 * f[5] + 5 * f[6] + 4 * f[7] + 3 * f[8] + 2 * k1) % 11) % 11;\n if (k1 !== f[9] || k2 !== f[10]) return false;\n return true;\n },\n 'he-IL': function heIL(str) {\n var DNI = /^\\d{9}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n var id = sanitized;\n var sum = 0,\n incNum;\n\n for (var i = 0; i < id.length; i++) {\n incNum = Number(id[i]) * (i % 2 + 1); // Multiply number by 1 or 2\n\n sum += incNum > 9 ? incNum - 9 : incNum; // Sum the digits up and add to total\n }\n\n return sum % 10 === 0;\n },\n 'ar-TN': function arTN(str) {\n var DNI = /^\\d{8}$/; // sanitize user input\n\n var sanitized = str.trim(); // validate the data structure\n\n if (!DNI.test(sanitized)) {\n return false;\n }\n\n return true;\n },\n 'zh-CN': function zhCN(str) {\n var provincesAndCities = ['11', // 北京\n '12', // 天津\n '13', // 河北\n '14', // 山西\n '15', // 内蒙古\n '21', // 辽宁\n '22', // 吉林\n '23', // 黑龙江\n '31', // 上海\n '32', // 江苏\n '33', // 浙江\n '34', // 安徽\n '35', // 福建\n '36', // 江西\n '37', // 山东\n '41', // 河南\n '42', // 湖北\n '43', // 湖南\n '44', // 广东\n '45', // 广西\n '46', // 海南\n '50', // 重庆\n '51', // 四川\n '52', // 贵州\n '53', // 云南\n '54', // 西藏\n '61', // 陕西\n '62', // 甘肃\n '63', // 青海\n '64', // 宁夏\n '65', // 新疆\n '71', // 台湾\n '81', // 香港\n '82', // 澳门\n '91' // 国外\n ];\n var powers = ['7', '9', '10', '5', '8', '4', '2', '1', '6', '3', '7', '9', '10', '5', '8', '4', '2'];\n var parityBit = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\n\n var checkAddressCode = function checkAddressCode(addressCode) {\n return provincesAndCities.includes(addressCode);\n };\n\n var checkBirthDayCode = function checkBirthDayCode(birDayCode) {\n var yyyy = parseInt(birDayCode.substring(0, 4), 10);\n var mm = parseInt(birDayCode.substring(4, 6), 10);\n var dd = parseInt(birDayCode.substring(6), 10);\n var xdata = new Date(yyyy, mm - 1, dd);\n\n if (xdata > new Date()) {\n return false; // eslint-disable-next-line max-len\n } else if (xdata.getFullYear() === yyyy && xdata.getMonth() === mm - 1 && xdata.getDate() === dd) {\n return true;\n }\n\n return false;\n };\n\n var getParityBit = function getParityBit(idCardNo) {\n var id17 = idCardNo.substring(0, 17);\n var power = 0;\n\n for (var i = 0; i < 17; i++) {\n power += parseInt(id17.charAt(i), 10) * parseInt(powers[i], 10);\n }\n\n var mod = power % 11;\n return parityBit[mod];\n };\n\n var checkParityBit = function checkParityBit(idCardNo) {\n return getParityBit(idCardNo) === idCardNo.charAt(17).toUpperCase();\n };\n\n var check15IdCardNo = function check15IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = \"19\".concat(idCardNo.substring(6, 12));\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return true;\n };\n\n var check18IdCardNo = function check18IdCardNo(idCardNo) {\n var check = /^[1-9]\\d{5}[1-9]\\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\\d{3}(\\d|x|X)$/.test(idCardNo);\n if (!check) return false;\n var addressCode = idCardNo.substring(0, 2);\n check = checkAddressCode(addressCode);\n if (!check) return false;\n var birDayCode = idCardNo.substring(6, 14);\n check = checkBirthDayCode(birDayCode);\n if (!check) return false;\n return checkParityBit(idCardNo);\n };\n\n var checkIdCardNo = function checkIdCardNo(idCardNo) {\n var check = /^\\d{15}|(\\d{17}(\\d|x|X))$/.test(idCardNo);\n if (!check) return false;\n\n if (idCardNo.length === 15) {\n return check15IdCardNo(idCardNo);\n }\n\n return check18IdCardNo(idCardNo);\n };\n\n return checkIdCardNo(str);\n },\n 'zh-TW': function zhTW(str) {\n var ALPHABET_CODES = {\n A: 10,\n B: 11,\n C: 12,\n D: 13,\n E: 14,\n F: 15,\n G: 16,\n H: 17,\n I: 34,\n J: 18,\n K: 19,\n L: 20,\n M: 21,\n N: 22,\n O: 35,\n P: 23,\n Q: 24,\n R: 25,\n S: 26,\n T: 27,\n U: 28,\n V: 29,\n W: 32,\n X: 30,\n Y: 31,\n Z: 33\n };\n var sanitized = str.trim().toUpperCase();\n if (!/^[A-Z][0-9]{9}$/.test(sanitized)) return false;\n return Array.from(sanitized).reduce(function (sum, number, index) {\n if (index === 0) {\n var code = ALPHABET_CODES[number];\n return code % 10 * 9 + Math.floor(code / 10);\n }\n\n if (index === 9) {\n return (10 - sum % 10 - Number(number)) % 10 === 0;\n }\n\n return sum + Number(number) * (9 - index);\n }, 0);\n }\n};\n\nfunction isIdentityCard(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in validators) {\n return validators[locale](str);\n } else if (locale === 'any') {\n for (var key in validators) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (validators.hasOwnProperty(key)) {\n var validator = validators[key];\n\n if (validator(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIdentityCardValidator from 'validator/lib/isIdentityCard';\nexport var IS_IDENTITY_CARD = 'isIdentityCard';\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function isIdentityCard(value, locale) {\n return typeof value === 'string' && isIdentityCardValidator(value, locale);\n}\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function IsIdentityCard(locale, validationOptions) {\n return ValidateBy({\n name: IS_IDENTITY_CARD,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isIdentityCard(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a identity card number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsIdentityCard.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isISRC;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// see http://isrc.ifpi.org/en/isrc-standard/code-syntax\nvar isrc = /^[A-Z]{2}[0-9A-Z]{3}\\d{2}\\d{5}$/;\n\nfunction isISRC(str) {\n (0, _assertString.default)(str);\n return isrc.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISRCValidator from 'validator/lib/isISRC';\nexport var IS_ISRC = 'isISRC';\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function isISRC(value) {\n return typeof value === 'string' && isISRCValidator(value);\n}\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function IsISRC(validationOptions) {\n return ValidateBy({\n name: IS_ISRC,\n validator: {\n validate: function (value, args) { return isISRC(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISRC'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsISRC.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isLocale;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar localeReg = /^[A-z]{2,4}([_-]([A-z]{4}|[\\d]{3}))?([_-]([A-z]{2}|[\\d]{3}))?$/;\n\nfunction isLocale(str) {\n (0, _assertString.default)(str);\n\n if (str === 'en_US_POSIX' || str === 'ca_ES_VALENCIA') {\n return true;\n }\n\n return localeReg.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLocaleValidator from 'validator/lib/isLocale';\nexport var IS_LOCALE = 'isLocale';\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function isLocale(value) {\n return typeof value === 'string' && isLocaleValidator(value);\n}\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function IsLocale(validationOptions) {\n return ValidateBy({\n name: IS_LOCALE,\n validator: {\n validate: function (value, args) { return isLocale(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be locale'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsLocale.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMagnetURI;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar magnetURI = /^magnet:\\?xt=urn:[a-z0-9]+:[a-z0-9]{32,40}&dn=.+&tr=.+$/i;\n\nfunction isMagnetURI(url) {\n (0, _assertString.default)(url);\n return magnetURI.test(url.trim());\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMagnetURIValidator from 'validator/lib/isMagnetURI';\nexport var IS_MAGNET_URI = 'isMagnetURI';\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isMagnetURI(value) {\n return typeof value === 'string' && isMagnetURIValidator(value);\n}\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsMagnetURI(validationOptions) {\n return ValidateBy({\n name: IS_MAGNET_URI,\n validator: {\n validate: function (value, args) { return isMagnetURI(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be magnet uri format'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMagnetURI.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isMimeType;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/*\n Checks if the provided string matches to a correct Media type format (MIME type)\n\n This function only checks is the string format follows the\n etablished rules by the according RFC specifications.\n This function supports 'charset' in textual media types\n (https://tools.ietf.org/html/rfc6657).\n\n This function does not check against all the media types listed\n by the IANA (https://www.iana.org/assignments/media-types/media-types.xhtml)\n because of lightness purposes : it would require to include\n all these MIME types in this librairy, which would weigh it\n significantly. This kind of effort maybe is not worth for the use that\n this function has in this entire librairy.\n\n More informations in the RFC specifications :\n - https://tools.ietf.org/html/rfc2045\n - https://tools.ietf.org/html/rfc2046\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.1\n - https://tools.ietf.org/html/rfc7231#section-3.1.1.5\n*/\n// Match simple MIME types\n// NB :\n// Subtype length must not exceed 100 characters.\n// This rule does not comply to the RFC specs (what is the max length ?).\nvar mimeTypeSimple = /^(application|audio|font|image|message|model|multipart|text|video)\\/[a-zA-Z0-9\\.\\-\\+]{1,100}$/i; // eslint-disable-line max-len\n// Handle \"charset\" in \"text/*\"\n\nvar mimeTypeText = /^text\\/[a-zA-Z0-9\\.\\-\\+]{1,100};\\s?charset=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?$/i; // eslint-disable-line max-len\n// Handle \"boundary\" in \"multipart/*\"\n\nvar mimeTypeMultipart = /^multipart\\/[a-zA-Z0-9\\.\\-\\+]{1,100}(;\\s?(boundary|charset)=(\"[a-zA-Z0-9\\.\\-\\+\\s]{0,70}\"|[a-zA-Z0-9\\.\\-\\+]{0,70})(\\s?\\([a-zA-Z0-9\\.\\-\\+\\s]{1,20}\\))?){0,2}$/i; // eslint-disable-line max-len\n\nfunction isMimeType(str) {\n (0, _assertString.default)(str);\n return mimeTypeSimple.test(str) || mimeTypeText.test(str) || mimeTypeMultipart.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMimeTypeValidator from 'validator/lib/isMimeType';\nexport var IS_MIME_TYPE = 'isMimeType';\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function isMimeType(value) {\n return typeof value === 'string' && isMimeTypeValidator(value);\n}\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function IsMimeType(validationOptions) {\n return ValidateBy({\n name: IS_MIME_TYPE,\n validator: {\n validate: function (value, args) { return isMimeType(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be MIME type format'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsMimeType.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isOctal;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar octal = /^(0o)?[0-7]+$/i;\n\nfunction isOctal(str) {\n (0, _assertString.default)(str);\n return octal.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isOctalValidator from 'validator/lib/isOctal';\nexport var IS_OCTAL = 'isOctal';\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function isOctal(value) {\n return typeof value === 'string' && isOctalValidator(value);\n}\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsOctal(validationOptions) {\n return ValidateBy({\n name: IS_OCTAL,\n validator: {\n validate: function (value, args) { return isOctal(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be valid octal number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsOctal.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPassportNumber;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Reference:\n * https://en.wikipedia.org/ -- Wikipedia\n * https://docs.microsoft.com/en-us/microsoft-365/compliance/eu-passport-number -- EU Passport Number\n * https://countrycode.org/ -- Country Codes\n */\nvar passportRegexByCountryCode = {\n AM: /^[A-Z]{2}\\d{7}$/,\n // ARMENIA\n AR: /^[A-Z]{3}\\d{6}$/,\n // ARGENTINA\n AT: /^[A-Z]\\d{7}$/,\n // AUSTRIA\n AU: /^[A-Z]\\d{7}$/,\n // AUSTRALIA\n BE: /^[A-Z]{2}\\d{6}$/,\n // BELGIUM\n BG: /^\\d{9}$/,\n // BULGARIA\n BY: /^[A-Z]{2}\\d{7}$/,\n // BELARUS\n CA: /^[A-Z]{2}\\d{6}$/,\n // CANADA\n CH: /^[A-Z]\\d{7}$/,\n // SWITZERLAND\n CN: /^[GE]\\d{8}$/,\n // CHINA [G=Ordinary, E=Electronic] followed by 8-digits\n CY: /^[A-Z](\\d{6}|\\d{8})$/,\n // CYPRUS\n CZ: /^\\d{8}$/,\n // CZECH REPUBLIC\n DE: /^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,\n // GERMANY\n DK: /^\\d{9}$/,\n // DENMARK\n DZ: /^\\d{9}$/,\n // ALGERIA\n EE: /^([A-Z]\\d{7}|[A-Z]{2}\\d{7})$/,\n // ESTONIA (K followed by 7-digits), e-passports have 2 UPPERCASE followed by 7 digits\n ES: /^[A-Z0-9]{2}([A-Z0-9]?)\\d{6}$/,\n // SPAIN\n FI: /^[A-Z]{2}\\d{7}$/,\n // FINLAND\n FR: /^\\d{2}[A-Z]{2}\\d{5}$/,\n // FRANCE\n GB: /^\\d{9}$/,\n // UNITED KINGDOM\n GR: /^[A-Z]{2}\\d{7}$/,\n // GREECE\n HR: /^\\d{9}$/,\n // CROATIA\n HU: /^[A-Z]{2}(\\d{6}|\\d{7})$/,\n // HUNGARY\n IE: /^[A-Z0-9]{2}\\d{7}$/,\n // IRELAND\n IN: /^[A-Z]{1}-?\\d{7}$/,\n // INDIA\n IS: /^(A)\\d{7}$/,\n // ICELAND\n IT: /^[A-Z0-9]{2}\\d{7}$/,\n // ITALY\n JP: /^[A-Z]{2}\\d{7}$/,\n // JAPAN\n KR: /^[MS]\\d{8}$/,\n // SOUTH KOREA, REPUBLIC OF KOREA, [S=PS Passports, M=PM Passports]\n LT: /^[A-Z0-9]{8}$/,\n // LITHUANIA\n LU: /^[A-Z0-9]{8}$/,\n // LUXEMBURG\n LV: /^[A-Z0-9]{2}\\d{7}$/,\n // LATVIA\n MT: /^\\d{7}$/,\n // MALTA\n NL: /^[A-Z]{2}[A-Z0-9]{6}\\d$/,\n // NETHERLANDS\n PO: /^[A-Z]{2}\\d{7}$/,\n // POLAND\n PT: /^[A-Z]\\d{6}$/,\n // PORTUGAL\n RO: /^\\d{8,9}$/,\n // ROMANIA\n RU: /^\\d{2}\\d{2}\\d{6}$/,\n // RUSSIAN FEDERATION\n SE: /^\\d{8}$/,\n // SWEDEN\n SL: /^(P)[A-Z]\\d{7}$/,\n // SLOVANIA\n SK: /^[0-9A-Z]\\d{7}$/,\n // SLOVAKIA\n TR: /^[A-Z]\\d{8}$/,\n // TURKEY\n UA: /^[A-Z]{2}\\d{6}$/,\n // UKRAINE\n US: /^\\d{9}$/ // UNITED STATES\n\n};\n/**\n * Check if str is a valid passport number\n * relative to provided ISO Country Code.\n *\n * @param {string} str\n * @param {string} countryCode\n * @return {boolean}\n */\n\nfunction isPassportNumber(str, countryCode) {\n (0, _assertString.default)(str);\n /** Remove All Whitespaces, Convert to UPPERCASE */\n\n var normalizedStr = str.replace(/\\s/g, '').toUpperCase();\n return countryCode.toUpperCase() in passportRegexByCountryCode && passportRegexByCountryCode[countryCode].test(normalizedStr);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPassportNumberValidator from 'validator/lib/isPassportNumber';\nexport var IS_PASSPORT_NUMBER = 'isPassportNumber';\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function isPassportNumber(value, countryCode) {\n return typeof value === 'string' && isPassportNumberValidator(value, countryCode);\n}\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function IsPassportNumber(countryCode, validationOptions) {\n return ValidateBy({\n name: IS_PASSPORT_NUMBER,\n constraints: [countryCode],\n validator: {\n validate: function (value, args) { return isPassportNumber(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be valid passport number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsPassportNumber.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPostalCode;\nexports.locales = void 0;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// common patterns\nvar threeDigit = /^\\d{3}$/;\nvar fourDigit = /^\\d{4}$/;\nvar fiveDigit = /^\\d{5}$/;\nvar sixDigit = /^\\d{6}$/;\nvar patterns = {\n AD: /^AD\\d{3}$/,\n AT: fourDigit,\n AU: fourDigit,\n AZ: /^AZ\\d{4}$/,\n BE: fourDigit,\n BG: fourDigit,\n BR: /^\\d{5}-\\d{3}$/,\n BY: /2[1-4]{1}\\d{4}$/,\n CA: /^[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z][\\s\\-]?\\d[ABCEGHJ-NPRSTV-Z]\\d$/i,\n CH: fourDigit,\n CN: /^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\\d{4}$/,\n CZ: /^\\d{3}\\s?\\d{2}$/,\n DE: fiveDigit,\n DK: fourDigit,\n DO: fiveDigit,\n DZ: fiveDigit,\n EE: fiveDigit,\n ES: /^(5[0-2]{1}|[0-4]{1}\\d{1})\\d{3}$/,\n FI: fiveDigit,\n FR: /^\\d{2}\\s?\\d{3}$/,\n GB: /^(gir\\s?0aa|[a-z]{1,2}\\d[\\da-z]?\\s?(\\d[a-z]{2})?)$/i,\n GR: /^\\d{3}\\s?\\d{2}$/,\n HR: /^([1-5]\\d{4}$)/,\n HT: /^HT\\d{4}$/,\n HU: fourDigit,\n ID: fiveDigit,\n IE: /^(?!.*(?:o))[A-z]\\d[\\dw]\\s\\w{4}$/i,\n IL: /^(\\d{5}|\\d{7})$/,\n IN: /^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,\n IR: /\\b(?!(\\d)\\1{3})[13-9]{4}[1346-9][013-9]{5}\\b/,\n IS: threeDigit,\n IT: fiveDigit,\n JP: /^\\d{3}\\-\\d{4}$/,\n KE: fiveDigit,\n LI: /^(948[5-9]|949[0-7])$/,\n LT: /^LT\\-\\d{5}$/,\n LU: fourDigit,\n LV: /^LV\\-\\d{4}$/,\n MX: fiveDigit,\n MT: /^[A-Za-z]{3}\\s{0,1}\\d{4}$/,\n MY: fiveDigit,\n NL: /^\\d{4}\\s?[a-z]{2}$/i,\n NO: fourDigit,\n NP: /^(10|21|22|32|33|34|44|45|56|57)\\d{3}$|^(977)$/i,\n NZ: fourDigit,\n PL: /^\\d{2}\\-\\d{3}$/,\n PR: /^00[679]\\d{2}([ -]\\d{4})?$/,\n PT: /^\\d{4}\\-\\d{3}?$/,\n RO: sixDigit,\n RU: sixDigit,\n SA: fiveDigit,\n SE: /^[1-9]\\d{2}\\s?\\d{2}$/,\n SG: sixDigit,\n SI: fourDigit,\n SK: /^\\d{3}\\s?\\d{2}$/,\n TH: fiveDigit,\n TN: fourDigit,\n TW: /^\\d{3}(\\d{2})?$/,\n UA: fiveDigit,\n US: /^\\d{5}(-\\d{4})?$/,\n ZA: fourDigit,\n ZM: fiveDigit\n};\nvar locales = Object.keys(patterns);\nexports.locales = locales;\n\nfunction isPostalCode(str, locale) {\n (0, _assertString.default)(str);\n\n if (locale in patterns) {\n return patterns[locale].test(str);\n } else if (locale === 'any') {\n for (var key in patterns) {\n // https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignoring-code-for-coverage-purposes\n // istanbul ignore else\n if (patterns.hasOwnProperty(key)) {\n var pattern = patterns[key];\n\n if (pattern.test(str)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n throw new Error(\"Invalid locale '\".concat(locale, \"'\"));\n}","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPostalCodeValidator from 'validator/lib/isPostalCode';\nexport var IS_POSTAL_CODE = 'isPostalCode';\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function isPostalCode(value, locale) {\n return typeof value === 'string' && isPostalCodeValidator(value, locale);\n}\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function IsPostalCode(locale, validationOptions) {\n return ValidateBy({\n name: IS_POSTAL_CODE,\n constraints: [locale],\n validator: {\n validate: function (value, args) { return isPostalCode(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a postal code'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsPostalCode.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRFC3339;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/* Based on https://tools.ietf.org/html/rfc3339#section-5.6 */\nvar dateFullYear = /[0-9]{4}/;\nvar dateMonth = /(0[1-9]|1[0-2])/;\nvar dateMDay = /([12]\\d|0[1-9]|3[01])/;\nvar timeHour = /([01][0-9]|2[0-3])/;\nvar timeMinute = /[0-5][0-9]/;\nvar timeSecond = /([0-5][0-9]|60)/;\nvar timeSecFrac = /(\\.[0-9]+)?/;\nvar timeNumOffset = new RegExp(\"[-+]\".concat(timeHour.source, \":\").concat(timeMinute.source));\nvar timeOffset = new RegExp(\"([zZ]|\".concat(timeNumOffset.source, \")\"));\nvar partialTime = new RegExp(\"\".concat(timeHour.source, \":\").concat(timeMinute.source, \":\").concat(timeSecond.source).concat(timeSecFrac.source));\nvar fullDate = new RegExp(\"\".concat(dateFullYear.source, \"-\").concat(dateMonth.source, \"-\").concat(dateMDay.source));\nvar fullTime = new RegExp(\"\".concat(partialTime.source).concat(timeOffset.source));\nvar rfc3339 = new RegExp(\"\".concat(fullDate.source, \"[ tT]\").concat(fullTime.source));\n\nfunction isRFC3339(str) {\n (0, _assertString.default)(str);\n return rfc3339.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRFC3339Validator from 'validator/lib/isRFC3339';\nexport var IS_RFC_3339 = 'isRFC3339';\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function isRFC3339(value) {\n return typeof value === 'string' && isRFC3339Validator(value);\n}\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function IsRFC3339(validationOptions) {\n return ValidateBy({\n name: IS_RFC_3339,\n validator: {\n validate: function (value, args) { return isRFC3339(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be RFC 3339 date'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsRFC3339.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isRgbColor;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar rgbColor = /^rgb\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\)$/;\nvar rgbaColor = /^rgba\\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)$/;\nvar rgbColorPercent = /^rgb\\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\\)/;\nvar rgbaColorPercent = /^rgba\\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\\.\\d|1(\\.0)?|0(\\.0)?)\\)/;\n\nfunction isRgbColor(str) {\n var includePercentValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n (0, _assertString.default)(str);\n\n if (!includePercentValues) {\n return rgbColor.test(str) || rgbaColor.test(str);\n }\n\n return rgbColor.test(str) || rgbaColor.test(str) || rgbColorPercent.test(str) || rgbaColorPercent.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRgbColorValidator from 'validator/lib/isRgbColor';\nexport var IS_RGB_COLOR = 'isRgbColor';\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function isRgbColor(value, includePercentValues) {\n return typeof value === 'string' && isRgbColorValidator(value, includePercentValues);\n}\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function IsRgbColor(includePercentValues, validationOptions) {\n return ValidateBy({\n name: IS_RGB_COLOR,\n constraints: [includePercentValues],\n validator: {\n validate: function (value, args) { return isRgbColor(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be RGB color'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsRgbColor.js.map","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = multilineRegexp;\n\n/**\n * Build RegExp object from an array\n * of multiple/multi-line regexp parts\n *\n * @param {string[]} parts\n * @param {string} flags\n * @return {object} - RegExp object\n */\nfunction multilineRegexp(parts, flags) {\n var regexpAsStringLiteral = parts.join('');\n return new RegExp(regexpAsStringLiteral, flags);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isSemVer;\n\nvar _assertString = _interopRequireDefault(require(\"./util/assertString\"));\n\nvar _multilineRegex = _interopRequireDefault(require(\"./util/multilineRegex\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * Regular Expression to match\n * semantic versioning (SemVer)\n * built from multi-line, multi-parts regexp\n * Reference: https://semver.org/\n */\nvar semanticVersioningRegex = (0, _multilineRegex.default)(['^(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)\\\\.(0|[1-9]\\\\d*)', '(?:-((?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*)(?:\\\\.(?:0|[1-9]\\\\d*|\\\\d*[a-z-][0-9a-z-]*))*))', '?(?:\\\\+([0-9a-z-]+(?:\\\\.[0-9a-z-]+)*))?$'], 'i');\n\nfunction isSemVer(str) {\n (0, _assertString.default)(str);\n return semanticVersioningRegex.test(str);\n}\n\nmodule.exports = exports.default;\nmodule.exports.default = exports.default;","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSemVerValidator from 'validator/lib/isSemVer';\nexport var IS_SEM_VER = 'isSemVer';\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function isSemVer(value) {\n return typeof value === 'string' && isSemVerValidator(value);\n}\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function IsSemVer(validationOptions) {\n return ValidateBy({\n name: IS_SEM_VER,\n validator: {\n validate: function (value, args) { return isSemVer(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Semantic Versioning Specification'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsSemVer.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_BOOLEAN = 'isBoolean';\n/**\n * Checks if a given value is a boolean.\n */\nexport function isBoolean(value) {\n return value instanceof Boolean || typeof value === 'boolean';\n}\n/**\n * Checks if a value is a boolean.\n */\nexport function IsBoolean(validationOptions) {\n return ValidateBy({\n name: IS_BOOLEAN,\n validator: {\n validate: function (value, args) { return isBoolean(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a boolean value'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsBoolean.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_DATE = 'isDate';\n/**\n * Checks if a given value is a date.\n */\nexport function isDate(value) {\n return value instanceof Date && !isNaN(value.getTime());\n}\n/**\n * Checks if a value is a date.\n */\nexport function IsDate(validationOptions) {\n return ValidateBy({\n name: IS_DATE,\n validator: {\n validate: function (value, args) { return isDate(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Date instance'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsDate.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_NUMBER = 'isNumber';\n/**\n * Checks if a given value is a number.\n */\nexport function isNumber(value, options) {\n if (options === void 0) { options = {}; }\n if (typeof value !== 'number') {\n return false;\n }\n if (value === Infinity || value === -Infinity) {\n return options.allowInfinity;\n }\n if (Number.isNaN(value)) {\n return options.allowNaN;\n }\n if (options.maxDecimalPlaces !== undefined) {\n var decimalPlaces = 0;\n if (value % 1 !== 0) {\n decimalPlaces = value.toString().split('.')[1].length;\n }\n if (decimalPlaces > options.maxDecimalPlaces) {\n return false;\n }\n }\n return Number.isFinite(value);\n}\n/**\n * Checks if a value is a number.\n */\nexport function IsNumber(options, validationOptions) {\n if (options === void 0) { options = {}; }\n return ValidateBy({\n name: IS_NUMBER,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isNumber(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a number conforming to the specified constraints'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNumber.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_ENUM = 'isEnum';\n/**\n * Checks if a given value is an enum\n */\nexport function isEnum(value, entity) {\n var enumValues = Object.keys(entity).map(function (k) { return entity[k]; });\n return enumValues.indexOf(value) >= 0;\n}\n/**\n * Checks if a given value is an enum\n */\nexport function IsEnum(entity, validationOptions) {\n return ValidateBy({\n name: IS_ENUM,\n constraints: [entity],\n validator: {\n validate: function (value, args) { return isEnum(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid enum value'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsEnum.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_INT = 'isInt';\n/**\n * Checks if value is an integer.\n */\nexport function isInt(val) {\n return typeof val === 'number' && Number.isInteger(val);\n}\n/**\n * Checks if value is an integer.\n */\nexport function IsInt(validationOptions) {\n return ValidateBy({\n name: IS_INT,\n validator: {\n validate: function (value, args) { return isInt(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an integer number'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsInt.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_STRING = 'isString';\n/**\n * Checks if a given value is a real string.\n */\nexport function isString(value) {\n return value instanceof String || typeof value === 'string';\n}\n/**\n * Checks if a given value is a real string.\n */\nexport function IsString(validationOptions) {\n return ValidateBy({\n name: IS_STRING,\n validator: {\n validate: function (value, args) { return isString(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a string'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsString.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_ARRAY = 'isArray';\n/**\n * Checks if a given value is an array\n */\nexport function isArray(value) {\n return value instanceof Array;\n}\n/**\n * Checks if a given value is an array\n */\nexport function IsArray(validationOptions) {\n return ValidateBy({\n name: IS_ARRAY,\n validator: {\n validate: function (value, args) { return isArray(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an array'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsArray.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_OBJECT = 'isObject';\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function isObject(value) {\n return value != null && (typeof value === 'object' || typeof value === 'function') && !Array.isArray(value);\n}\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function IsObject(validationOptions) {\n return ValidateBy({\n name: IS_OBJECT,\n validator: {\n validate: function (value, args) { return isObject(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an object'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsObject.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_CONTAINS = 'arrayContains';\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayContains(array, values) {\n if (!(array instanceof Array))\n return false;\n return values.every(function (value) { return array.indexOf(value) !== -1; });\n}\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayContains(values, validationOptions) {\n return ValidateBy({\n name: ARRAY_CONTAINS,\n constraints: [values],\n validator: {\n validate: function (value, args) { return arrayContains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain $constraint1 values'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=ArrayContains.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_NOT_CONTAINS = 'arrayNotContains';\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotContains(array, values) {\n if (!(array instanceof Array))\n return false;\n return values.every(function (value) { return array.indexOf(value) === -1; });\n}\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotContains(values, validationOptions) {\n return ValidateBy({\n name: ARRAY_NOT_CONTAINS,\n constraints: [values],\n validator: {\n validate: function (value, args) { return arrayNotContains(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not contain $constraint1 values'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=ArrayNotContains.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_NOT_EMPTY = 'arrayNotEmpty';\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotEmpty(array) {\n return array instanceof Array && array.length > 0;\n}\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotEmpty(validationOptions) {\n return ValidateBy({\n name: ARRAY_NOT_EMPTY,\n validator: {\n validate: function (value, args) { return arrayNotEmpty(value); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be empty'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=ArrayNotEmpty.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_MIN_SIZE = 'arrayMinSize';\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMinSize(array, min) {\n return array instanceof Array && array.length >= min;\n}\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMinSize(min, validationOptions) {\n return ValidateBy({\n name: ARRAY_MIN_SIZE,\n constraints: [min],\n validator: {\n validate: function (value, args) { return arrayMinSize(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain at least $constraint1 elements'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=ArrayMinSize.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_MAX_SIZE = 'arrayMaxSize';\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMaxSize(array, max) {\n return array instanceof Array && array.length <= max;\n}\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMaxSize(max, validationOptions) {\n return ValidateBy({\n name: ARRAY_MAX_SIZE,\n constraints: [max],\n validator: {\n validate: function (value, args) { return arrayMaxSize(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain not more than $constraint1 elements'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=ArrayMaxSize.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var ARRAY_UNIQUE = 'arrayUnique';\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayUnique(array, identifier) {\n if (!(array instanceof Array))\n return false;\n if (identifier) {\n array = array.map(function (o) { return (o != null ? identifier(o) : o); });\n }\n var uniqueItems = array.filter(function (a, b, c) { return c.indexOf(a) === b; });\n return array.length === uniqueItems.length;\n}\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayUnique(identifierOrOptions, validationOptions) {\n var identifier = typeof identifierOrOptions === 'function' ? identifierOrOptions : undefined;\n var options = typeof identifierOrOptions !== 'function' ? identifierOrOptions : validationOptions;\n return ValidateBy({\n name: ARRAY_UNIQUE,\n validator: {\n validate: function (value, args) { return arrayUnique(value, identifier); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + \"All $property's elements must be unique\"; }, options),\n },\n }, options);\n}\n//# sourceMappingURL=ArrayUnique.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { isObject } from '../typechecker/IsObject';\nexport var IS_NOT_EMPTY_OBJECT = 'isNotEmptyObject';\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function isNotEmptyObject(value, options) {\n if (!isObject(value)) {\n return false;\n }\n if ((options === null || options === void 0 ? void 0 : options.nullable) === true) {\n return !Object.values(value).every(function (propertyValue) { return propertyValue === null || propertyValue === undefined; });\n }\n for (var key in value) {\n if (value.hasOwnProperty(key)) {\n return true;\n }\n }\n return false;\n}\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function IsNotEmptyObject(options, validationOptions) {\n return ValidateBy({\n name: IS_NOT_EMPTY_OBJECT,\n constraints: [options],\n validator: {\n validate: function (value, args) { return isNotEmptyObject(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a non-empty object'; }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsNotEmptyObject.js.map","import { buildMessage, ValidateBy } from '../common/ValidateBy';\nexport var IS_INSTANCE = 'isInstance';\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function isInstance(object, targetTypeConstructor) {\n return (targetTypeConstructor && typeof targetTypeConstructor === 'function' && object instanceof targetTypeConstructor);\n}\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function IsInstance(targetType, validationOptions) {\n return ValidateBy({\n name: IS_INSTANCE,\n constraints: [targetType],\n validator: {\n validate: function (value, args) { return isInstance(value, args.constraints[0]); },\n defaultMessage: buildMessage(function (eachPrefix, args) {\n if (args.constraints[0]) {\n return eachPrefix + (\"$property must be an instance of \" + args.constraints[0].name);\n }\n else {\n return eachPrefix + (IS_INSTANCE + \" decorator expects and object as value, but got falsy value.\");\n }\n }, validationOptions),\n },\n }, validationOptions);\n}\n//# sourceMappingURL=IsInstance.js.map","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * If object has both allowed and not allowed properties a validation error will be thrown.\n */\nexport function Allow(validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.WHITELIST,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=Allow.js.map","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Checks if value is missing and if so, ignores all validators.\n */\nexport function IsOptional(validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [\n function (object, value) {\n return object[propertyName] !== null && object[propertyName] !== undefined;\n },\n ],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=IsOptional.js.map","import { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ConstraintMetadata } from '../../metadata/ConstraintMetadata';\n/**\n * Registers custom validator class.\n */\nexport function ValidatorConstraint(options) {\n return function (target) {\n var isAsync = options && options.async;\n var name = options && options.name ? options.name : '';\n if (!name) {\n name = target.name;\n if (!name)\n // generate name if it was not given\n name = name.replace(/\\.?([A-Z]+)/g, function (x, y) { return '_' + y.toLowerCase(); }).replace(/^_/, '');\n }\n var metadata = new ConstraintMetadata(target, name, isAsync);\n getMetadataStorage().addConstraintMetadata(metadata);\n };\n}\nexport function Validate(constraintClass, constraintsOrValidationOptions, maybeValidationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.CUSTOM_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraintCls: constraintClass,\n constraints: constraintsOrValidationOptions instanceof Array ? constraintsOrValidationOptions : undefined,\n validationOptions: !(constraintsOrValidationOptions instanceof Array)\n ? constraintsOrValidationOptions\n : maybeValidationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=Validate.js.map","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Ignores the other validators on a property when the provided condition function returns false.\n */\nexport function ValidateIf(condition, validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [condition],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=ValidateIf.js.map","import { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n/**\n * Resolve promise before validation\n */\nexport function ValidatePromise(validationOptions) {\n return function (object, propertyName) {\n var args = {\n type: ValidationTypes.PROMISE_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n//# sourceMappingURL=ValidatePromise.js.map","import { getMetadataStorage } from './metadata/MetadataStorage';\nimport { Validator } from './validation/Validator';\nimport { getFromContainer } from './container';\n// -------------------------------------------------------------------------\n// Export everything api users needs\n// -------------------------------------------------------------------------\nexport * from './container';\nexport * from './decorator/decorators';\nexport * from './decorator/ValidationOptions';\nexport * from './validation/ValidatorConstraintInterface';\nexport * from './validation/ValidationError';\nexport * from './validation/ValidatorOptions';\nexport * from './validation/ValidationArguments';\nexport * from './validation/ValidationTypes';\nexport * from './validation/Validator';\nexport * from './validation-schema/ValidationSchema';\nexport * from './register-decorator';\nexport * from './metadata/MetadataStorage';\n/**\n * Validates given object by object's decorators or given validation schema.\n */\nexport function validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Validates given object by object's decorators or given validation schema and reject on error.\n */\nexport function validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Validates given object by object's decorators or given validation schema.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions);\n }\n else {\n return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions);\n }\n}\n/**\n * Registers a new validation schema.\n */\nexport function registerSchema(schema) {\n getMetadataStorage().addValidationSchema(schema);\n}\n//# sourceMappingURL=index.js.map"],"names":["ValidationMetadata","args","this","groups","each","context","undefined","type","target","propertyName","constraints","constraintCls","validationTypeOptions","validationOptions","message","always","ValidationSchemaToMetadataTransformer","prototype","transform","schema","metadatas","Object","keys","properties","forEach","property","validation","name","options","push","getGlobal","globalThis","global","window","self","isPromise","p","then","MetadataStorage","validationMetadatas","constraintMetadatas","defineProperty","get","length","enumerable","configurable","addValidationSchema","_this","validationMetadata","addValidationMetadata","metadata","addConstraintMetadata","groupByPropertyName","grouped","getTargetValidationMetadatas","targetConstructor","targetSchema","strictGroups","includeMetadataBecauseOfAlwaysOption","excludeMetadataBecauseOfStrictGroupsOption","originalMetadatas","filter","find","group","indexOf","uniqueInheritedMetadatas","Function","inheritedMetadata","originalMetadata","concat","getTargetValidatorConstraints","getMetadataStorage","classValidatorMetadataStorage","ValidationError","toString","shouldDecorate","hasParent","parentPath","boldStart","boldEnd","propConstraintFailed","join","formattedProperty_1","Number","isInteger","children","map","childError","constructor","ValidationTypes","isValid","key","CUSTOM_VALIDATION","NESTED_VALIDATION","PROMISE_VALIDATION","CONDITIONAL_VALIDATION","WHITELIST","IS_DEFINED","userContainer","userContainerOptions","ValidationUtils","replaceMessageSpecialTokens","validationArguments","messageString","Array","constraint","index","replace","RegExp","isArray","constraintToString","value","targetName","ValidationExecutor","validator","validatorOptions","awaitingPromises","ignoreAsyncValidations","metadataStorage","execute","object","validationErrors","_a","hasValidationMetaData","enableDebugMessages","console","warn","targetMetadatas","groupedMetadatas","forbidUnknownValues","validationError","unknownValue","whitelist","definedMetadatas","Promise","resolvedValue","performValidations","notAllowedProperties","forbidNonWhitelisted","generateValidationError","stripEmptyErrors","errors","error","customValidationMetadatas","nestedValidationMetadatas","conditionalValidationMetadatas","conditionalValidations","customValidations","mapContexts","skipUndefinedProperties","skipNullProperties","skipMissingProperties","nestedValidations","reduce","resultA","resultB","customConstraintMetadata","async","stopAtFirstError","Set","Map","val","validatedSubValues","from","values","subValue","instance","validate","some","validatedSubValue","asyncValidatedSubValues","resolve","asyncValidationIsFinishedPromise","all","flatValidatedValues","every","createValidationError","contexts","assign","_b","validatedValue","promise","customConstraint","getConstraintType","customValidatorMetadata","dismissDefaultMessages","defaultMessage","__awaiter","thisArg","_arguments","P","generator","reject","fulfilled","step","next","e","rejected","result","done","apply","__generator","body","f","y","t","g","_","label","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","Validator","objectOrSchemaName","objectOrValidationOptions","maybeValidatorOptions","coreValidate","validateOrReject","validateSync","executor","defaultContainer","class_1","instances","someClass","getFromContainer","fallback","fallbackOnErrors","ConstraintMetadata","registerDecorator","validator_1","CustomConstraint","validationMetadataArgs","buildMessage","impl","eachPrefix","ValidateBy","isDefined","__assign","s","i","arguments","hasOwnProperty","_typeof","obj","exports","input","String","invalidType","module","default","defaults","str","_assertString","_merge","defaultLatLongOptions","includes","pair","split","startsWith","endsWith","checkDMS","latDMS","test","longDMS","lat","long","_interopRequireDefault","require$$0","require$$1","__esModule","IS_LATLONG","isLatLong","isLatLongValidator","IS_LATITUDE","isLatitude","IS_LONGITUDE","isLongitude","EQUALS","equals","comparison","NOT_EQUALS","notEquals","IS_EMPTY","isEmpty","IS_NOT_EMPTY","isNotEmpty","IS_IN","isIn","possibleValues","possibleValue","IS_NOT_IN","isNotIn","alpha","en-US","az-AZ","bg-BG","cs-CZ","da-DK","de-DE","el-GR","es-ES","fa-IR","fr-FR","it-IT","nb-NO","nl-NL","nn-NO","hu-HU","pl-PL","pt-PT","ru-RU","sl-SI","sk-SK","sr-RS@latin","sr-RS","sv-SE","th-TH","tr-TR","uk-UA","vi-VN","ku-IQ","ar","he","fa","alphanumeric","decimal","englishLocales","locale","arabicLocales","_locale","_i","farsiLocales","_locale2","_i2","dotDecimal","commaDecimal","_i3","_i4","float","_alpha","parseFloat","min","max","lt","gt","locales","_isFloat","NaN","num","_toFloat","parseInt","IS_DIVISIBLE_BY","isDivisibleBy","isDivisibleByValidator","IS_POSITIVE","isPositive","IS_NEGATIVE","isNegative","MIN_DATE","minDate","date","Date","getTime","MAX_DATE","maxDate","isNaN","elem","defaulContainsOptions","ignoreCase","toLowerCase","_toString","require$$2","CONTAINS","contains","seed","containsValidator","NOT_CONTAINS","notContains","_str","ignore","Error","IS_ALPHA","isAlpha","isAlphaValidator","IS_ALPHANUMERIC","isAlphanumeric","isAlphanumericValidator","_default","arr","arrVal","default_decimal_options","_includes","blacklist","decimal_digits","force_decimal","decimalRegExp","IS_DECIMAL","isDecimal","isDecimalValidator","ascii","IS_ASCII","isAscii","isAsciiValidator","defaultBase64Options","len","urlSafe","urlSafeBase64","notBase64","firstPaddingChar","IS_BASE64","isBase64","isBase64Validator","encodeURI","IS_BYTE_LENGTH","isByteLength","isByteLengthValidator","sanitized","creditCard","digit","tmpNum","shouldDouble","sum","substring","IS_CREDIT_CARD","isCreditCard","isCreditCardValidator","digits_after_decimal","symbol","m","require_symbol","negative","whole_dollar_amount_with_sep","thousands_separator","whole_dollar_amount","decimal_amount","decimal_separator","require_decimal","pattern","allow_decimal","allow_negatives","parens_for_negatives","negative_sign_after_digits","negative_sign_before_digits","allow_negative_sign_placeholder","allow_space_after_symbol","allow_space_after_digits","symbol_after_digits","currencyRegex","default_currency_options","IS_CURRENCY","isCurrency","isCurrencyValidator","default_fqdn_options","allow_trailing_dot","parts","tld","require_tld","allow_numeric_tld","part","allow_underscores","isIP","version","ipv4Maybe","sort","a","b","addressAndZone","blocks","foundOmissionBlock","foundIPv4TransitionBlock","expectedNumberOfBlocks","substr","shift","ipv6Block","default_email_options","require_display_name","allow_display_name","display_email","match","splitNameAddress","display_name","_display_email","_arrayWithHoles","_arr","_n","_d","_e","_s","err","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","slice","_unsupportedIterableToArray","_nonIterableRest","_slicedToArray","trim_quotes","display_name_without_quotes","trim","validateDisplayName","ignore_max_length","domain","user","lower_domain","domain_specific_validation","username","_isByteLength","_user_parts","gmailUserPart","_isFQDN","allow_ip_domain","_isIP","noBracketdomain","allow_utf8_local_part","quotedEmailUserUtf8","quotedEmailUser","emailUserUtf8Part","emailUserPart","user_parts","blacklisted_chars","search","require$$3","require$$4","arr2","IS_EMAIL","isEmail","isEmailValidator","IS_FQDN","isFQDN","isFqdnValidator","fullWidth","IS_FULL_WIDTH","isFullWidth","isFullWidthValidator","halfWidth","IS_HALF_WIDTH","isHalfWidth","isHalfWidthValidator","_isFullWidth","_isHalfWidth","IS_VARIABLE_WIDTH","isVariableWidth","isVariableWidthValidator","hexcolor","IS_HEX_COLOR","isHexColor","isHexColorValidator","hexadecimal","IS_HEXADECIMAL","isHexadecimal","isHexadecimalValidator","isValidationOptions","no_colons","macAddressNoColons","macAddress","macAddressWithHyphen","macAddressWithSpaces","macAddressWithDots","IS_MAC_ADDRESS","isMACAddress","isMacAddressValidator","IS_IP","isIPValidator","regex","allow_leading_zeroes","int","intLeadingZeroes","minCheckPassed","maxCheckPassed","ltCheckPassed","gtCheckPassed","_isInt","IS_PORT","isPort","isPortValidator","isISBN","checksum","isbn10Maybe","charAt","isbn13Maybe","factor","IS_ISBN","isIsbnValidator","isin","checksumStr","character","IS_ISIN","isISIN","isIsinValidator","check","strictSeparator","iso8601StrictSeparator","iso8601","strict","isValidDate","ordinalMatch","oYear","oDay","year","month","day","monthString","dayString","d","getUTCFullYear","getUTCMonth","getUTCDate","IS_ISO8601","isISO8601","isIso8601Validator","default_json_options","primitives","allow_primitives","JSON","parse","IS_JSON","isJSON","isJSONValidator","dotSplit","acc","currElem","_isBase","IS_JWT","isJWT","isJwtValidator","IS_LOWERCASE","isLowercase","isLowercaseValidator","strictMode","phones","am-AM","ar-AE","ar-BH","ar-DZ","ar-LB","ar-EG","ar-IQ","ar-JO","ar-KW","ar-LY","ar-MA","ar-SA","ar-SY","ar-TN","bs-BA","be-BY","bn-BD","ca-AD","de-AT","de-CH","de-LU","en-AU","en-GB","en-GG","en-GH","en-HK","en-MO","en-IE","en-IN","en-KE","en-MT","en-MU","en-NG","en-NZ","en-PK","en-PH","en-RW","en-SG","en-SL","en-TZ","en-UG","en-ZA","en-ZM","en-ZW","es-AR","es-BO","es-CO","es-CL","es-CR","es-DO","es-HN","es-EC","es-PE","es-MX","es-PA","es-PY","es-UY","et-EE","fi-FI","fj-FJ","fo-FO","fr-GF","fr-GP","fr-MQ","fr-RE","he-IL","id-ID","it-SM","ja-JP","ka-GE","kk-KZ","kl-GL","ko-KR","lt-LT","ms-MY","ne-NP","nl-BE","pt-BR","ro-RO","sq-AL","uz-UZ","zh-CN","zh-TW","IS_MOBILE_PHONE","isMobilePhone","isMobilePhoneValidator","validISO31661Alpha2CountriesCodes","toUpperCase","IS_ISO31661_ALPHA_2","isISO31661Alpha2","isISO31661Alpha2Validator","validISO31661Alpha3CountriesCodes","IS_ISO31661_ALPHA_3","isISO31661Alpha3","isISO31661Alpha3Validator","_isHexadecimal","IS_MONGO_ID","isMongoId","isMongoIdValidator","multibyte","IS_MULTIBYTE","isMultibyte","isMultibyteValidator","surrogatePair","IS_SURROGATE_PAIR","isSurrogatePair","isSurrogatePairValidator","url","default_url_options","validate_length","protocol","auth","host","hostname","port","port_str","ipv6","require_valid_protocol","protocols","require_protocol","allow_protocol_relative_urls","require_host","disallow_auth","ipv6_match","wrapped_ipv6","require_port","host_whitelist","checkHost","host_blacklist","matches","IS_URL","isURL","isUrlValidator","uuid","3","4","5","IS_UUID","isUUID","isUuidValidator","IS_FIREBASE_PUSH_ID","isFirebasePushId","IS_UPPERCASE","isUppercase","isUppercaseValidator","surrogatePairs","IS_LENGTH","isLengthValidator","MAX_LENGTH","maxLength","MIN_LENGTH","minLength","modifiers","MATCHES","matchesValidator","country_calling_codes","1","7","20","27","30","31","32","33","34","36","39","40","41","43","44","45","46","47","48","49","51","52","53","54","55","56","57","58","60","61","62","63","64","65","66","81","82","84","86","90","91","92","93","94","95","98","211","212","213","216","218","220","221","222","223","224","225","226","227","228","229","230","231","232","233","234","235","236","237","238","239","240","241","242","243","244","245","246","247","248","249","250","251","252","253","254","255","256","257","258","260","261","262","263","264","265","266","267","268","269","290","291","297","298","299","350","351","352","353","354","355","356","357","358","359","370","371","372","373","374","375","376","377","378","380","381","382","383","385","386","387","389","420","421","423","500","501","502","503","504","505","506","507","508","509","590","591","592","593","594","595","596","597","598","599","670","672","673","674","675","676","677","678","679","680","681","682","683","685","686","687","688","689","690","691","692","850","852","853","855","856","880","886","960","961","962","963","964","965","966","967","968","970","971","972","973","974","975","976","977","992","993","994","995","996","998","countries","AC","AD","AE","AF","AG","AI","AL","AM","AO","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GT","GU","GW","GY","HK","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TA","TC","TD","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","nonGeographic","800","808","870","878","881","882","883","888","979","withMetadata","func","ParseError","code","Constructor","_classCallCheck","stack","create","VALID_DIGITS","VALID_PUNCTUATION","pa","pb","na","nb","_defineProperties","props","descriptor","writable","_createClass","protoProps","staticProps","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","is_object","type_of","validateMetadata","setVersion","countryCode","v1","v2","v3","nonGeographical","country","getCountryMetadata","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","selectNumberingPlan","hasCountry","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","_type","ext","country_phone_code_to_countries","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","types","_type2","getType","Type","format","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","getCountryCallingCode","countryCallingCode","v4","compare","getExtensionDigitsPattern","createExtensionPattern","purpose","optionalExtnSuffix","possibleSeparatorsBetweenNumberAndExtLabel","possibleSeparatorsNumberExtLabelNoComma","VALID_PHONE_NUMBER_WITH_EXTENSION","VALID_PHONE_NUMBER_PATTERN","isViablePhoneNumber","number","EXTN_PATTERN","DIGITS","0","2","6","8","9","0","1","2","3","4","5","6","7","8","9","٠","١","٢","٣","٤","٥","٦","٧","٨","٩","۰","۱","۲","۳","۴","۵","۶","۷","۸","۹","parseIncompletePhoneNumber","string","_iterator","_isArray","_ref","parsePhoneNumberCharacter","prevParsedCharacters","parseDigit","checkNumberLength","nationalNumber","checkNumberLengthForType","type_info","possible_lengths","mobile_type","merged","element","mergeArrays","actual_length","minimum_length","isPossibleNumber","matchesEntirely","text","regular_expression","NON_FIXED_LINE_PHONE_TYPES","getNumberType","phone","isNumberTypeEqualTo","_NON_FIXED_LINE_PHONE","FIRST_GROUP_PATTERN","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","formattedNumber","carrierCode","internationalFormat","applyInternationalSeparatorStyle","SINGLE_IDD_PREFIX_REG_EXP","_defineProperty","DEFAULT_OPTIONS","formatExtension","extension","formatNumber","source","ownKeys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","_objectSpread","addExtension","formatNationalNumber","_ref2","formatRFC3966","fromCountry","iddPrefix","countryMetadata","getIddPrefix","formatIDD","formatAs","availableFormats","nationalNnumber","leadingDigitsPatterns","lastLeadingDigitsPattern","chooseFormatForNumber","PhoneNumber","_metadata","isCountryCode","isNonGeographicCallingCode","isValidNumber","phoneNumber","CAPTURING_DIGIT_PATTERN","extractNationalNumber","_extractNationalNumbe","prefixPattern","prefixMatch","exec","capturedGroupsCount","hasCapturedGroups","prefixBeforeNationalNumber","possiblePositionOfTheFirstCapturedGroup","extractNationalNumberFromPossiblyIncompleteNumber","nationalSignificantNumber","shouldExtractNationalPrefix","extractCountryCallingCode","numberWithoutIDD","IDDPrefixPattern","matchedGroups","stripIddPrefix","_extractCountryCallin","possibleShorterNumber","possibleShorterNationalNumber","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","shorterNumber","_countryCallingCode","getCountryByCallingCode","nationalPhoneNumber","possibleCountries","selectCountryFromList","PHONE_NUMBER_START_PATTERN","AFTER_PHONE_NUMBER_END_PATTERN","defaultCountry","_parseInput","_part$split2","parseRFC3966","throwOnError","startsAt","extractFormattedPhoneNumber","withExtensionStripped","start","numberWithoutExtension","extractExtension","parseInput","formattedPhoneNumber","_parsePhoneNumber","defaultCallingCode","exactCountry","parsePhoneNumber","hasSelectedNumberingPlan","valid","extended","possible","parseNumber","normalizeArguments","_Array$prototype$slic2","arg_1","arg_2","arg_3","arg_4","isObject","parsePhoneNumberFromString","isSupportedCountry","_normalizeArguments","parsePhoneNumberFromString_","IS_PHONE_NUMBER","isPhoneNumber","region","phoneNum","_parsePhoneNumberFromString","IS_MILITARY_TIME","isMilitaryTime","algorithm","lengths","md5","md4","sha1","sha256","sha384","sha512","ripemd128","ripemd160","tiger128","tiger160","tiger192","crc32","crc32b","IS_HASH","isHash","isHashValidator","testIssn","issn","require_hyphen","case_sensitive","digits","IS_ISSN","isISSN","isISSNValidator","IS_DATE_STRING","isDateString","IS_BOOLEAN_STRING","isBooleanString","isBooleanValidator","no_symbols","numericNoSymbols","IS_NUMBER_STRING","isNumberString","isNumericValidator","base32","IS_BASE32","isBase32","isBase32Validator","isBICReg","IS_BIC","isBIC","isBICValidator","btc","IS_BTC_ADDRESS","isBtcAddress","isBtcAddressValidator","data","attributes","schemeAndMediaType","mediaType","validMediaType","validAttribute","validData","IS_DATA_URI","isDataURI","isDataURIValidator","actualCheckDigit","validEanRegex","ean","remainder","char","getPositionWeightThroughLengthAndIndex","partialSum","IS_EAN","isEAN","isEANValidator","eth","IS_ETHEREUM_ADDRESS","isEthereumAddress","isEthereumAddressValidator","hslcomma","hslspace","IS_HSL","isHSL","isHSLValidator","strippedStr","isoCountryCode","ibanRegexThroughCountryCode","hasValidIbanFormat","charCodeAt","hasValidIbanChecksum","IS_IBAN","isIBAN","isIBANValidator","validators","charsValue","X","Y","Z","c","reverse","k1","k2","incNum","id","idCardNo","provincesAndCities","powers","parityBit","checkAddressCode","addressCode","checkBirthDayCode","birDayCode","yyyy","mm","dd","xdata","getFullYear","getMonth","getDate","checkParityBit","id17","power","getParityBit","check15IdCardNo","check18IdCardNo","ALPHABET_CODES","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","Q","R","S","T","U","V","W","Math","floor","IS_IDENTITY_CARD","isIdentityCard","isIdentityCardValidator","isrc","IS_ISRC","isISRC","isISRCValidator","localeReg","IS_LOCALE","isLocale","isLocaleValidator","magnetURI","IS_MAGNET_URI","isMagnetURI","isMagnetURIValidator","mimeTypeSimple","mimeTypeText","mimeTypeMultipart","IS_MIME_TYPE","isMimeType","isMimeTypeValidator","octal","IS_OCTAL","isOctal","isOctalValidator","normalizedStr","passportRegexByCountryCode","PO","IS_PASSPORT_NUMBER","isPassportNumber","isPassportNumberValidator","patterns","fourDigit","fiveDigit","sixDigit","IS_POSTAL_CODE","isPostalCode","isPostalCodeValidator","rfc3339","timeHour","timeMinute","timeNumOffset","timeOffset","partialTime","fullDate","fullTime","IS_RFC_3339","isRFC3339","isRFC3339Validator","includePercentValues","rgbColor","rgbaColor","rgbColorPercent","rgbaColorPercent","IS_RGB_COLOR","isRgbColor","isRgbColorValidator","flags","regexpAsStringLiteral","semanticVersioningRegex","IS_SEM_VER","isSemVer","isSemVerValidator","IS_BOOLEAN","isBoolean","Boolean","IS_DATE","isDate","IS_NUMBER","isNumber","Infinity","allowInfinity","allowNaN","maxDecimalPlaces","decimalPlaces","isFinite","IS_ENUM","isEnum","entity","k","IS_INT","isInt","IS_STRING","isString","IS_ARRAY","IS_OBJECT","ARRAY_CONTAINS","arrayContains","array","ARRAY_NOT_CONTAINS","arrayNotContains","ARRAY_NOT_EMPTY","arrayNotEmpty","ARRAY_MIN_SIZE","arrayMinSize","ARRAY_MAX_SIZE","arrayMaxSize","ARRAY_UNIQUE","arrayUnique","identifier","uniqueItems","IS_NOT_EMPTY_OBJECT","isNotEmptyObject","nullable","propertyValue","IS_INSTANCE","isInstance","targetTypeConstructor","identifierOrOptions","targetType","optionsOrValidationOptionsArg","validationOptionsArg","isMinLength","isMaxLength","modifiersOrAnnotationOptions","maxValue","minValue","constraintClass","constraintsOrValidationOptions","maybeValidationOptions","condition","opts","isAsync","x","iocContainer","schemaNameOrObject"],"mappings":"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,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,GAAK,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,KAAK,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,KAAK,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,KAAK,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,KAAK,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,KAAK,KAAK,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,KAAK,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,CAAC,MAAMC,IAAM,C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"} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/container.js b/views/node_modules/class-validator/cjs/container.js deleted file mode 100644 index fc13c99..0000000 --- a/views/node_modules/class-validator/cjs/container.js +++ /dev/null @@ -1,51 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getFromContainer = exports.useContainer = void 0; -/** - * Container to be used by this library for inversion control. If container was not implicitly set then by default - * container simply creates a new instance of the given class. - */ -const defaultContainer = new (class { - constructor() { - this.instances = []; - } - get(someClass) { - let instance = this.instances.find(instance => instance.type === someClass); - if (!instance) { - instance = { type: someClass, object: new someClass() }; - this.instances.push(instance); - } - return instance.object; - } -})(); -let userContainer; -let userContainerOptions; -/** - * Sets container to be used by this library. - */ -function useContainer(iocContainer, options) { - userContainer = iocContainer; - userContainerOptions = options; -} -exports.useContainer = useContainer; -/** - * Gets the IOC container used by this library. - */ -function getFromContainer(someClass) { - if (userContainer) { - try { - const instance = userContainer.get(someClass); - if (instance) - return instance; - if (!userContainerOptions || !userContainerOptions.fallback) - return instance; - } - catch (error) { - if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) - throw error; - } - } - return defaultContainer.get(someClass); -} -exports.getFromContainer = getFromContainer; -//# sourceMappingURL=container.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/container.js.map b/views/node_modules/class-validator/cjs/container.js.map deleted file mode 100644 index 6101cd0..0000000 --- a/views/node_modules/class-validator/cjs/container.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/container.ts"],"names":[],"mappings":";;;AAeA;;;GAGG;AACH,MAAM,gBAAgB,GAAqE,IAAI,CAAC;IAAA;QACtF,cAAS,GAAsC,EAAE,CAAC;IAU5D,CAAC;IATC,GAAG,CAAI,SAAsC;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/B;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;CACF,CAAC,EAAE,CAAC;AAEL,IAAI,aAA+E,CAAC;AACpF,IAAI,oBAAyC,CAAC;AAE9C;;GAEG;AACH,SAAgB,YAAY,CAAC,YAA0C,EAAE,OAA6B;IACpG,aAAa,GAAG,YAAY,CAAC;IAC7B,oBAAoB,GAAG,OAAO,CAAC;AACjC,CAAC;AAHD,oCAGC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAI,SAAiD;IACnF,IAAI,aAAa,EAAE;QACjB,IAAI;YACF,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAE9B,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,QAAQ;gBAAE,OAAO,QAAQ,CAAC;SAC9E;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,gBAAgB;gBAAE,MAAM,KAAK,CAAC;SAClF;KACF;IACD,OAAO,gBAAgB,CAAC,GAAG,CAAI,SAAS,CAAC,CAAC;AAC5C,CAAC;AAZD,4CAYC","sourcesContent":["/**\n * Container options.\n */\nexport interface UseContainerOptions {\n /**\n * If set to true, then default container will be used in the case if given container haven't returned anything.\n */\n fallback?: boolean;\n\n /**\n * If set to true, then default container will be used in the case if given container thrown an exception.\n */\n fallbackOnErrors?: boolean;\n}\n\n/**\n * Container to be used by this library for inversion control. If container was not implicitly set then by default\n * container simply creates a new instance of the given class.\n */\nconst defaultContainer: { get(someClass: { new (...args: any[]): T } | Function): T } = new (class {\n private instances: { type: Function; object: any }[] = [];\n get(someClass: { new (...args: any[]): T }): T {\n let instance = this.instances.find(instance => instance.type === someClass);\n if (!instance) {\n instance = { type: someClass, object: new someClass() };\n this.instances.push(instance);\n }\n\n return instance.object;\n }\n})();\n\nlet userContainer: { get(someClass: { new (...args: any[]): T } | Function): T };\nlet userContainerOptions: UseContainerOptions;\n\n/**\n * Sets container to be used by this library.\n */\nexport function useContainer(iocContainer: { get(someClass: any): any }, options?: UseContainerOptions): void {\n userContainer = iocContainer;\n userContainerOptions = options;\n}\n\n/**\n * Gets the IOC container used by this library.\n */\nexport function getFromContainer(someClass: { new (...args: any[]): T } | Function): T {\n if (userContainer) {\n try {\n const instance = userContainer.get(someClass);\n if (instance) return instance;\n\n if (!userContainerOptions || !userContainerOptions.fallback) return instance;\n } catch (error) {\n if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) throw error;\n }\n }\n return defaultContainer.get(someClass);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/ValidationOptions.js b/views/node_modules/class-validator/cjs/decorator/ValidationOptions.js deleted file mode 100644 index 18058ff..0000000 --- a/views/node_modules/class-validator/cjs/decorator/ValidationOptions.js +++ /dev/null @@ -1,11 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isValidationOptions = void 0; -function isValidationOptions(val) { - if (!val) { - return false; - } - return 'each' in val || 'message' in val || 'groups' in val || 'always' in val || 'context' in val; -} -exports.isValidationOptions = isValidationOptions; -//# sourceMappingURL=ValidationOptions.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/ValidationOptions.js.map b/views/node_modules/class-validator/cjs/decorator/ValidationOptions.js.map deleted file mode 100644 index fc71ecf..0000000 --- a/views/node_modules/class-validator/cjs/decorator/ValidationOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationOptions.js","sourceRoot":"","sources":["../../../src/decorator/ValidationOptions.ts"],"names":[],"mappings":";;;AAiCA,SAAgB,mBAAmB,CAAC,GAAQ;IAC1C,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;KACd;IACD,OAAO,MAAM,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC;AACrG,CAAC;AALD,kDAKC","sourcesContent":["import { ValidationArguments } from '../validation/ValidationArguments';\n\n/**\n * Options used to pass to validation decorators.\n */\nexport interface ValidationOptions {\n /**\n * Specifies if validated value is an array and each of its items must be validated.\n */\n each?: boolean;\n\n /**\n * Error message to be used on validation fail.\n * Message can be either string or a function that returns a string.\n */\n message?: string | ((validationArguments: ValidationArguments) => string);\n\n /**\n * Validation groups used for this validation.\n */\n groups?: string[];\n\n /**\n * Indicates if validation must be performed always, no matter of validation groups used.\n */\n always?: boolean;\n\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n context?: any;\n}\n\nexport function isValidationOptions(val: any): val is ValidationOptions {\n if (!val) {\n return false;\n }\n return 'each' in val || 'message' in val || 'groups' in val || 'always' in val || 'context' in val;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayContains.js b/views/node_modules/class-validator/cjs/decorator/array/ArrayContains.js deleted file mode 100644 index 8c465fb..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayContains.js +++ /dev/null @@ -1,31 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ArrayContains = exports.arrayContains = exports.ARRAY_CONTAINS = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.ARRAY_CONTAINS = 'arrayContains'; -/** - * Checks if array contains all values from the given array of values. - * If null or undefined is given then this function returns false. - */ -function arrayContains(array, values) { - if (!(array instanceof Array)) - return false; - return values.every(value => array.indexOf(value) !== -1); -} -exports.arrayContains = arrayContains; -/** - * Checks if array contains all values from the given array of values. - * If null or undefined is given then this function returns false. - */ -function ArrayContains(values, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.ARRAY_CONTAINS, - constraints: [values], - validator: { - validate: (value, args) => arrayContains(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain $constraint1 values', validationOptions), - }, - }, validationOptions); -} -exports.ArrayContains = ArrayContains; -//# sourceMappingURL=ArrayContains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayContains.js.map b/views/node_modules/class-validator/cjs/decorator/array/ArrayContains.js.map deleted file mode 100644 index 96416a8..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayContains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayContains.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayContains.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,cAAc,GAAG,eAAe,CAAC;AAE9C;;;GAGG;AACH,SAAgB,aAAa,CAAC,KAAc,EAAE,MAAa;IACzD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAJD,sCAIC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,MAAa,EAAE,iBAAqC;IAChF,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,sBAAc;QACpB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7E,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,4CAA4C,EACvE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,sCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_CONTAINS = 'arrayContains';\n\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayContains(array: unknown, values: any[]): boolean {\n if (!(array instanceof Array)) return false;\n\n return values.every(value => array.indexOf(value) !== -1);\n}\n\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayContains(values: any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_CONTAINS,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => arrayContains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain $constraint1 values',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayMaxSize.js b/views/node_modules/class-validator/cjs/decorator/array/ArrayMaxSize.js deleted file mode 100644 index bc87bf1..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayMaxSize.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ArrayMaxSize = exports.arrayMaxSize = exports.ARRAY_MAX_SIZE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.ARRAY_MAX_SIZE = 'arrayMaxSize'; -/** - * Checks if the array's length is less or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -function arrayMaxSize(array, max) { - return array instanceof Array && array.length <= max; -} -exports.arrayMaxSize = arrayMaxSize; -/** - * Checks if the array's length is less or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -function ArrayMaxSize(max, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.ARRAY_MAX_SIZE, - constraints: [max], - validator: { - validate: (value, args) => arrayMaxSize(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain not more than $constraint1 elements', validationOptions), - }, - }, validationOptions); -} -exports.ArrayMaxSize = ArrayMaxSize; -//# sourceMappingURL=ArrayMaxSize.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayMaxSize.js.map b/views/node_modules/class-validator/cjs/decorator/array/ArrayMaxSize.js.map deleted file mode 100644 index aa48bb4..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayMaxSize.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayMaxSize.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayMaxSize.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAc,EAAE,GAAW;IACtD,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;AACvD,CAAC;AAFD,oCAEC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,GAAW,EAAE,iBAAqC;IAC7E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,sBAAc;QACpB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5E,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,4DAA4D,EACvF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,oCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_MAX_SIZE = 'arrayMaxSize';\n\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMaxSize(array: unknown, max: number): boolean {\n return array instanceof Array && array.length <= max;\n}\n\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMaxSize(max: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_MAX_SIZE,\n constraints: [max],\n validator: {\n validate: (value, args): boolean => arrayMaxSize(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain not more than $constraint1 elements',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayMinSize.js b/views/node_modules/class-validator/cjs/decorator/array/ArrayMinSize.js deleted file mode 100644 index fb1eb0b..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayMinSize.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ArrayMinSize = exports.arrayMinSize = exports.ARRAY_MIN_SIZE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.ARRAY_MIN_SIZE = 'arrayMinSize'; -/** - * Checks if the array's length is greater than or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -function arrayMinSize(array, min) { - return array instanceof Array && array.length >= min; -} -exports.arrayMinSize = arrayMinSize; -/** - * Checks if the array's length is greater than or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -function ArrayMinSize(min, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.ARRAY_MIN_SIZE, - constraints: [min], - validator: { - validate: (value, args) => arrayMinSize(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain at least $constraint1 elements', validationOptions), - }, - }, validationOptions); -} -exports.ArrayMinSize = ArrayMinSize; -//# sourceMappingURL=ArrayMinSize.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayMinSize.js.map b/views/node_modules/class-validator/cjs/decorator/array/ArrayMinSize.js.map deleted file mode 100644 index 9eb68f5..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayMinSize.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayMinSize.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayMinSize.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAc,EAAE,GAAW;IACtD,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;AACvD,CAAC;AAFD,oCAEC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,GAAW,EAAE,iBAAqC;IAC7E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,sBAAc;QACpB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5E,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uDAAuD,EAClF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,oCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_MIN_SIZE = 'arrayMinSize';\n\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMinSize(array: unknown, min: number): boolean {\n return array instanceof Array && array.length >= min;\n}\n\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMinSize(min: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_MIN_SIZE,\n constraints: [min],\n validator: {\n validate: (value, args): boolean => arrayMinSize(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain at least $constraint1 elements',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayNotContains.js b/views/node_modules/class-validator/cjs/decorator/array/ArrayNotContains.js deleted file mode 100644 index 271362a..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayNotContains.js +++ /dev/null @@ -1,31 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ArrayNotContains = exports.arrayNotContains = exports.ARRAY_NOT_CONTAINS = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.ARRAY_NOT_CONTAINS = 'arrayNotContains'; -/** - * Checks if array does not contain any of the given values. - * If null or undefined is given then this function returns false. - */ -function arrayNotContains(array, values) { - if (!(array instanceof Array)) - return false; - return values.every(value => array.indexOf(value) === -1); -} -exports.arrayNotContains = arrayNotContains; -/** - * Checks if array does not contain any of the given values. - * If null or undefined is given then this function returns false. - */ -function ArrayNotContains(values, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.ARRAY_NOT_CONTAINS, - constraints: [values], - validator: { - validate: (value, args) => arrayNotContains(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property should not contain $constraint1 values', validationOptions), - }, - }, validationOptions); -} -exports.ArrayNotContains = ArrayNotContains; -//# sourceMappingURL=ArrayNotContains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayNotContains.js.map b/views/node_modules/class-validator/cjs/decorator/array/ArrayNotContains.js.map deleted file mode 100644 index 5b25cee..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayNotContains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayNotContains.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayNotContains.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,kBAAkB,GAAG,kBAAkB,CAAC;AAErD;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAc,EAAE,MAAa;IAC5D,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAJD,4CAIC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,MAAa,EAAE,iBAAqC;IACnF,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,0BAAkB;QACxB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAChF,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kDAAkD,EAC7E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,4CAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_NOT_CONTAINS = 'arrayNotContains';\n\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotContains(array: unknown, values: any[]): boolean {\n if (!(array instanceof Array)) return false;\n\n return values.every(value => array.indexOf(value) === -1);\n}\n\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotContains(values: any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_NOT_CONTAINS,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => arrayNotContains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not contain $constraint1 values',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayNotEmpty.js b/views/node_modules/class-validator/cjs/decorator/array/ArrayNotEmpty.js deleted file mode 100644 index 81f7e81..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayNotEmpty.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ArrayNotEmpty = exports.arrayNotEmpty = exports.ARRAY_NOT_EMPTY = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.ARRAY_NOT_EMPTY = 'arrayNotEmpty'; -/** - * Checks if given array is not empty. - * If null or undefined is given then this function returns false. - */ -function arrayNotEmpty(array) { - return array instanceof Array && array.length > 0; -} -exports.arrayNotEmpty = arrayNotEmpty; -/** - * Checks if given array is not empty. - * If null or undefined is given then this function returns false. - */ -function ArrayNotEmpty(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.ARRAY_NOT_EMPTY, - validator: { - validate: (value, args) => arrayNotEmpty(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions), - }, - }, validationOptions); -} -exports.ArrayNotEmpty = ArrayNotEmpty; -//# sourceMappingURL=ArrayNotEmpty.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayNotEmpty.js.map b/views/node_modules/class-validator/cjs/decorator/array/ArrayNotEmpty.js.map deleted file mode 100644 index d0a91b2..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayNotEmpty.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayNotEmpty.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayNotEmpty.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,eAAe,GAAG,eAAe,CAAC;AAE/C;;;GAGG;AACH,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACpD,CAAC;AAFD,sCAEC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,iBAAqC;IACjE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,uBAAe;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;YACxD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+BAA+B,EAAE,iBAAiB,CAAC;SAC5G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,sCAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_NOT_EMPTY = 'arrayNotEmpty';\n\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotEmpty(array: unknown): boolean {\n return array instanceof Array && array.length > 0;\n}\n\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotEmpty(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_NOT_EMPTY,\n validator: {\n validate: (value, args): boolean => arrayNotEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayUnique.js b/views/node_modules/class-validator/cjs/decorator/array/ArrayUnique.js deleted file mode 100644 index 251321e..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayUnique.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ArrayUnique = exports.arrayUnique = exports.ARRAY_UNIQUE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.ARRAY_UNIQUE = 'arrayUnique'; -/** - * Checks if all array's values are unique. Comparison for objects is reference-based. - * If null or undefined is given then this function returns false. - */ -function arrayUnique(array, identifier) { - if (!(array instanceof Array)) - return false; - if (identifier) { - array = array.map(o => (o != null ? identifier(o) : o)); - } - const uniqueItems = array.filter((a, b, c) => c.indexOf(a) === b); - return array.length === uniqueItems.length; -} -exports.arrayUnique = arrayUnique; -/** - * Checks if all array's values are unique. Comparison for objects is reference-based. - * If null or undefined is given then this function returns false. - */ -function ArrayUnique(identifierOrOptions, validationOptions) { - const identifier = typeof identifierOrOptions === 'function' ? identifierOrOptions : undefined; - const options = typeof identifierOrOptions !== 'function' ? identifierOrOptions : validationOptions; - return ValidateBy_1.ValidateBy({ - name: exports.ARRAY_UNIQUE, - validator: { - validate: (value, args) => arrayUnique(value, identifier), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + "All $property's elements must be unique", options), - }, - }, options); -} -exports.ArrayUnique = ArrayUnique; -//# sourceMappingURL=ArrayUnique.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/array/ArrayUnique.js.map b/views/node_modules/class-validator/cjs/decorator/array/ArrayUnique.js.map deleted file mode 100644 index 345a14c..0000000 --- a/views/node_modules/class-validator/cjs/decorator/array/ArrayUnique.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayUnique.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayUnique.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,YAAY,GAAG,aAAa,CAAC;AAG1C;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAgB,EAAE,UAAkC;IAC9E,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,IAAI,UAAU,EAAE;QACd,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzD;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC;AAC7C,CAAC;AATD,kCASC;AAED;;;GAGG;AACH,SAAgB,WAAW,CACzB,mBAAkE,EAClE,iBAAqC;IAErC,MAAM,UAAU,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,OAAO,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEpG,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,oBAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC;YAClE,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,yCAAyC,EAAE,OAAO,CAAC;SAC5G;KACF,EACD,OAAO,CACR,CAAC;AACJ,CAAC;AAjBD,kCAiBC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_UNIQUE = 'arrayUnique';\nexport type ArrayUniqueIdentifier = (o: T) => any;\n\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayUnique(array: unknown[], identifier?: ArrayUniqueIdentifier): boolean {\n if (!(array instanceof Array)) return false;\n\n if (identifier) {\n array = array.map(o => (o != null ? identifier(o) : o));\n }\n\n const uniqueItems = array.filter((a, b, c) => c.indexOf(a) === b);\n return array.length === uniqueItems.length;\n}\n\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayUnique(\n identifierOrOptions?: ArrayUniqueIdentifier | ValidationOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n const identifier = typeof identifierOrOptions === 'function' ? identifierOrOptions : undefined;\n const options = typeof identifierOrOptions !== 'function' ? identifierOrOptions : validationOptions;\n\n return ValidateBy(\n {\n name: ARRAY_UNIQUE,\n validator: {\n validate: (value, args): boolean => arrayUnique(value, identifier),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + \"All $property's elements must be unique\", options),\n },\n },\n options\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/Allow.js b/views/node_modules/class-validator/cjs/decorator/common/Allow.js deleted file mode 100644 index 1cbdb13..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/Allow.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Allow = void 0; -const ValidationTypes_1 = require("../../validation/ValidationTypes"); -const ValidationMetadata_1 = require("../../metadata/ValidationMetadata"); -const MetadataStorage_1 = require("../../metadata/MetadataStorage"); -/** - * If object has both allowed and not allowed properties a validation error will be thrown. - */ -function Allow(validationOptions) { - return function (object, propertyName) { - const args = { - type: ValidationTypes_1.ValidationTypes.WHITELIST, - target: object.constructor, - propertyName: propertyName, - validationOptions: validationOptions, - }; - MetadataStorage_1.getMetadataStorage().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); - }; -} -exports.Allow = Allow; -//# sourceMappingURL=Allow.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/Allow.js.map b/views/node_modules/class-validator/cjs/decorator/common/Allow.js.map deleted file mode 100644 index 6dea94c..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/Allow.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Allow.js","sourceRoot":"","sources":["../../../../src/decorator/common/Allow.ts"],"names":[],"mappings":";;;AAEA,sEAAmE;AACnE,0EAAuE;AACvE,oEAAoE;AAEpE;;GAEG;AACH,SAAgB,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,iCAAe,CAAC,SAAS;YAC/B,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,oCAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,uCAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAVD,sBAUC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * If object has both allowed and not allowed properties a validation error will be thrown.\n */\nexport function Allow(validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.WHITELIST,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/Equals.js b/views/node_modules/class-validator/cjs/decorator/common/Equals.js deleted file mode 100644 index b8585ce..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/Equals.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Equals = exports.equals = exports.EQUALS = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.EQUALS = 'equals'; -/** - * Checks if value matches ("===") the comparison. - */ -function equals(value, comparison) { - return value === comparison; -} -exports.equals = equals; -/** - * Checks if value matches ("===") the comparison. - */ -function Equals(comparison, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.EQUALS, - constraints: [comparison], - validator: { - validate: (value, args) => equals(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be equal to $constraint1', validationOptions), - }, - }, validationOptions); -} -exports.Equals = Equals; -//# sourceMappingURL=Equals.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/Equals.js.map b/views/node_modules/class-validator/cjs/decorator/common/Equals.js.map deleted file mode 100644 index 40dbc6a..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/Equals.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Equals.js","sourceRoot":"","sources":["../../../../src/decorator/common/Equals.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,MAAM,GAAG,QAAQ,CAAC;AAE/B;;GAEG;AACH,SAAgB,MAAM,CAAC,KAAc,EAAE,UAAmB;IACxD,OAAO,KAAK,KAAK,UAAU,CAAC;AAC9B,CAAC;AAFD,wBAEC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAC,UAAe,EAAE,iBAAqC;IAC3E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,cAAM;QACZ,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,yCAAyC,EACpE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,wBAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const EQUALS = 'equals';\n\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function equals(value: unknown, comparison: unknown): boolean {\n return value === comparison;\n}\n\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function Equals(comparison: any, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: EQUALS,\n constraints: [comparison],\n validator: {\n validate: (value, args): boolean => equals(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be equal to $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsDefined.js b/views/node_modules/class-validator/cjs/decorator/common/IsDefined.js deleted file mode 100644 index 43f673f..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsDefined.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsDefined = exports.isDefined = exports.IS_DEFINED = void 0; -const ValidateBy_1 = require("./ValidateBy"); -const ValidationTypes_1 = require("../../validation/ValidationTypes"); -// isDefined is (yet) a special case -exports.IS_DEFINED = ValidationTypes_1.ValidationTypes.IS_DEFINED; -/** - * Checks if value is defined (!== undefined, !== null). - */ -function isDefined(value) { - return value !== undefined && value !== null; -} -exports.isDefined = isDefined; -/** - * Checks if value is defined (!== undefined, !== null). - */ -function IsDefined(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_DEFINED, - validator: { - validate: (value) => isDefined(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property should not be null or undefined', validationOptions), - }, - }, validationOptions); -} -exports.IsDefined = IsDefined; -//# sourceMappingURL=IsDefined.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsDefined.js.map b/views/node_modules/class-validator/cjs/decorator/common/IsDefined.js.map deleted file mode 100644 index 7fe51f6..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsDefined.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDefined.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsDefined.ts"],"names":[],"mappings":";;;AACA,6CAAwD;AACxD,sEAAmE;AAEnE,oCAAoC;AACvB,QAAA,UAAU,GAAG,iCAAe,CAAC,UAAU,CAAC;AAErD;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAU;IAClC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAC/C,CAAC;AAFD,8BAEC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,iBAAqC;IAC7D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,kBAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YAC9C,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,2CAA2C,EACtE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,8BAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\n\n// isDefined is (yet) a special case\nexport const IS_DEFINED = ValidationTypes.IS_DEFINED;\n\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function isDefined(value: any): boolean {\n return value !== undefined && value !== null;\n}\n\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function IsDefined(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DEFINED,\n validator: {\n validate: (value): boolean => isDefined(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not be null or undefined',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsEmpty.js b/views/node_modules/class-validator/cjs/decorator/common/IsEmpty.js deleted file mode 100644 index 8ed571b..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsEmpty.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsEmpty = exports.isEmpty = exports.IS_EMPTY = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_EMPTY = 'isEmpty'; -/** - * Checks if given value is empty (=== '', === null, === undefined). - */ -function isEmpty(value) { - return value === '' || value === null || value === undefined; -} -exports.isEmpty = isEmpty; -/** - * Checks if given value is empty (=== '', === null, === undefined). - */ -function IsEmpty(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_EMPTY, - validator: { - validate: (value, args) => isEmpty(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be empty', validationOptions), - }, - }, validationOptions); -} -exports.IsEmpty = IsEmpty; -//# sourceMappingURL=IsEmpty.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsEmpty.js.map b/views/node_modules/class-validator/cjs/decorator/common/IsEmpty.js.map deleted file mode 100644 index 67e99a7..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsEmpty.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEmpty.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsEmpty.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/D,CAAC;AAFD,0BAEC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,iBAAqC;IAC3D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,gBAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAClD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,yBAAyB,EAAE,iBAAiB,CAAC;SACtG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,0BAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_EMPTY = 'isEmpty';\n\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function isEmpty(value: unknown): boolean {\n return value === '' || value === null || value === undefined;\n}\n\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function IsEmpty(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_EMPTY,\n validator: {\n validate: (value, args): boolean => isEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be empty', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsIn.js b/views/node_modules/class-validator/cjs/decorator/common/IsIn.js deleted file mode 100644 index bf63e62..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsIn.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsIn = exports.isIn = exports.IS_IN = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_IN = 'isIn'; -/** - * Checks if given value is in a array of allowed values. - */ -function isIn(value, possibleValues) { - return !(possibleValues instanceof Array) || possibleValues.some(possibleValue => possibleValue === value); -} -exports.isIn = isIn; -/** - * Checks if given value is in a array of allowed values. - */ -function IsIn(values, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_IN, - constraints: [values], - validator: { - validate: (value, args) => isIn(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be one of the following values: $constraint1', validationOptions), - }, - }, validationOptions); -} -exports.IsIn = IsIn; -//# sourceMappingURL=IsIn.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsIn.js.map b/views/node_modules/class-validator/cjs/decorator/common/IsIn.js.map deleted file mode 100644 index 6ba30e3..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsIn.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIn.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsIn.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,KAAK,GAAG,MAAM,CAAC;AAE5B;;GAEG;AACH,SAAgB,IAAI,CAAC,KAAc,EAAE,cAAkC;IACrE,OAAO,CAAC,CAAC,cAAc,YAAY,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC;AAC7G,CAAC;AAFD,oBAEC;AAED;;GAEG;AACH,SAAgB,IAAI,CAAC,MAAsB,EAAE,iBAAqC;IAChF,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,aAAK;QACX,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACpE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,6DAA6D,EACxF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,oBAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_IN = 'isIn';\n\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function isIn(value: unknown, possibleValues: readonly unknown[]): boolean {\n return !(possibleValues instanceof Array) || possibleValues.some(possibleValue => possibleValue === value);\n}\n\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function IsIn(values: readonly any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IN,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => isIn(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be one of the following values: $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsLatLong.js b/views/node_modules/class-validator/cjs/decorator/common/IsLatLong.js deleted file mode 100644 index d93e702..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsLatLong.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsLatLong = exports.isLatLong = exports.IS_LATLONG = void 0; -const ValidateBy_1 = require("./ValidateBy"); -const isLatLong_1 = __importDefault(require("validator/lib/isLatLong")); -exports.IS_LATLONG = 'isLatLong'; -/** - * Checks if a value is string in format a "latitude,longitude". - */ -function isLatLong(value) { - return typeof value === 'string' && isLatLong_1.default(value); -} -exports.isLatLong = isLatLong; -/** - * Checks if a value is string in format a "latitude,longitude". - */ -function IsLatLong(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_LATLONG, - validator: { - validate: (value, args) => isLatLong(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a latitude,longitude string', validationOptions), - }, - }, validationOptions); -} -exports.IsLatLong = IsLatLong; -//# sourceMappingURL=IsLatLong.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsLatLong.js.map b/views/node_modules/class-validator/cjs/decorator/common/IsLatLong.js.map deleted file mode 100644 index 4755604..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsLatLong.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLatLong.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsLatLong.ts"],"names":[],"mappings":";;;;;;AACA,6CAAwD;AACxD,wEAAyD;AAE5C,QAAA,UAAU,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAa;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAFD,8BAEC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,iBAAqC;IAC7D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,kBAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACpD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+CAA+C,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,8BAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport isLatLongValidator from 'validator/lib/isLatLong';\n\nexport const IS_LATLONG = 'isLatLong';\n\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function isLatLong(value: string): boolean {\n return typeof value === 'string' && isLatLongValidator(value);\n}\n\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function IsLatLong(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LATLONG,\n validator: {\n validate: (value, args): boolean => isLatLong(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a latitude,longitude string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsLatitude.js b/views/node_modules/class-validator/cjs/decorator/common/IsLatitude.js deleted file mode 100644 index a4e2bc0..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsLatitude.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsLatitude = exports.isLatitude = exports.IS_LATITUDE = void 0; -const ValidateBy_1 = require("./ValidateBy"); -const IsLatLong_1 = require("./IsLatLong"); -exports.IS_LATITUDE = 'isLatitude'; -/** - * Checks if a given value is a latitude. - */ -function isLatitude(value) { - return (typeof value === 'number' || typeof value === 'string') && IsLatLong_1.isLatLong(`${value},0`); -} -exports.isLatitude = isLatitude; -/** - * Checks if a given value is a latitude. - */ -function IsLatitude(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_LATITUDE, - validator: { - validate: (value, args) => isLatitude(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a latitude string or number', validationOptions), - }, - }, validationOptions); -} -exports.IsLatitude = IsLatitude; -//# sourceMappingURL=IsLatitude.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsLatitude.js.map b/views/node_modules/class-validator/cjs/decorator/common/IsLatitude.js.map deleted file mode 100644 index 8290f8b..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsLatitude.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLatitude.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsLatitude.ts"],"names":[],"mappings":";;;AACA,6CAAwD;AACxD,2CAAwC;AAE3B,QAAA,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,qBAAS,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AAC7F,CAAC;AAFD,gCAEC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,iBAAqC;IAC9D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,mBAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+CAA+C,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,gCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\n\nexport const IS_LATITUDE = 'isLatitude';\n\n/**\n * Checks if a given value is a latitude.\n */\nexport function isLatitude(value: string): boolean {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(`${value},0`);\n}\n\n/**\n * Checks if a given value is a latitude.\n */\nexport function IsLatitude(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LATITUDE,\n validator: {\n validate: (value, args): boolean => isLatitude(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a latitude string or number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsLongitude.js b/views/node_modules/class-validator/cjs/decorator/common/IsLongitude.js deleted file mode 100644 index 6f4ea86..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsLongitude.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsLongitude = exports.isLongitude = exports.IS_LONGITUDE = void 0; -const ValidateBy_1 = require("./ValidateBy"); -const IsLatLong_1 = require("./IsLatLong"); -exports.IS_LONGITUDE = 'isLongitude'; -/** - * Checks if a given value is a longitude. - */ -function isLongitude(value) { - return (typeof value === 'number' || typeof value === 'string') && IsLatLong_1.isLatLong(`0,${value}`); -} -exports.isLongitude = isLongitude; -/** - * Checks if a given value is a longitude. - */ -function IsLongitude(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_LONGITUDE, - validator: { - validate: (value, args) => isLongitude(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a longitude string or number', validationOptions), - }, - }, validationOptions); -} -exports.IsLongitude = IsLongitude; -//# sourceMappingURL=IsLongitude.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsLongitude.js.map b/views/node_modules/class-validator/cjs/decorator/common/IsLongitude.js.map deleted file mode 100644 index 90a9a01..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsLongitude.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLongitude.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsLongitude.ts"],"names":[],"mappings":";;;AACA,6CAAwD;AACxD,2CAAwC;AAE3B,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAa;IACvC,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,qBAAS,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AAC7F,CAAC;AAFD,kCAEC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,iBAAqC;IAC/D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,oBAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,kCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\n\nexport const IS_LONGITUDE = 'isLongitude';\n\n/**\n * Checks if a given value is a longitude.\n */\nexport function isLongitude(value: string): boolean {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(`0,${value}`);\n}\n\n/**\n * Checks if a given value is a longitude.\n */\nexport function IsLongitude(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LONGITUDE,\n validator: {\n validate: (value, args): boolean => isLongitude(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a longitude string or number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsNotEmpty.js b/views/node_modules/class-validator/cjs/decorator/common/IsNotEmpty.js deleted file mode 100644 index 7a4c60e..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsNotEmpty.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsNotEmpty = exports.isNotEmpty = exports.IS_NOT_EMPTY = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_NOT_EMPTY = 'isNotEmpty'; -/** - * Checks if given value is not empty (!== '', !== null, !== undefined). - */ -function isNotEmpty(value) { - return value !== '' && value !== null && value !== undefined; -} -exports.isNotEmpty = isNotEmpty; -/** - * Checks if given value is not empty (!== '', !== null, !== undefined). - */ -function IsNotEmpty(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_NOT_EMPTY, - validator: { - validate: (value, args) => isNotEmpty(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions), - }, - }, validationOptions); -} -exports.IsNotEmpty = IsNotEmpty; -//# sourceMappingURL=IsNotEmpty.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsNotEmpty.js.map b/views/node_modules/class-validator/cjs/decorator/common/IsNotEmpty.js.map deleted file mode 100644 index b6bc492..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsNotEmpty.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNotEmpty.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsNotEmpty.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,YAAY,GAAG,YAAY,CAAC;AAEzC;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/D,CAAC;AAFD,gCAEC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,iBAAqC;IAC9D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,oBAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+BAA+B,EAAE,iBAAiB,CAAC;SAC5G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,gCAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NOT_EMPTY = 'isNotEmpty';\n\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function isNotEmpty(value: unknown): boolean {\n return value !== '' && value !== null && value !== undefined;\n}\n\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function IsNotEmpty(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NOT_EMPTY,\n validator: {\n validate: (value, args): boolean => isNotEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsNotIn.js b/views/node_modules/class-validator/cjs/decorator/common/IsNotIn.js deleted file mode 100644 index 84ad0fe..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsNotIn.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsNotIn = exports.isNotIn = exports.IS_NOT_IN = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_NOT_IN = 'isNotIn'; -/** - * Checks if given value not in a array of allowed values. - */ -function isNotIn(value, possibleValues) { - return !(possibleValues instanceof Array) || !possibleValues.some(possibleValue => possibleValue === value); -} -exports.isNotIn = isNotIn; -/** - * Checks if given value not in a array of allowed values. - */ -function IsNotIn(values, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_NOT_IN, - constraints: [values], - validator: { - validate: (value, args) => isNotIn(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property should not be one of the following values: $constraint1', validationOptions), - }, - }, validationOptions); -} -exports.IsNotIn = IsNotIn; -//# sourceMappingURL=IsNotIn.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsNotIn.js.map b/views/node_modules/class-validator/cjs/decorator/common/IsNotIn.js.map deleted file mode 100644 index a3e9e62..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsNotIn.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNotIn.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsNotIn.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,SAAS,GAAG,SAAS,CAAC;AAEnC;;GAEG;AACH,SAAgB,OAAO,CAAC,KAAc,EAAE,cAAkC;IACxE,OAAO,CAAC,CAAC,cAAc,YAAY,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC;AAC9G,CAAC;AAFD,0BAEC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,MAAsB,EAAE,iBAAqC;IACnF,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,iBAAS;QACf,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,mEAAmE,EAC9F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,0BAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NOT_IN = 'isNotIn';\n\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function isNotIn(value: unknown, possibleValues: readonly unknown[]): boolean {\n return !(possibleValues instanceof Array) || !possibleValues.some(possibleValue => possibleValue === value);\n}\n\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function IsNotIn(values: readonly any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NOT_IN,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => isNotIn(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not be one of the following values: $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsOptional.js b/views/node_modules/class-validator/cjs/decorator/common/IsOptional.js deleted file mode 100644 index f9daa3e..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsOptional.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsOptional = void 0; -const ValidationTypes_1 = require("../../validation/ValidationTypes"); -const ValidationMetadata_1 = require("../../metadata/ValidationMetadata"); -const MetadataStorage_1 = require("../../metadata/MetadataStorage"); -/** - * Checks if value is missing and if so, ignores all validators. - */ -function IsOptional(validationOptions) { - return function (object, propertyName) { - const args = { - type: ValidationTypes_1.ValidationTypes.CONDITIONAL_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraints: [ - (object, value) => { - return object[propertyName] !== null && object[propertyName] !== undefined; - }, - ], - validationOptions: validationOptions, - }; - MetadataStorage_1.getMetadataStorage().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); - }; -} -exports.IsOptional = IsOptional; -//# sourceMappingURL=IsOptional.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/IsOptional.js.map b/views/node_modules/class-validator/cjs/decorator/common/IsOptional.js.map deleted file mode 100644 index 543e5d9..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/IsOptional.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsOptional.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsOptional.ts"],"names":[],"mappings":";;;AAEA,sEAAmE;AACnE,0EAAuE;AACvE,oEAAoE;AAEpE;;GAEG;AACH,SAAgB,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,iCAAe,CAAC,sBAAsB;YAC5C,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE;gBACX,CAAC,MAAW,EAAE,KAAU,EAAW,EAAE;oBACnC,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC;gBAC7E,CAAC;aACF;YACD,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,oCAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,uCAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAfD,gCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Checks if value is missing and if so, ignores all validators.\n */\nexport function IsOptional(validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [\n (object: any, value: any): boolean => {\n return object[propertyName] !== null && object[propertyName] !== undefined;\n },\n ],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/NotEquals.js b/views/node_modules/class-validator/cjs/decorator/common/NotEquals.js deleted file mode 100644 index 1312636..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/NotEquals.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.NotEquals = exports.notEquals = exports.NOT_EQUALS = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.NOT_EQUALS = 'notEquals'; -/** - * Checks if value does not match ("!==") the comparison. - */ -function notEquals(value, comparison) { - return value !== comparison; -} -exports.notEquals = notEquals; -/** - * Checks if value does not match ("!==") the comparison. - */ -function NotEquals(comparison, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.NOT_EQUALS, - constraints: [comparison], - validator: { - validate: (value, args) => notEquals(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property should not be equal to $constraint1', validationOptions), - }, - }, validationOptions); -} -exports.NotEquals = NotEquals; -//# sourceMappingURL=NotEquals.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/NotEquals.js.map b/views/node_modules/class-validator/cjs/decorator/common/NotEquals.js.map deleted file mode 100644 index 76331fe..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/NotEquals.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NotEquals.js","sourceRoot":"","sources":["../../../../src/decorator/common/NotEquals.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,UAAU,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAc,EAAE,UAAmB;IAC3D,OAAO,KAAK,KAAK,UAAU,CAAC;AAC9B,CAAC;AAFD,8BAEC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,UAAe,EAAE,iBAAqC;IAC9E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,kBAAU;QAChB,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACzE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+CAA+C,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,8BAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const NOT_EQUALS = 'notEquals';\n\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function notEquals(value: unknown, comparison: unknown): boolean {\n return value !== comparison;\n}\n\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function NotEquals(comparison: any, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: NOT_EQUALS,\n constraints: [comparison],\n validator: {\n validate: (value, args): boolean => notEquals(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not be equal to $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/Validate.js b/views/node_modules/class-validator/cjs/decorator/common/Validate.js deleted file mode 100644 index dc642b5..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/Validate.js +++ /dev/null @@ -1,42 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Validate = exports.ValidatorConstraint = void 0; -const ValidationMetadata_1 = require("../../metadata/ValidationMetadata"); -const MetadataStorage_1 = require("../../metadata/MetadataStorage"); -const ValidationTypes_1 = require("../../validation/ValidationTypes"); -const ConstraintMetadata_1 = require("../../metadata/ConstraintMetadata"); -/** - * Registers custom validator class. - */ -function ValidatorConstraint(options) { - return function (target) { - const isAsync = options && options.async; - let name = options && options.name ? options.name : ''; - if (!name) { - name = target.name; - if (!name) - // generate name if it was not given - name = name.replace(/\.?([A-Z]+)/g, (x, y) => '_' + y.toLowerCase()).replace(/^_/, ''); - } - const metadata = new ConstraintMetadata_1.ConstraintMetadata(target, name, isAsync); - MetadataStorage_1.getMetadataStorage().addConstraintMetadata(metadata); - }; -} -exports.ValidatorConstraint = ValidatorConstraint; -function Validate(constraintClass, constraintsOrValidationOptions, maybeValidationOptions) { - return function (object, propertyName) { - const args = { - type: ValidationTypes_1.ValidationTypes.CUSTOM_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraintCls: constraintClass, - constraints: constraintsOrValidationOptions instanceof Array ? constraintsOrValidationOptions : undefined, - validationOptions: !(constraintsOrValidationOptions instanceof Array) - ? constraintsOrValidationOptions - : maybeValidationOptions, - }; - MetadataStorage_1.getMetadataStorage().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); - }; -} -exports.Validate = Validate; -//# sourceMappingURL=Validate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/Validate.js.map b/views/node_modules/class-validator/cjs/decorator/common/Validate.js.map deleted file mode 100644 index b33c1ea..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/Validate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Validate.js","sourceRoot":"","sources":["../../../../src/decorator/common/Validate.ts"],"names":[],"mappings":";;;AAEA,0EAAuE;AACvE,oEAAoE;AACpE,sEAAmE;AACnE,0EAAuE;AAEvE;;GAEG;AACH,SAAgB,mBAAmB,CAAC,OAA4C;IAC9E,OAAO,UAAU,MAAgB;QAC/B,MAAM,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;QACzC,IAAI,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAI,MAAc,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,IAAI;gBACP,oCAAoC;gBACpC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAI,CAAY,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACtG;QACD,MAAM,QAAQ,GAAG,IAAI,uCAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/D,oCAAkB,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AAbD,kDAaC;AAYD,SAAgB,QAAQ,CACtB,eAAyB,EACzB,8BAA0D,EAC1D,sBAA0C;IAE1C,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,iCAAe,CAAC,iBAAiB;YACvC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,aAAa,EAAE,eAAe;YAC9B,WAAW,EAAE,8BAA8B,YAAY,KAAK,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,SAAS;YACzG,iBAAiB,EAAE,CAAC,CAAC,8BAA8B,YAAY,KAAK,CAAC;gBACnE,CAAC,CAAC,8BAA8B;gBAChC,CAAC,CAAC,sBAAsB;SAC3B,CAAC;QACF,oCAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,uCAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAlBD,4BAkBC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ConstraintMetadata } from '../../metadata/ConstraintMetadata';\n\n/**\n * Registers custom validator class.\n */\nexport function ValidatorConstraint(options?: { name?: string; async?: boolean }) {\n return function (target: Function): void {\n const isAsync = options && options.async;\n let name = options && options.name ? options.name : '';\n if (!name) {\n name = (target as any).name;\n if (!name)\n // generate name if it was not given\n name = name.replace(/\\.?([A-Z]+)/g, (x, y) => '_' + (y as string).toLowerCase()).replace(/^_/, '');\n }\n const metadata = new ConstraintMetadata(target, name, isAsync);\n getMetadataStorage().addConstraintMetadata(metadata);\n };\n}\n\n/**\n * Performs validation based on the given custom validation class.\n * Validation class must be decorated with ValidatorConstraint decorator.\n */\nexport function Validate(constraintClass: Function, validationOptions?: ValidationOptions): PropertyDecorator;\nexport function Validate(\n constraintClass: Function,\n constraints?: any[],\n validationOptions?: ValidationOptions\n): PropertyDecorator;\nexport function Validate(\n constraintClass: Function,\n constraintsOrValidationOptions?: any[] | ValidationOptions,\n maybeValidationOptions?: ValidationOptions\n): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.CUSTOM_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraintCls: constraintClass,\n constraints: constraintsOrValidationOptions instanceof Array ? constraintsOrValidationOptions : undefined,\n validationOptions: !(constraintsOrValidationOptions instanceof Array)\n ? constraintsOrValidationOptions\n : maybeValidationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/ValidateBy.js b/views/node_modules/class-validator/cjs/decorator/common/ValidateBy.js deleted file mode 100644 index c8fd70a..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/ValidateBy.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ValidateBy = exports.buildMessage = void 0; -const register_decorator_1 = require("../../register-decorator"); -function buildMessage(impl, validationOptions) { - return (validationArguments) => { - const eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : ''; - return impl(eachPrefix, validationArguments); - }; -} -exports.buildMessage = buildMessage; -function ValidateBy(options, validationOptions) { - return function (object, propertyName) { - register_decorator_1.registerDecorator({ - name: options.name, - target: object.constructor, - propertyName: propertyName, - options: validationOptions, - constraints: options.constraints, - validator: options.validator, - }); - }; -} -exports.ValidateBy = ValidateBy; -//# sourceMappingURL=ValidateBy.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/ValidateBy.js.map b/views/node_modules/class-validator/cjs/decorator/common/ValidateBy.js.map deleted file mode 100644 index fff5101..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/ValidateBy.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidateBy.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidateBy.ts"],"names":[],"mappings":";;;AACA,iEAA6D;AAW7D,SAAgB,YAAY,CAC1B,IAAgE,EAChE,iBAAqC;IAErC,OAAO,CAAC,mBAAyC,EAAU,EAAE;QAC3D,MAAM,UAAU,GAAG,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,OAAO,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AARD,oCAQC;AAED,SAAgB,UAAU,CAAC,OAA0B,EAAE,iBAAqC;IAC1F,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,sCAAiB,CAAC;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAXD,gCAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { registerDecorator } from '../../register-decorator';\nimport { ValidationArguments } from '../../validation/ValidationArguments';\nimport { ValidatorConstraintInterface } from '../../validation/ValidatorConstraintInterface';\n\nexport interface ValidateByOptions {\n name: string;\n constraints?: any[];\n validator: ValidatorConstraintInterface | Function;\n async?: boolean;\n}\n\nexport function buildMessage(\n impl: (eachPrefix: string, args?: ValidationArguments) => string,\n validationOptions?: ValidationOptions\n): (validationArguments?: ValidationArguments) => string {\n return (validationArguments?: ValidationArguments): string => {\n const eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : '';\n return impl(eachPrefix, validationArguments);\n };\n}\n\nexport function ValidateBy(options: ValidateByOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n registerDecorator({\n name: options.name,\n target: object.constructor,\n propertyName: propertyName,\n options: validationOptions,\n constraints: options.constraints,\n validator: options.validator,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/ValidateIf.js b/views/node_modules/class-validator/cjs/decorator/common/ValidateIf.js deleted file mode 100644 index 3b9a464..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/ValidateIf.js +++ /dev/null @@ -1,23 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ValidateIf = void 0; -const ValidationTypes_1 = require("../../validation/ValidationTypes"); -const ValidationMetadata_1 = require("../../metadata/ValidationMetadata"); -const MetadataStorage_1 = require("../../metadata/MetadataStorage"); -/** - * Ignores the other validators on a property when the provided condition function returns false. - */ -function ValidateIf(condition, validationOptions) { - return function (object, propertyName) { - const args = { - type: ValidationTypes_1.ValidationTypes.CONDITIONAL_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraints: [condition], - validationOptions: validationOptions, - }; - MetadataStorage_1.getMetadataStorage().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); - }; -} -exports.ValidateIf = ValidateIf; -//# sourceMappingURL=ValidateIf.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/ValidateIf.js.map b/views/node_modules/class-validator/cjs/decorator/common/ValidateIf.js.map deleted file mode 100644 index 88b8a0c..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/ValidateIf.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidateIf.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidateIf.ts"],"names":[],"mappings":";;;AAEA,sEAAmE;AACnE,0EAAuE;AACvE,oEAAoE;AAEpE;;GAEG;AACH,SAAgB,UAAU,CACxB,SAA+C,EAC/C,iBAAqC;IAErC,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,iCAAe,CAAC,sBAAsB;YAC5C,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,CAAC,SAAS,CAAC;YACxB,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,oCAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,uCAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAdD,gCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Ignores the other validators on a property when the provided condition function returns false.\n */\nexport function ValidateIf(\n condition: (object: any, value: any) => boolean,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [condition],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/ValidateNested.js b/views/node_modules/class-validator/cjs/decorator/common/ValidateNested.js deleted file mode 100644 index bfc7120..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/ValidateNested.js +++ /dev/null @@ -1,25 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ValidateNested = void 0; -const ValidationTypes_1 = require("../../validation/ValidationTypes"); -const ValidationMetadata_1 = require("../../metadata/ValidationMetadata"); -const MetadataStorage_1 = require("../../metadata/MetadataStorage"); -/** - * Objects / object arrays marked with this decorator will also be validated. - */ -function ValidateNested(validationOptions) { - const opts = { ...validationOptions }; - const eachPrefix = opts.each ? 'each value in ' : ''; - opts.message = opts.message || eachPrefix + 'nested property $property must be either object or array'; - return function (object, propertyName) { - const args = { - type: ValidationTypes_1.ValidationTypes.NESTED_VALIDATION, - target: object.constructor, - propertyName: propertyName, - validationOptions: opts, - }; - MetadataStorage_1.getMetadataStorage().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); - }; -} -exports.ValidateNested = ValidateNested; -//# sourceMappingURL=ValidateNested.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/ValidateNested.js.map b/views/node_modules/class-validator/cjs/decorator/common/ValidateNested.js.map deleted file mode 100644 index 877effa..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/ValidateNested.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidateNested.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidateNested.ts"],"names":[],"mappings":";;;AAEA,sEAAmE;AACnE,0EAAuE;AACvE,oEAAoE;AAEpE;;GAEG;AACH,SAAgB,cAAc,CAAC,iBAAqC;IAClE,MAAM,IAAI,GAAsB,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,UAAU,GAAG,0DAA0D,CAAC;IAEvG,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,iCAAe,CAAC,iBAAiB;YACvC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,iBAAiB,EAAE,IAAI;SACxB,CAAC;QACF,oCAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,uCAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAdD,wCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Objects / object arrays marked with this decorator will also be validated.\n */\nexport function ValidateNested(validationOptions?: ValidationOptions): PropertyDecorator {\n const opts: ValidationOptions = { ...validationOptions };\n const eachPrefix = opts.each ? 'each value in ' : '';\n opts.message = opts.message || eachPrefix + 'nested property $property must be either object or array';\n\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.NESTED_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: opts,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/ValidatePromise.js b/views/node_modules/class-validator/cjs/decorator/common/ValidatePromise.js deleted file mode 100644 index df1f7c7..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/ValidatePromise.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ValidatePromise = void 0; -const ValidationTypes_1 = require("../../validation/ValidationTypes"); -const ValidationMetadata_1 = require("../../metadata/ValidationMetadata"); -const MetadataStorage_1 = require("../../metadata/MetadataStorage"); -/** - * Resolve promise before validation - */ -function ValidatePromise(validationOptions) { - return function (object, propertyName) { - const args = { - type: ValidationTypes_1.ValidationTypes.PROMISE_VALIDATION, - target: object.constructor, - propertyName: propertyName, - validationOptions: validationOptions, - }; - MetadataStorage_1.getMetadataStorage().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(args)); - }; -} -exports.ValidatePromise = ValidatePromise; -//# sourceMappingURL=ValidatePromise.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/common/ValidatePromise.js.map b/views/node_modules/class-validator/cjs/decorator/common/ValidatePromise.js.map deleted file mode 100644 index b19144f..0000000 --- a/views/node_modules/class-validator/cjs/decorator/common/ValidatePromise.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidatePromise.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidatePromise.ts"],"names":[],"mappings":";;;AAEA,sEAAmE;AACnE,0EAAuE;AACvE,oEAAoE;AAEpE;;GAEG;AACH,SAAgB,eAAe,CAAC,iBAAqC;IACnE,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,iCAAe,CAAC,kBAAkB;YACxC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,oCAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,uCAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAVD,0CAUC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Resolve promise before validation\n */\nexport function ValidatePromise(validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.PROMISE_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/date/MaxDate.js b/views/node_modules/class-validator/cjs/decorator/date/MaxDate.js deleted file mode 100644 index 30f32a7..0000000 --- a/views/node_modules/class-validator/cjs/decorator/date/MaxDate.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MaxDate = exports.maxDate = exports.MAX_DATE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.MAX_DATE = 'maxDate'; -/** - * Checks if the value is a date that's before the specified date. - */ -function maxDate(date, maxDate) { - return date instanceof Date && date.getTime() <= maxDate.getTime(); -} -exports.maxDate = maxDate; -/** - * Checks if the value is a date that's after the specified date. - */ -function MaxDate(date, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.MAX_DATE, - constraints: [date], - validator: { - validate: (value, args) => maxDate(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => 'maximal allowed date for ' + eachPrefix + '$property is $constraint1', validationOptions), - }, - }, validationOptions); -} -exports.MaxDate = MaxDate; -//# sourceMappingURL=MaxDate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/date/MaxDate.js.map b/views/node_modules/class-validator/cjs/decorator/date/MaxDate.js.map deleted file mode 100644 index bd6b5c1..0000000 --- a/views/node_modules/class-validator/cjs/decorator/date/MaxDate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MaxDate.js","sourceRoot":"","sources":["../../../../src/decorator/date/MaxDate.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,SAAgB,OAAO,CAAC,IAAa,EAAE,OAAa;IAClD,OAAO,IAAI,YAAY,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;AACrE,CAAC;AAFD,0BAEC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,IAAU,EAAE,iBAAqC;IACvE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,gBAAQ;QACd,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,2BAA2B,GAAG,UAAU,GAAG,2BAA2B,EACpF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,0BAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MAX_DATE = 'maxDate';\n\n/**\n * Checks if the value is a date that's before the specified date.\n */\nexport function maxDate(date: unknown, maxDate: Date): boolean {\n return date instanceof Date && date.getTime() <= maxDate.getTime();\n}\n\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MaxDate(date: Date, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MAX_DATE,\n constraints: [date],\n validator: {\n validate: (value, args): boolean => maxDate(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => 'maximal allowed date for ' + eachPrefix + '$property is $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/date/MinDate.js b/views/node_modules/class-validator/cjs/decorator/date/MinDate.js deleted file mode 100644 index 08cc7ea..0000000 --- a/views/node_modules/class-validator/cjs/decorator/date/MinDate.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MinDate = exports.minDate = exports.MIN_DATE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.MIN_DATE = 'minDate'; -/** - * Checks if the value is a date that's after the specified date. - */ -function minDate(date, minDate) { - return date instanceof Date && date.getTime() >= minDate.getTime(); -} -exports.minDate = minDate; -/** - * Checks if the value is a date that's after the specified date. - */ -function MinDate(date, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.MIN_DATE, - constraints: [date], - validator: { - validate: (value, args) => minDate(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => 'minimal allowed date for ' + eachPrefix + '$property is $constraint1', validationOptions), - }, - }, validationOptions); -} -exports.MinDate = MinDate; -//# sourceMappingURL=MinDate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/date/MinDate.js.map b/views/node_modules/class-validator/cjs/decorator/date/MinDate.js.map deleted file mode 100644 index 1ad916e..0000000 --- a/views/node_modules/class-validator/cjs/decorator/date/MinDate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MinDate.js","sourceRoot":"","sources":["../../../../src/decorator/date/MinDate.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,SAAgB,OAAO,CAAC,IAAa,EAAE,OAAa;IAClD,OAAO,IAAI,YAAY,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;AACrE,CAAC;AAFD,0BAEC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,IAAU,EAAE,iBAAqC;IACvE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,gBAAQ;QACd,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,2BAA2B,GAAG,UAAU,GAAG,2BAA2B,EACpF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,0BAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MIN_DATE = 'minDate';\n\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function minDate(date: unknown, minDate: Date): boolean {\n return date instanceof Date && date.getTime() >= minDate.getTime();\n}\n\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MinDate(date: Date, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MIN_DATE,\n constraints: [date],\n validator: {\n validate: (value, args): boolean => minDate(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => 'minimal allowed date for ' + eachPrefix + '$property is $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/decorators.js b/views/node_modules/class-validator/cjs/decorator/decorators.js deleted file mode 100644 index 019193a..0000000 --- a/views/node_modules/class-validator/cjs/decorator/decorators.js +++ /dev/null @@ -1,143 +0,0 @@ -"use strict"; -// ------------------------------------------------------------------------- -// System -// ------------------------------------------------------------------------- -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -// ------------------------------------------------------------------------- -// Common checkers -// ------------------------------------------------------------------------- -__exportStar(require("./common/Allow"), exports); -__exportStar(require("./common/IsDefined"), exports); -__exportStar(require("./common/IsOptional"), exports); -__exportStar(require("./common/Validate"), exports); -__exportStar(require("./common/ValidateBy"), exports); -__exportStar(require("./common/ValidateIf"), exports); -__exportStar(require("./common/ValidateNested"), exports); -__exportStar(require("./common/ValidatePromise"), exports); -__exportStar(require("./common/IsLatLong"), exports); -__exportStar(require("./common/IsLatitude"), exports); -__exportStar(require("./common/IsLongitude"), exports); -__exportStar(require("./common/Equals"), exports); -__exportStar(require("./common/NotEquals"), exports); -__exportStar(require("./common/IsEmpty"), exports); -__exportStar(require("./common/IsNotEmpty"), exports); -__exportStar(require("./common/IsIn"), exports); -__exportStar(require("./common/IsNotIn"), exports); -// ------------------------------------------------------------------------- -// Number checkers -// ------------------------------------------------------------------------- -__exportStar(require("./number/IsDivisibleBy"), exports); -__exportStar(require("./number/IsPositive"), exports); -__exportStar(require("./number/IsNegative"), exports); -__exportStar(require("./number/Max"), exports); -__exportStar(require("./number/Min"), exports); -// ------------------------------------------------------------------------- -// Date checkers -// ------------------------------------------------------------------------- -__exportStar(require("./date/MinDate"), exports); -__exportStar(require("./date/MaxDate"), exports); -// ------------------------------------------------------------------------- -// String checkers -// ------------------------------------------------------------------------- -__exportStar(require("./string/Contains"), exports); -__exportStar(require("./string/NotContains"), exports); -__exportStar(require("./string/IsAlpha"), exports); -__exportStar(require("./string/IsAlphanumeric"), exports); -__exportStar(require("./string/IsDecimal"), exports); -__exportStar(require("./string/IsAscii"), exports); -__exportStar(require("./string/IsBase64"), exports); -__exportStar(require("./string/IsByteLength"), exports); -__exportStar(require("./string/IsCreditCard"), exports); -__exportStar(require("./string/IsCurrency"), exports); -__exportStar(require("./string/IsEmail"), exports); -__exportStar(require("./string/IsFQDN"), exports); -__exportStar(require("./string/IsFullWidth"), exports); -__exportStar(require("./string/IsHalfWidth"), exports); -__exportStar(require("./string/IsVariableWidth"), exports); -__exportStar(require("./string/IsHexColor"), exports); -__exportStar(require("./string/IsHexadecimal"), exports); -__exportStar(require("./string/IsMacAddress"), exports); -__exportStar(require("./string/IsIP"), exports); -__exportStar(require("./string/IsPort"), exports); -__exportStar(require("./string/IsISBN"), exports); -__exportStar(require("./string/IsISIN"), exports); -__exportStar(require("./string/IsISO8601"), exports); -__exportStar(require("./string/IsJSON"), exports); -__exportStar(require("./string/IsJWT"), exports); -__exportStar(require("./string/IsLowercase"), exports); -__exportStar(require("./string/IsMobilePhone"), exports); -__exportStar(require("./string/IsISO31661Alpha2"), exports); -__exportStar(require("./string/IsISO31661Alpha3"), exports); -__exportStar(require("./string/IsMongoId"), exports); -__exportStar(require("./string/IsMultibyte"), exports); -__exportStar(require("./string/IsSurrogatePair"), exports); -__exportStar(require("./string/IsUrl"), exports); -__exportStar(require("./string/IsUUID"), exports); -__exportStar(require("./string/IsFirebasePushId"), exports); -__exportStar(require("./string/IsUppercase"), exports); -__exportStar(require("./string/Length"), exports); -__exportStar(require("./string/MaxLength"), exports); -__exportStar(require("./string/MinLength"), exports); -__exportStar(require("./string/Matches"), exports); -__exportStar(require("./string/IsPhoneNumber"), exports); -__exportStar(require("./string/IsMilitaryTime"), exports); -__exportStar(require("./string/IsHash"), exports); -__exportStar(require("./string/IsISSN"), exports); -__exportStar(require("./string/IsDateString"), exports); -__exportStar(require("./string/IsBooleanString"), exports); -__exportStar(require("./string/IsNumberString"), exports); -__exportStar(require("./string/IsBase32"), exports); -__exportStar(require("./string/IsBIC"), exports); -__exportStar(require("./string/IsBtcAddress"), exports); -__exportStar(require("./string/IsDataURI"), exports); -__exportStar(require("./string/IsEAN"), exports); -__exportStar(require("./string/IsEthereumAddress"), exports); -__exportStar(require("./string/IsHSL"), exports); -__exportStar(require("./string/IsIBAN"), exports); -__exportStar(require("./string/IsIdentityCard"), exports); -__exportStar(require("./string/IsISRC"), exports); -__exportStar(require("./string/IsLocale"), exports); -__exportStar(require("./string/IsMagnetURI"), exports); -__exportStar(require("./string/IsMimeType"), exports); -__exportStar(require("./string/IsOctal"), exports); -__exportStar(require("./string/IsPassportNumber"), exports); -__exportStar(require("./string/IsPostalCode"), exports); -__exportStar(require("./string/IsRFC3339"), exports); -__exportStar(require("./string/IsRgbColor"), exports); -__exportStar(require("./string/IsSemVer"), exports); -// ------------------------------------------------------------------------- -// Type checkers -// ------------------------------------------------------------------------- -__exportStar(require("./typechecker/IsBoolean"), exports); -__exportStar(require("./typechecker/IsDate"), exports); -__exportStar(require("./typechecker/IsNumber"), exports); -__exportStar(require("./typechecker/IsEnum"), exports); -__exportStar(require("./typechecker/IsInt"), exports); -__exportStar(require("./typechecker/IsString"), exports); -__exportStar(require("./typechecker/IsArray"), exports); -__exportStar(require("./typechecker/IsObject"), exports); -// ------------------------------------------------------------------------- -// Array checkers -// ------------------------------------------------------------------------- -__exportStar(require("./array/ArrayContains"), exports); -__exportStar(require("./array/ArrayNotContains"), exports); -__exportStar(require("./array/ArrayNotEmpty"), exports); -__exportStar(require("./array/ArrayMinSize"), exports); -__exportStar(require("./array/ArrayMaxSize"), exports); -__exportStar(require("./array/ArrayUnique"), exports); -// ------------------------------------------------------------------------- -// Object checkers -// ------------------------------------------------------------------------- -__exportStar(require("./object/IsNotEmptyObject"), exports); -__exportStar(require("./object/IsInstance"), exports); -//# sourceMappingURL=decorators.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/decorators.js.map b/views/node_modules/class-validator/cjs/decorator/decorators.js.map deleted file mode 100644 index c0171ea..0000000 --- a/views/node_modules/class-validator/cjs/decorator/decorators.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/decorator/decorators.ts"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,SAAS;AACT,4EAA4E;;;;;;;;;;;;AAE5E,4EAA4E;AAC5E,kBAAkB;AAClB,4EAA4E;AAE5E,iDAA+B;AAC/B,qDAAmC;AACnC,sDAAoC;AACpC,oDAAkC;AAClC,sDAAoC;AACpC,sDAAoC;AACpC,0DAAwC;AACxC,2DAAyC;AACzC,qDAAmC;AACnC,sDAAoC;AACpC,uDAAqC;AACrC,kDAAgC;AAChC,qDAAmC;AACnC,mDAAiC;AACjC,sDAAoC;AACpC,gDAA8B;AAC9B,mDAAiC;AAEjC,4EAA4E;AAC5E,kBAAkB;AAClB,4EAA4E;AAE5E,yDAAuC;AACvC,sDAAoC;AACpC,sDAAoC;AACpC,+CAA6B;AAC7B,+CAA6B;AAE7B,4EAA4E;AAC5E,gBAAgB;AAChB,4EAA4E;AAE5E,iDAA+B;AAC/B,iDAA+B;AAE/B,4EAA4E;AAC5E,kBAAkB;AAClB,4EAA4E;AAE5E,oDAAkC;AAClC,uDAAqC;AACrC,mDAAiC;AACjC,0DAAwC;AACxC,qDAAmC;AACnC,mDAAiC;AACjC,oDAAkC;AAClC,wDAAsC;AACtC,wDAAsC;AACtC,sDAAoC;AACpC,mDAAiC;AACjC,kDAAgC;AAChC,uDAAqC;AACrC,uDAAqC;AACrC,2DAAyC;AACzC,sDAAoC;AACpC,yDAAuC;AACvC,wDAAsC;AACtC,gDAA8B;AAC9B,kDAAgC;AAChC,kDAAgC;AAChC,kDAAgC;AAChC,qDAAmC;AACnC,kDAAgC;AAChC,iDAA+B;AAC/B,uDAAqC;AACrC,yDAAuC;AACvC,4DAA0C;AAC1C,4DAA0C;AAC1C,qDAAmC;AACnC,uDAAqC;AACrC,2DAAyC;AACzC,iDAA+B;AAC/B,kDAAgC;AAChC,4DAA0C;AAC1C,uDAAqC;AACrC,kDAAgC;AAChC,qDAAmC;AACnC,qDAAmC;AACnC,mDAAiC;AACjC,yDAAuC;AACvC,0DAAwC;AACxC,kDAAgC;AAChC,kDAAgC;AAChC,wDAAsC;AACtC,2DAAyC;AACzC,0DAAwC;AACxC,oDAAkC;AAClC,iDAA+B;AAC/B,wDAAsC;AACtC,qDAAmC;AACnC,iDAA+B;AAC/B,6DAA2C;AAC3C,iDAA+B;AAC/B,kDAAgC;AAChC,0DAAwC;AACxC,kDAAgC;AAChC,oDAAkC;AAClC,uDAAqC;AACrC,sDAAoC;AACpC,mDAAiC;AACjC,4DAA0C;AAC1C,wDAAsC;AACtC,qDAAmC;AACnC,sDAAoC;AACpC,oDAAkC;AAElC,4EAA4E;AAC5E,gBAAgB;AAChB,4EAA4E;AAE5E,0DAAwC;AACxC,uDAAqC;AACrC,yDAAuC;AACvC,uDAAqC;AACrC,sDAAoC;AACpC,yDAAuC;AACvC,wDAAsC;AACtC,yDAAuC;AAEvC,4EAA4E;AAC5E,iBAAiB;AACjB,4EAA4E;AAE5E,wDAAsC;AACtC,2DAAyC;AACzC,wDAAsC;AACtC,uDAAqC;AACrC,uDAAqC;AACrC,sDAAoC;AAEpC,4EAA4E;AAC5E,kBAAkB;AAClB,4EAA4E;AAE5E,4DAA0C;AAC1C,sDAAoC","sourcesContent":["// -------------------------------------------------------------------------\n// System\n// -------------------------------------------------------------------------\n\n// -------------------------------------------------------------------------\n// Common checkers\n// -------------------------------------------------------------------------\n\nexport * from './common/Allow';\nexport * from './common/IsDefined';\nexport * from './common/IsOptional';\nexport * from './common/Validate';\nexport * from './common/ValidateBy';\nexport * from './common/ValidateIf';\nexport * from './common/ValidateNested';\nexport * from './common/ValidatePromise';\nexport * from './common/IsLatLong';\nexport * from './common/IsLatitude';\nexport * from './common/IsLongitude';\nexport * from './common/Equals';\nexport * from './common/NotEquals';\nexport * from './common/IsEmpty';\nexport * from './common/IsNotEmpty';\nexport * from './common/IsIn';\nexport * from './common/IsNotIn';\n\n// -------------------------------------------------------------------------\n// Number checkers\n// -------------------------------------------------------------------------\n\nexport * from './number/IsDivisibleBy';\nexport * from './number/IsPositive';\nexport * from './number/IsNegative';\nexport * from './number/Max';\nexport * from './number/Min';\n\n// -------------------------------------------------------------------------\n// Date checkers\n// -------------------------------------------------------------------------\n\nexport * from './date/MinDate';\nexport * from './date/MaxDate';\n\n// -------------------------------------------------------------------------\n// String checkers\n// -------------------------------------------------------------------------\n\nexport * from './string/Contains';\nexport * from './string/NotContains';\nexport * from './string/IsAlpha';\nexport * from './string/IsAlphanumeric';\nexport * from './string/IsDecimal';\nexport * from './string/IsAscii';\nexport * from './string/IsBase64';\nexport * from './string/IsByteLength';\nexport * from './string/IsCreditCard';\nexport * from './string/IsCurrency';\nexport * from './string/IsEmail';\nexport * from './string/IsFQDN';\nexport * from './string/IsFullWidth';\nexport * from './string/IsHalfWidth';\nexport * from './string/IsVariableWidth';\nexport * from './string/IsHexColor';\nexport * from './string/IsHexadecimal';\nexport * from './string/IsMacAddress';\nexport * from './string/IsIP';\nexport * from './string/IsPort';\nexport * from './string/IsISBN';\nexport * from './string/IsISIN';\nexport * from './string/IsISO8601';\nexport * from './string/IsJSON';\nexport * from './string/IsJWT';\nexport * from './string/IsLowercase';\nexport * from './string/IsMobilePhone';\nexport * from './string/IsISO31661Alpha2';\nexport * from './string/IsISO31661Alpha3';\nexport * from './string/IsMongoId';\nexport * from './string/IsMultibyte';\nexport * from './string/IsSurrogatePair';\nexport * from './string/IsUrl';\nexport * from './string/IsUUID';\nexport * from './string/IsFirebasePushId';\nexport * from './string/IsUppercase';\nexport * from './string/Length';\nexport * from './string/MaxLength';\nexport * from './string/MinLength';\nexport * from './string/Matches';\nexport * from './string/IsPhoneNumber';\nexport * from './string/IsMilitaryTime';\nexport * from './string/IsHash';\nexport * from './string/IsISSN';\nexport * from './string/IsDateString';\nexport * from './string/IsBooleanString';\nexport * from './string/IsNumberString';\nexport * from './string/IsBase32';\nexport * from './string/IsBIC';\nexport * from './string/IsBtcAddress';\nexport * from './string/IsDataURI';\nexport * from './string/IsEAN';\nexport * from './string/IsEthereumAddress';\nexport * from './string/IsHSL';\nexport * from './string/IsIBAN';\nexport * from './string/IsIdentityCard';\nexport * from './string/IsISRC';\nexport * from './string/IsLocale';\nexport * from './string/IsMagnetURI';\nexport * from './string/IsMimeType';\nexport * from './string/IsOctal';\nexport * from './string/IsPassportNumber';\nexport * from './string/IsPostalCode';\nexport * from './string/IsRFC3339';\nexport * from './string/IsRgbColor';\nexport * from './string/IsSemVer';\n\n// -------------------------------------------------------------------------\n// Type checkers\n// -------------------------------------------------------------------------\n\nexport * from './typechecker/IsBoolean';\nexport * from './typechecker/IsDate';\nexport * from './typechecker/IsNumber';\nexport * from './typechecker/IsEnum';\nexport * from './typechecker/IsInt';\nexport * from './typechecker/IsString';\nexport * from './typechecker/IsArray';\nexport * from './typechecker/IsObject';\n\n// -------------------------------------------------------------------------\n// Array checkers\n// -------------------------------------------------------------------------\n\nexport * from './array/ArrayContains';\nexport * from './array/ArrayNotContains';\nexport * from './array/ArrayNotEmpty';\nexport * from './array/ArrayMinSize';\nexport * from './array/ArrayMaxSize';\nexport * from './array/ArrayUnique';\n\n// -------------------------------------------------------------------------\n// Object checkers\n// -------------------------------------------------------------------------\n\nexport * from './object/IsNotEmptyObject';\nexport * from './object/IsInstance';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/number/IsDivisibleBy.js b/views/node_modules/class-validator/cjs/decorator/number/IsDivisibleBy.js deleted file mode 100644 index 20a9e8f..0000000 --- a/views/node_modules/class-validator/cjs/decorator/number/IsDivisibleBy.js +++ /dev/null @@ -1,31 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsDivisibleBy = exports.isDivisibleBy = exports.IS_DIVISIBLE_BY = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isDivisibleBy_1 = __importDefault(require("validator/lib/isDivisibleBy")); -exports.IS_DIVISIBLE_BY = 'isDivisibleBy'; -/** - * Checks if value is a number that's divisible by another. - */ -function isDivisibleBy(value, num) { - return typeof value === 'number' && typeof num === 'number' && isDivisibleBy_1.default(String(value), num); -} -exports.isDivisibleBy = isDivisibleBy; -/** - * Checks if value is a number that's divisible by another. - */ -function IsDivisibleBy(num, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_DIVISIBLE_BY, - constraints: [num], - validator: { - validate: (value, args) => isDivisibleBy(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be divisible by $constraint1', validationOptions), - }, - }, validationOptions); -} -exports.IsDivisibleBy = IsDivisibleBy; -//# sourceMappingURL=IsDivisibleBy.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/number/IsDivisibleBy.js.map b/views/node_modules/class-validator/cjs/decorator/number/IsDivisibleBy.js.map deleted file mode 100644 index e7135b1..0000000 --- a/views/node_modules/class-validator/cjs/decorator/number/IsDivisibleBy.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDivisibleBy.js","sourceRoot":"","sources":["../../../../src/decorator/number/IsDivisibleBy.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,gFAAiE;AAEpD,QAAA,eAAe,GAAG,eAAe,CAAC;AAE/C;;GAEG;AACH,SAAgB,aAAa,CAAC,KAAc,EAAE,GAAW;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,uBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5G,CAAC;AAFD,sCAEC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,GAAW,EAAE,iBAAqC;IAC9E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,uBAAe;QACrB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7E,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,6CAA6C,EACxE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,sCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDivisibleByValidator from 'validator/lib/isDivisibleBy';\n\nexport const IS_DIVISIBLE_BY = 'isDivisibleBy';\n\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function isDivisibleBy(value: unknown, num: number): boolean {\n return typeof value === 'number' && typeof num === 'number' && isDivisibleByValidator(String(value), num);\n}\n\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function IsDivisibleBy(num: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DIVISIBLE_BY,\n constraints: [num],\n validator: {\n validate: (value, args): boolean => isDivisibleBy(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be divisible by $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/number/IsNegative.js b/views/node_modules/class-validator/cjs/decorator/number/IsNegative.js deleted file mode 100644 index f7b708c..0000000 --- a/views/node_modules/class-validator/cjs/decorator/number/IsNegative.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsNegative = exports.isNegative = exports.IS_NEGATIVE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_NEGATIVE = 'isNegative'; -/** - * Checks if the value is a negative number smaller than zero. - */ -function isNegative(value) { - return typeof value === 'number' && value < 0; -} -exports.isNegative = isNegative; -/** - * Checks if the value is a negative number smaller than zero. - */ -function IsNegative(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_NEGATIVE, - validator: { - validate: (value, args) => isNegative(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a negative number', validationOptions), - }, - }, validationOptions); -} -exports.IsNegative = IsNegative; -//# sourceMappingURL=IsNegative.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/number/IsNegative.js.map b/views/node_modules/class-validator/cjs/decorator/number/IsNegative.js.map deleted file mode 100644 index f1eac77..0000000 --- a/views/node_modules/class-validator/cjs/decorator/number/IsNegative.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNegative.js","sourceRoot":"","sources":["../../../../src/decorator/number/IsNegative.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AAChD,CAAC;AAFD,gCAEC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,iBAAqC;IAC9D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,mBAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,qCAAqC,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,gCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NEGATIVE = 'isNegative';\n\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function isNegative(value: unknown): boolean {\n return typeof value === 'number' && value < 0;\n}\n\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function IsNegative(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NEGATIVE,\n validator: {\n validate: (value, args): boolean => isNegative(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a negative number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/number/IsPositive.js b/views/node_modules/class-validator/cjs/decorator/number/IsPositive.js deleted file mode 100644 index 174db2d..0000000 --- a/views/node_modules/class-validator/cjs/decorator/number/IsPositive.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsPositive = exports.isPositive = exports.IS_POSITIVE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_POSITIVE = 'isPositive'; -/** - * Checks if the value is a positive number greater than zero. - */ -function isPositive(value) { - return typeof value === 'number' && value > 0; -} -exports.isPositive = isPositive; -/** - * Checks if the value is a positive number greater than zero. - */ -function IsPositive(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_POSITIVE, - validator: { - validate: (value, args) => isPositive(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a positive number', validationOptions), - }, - }, validationOptions); -} -exports.IsPositive = IsPositive; -//# sourceMappingURL=IsPositive.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/number/IsPositive.js.map b/views/node_modules/class-validator/cjs/decorator/number/IsPositive.js.map deleted file mode 100644 index bd309e5..0000000 --- a/views/node_modules/class-validator/cjs/decorator/number/IsPositive.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPositive.js","sourceRoot":"","sources":["../../../../src/decorator/number/IsPositive.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AAChD,CAAC;AAFD,gCAEC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,iBAAqC;IAC9D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,mBAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,qCAAqC,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,gCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_POSITIVE = 'isPositive';\n\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function isPositive(value: unknown): boolean {\n return typeof value === 'number' && value > 0;\n}\n\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function IsPositive(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_POSITIVE,\n validator: {\n validate: (value, args): boolean => isPositive(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a positive number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/number/Max.js b/views/node_modules/class-validator/cjs/decorator/number/Max.js deleted file mode 100644 index f92486e..0000000 --- a/views/node_modules/class-validator/cjs/decorator/number/Max.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Max = exports.max = exports.MAX = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.MAX = 'max'; -/** - * Checks if the first number is less than or equal to the second. - */ -function max(num, max) { - return typeof num === 'number' && typeof max === 'number' && num <= max; -} -exports.max = max; -/** - * Checks if the first number is less than or equal to the second. - */ -function Max(maxValue, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.MAX, - constraints: [maxValue], - validator: { - validate: (value, args) => max(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must not be greater than $constraint1', validationOptions), - }, - }, validationOptions); -} -exports.Max = Max; -//# sourceMappingURL=Max.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/number/Max.js.map b/views/node_modules/class-validator/cjs/decorator/number/Max.js.map deleted file mode 100644 index afca8a9..0000000 --- a/views/node_modules/class-validator/cjs/decorator/number/Max.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Max.js","sourceRoot":"","sources":["../../../../src/decorator/number/Max.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,GAAG,GAAG,KAAK,CAAC;AAEzB;;GAEG;AACH,SAAgB,GAAG,CAAC,GAAY,EAAE,GAAW;IAC3C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC;AAC1E,CAAC;AAFD,kBAEC;AAED;;GAEG;AACH,SAAgB,GAAG,CAAC,QAAgB,EAAE,iBAAqC;IACzE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,WAAG;QACT,WAAW,EAAE,CAAC,QAAQ,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACnE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iDAAiD,EAC5E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,kBAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MAX = 'max';\n\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function max(num: unknown, max: number): boolean {\n return typeof num === 'number' && typeof max === 'number' && num <= max;\n}\n\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function Max(maxValue: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MAX,\n constraints: [maxValue],\n validator: {\n validate: (value, args): boolean => max(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must not be greater than $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/number/Min.js b/views/node_modules/class-validator/cjs/decorator/number/Min.js deleted file mode 100644 index a8877aa..0000000 --- a/views/node_modules/class-validator/cjs/decorator/number/Min.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Min = exports.min = exports.MIN = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.MIN = 'min'; -/** - * Checks if the first number is greater than or equal to the second. - */ -function min(num, min) { - return typeof num === 'number' && typeof min === 'number' && num >= min; -} -exports.min = min; -/** - * Checks if the first number is greater than or equal to the second. - */ -function Min(minValue, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.MIN, - constraints: [minValue], - validator: { - validate: (value, args) => min(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must not be less than $constraint1', validationOptions), - }, - }, validationOptions); -} -exports.Min = Min; -//# sourceMappingURL=Min.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/number/Min.js.map b/views/node_modules/class-validator/cjs/decorator/number/Min.js.map deleted file mode 100644 index 263e07b..0000000 --- a/views/node_modules/class-validator/cjs/decorator/number/Min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Min.js","sourceRoot":"","sources":["../../../../src/decorator/number/Min.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,GAAG,GAAG,KAAK,CAAC;AAEzB;;GAEG;AACH,SAAgB,GAAG,CAAC,GAAY,EAAE,GAAW;IAC3C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC;AAC1E,CAAC;AAFD,kBAEC;AAED;;GAEG;AACH,SAAgB,GAAG,CAAC,QAAgB,EAAE,iBAAqC;IACzE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,WAAG;QACT,WAAW,EAAE,CAAC,QAAQ,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACnE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,8CAA8C,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,kBAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MIN = 'min';\n\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function min(num: unknown, min: number): boolean {\n return typeof num === 'number' && typeof min === 'number' && num >= min;\n}\n\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function Min(minValue: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MIN,\n constraints: [minValue],\n validator: {\n validate: (value, args): boolean => min(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must not be less than $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/object/IsInstance.js b/views/node_modules/class-validator/cjs/decorator/object/IsInstance.js deleted file mode 100644 index 517fca5..0000000 --- a/views/node_modules/class-validator/cjs/decorator/object/IsInstance.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsInstance = exports.isInstance = exports.IS_INSTANCE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_INSTANCE = 'isInstance'; -/** - * Checks if the value is an instance of the specified object. - */ -function isInstance(object, targetTypeConstructor) { - return (targetTypeConstructor && typeof targetTypeConstructor === 'function' && object instanceof targetTypeConstructor); -} -exports.isInstance = isInstance; -/** - * Checks if the value is an instance of the specified object. - */ -function IsInstance(targetType, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_INSTANCE, - constraints: [targetType], - validator: { - validate: (value, args) => isInstance(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage((eachPrefix, args) => { - if (args.constraints[0]) { - return eachPrefix + `$property must be an instance of ${args.constraints[0].name}`; - } - else { - return eachPrefix + `${exports.IS_INSTANCE} decorator expects and object as value, but got falsy value.`; - } - }, validationOptions), - }, - }, validationOptions); -} -exports.IsInstance = IsInstance; -//# sourceMappingURL=IsInstance.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/object/IsInstance.js.map b/views/node_modules/class-validator/cjs/decorator/object/IsInstance.js.map deleted file mode 100644 index 8a004c0..0000000 --- a/views/node_modules/class-validator/cjs/decorator/object/IsInstance.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsInstance.js","sourceRoot":"","sources":["../../../../src/decorator/object/IsInstance.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,SAAgB,UAAU,CAAC,MAAe,EAAE,qBAAkD;IAC5F,OAAO,CACL,qBAAqB,IAAI,OAAO,qBAAqB,KAAK,UAAU,IAAI,MAAM,YAAY,qBAAqB,CAChH,CAAC;AACJ,CAAC;AAJD,gCAIC;AAED;;GAEG;AACH,SAAgB,UAAU,CACxB,UAAuC,EACvC,iBAAqC;IAErC,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,mBAAW;QACjB,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1E,cAAc,EAAE,yBAAY,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;gBAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;oBACvB,OAAO,UAAU,GAAG,oCAAoC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAc,EAAE,CAAC;iBAC9F;qBAAM;oBACL,OAAO,UAAU,GAAG,GAAG,mBAAW,8DAA8D,CAAC;iBAClG;YACH,CAAC,EAAE,iBAAiB,CAAC;SACtB;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AArBD,gCAqBC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_INSTANCE = 'isInstance';\n\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function isInstance(object: unknown, targetTypeConstructor: new (...args: any[]) => any): boolean {\n return (\n targetTypeConstructor && typeof targetTypeConstructor === 'function' && object instanceof targetTypeConstructor\n );\n}\n\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function IsInstance(\n targetType: new (...args: any[]) => any,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_INSTANCE,\n constraints: [targetType],\n validator: {\n validate: (value, args): boolean => isInstance(value, args.constraints[0]),\n defaultMessage: buildMessage((eachPrefix, args) => {\n if (args.constraints[0]) {\n return eachPrefix + `$property must be an instance of ${args.constraints[0].name as string}`;\n } else {\n return eachPrefix + `${IS_INSTANCE} decorator expects and object as value, but got falsy value.`;\n }\n }, validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/object/IsNotEmptyObject.js b/views/node_modules/class-validator/cjs/decorator/object/IsNotEmptyObject.js deleted file mode 100644 index 6b6959e..0000000 --- a/views/node_modules/class-validator/cjs/decorator/object/IsNotEmptyObject.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsNotEmptyObject = exports.isNotEmptyObject = exports.IS_NOT_EMPTY_OBJECT = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const IsObject_1 = require("../typechecker/IsObject"); -exports.IS_NOT_EMPTY_OBJECT = 'isNotEmptyObject'; -/** - * Checks if the value is valid Object & not empty. - * Returns false if the value is not an object or an empty valid object. - */ -function isNotEmptyObject(value, options) { - if (!IsObject_1.isObject(value)) { - return false; - } - if ((options === null || options === void 0 ? void 0 : options.nullable) === true) { - return !Object.values(value).every(propertyValue => propertyValue === null || propertyValue === undefined); - } - for (const key in value) { - if (value.hasOwnProperty(key)) { - return true; - } - } - return false; -} -exports.isNotEmptyObject = isNotEmptyObject; -/** - * Checks if the value is valid Object & not empty. - * Returns false if the value is not an object or an empty valid object. - */ -function IsNotEmptyObject(options, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_NOT_EMPTY_OBJECT, - constraints: [options], - validator: { - validate: (value, args) => isNotEmptyObject(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a non-empty object', validationOptions), - }, - }, validationOptions); -} -exports.IsNotEmptyObject = IsNotEmptyObject; -//# sourceMappingURL=IsNotEmptyObject.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/object/IsNotEmptyObject.js.map b/views/node_modules/class-validator/cjs/decorator/object/IsNotEmptyObject.js.map deleted file mode 100644 index de47517..0000000 --- a/views/node_modules/class-validator/cjs/decorator/object/IsNotEmptyObject.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNotEmptyObject.js","sourceRoot":"","sources":["../../../../src/decorator/object/IsNotEmptyObject.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAChE,sDAAmD;AAEtC,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAc,EAAE,OAAgC;IAC/E,IAAI,CAAC,mBAAQ,CAAC,KAAK,CAAC,EAAE;QACpB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,MAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,CAAC,CAAC;KAC5G;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAhBD,4CAgBC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,OAAgC,EAChC,iBAAqC;IAErC,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,2BAAmB;QACzB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAChF,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,sCAAsC,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAlBD,4CAkBC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { isObject } from '../typechecker/IsObject';\n\nexport const IS_NOT_EMPTY_OBJECT = 'isNotEmptyObject';\n\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function isNotEmptyObject(value: unknown, options?: { nullable?: boolean }): boolean {\n if (!isObject(value)) {\n return false;\n }\n\n if (options?.nullable === true) {\n return !Object.values(value).every(propertyValue => propertyValue === null || propertyValue === undefined);\n }\n\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function IsNotEmptyObject(\n options?: { nullable?: boolean },\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NOT_EMPTY_OBJECT,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isNotEmptyObject(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a non-empty object',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/Contains.js b/views/node_modules/class-validator/cjs/decorator/string/Contains.js deleted file mode 100644 index 14094d1..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/Contains.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Contains = exports.contains = exports.CONTAINS = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const contains_1 = __importDefault(require("validator/lib/contains")); -exports.CONTAINS = 'contains'; -/** - * Checks if the string contains the seed. - * If given value is not a string, then it returns false. - */ -function contains(value, seed) { - return typeof value === 'string' && contains_1.default(value, seed); -} -exports.contains = contains; -/** - * Checks if the string contains the seed. - * If given value is not a string, then it returns false. - */ -function Contains(seed, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.CONTAINS, - constraints: [seed], - validator: { - validate: (value, args) => contains(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain a $constraint1 string', validationOptions), - }, - }, validationOptions); -} -exports.Contains = Contains; -//# sourceMappingURL=Contains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/Contains.js.map b/views/node_modules/class-validator/cjs/decorator/string/Contains.js.map deleted file mode 100644 index ee19a7c..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/Contains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Contains.js","sourceRoot":"","sources":["../../../../src/decorator/string/Contains.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sEAAuD;AAE1C,QAAA,QAAQ,GAAG,UAAU,CAAC;AAEnC;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAc,EAAE,IAAY;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC;AAFD,4BAEC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,IAAY,EAAE,iBAAqC;IAC1E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,gBAAQ;QACd,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACxE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,8CAA8C,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,4BAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\n\nexport const CONTAINS = 'contains';\n\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function contains(value: unknown, seed: string): boolean {\n return typeof value === 'string' && containsValidator(value, seed);\n}\n\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function Contains(seed: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: CONTAINS,\n constraints: [seed],\n validator: {\n validate: (value, args): boolean => contains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a $constraint1 string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsAlpha.js b/views/node_modules/class-validator/cjs/decorator/string/IsAlpha.js deleted file mode 100644 index 7f6af71..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsAlpha.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsAlpha = exports.isAlpha = exports.IS_ALPHA = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isAlpha_1 = __importDefault(require("validator/lib/isAlpha")); -exports.IS_ALPHA = 'isAlpha'; -/** - * Checks if the string contains only letters (a-zA-Z). - * If given value is not a string, then it returns false. - */ -function isAlpha(value, locale) { - return typeof value === 'string' && isAlpha_1.default(value, locale); -} -exports.isAlpha = isAlpha; -/** - * Checks if the string contains only letters (a-zA-Z). - * If given value is not a string, then it returns false. - */ -function IsAlpha(locale, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ALPHA, - constraints: [locale], - validator: { - validate: (value, args) => isAlpha(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain only letters (a-zA-Z)', validationOptions), - }, - }, validationOptions); -} -exports.IsAlpha = IsAlpha; -//# sourceMappingURL=IsAlpha.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsAlpha.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsAlpha.js.map deleted file mode 100644 index 015ed60..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsAlpha.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsAlpha.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsAlpha.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,oEAAqD;AAGxC,QAAA,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,SAAgB,OAAO,CAAC,KAAc,EAAE,MAAgC;IACtE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAFD,0BAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,MAAe,EAAE,iBAAqC;IAC5E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,gBAAQ;QACd,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,8CAA8C,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,0BAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphaValidator from 'validator/lib/isAlpha';\nimport ValidatorJS from 'validator';\n\nexport const IS_ALPHA = 'isAlpha';\n\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function isAlpha(value: unknown, locale?: ValidatorJS.AlphaLocale): boolean {\n return typeof value === 'string' && isAlphaValidator(value, locale);\n}\n\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function IsAlpha(locale?: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ALPHA,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isAlpha(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain only letters (a-zA-Z)',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsAlphanumeric.js b/views/node_modules/class-validator/cjs/decorator/string/IsAlphanumeric.js deleted file mode 100644 index 8016288..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsAlphanumeric.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsAlphanumeric = exports.isAlphanumeric = exports.IS_ALPHANUMERIC = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isAlphanumeric_1 = __importDefault(require("validator/lib/isAlphanumeric")); -exports.IS_ALPHANUMERIC = 'isAlphanumeric'; -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -function isAlphanumeric(value, locale) { - return typeof value === 'string' && isAlphanumeric_1.default(value, locale); -} -exports.isAlphanumeric = isAlphanumeric; -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -function IsAlphanumeric(locale, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ALPHANUMERIC, - constraints: [locale], - validator: { - validate: (value, args) => isAlphanumeric(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain only letters and numbers', validationOptions), - }, - }, validationOptions); -} -exports.IsAlphanumeric = IsAlphanumeric; -//# sourceMappingURL=IsAlphanumeric.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsAlphanumeric.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsAlphanumeric.js.map deleted file mode 100644 index fb92c9d..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsAlphanumeric.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsAlphanumeric.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsAlphanumeric.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kFAAmE;AAGtD,QAAA,eAAe,GAAG,gBAAgB,CAAC;AAEhD;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAc,EAAE,MAAuC;IACpF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,wBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC;AAFD,wCAEC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,MAAe,EAAE,iBAAqC;IACnF,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,uBAAe;QACrB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9E,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iDAAiD,EAC5E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,wCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphanumericValidator from 'validator/lib/isAlphanumeric';\nimport ValidatorJS from 'validator';\n\nexport const IS_ALPHANUMERIC = 'isAlphanumeric';\n\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function isAlphanumeric(value: unknown, locale?: ValidatorJS.AlphanumericLocale): boolean {\n return typeof value === 'string' && isAlphanumericValidator(value, locale);\n}\n\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsAlphanumeric(locale?: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ALPHANUMERIC,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isAlphanumeric(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain only letters and numbers',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsAscii.js b/views/node_modules/class-validator/cjs/decorator/string/IsAscii.js deleted file mode 100644 index c7e62c2..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsAscii.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsAscii = exports.isAscii = exports.IS_ASCII = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isAscii_1 = __importDefault(require("validator/lib/isAscii")); -exports.IS_ASCII = 'isAscii'; -/** - * Checks if the string contains ASCII chars only. - * If given value is not a string, then it returns false. - */ -function isAscii(value) { - return typeof value === 'string' && isAscii_1.default(value); -} -exports.isAscii = isAscii; -/** - * Checks if the string contains ASCII chars only. - * If given value is not a string, then it returns false. - */ -function IsAscii(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ASCII, - validator: { - validate: (value, args) => isAscii(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain only ASCII characters', validationOptions), - }, - }, validationOptions); -} -exports.IsAscii = IsAscii; -//# sourceMappingURL=IsAscii.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsAscii.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsAscii.js.map deleted file mode 100644 index ceecaab..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsAscii.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsAscii.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsAscii.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,oEAAqD;AAExC,QAAA,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAFD,0BAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,iBAAqC;IAC3D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,gBAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAClD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,8CAA8C,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,0BAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAsciiValidator from 'validator/lib/isAscii';\n\nexport const IS_ASCII = 'isAscii';\n\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function isAscii(value: unknown): boolean {\n return typeof value === 'string' && isAsciiValidator(value);\n}\n\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function IsAscii(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ASCII,\n validator: {\n validate: (value, args): boolean => isAscii(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain only ASCII characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsBIC.js b/views/node_modules/class-validator/cjs/decorator/string/IsBIC.js deleted file mode 100644 index 8e06c8a..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsBIC.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsBIC = exports.isBIC = exports.IS_BIC = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isBIC_1 = __importDefault(require("validator/lib/isBIC")); -exports.IS_BIC = 'isBIC'; -/** - * Check if a string is a BIC (Bank Identification Code) or SWIFT code. - * If given value is not a string, then it returns false. - */ -function isBIC(value) { - return typeof value === 'string' && isBIC_1.default(value); -} -exports.isBIC = isBIC; -/** - * Check if a string is a BIC (Bank Identification Code) or SWIFT code. - * If given value is not a string, then it returns false. - */ -function IsBIC(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_BIC, - validator: { - validate: (value, args) => isBIC(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a BIC or SWIFT code', validationOptions), - }, - }, validationOptions); -} -exports.IsBIC = IsBIC; -//# sourceMappingURL=IsBIC.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsBIC.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsBIC.js.map deleted file mode 100644 index 8f3b57f..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsBIC.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBIC.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBIC.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,gEAAiD;AAEpC,QAAA,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,SAAgB,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,iBAAqC;IACzD,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,cAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uCAAuC,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,sBAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBICValidator from 'validator/lib/isBIC';\n\nexport const IS_BIC = 'isBIC';\n\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function isBIC(value: unknown): boolean {\n return typeof value === 'string' && isBICValidator(value);\n}\n\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function IsBIC(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BIC,\n validator: {\n validate: (value, args): boolean => isBIC(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a BIC or SWIFT code',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsBase32.js b/views/node_modules/class-validator/cjs/decorator/string/IsBase32.js deleted file mode 100644 index 8155874..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsBase32.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsBase32 = exports.isBase32 = exports.IS_BASE32 = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isBase32_1 = __importDefault(require("validator/lib/isBase32")); -exports.IS_BASE32 = 'isBase32'; -/** - * Checks if a string is base32 encoded. - * If given value is not a string, then it returns false. - */ -function isBase32(value) { - return typeof value === 'string' && isBase32_1.default(value); -} -exports.isBase32 = isBase32; -/** - * Check if a string is base32 encoded. - * If given value is not a string, then it returns false. - */ -function IsBase32(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_BASE32, - validator: { - validate: (value, args) => isBase32(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be base32 encoded', validationOptions), - }, - }, validationOptions); -} -exports.IsBase32 = IsBase32; -//# sourceMappingURL=IsBase32.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsBase32.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsBase32.js.map deleted file mode 100644 index fd55e51..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsBase32.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBase32.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBase32.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sEAAuD;AAE1C,QAAA,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAFD,4BAEC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,iBAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kCAAkC,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,4BAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase32Validator from 'validator/lib/isBase32';\n\nexport const IS_BASE32 = 'isBase32';\n\n/**\n * Checks if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase32(value: unknown): boolean {\n return typeof value === 'string' && isBase32Validator(value);\n}\n\n/**\n * Check if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase32(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BASE32,\n validator: {\n validate: (value, args): boolean => isBase32(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be base32 encoded', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsBase64.js b/views/node_modules/class-validator/cjs/decorator/string/IsBase64.js deleted file mode 100644 index 8744935..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsBase64.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsBase64 = exports.isBase64 = exports.IS_BASE64 = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isBase64_1 = __importDefault(require("validator/lib/isBase64")); -exports.IS_BASE64 = 'isBase64'; -/** - * Checks if a string is base64 encoded. - * If given value is not a string, then it returns false. - */ -function isBase64(value) { - return typeof value === 'string' && isBase64_1.default(value); -} -exports.isBase64 = isBase64; -/** - * Checks if a string is base64 encoded. - * If given value is not a string, then it returns false. - */ -function IsBase64(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_BASE64, - validator: { - validate: (value, args) => isBase64(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be base64 encoded', validationOptions), - }, - }, validationOptions); -} -exports.IsBase64 = IsBase64; -//# sourceMappingURL=IsBase64.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsBase64.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsBase64.js.map deleted file mode 100644 index a6572b6..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsBase64.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBase64.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBase64.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sEAAuD;AAE1C,QAAA,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAFD,4BAEC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,iBAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kCAAkC,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,4BAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase64Validator from 'validator/lib/isBase64';\n\nexport const IS_BASE64 = 'isBase64';\n\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase64(value: unknown): boolean {\n return typeof value === 'string' && isBase64Validator(value);\n}\n\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase64(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BASE64,\n validator: {\n validate: (value, args): boolean => isBase64(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be base64 encoded', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsBooleanString.js b/views/node_modules/class-validator/cjs/decorator/string/IsBooleanString.js deleted file mode 100644 index 74d79b1..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsBooleanString.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsBooleanString = exports.isBooleanString = exports.IS_BOOLEAN_STRING = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isBoolean_1 = __importDefault(require("validator/lib/isBoolean")); -exports.IS_BOOLEAN_STRING = 'isBooleanString'; -/** - * Checks if a string is a boolean. - * If given value is not a string, then it returns false. - */ -function isBooleanString(value) { - return typeof value === 'string' && isBoolean_1.default(value); -} -exports.isBooleanString = isBooleanString; -/** - * Checks if a string is a boolean. - * If given value is not a string, then it returns false. - */ -function IsBooleanString(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_BOOLEAN_STRING, - validator: { - validate: (value, args) => isBooleanString(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a boolean string', validationOptions), - }, - }, validationOptions); -} -exports.IsBooleanString = IsBooleanString; -//# sourceMappingURL=IsBooleanString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsBooleanString.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsBooleanString.js.map deleted file mode 100644 index 137b170..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsBooleanString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBooleanString.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBooleanString.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,wEAAyD;AAE5C,QAAA,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAFD,0CAEC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,iBAAqC;IACnE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,yBAAiB;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;YAC1D,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oCAAoC,EAC/D,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,0CAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBooleanValidator from 'validator/lib/isBoolean';\n\nexport const IS_BOOLEAN_STRING = 'isBooleanString';\n\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function isBooleanString(value: unknown): boolean {\n return typeof value === 'string' && isBooleanValidator(value);\n}\n\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function IsBooleanString(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BOOLEAN_STRING,\n validator: {\n validate: (value, args): boolean => isBooleanString(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a boolean string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsBtcAddress.js b/views/node_modules/class-validator/cjs/decorator/string/IsBtcAddress.js deleted file mode 100644 index 5b94dd5..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsBtcAddress.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsBtcAddress = exports.isBtcAddress = exports.IS_BTC_ADDRESS = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isBtcAddress_1 = __importDefault(require("validator/lib/isBtcAddress")); -exports.IS_BTC_ADDRESS = 'isBtcAddress'; -/** - * Check if the string is a valid BTC address. - * If given value is not a string, then it returns false. - */ -function isBtcAddress(value) { - return typeof value === 'string' && isBtcAddress_1.default(value); -} -exports.isBtcAddress = isBtcAddress; -/** - * Check if the string is a valid BTC address. - * If given value is not a string, then it returns false. - */ -function IsBtcAddress(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_BTC_ADDRESS, - validator: { - validate: (value, args) => isBtcAddress(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a BTC address', validationOptions), - }, - }, validationOptions); -} -exports.IsBtcAddress = IsBtcAddress; -//# sourceMappingURL=IsBtcAddress.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsBtcAddress.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsBtcAddress.js.map deleted file mode 100644 index f6cb160..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsBtcAddress.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBtcAddress.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBtcAddress.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,8EAA+D;AAElD,QAAA,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAqB,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAFD,oCAEC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,iBAAqC;IAChE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,sBAAc;QACpB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;YACvD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,oCAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBtcAddressValidator from 'validator/lib/isBtcAddress';\n\nexport const IS_BTC_ADDRESS = 'isBtcAddress';\n\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function isBtcAddress(value: unknown): boolean {\n return typeof value === 'string' && isBtcAddressValidator(value);\n}\n\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function IsBtcAddress(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BTC_ADDRESS,\n validator: {\n validate: (value, args): boolean => isBtcAddress(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a BTC address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsByteLength.js b/views/node_modules/class-validator/cjs/decorator/string/IsByteLength.js deleted file mode 100644 index 47384e6..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsByteLength.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsByteLength = exports.isByteLength = exports.IS_BYTE_LENGTH = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isByteLength_1 = __importDefault(require("validator/lib/isByteLength")); -exports.IS_BYTE_LENGTH = 'isByteLength'; -/** - * Checks if the string's length (in bytes) falls in a range. - * If given value is not a string, then it returns false. - */ -function isByteLength(value, min, max) { - return typeof value === 'string' && isByteLength_1.default(value, { min, max }); -} -exports.isByteLength = isByteLength; -/** - * Checks if the string's length (in bytes) falls in a range. - * If given value is not a string, then it returns false. - */ -function IsByteLength(min, max, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_BYTE_LENGTH, - constraints: [min, max], - validator: { - validate: (value, args) => isByteLength(value, args.constraints[0], args.constraints[1]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + "$property's byte length must fall into ($constraint1, $constraint2) range", validationOptions), - }, - }, validationOptions); -} -exports.IsByteLength = IsByteLength; -//# sourceMappingURL=IsByteLength.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsByteLength.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsByteLength.js.map deleted file mode 100644 index 704e462..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsByteLength.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsByteLength.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsByteLength.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,8EAA+D;AAElD,QAAA,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAc,EAAE,GAAW,EAAE,GAAY;IACpE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAqB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACjF,CAAC;AAFD,oCAEC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,GAAW,EAAE,GAAY,EAAE,iBAAqC;IAC3F,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,sBAAc;QACpB,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACjG,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,2EAA2E,EACtG,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,oCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isByteLengthValidator from 'validator/lib/isByteLength';\n\nexport const IS_BYTE_LENGTH = 'isByteLength';\n\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function isByteLength(value: unknown, min: number, max?: number): boolean {\n return typeof value === 'string' && isByteLengthValidator(value, { min, max });\n}\n\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function IsByteLength(min: number, max?: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BYTE_LENGTH,\n constraints: [min, max],\n validator: {\n validate: (value, args): boolean => isByteLength(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + \"$property's byte length must fall into ($constraint1, $constraint2) range\",\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsCreditCard.js b/views/node_modules/class-validator/cjs/decorator/string/IsCreditCard.js deleted file mode 100644 index 7e426fb..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsCreditCard.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsCreditCard = exports.isCreditCard = exports.IS_CREDIT_CARD = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isCreditCard_1 = __importDefault(require("validator/lib/isCreditCard")); -exports.IS_CREDIT_CARD = 'isCreditCard'; -/** - * Checks if the string is a credit card. - * If given value is not a string, then it returns false. - */ -function isCreditCard(value) { - return typeof value === 'string' && isCreditCard_1.default(value); -} -exports.isCreditCard = isCreditCard; -/** - * Checks if the string is a credit card. - * If given value is not a string, then it returns false. - */ -function IsCreditCard(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_CREDIT_CARD, - validator: { - validate: (value, args) => isCreditCard(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a credit card', validationOptions), - }, - }, validationOptions); -} -exports.IsCreditCard = IsCreditCard; -//# sourceMappingURL=IsCreditCard.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsCreditCard.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsCreditCard.js.map deleted file mode 100644 index 3b8f520..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsCreditCard.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsCreditCard.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsCreditCard.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,8EAA+D;AAElD,QAAA,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAqB,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAFD,oCAEC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,iBAAqC;IAChE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,sBAAc;QACpB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;YACvD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,oCAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCreditCardValidator from 'validator/lib/isCreditCard';\n\nexport const IS_CREDIT_CARD = 'isCreditCard';\n\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function isCreditCard(value: unknown): boolean {\n return typeof value === 'string' && isCreditCardValidator(value);\n}\n\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function IsCreditCard(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_CREDIT_CARD,\n validator: {\n validate: (value, args): boolean => isCreditCard(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a credit card', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsCurrency.js b/views/node_modules/class-validator/cjs/decorator/string/IsCurrency.js deleted file mode 100644 index 5e895f6..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsCurrency.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsCurrency = exports.isCurrency = exports.IS_CURRENCY = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isCurrency_1 = __importDefault(require("validator/lib/isCurrency")); -exports.IS_CURRENCY = 'isCurrency'; -/** - * Checks if the string is a valid currency amount. - * If given value is not a string, then it returns false. - */ -function isCurrency(value, options) { - return typeof value === 'string' && isCurrency_1.default(value, options); -} -exports.isCurrency = isCurrency; -/** - * Checks if the string is a valid currency amount. - * If given value is not a string, then it returns false. - */ -function IsCurrency(options, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_CURRENCY, - constraints: [options], - validator: { - validate: (value, args) => isCurrency(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a currency', validationOptions), - }, - }, validationOptions); -} -exports.IsCurrency = IsCurrency; -//# sourceMappingURL=IsCurrency.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsCurrency.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsCurrency.js.map deleted file mode 100644 index e2ed0bb..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsCurrency.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsCurrency.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsCurrency.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,0EAA2D;AAG9C,QAAA,WAAW,GAAG,YAAY,CAAC;AAExC;;;GAGG;AACH,SAAgB,UAAU,CAAC,KAAc,EAAE,OAAuC;IAChF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAFD,gCAEC;AAED;;;GAGG;AACH,SAAgB,UAAU,CACxB,OAAuC,EACvC,iBAAqC;IAErC,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,mBAAW;QACjB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1E,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,8BAA8B,EAAE,iBAAiB,CAAC;SAC3G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,gCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCurrencyValidator from 'validator/lib/isCurrency';\nimport ValidatorJS from 'validator';\n\nexport const IS_CURRENCY = 'isCurrency';\n\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function isCurrency(value: unknown, options?: ValidatorJS.IsCurrencyOptions): boolean {\n return typeof value === 'string' && isCurrencyValidator(value, options);\n}\n\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function IsCurrency(\n options?: ValidatorJS.IsCurrencyOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_CURRENCY,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isCurrency(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a currency', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsDataURI.js b/views/node_modules/class-validator/cjs/decorator/string/IsDataURI.js deleted file mode 100644 index 76511a4..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsDataURI.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsDataURI = exports.isDataURI = exports.IS_DATA_URI = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isDataURI_1 = __importDefault(require("validator/lib/isDataURI")); -exports.IS_DATA_URI = 'isDataURI'; -/** - * Check if the string is a data uri format. - * If given value is not a string, then it returns false. - */ -function isDataURI(value) { - return typeof value === 'string' && isDataURI_1.default(value); -} -exports.isDataURI = isDataURI; -/** - * Check if the string is a data uri format. - * If given value is not a string, then it returns false. - */ -function IsDataURI(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_DATA_URI, - validator: { - validate: (value, args) => isDataURI(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a data uri format', validationOptions), - }, - }, validationOptions); -} -exports.IsDataURI = IsDataURI; -//# sourceMappingURL=IsDataURI.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsDataURI.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsDataURI.js.map deleted file mode 100644 index 28c97a8..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsDataURI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDataURI.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsDataURI.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,wEAAyD;AAE5C,QAAA,WAAW,GAAG,WAAW,CAAC;AAEvC;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,iBAAqC;IAC7D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,mBAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACpD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,qCAAqC,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,8BAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDataURIValidator from 'validator/lib/isDataURI';\n\nexport const IS_DATA_URI = 'isDataURI';\n\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isDataURI(value: unknown): boolean {\n return typeof value === 'string' && isDataURIValidator(value);\n}\n\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsDataURI(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DATA_URI,\n validator: {\n validate: (value, args): boolean => isDataURI(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a data uri format',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsDateString.js b/views/node_modules/class-validator/cjs/decorator/string/IsDateString.js deleted file mode 100644 index 741c5db..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsDateString.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsDateString = exports.isDateString = exports.IS_DATE_STRING = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const IsISO8601_1 = require("./IsISO8601"); -exports.IS_DATE_STRING = 'isDateString'; -/** - * Alias for IsISO8601 validator - */ -function isDateString(value, options) { - return IsISO8601_1.isISO8601(value, options); -} -exports.isDateString = isDateString; -/** - * Alias for IsISO8601 validator - */ -function IsDateString(options, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_DATE_STRING, - constraints: [options], - validator: { - validate: (value, args) => isDateString(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string', validationOptions), - }, - }, validationOptions); -} -exports.IsDateString = IsDateString; -//# sourceMappingURL=IsDateString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsDateString.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsDateString.js.map deleted file mode 100644 index b03c9f3..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsDateString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDateString.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsDateString.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEhE,2CAAwC;AAE3B,QAAA,cAAc,GAAG,cAAc,CAAC;AAE7C;;GAEG;AACH,SAAgB,YAAY,CAAC,KAAc,EAAE,OAAsC;IACjF,OAAO,qBAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAFD,oCAEC;AAED;;GAEG;AACH,SAAgB,YAAY,CAC1B,OAAsC,EACtC,iBAAqC;IAErC,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,sBAAc;QACpB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;YACvD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAlBD,oCAkBC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport ValidatorJS from 'validator';\nimport { isISO8601 } from './IsISO8601';\n\nexport const IS_DATE_STRING = 'isDateString';\n\n/**\n * Alias for IsISO8601 validator\n */\nexport function isDateString(value: unknown, options?: ValidatorJS.IsISO8601Options): boolean {\n return isISO8601(value, options);\n}\n\n/**\n * Alias for IsISO8601 validator\n */\nexport function IsDateString(\n options?: ValidatorJS.IsISO8601Options,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DATE_STRING,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isDateString(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsDecimal.js b/views/node_modules/class-validator/cjs/decorator/string/IsDecimal.js deleted file mode 100644 index a703074..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsDecimal.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsDecimal = exports.isDecimal = exports.IS_DECIMAL = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isDecimal_1 = __importDefault(require("validator/lib/isDecimal")); -exports.IS_DECIMAL = 'isDecimal'; -/** - * Checks if the string is a valid decimal. - * If given value is not a string, then it returns false. - */ -function isDecimal(value, options) { - return typeof value === 'string' && isDecimal_1.default(value, options); -} -exports.isDecimal = isDecimal; -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -function IsDecimal(options, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_DECIMAL, - constraints: [options], - validator: { - validate: (value, args) => isDecimal(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property is not a valid decimal number.', validationOptions), - }, - }, validationOptions); -} -exports.IsDecimal = IsDecimal; -//# sourceMappingURL=IsDecimal.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsDecimal.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsDecimal.js.map deleted file mode 100644 index 45322e2..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsDecimal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDecimal.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsDecimal.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,wEAAyD;AAG5C,QAAA,UAAU,GAAG,WAAW,CAAC;AAEtC;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAc,EAAE,OAAsC;IAC9E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,SAAS,CACvB,OAAsC,EACtC,iBAAqC;IAErC,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,kBAAU;QAChB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACzE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0CAA0C,EACrE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAlBD,8BAkBC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDecimalValidator from 'validator/lib/isDecimal';\nimport ValidatorJS from 'validator';\n\nexport const IS_DECIMAL = 'isDecimal';\n\n/**\n * Checks if the string is a valid decimal.\n * If given value is not a string, then it returns false.\n */\nexport function isDecimal(value: unknown, options?: ValidatorJS.IsDecimalOptions): boolean {\n return typeof value === 'string' && isDecimalValidator(value, options);\n}\n\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsDecimal(\n options?: ValidatorJS.IsDecimalOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DECIMAL,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isDecimal(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property is not a valid decimal number.',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsEAN.js b/views/node_modules/class-validator/cjs/decorator/string/IsEAN.js deleted file mode 100644 index 17b2c28..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsEAN.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsEAN = exports.isEAN = exports.IS_EAN = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isEAN_1 = __importDefault(require("validator/lib/isEAN")); -exports.IS_EAN = 'isEAN'; -/** - * Check if the string is an EAN (European Article Number). - * If given value is not a string, then it returns false. - */ -function isEAN(value) { - return typeof value === 'string' && isEAN_1.default(value); -} -exports.isEAN = isEAN; -/** - * Check if the string is an EAN (European Article Number). - * If given value is not a string, then it returns false. - */ -function IsEAN(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_EAN, - validator: { - validate: (value, args) => isEAN(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an EAN (European Article Number)', validationOptions), - }, - }, validationOptions); -} -exports.IsEAN = IsEAN; -//# sourceMappingURL=IsEAN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsEAN.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsEAN.js.map deleted file mode 100644 index ee8d883..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsEAN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEAN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsEAN.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,gEAAiD;AAEpC,QAAA,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,SAAgB,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,iBAAqC;IACzD,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,cAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oDAAoD,EAC/E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,sBAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEANValidator from 'validator/lib/isEAN';\n\nexport const IS_EAN = 'isEAN';\n\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function isEAN(value: unknown): boolean {\n return typeof value === 'string' && isEANValidator(value);\n}\n\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsEAN(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_EAN,\n validator: {\n validate: (value, args): boolean => isEAN(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an EAN (European Article Number)',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsEmail.js b/views/node_modules/class-validator/cjs/decorator/string/IsEmail.js deleted file mode 100644 index 31314d2..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsEmail.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsEmail = exports.isEmail = exports.IS_EMAIL = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isEmail_1 = __importDefault(require("validator/lib/isEmail")); -exports.IS_EMAIL = 'isEmail'; -/** - * Checks if the string is an email. - * If given value is not a string, then it returns false. - */ -function isEmail(value, options) { - return typeof value === 'string' && isEmail_1.default(value, options); -} -exports.isEmail = isEmail; -/** - * Checks if the string is an email. - * If given value is not a string, then it returns false. - */ -function IsEmail(options, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_EMAIL, - constraints: [options], - validator: { - validate: (value, args) => isEmail(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an email', validationOptions), - }, - }, validationOptions); -} -exports.IsEmail = IsEmail; -//# sourceMappingURL=IsEmail.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsEmail.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsEmail.js.map deleted file mode 100644 index ef201e7..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsEmail.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEmail.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsEmail.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,oEAAqD;AAGxC,QAAA,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,SAAgB,OAAO,CAAC,KAAc,EAAE,OAAoC;IAC1E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAFD,0BAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CACrB,OAAoC,EACpC,iBAAqC;IAErC,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,gBAAQ;QACd,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvE,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,4BAA4B,EAAE,iBAAiB,CAAC;SACzG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,0BAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEmailValidator from 'validator/lib/isEmail';\nimport ValidatorJS from 'validator';\n\nexport const IS_EMAIL = 'isEmail';\n\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function isEmail(value: unknown, options?: ValidatorJS.IsEmailOptions): boolean {\n return typeof value === 'string' && isEmailValidator(value, options);\n}\n\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function IsEmail(\n options?: ValidatorJS.IsEmailOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_EMAIL,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isEmail(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an email', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsEthereumAddress.js b/views/node_modules/class-validator/cjs/decorator/string/IsEthereumAddress.js deleted file mode 100644 index 4ee81bb..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsEthereumAddress.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsEthereumAddress = exports.isEthereumAddress = exports.IS_ETHEREUM_ADDRESS = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isEthereumAddress_1 = __importDefault(require("validator/lib/isEthereumAddress")); -exports.IS_ETHEREUM_ADDRESS = 'isEthereumAddress'; -/** - * Check if the string is an Ethereum address using basic regex. Does not validate address checksums. - * If given value is not a string, then it returns false. - */ -function isEthereumAddress(value) { - return typeof value === 'string' && isEthereumAddress_1.default(value); -} -exports.isEthereumAddress = isEthereumAddress; -/** - * Check if the string is an Ethereum address using basic regex. Does not validate address checksums. - * If given value is not a string, then it returns false. - */ -function IsEthereumAddress(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ETHEREUM_ADDRESS, - validator: { - validate: (value, args) => isEthereumAddress(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an Ethereum address', validationOptions), - }, - }, validationOptions); -} -exports.IsEthereumAddress = IsEthereumAddress; -//# sourceMappingURL=IsEthereumAddress.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsEthereumAddress.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsEthereumAddress.js.map deleted file mode 100644 index 5d6fadc..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsEthereumAddress.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEthereumAddress.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsEthereumAddress.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,wFAAyE;AAE5D,QAAA,mBAAmB,GAAG,mBAAmB,CAAC;AAEvD;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,2BAA0B,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAFD,8CAEC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,iBAAqC;IACrE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,2BAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAC5D,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uCAAuC,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,8CAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEthereumAddressValidator from 'validator/lib/isEthereumAddress';\n\nexport const IS_ETHEREUM_ADDRESS = 'isEthereumAddress';\n\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function isEthereumAddress(value: unknown): boolean {\n return typeof value === 'string' && isEthereumAddressValidator(value);\n}\n\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function IsEthereumAddress(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ETHEREUM_ADDRESS,\n validator: {\n validate: (value, args): boolean => isEthereumAddress(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an Ethereum address',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsFQDN.js b/views/node_modules/class-validator/cjs/decorator/string/IsFQDN.js deleted file mode 100644 index e534e60..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsFQDN.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsFQDN = exports.isFQDN = exports.IS_FQDN = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isFQDN_1 = __importDefault(require("validator/lib/isFQDN")); -exports.IS_FQDN = 'isFqdn'; -/** - * Checks if the string is a fully qualified domain name (e.g. domain.com). - * If given value is not a string, then it returns false. - */ -function isFQDN(value, options) { - return typeof value === 'string' && isFQDN_1.default(value, options); -} -exports.isFQDN = isFQDN; -/** - * Checks if the string is a fully qualified domain name (e.g. domain.com). - * If given value is not a string, then it returns false. - */ -function IsFQDN(options, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_FQDN, - constraints: [options], - validator: { - validate: (value, args) => isFQDN(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a valid domain name', validationOptions), - }, - }, validationOptions); -} -exports.IsFQDN = IsFQDN; -//# sourceMappingURL=IsFQDN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsFQDN.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsFQDN.js.map deleted file mode 100644 index 5f84e71..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsFQDN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsFQDN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsFQDN.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kEAAmD;AAGtC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,SAAgB,MAAM,CAAC,KAAc,EAAE,OAAmC;IACxE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAFD,wBAEC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,OAAmC,EAAE,iBAAqC;IAC/F,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uCAAuC,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,wBAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFqdnValidator from 'validator/lib/isFQDN';\nimport ValidatorJS from 'validator';\n\nexport const IS_FQDN = 'isFqdn';\n\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function isFQDN(value: unknown, options?: ValidatorJS.IsFQDNOptions): boolean {\n return typeof value === 'string' && isFqdnValidator(value, options);\n}\n\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function IsFQDN(options?: ValidatorJS.IsFQDNOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_FQDN,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isFQDN(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid domain name',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsFirebasePushId.js b/views/node_modules/class-validator/cjs/decorator/string/IsFirebasePushId.js deleted file mode 100644 index 880b6dc..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsFirebasePushId.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsFirebasePushId = exports.isFirebasePushId = exports.IS_FIREBASE_PUSH_ID = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_FIREBASE_PUSH_ID = 'IsFirebasePushId'; -/** - * Checks if the string is a Firebase Push Id - * If given value is not a Firebase Push Id, it returns false - */ -function isFirebasePushId(value) { - const webSafeRegex = /^[a-zA-Z0-9_-]*$/; - return typeof value === 'string' && value.length === 20 && webSafeRegex.test(value); -} -exports.isFirebasePushId = isFirebasePushId; -/** - * Checks if the string is a Firebase Push Id - * If given value is not a Firebase Push Id, it returns false - */ -function IsFirebasePushId(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_FIREBASE_PUSH_ID, - validator: { - validate: (value, args) => isFirebasePushId(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a Firebase Push Id', validationOptions), - }, - }, validationOptions); -} -exports.IsFirebasePushId = IsFirebasePushId; -//# sourceMappingURL=IsFirebasePushId.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsFirebasePushId.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsFirebasePushId.js.map deleted file mode 100644 index a83b15d..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsFirebasePushId.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsFirebasePushId.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsFirebasePushId.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,MAAM,YAAY,GAAG,kBAAkB,CAAC;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtF,CAAC;AAHD,4CAGC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,2BAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC3D,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,sCAAsC,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,4CAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_FIREBASE_PUSH_ID = 'IsFirebasePushId';\n\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function isFirebasePushId(value: unknown): boolean {\n const webSafeRegex = /^[a-zA-Z0-9_-]*$/;\n return typeof value === 'string' && value.length === 20 && webSafeRegex.test(value);\n}\n\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function IsFirebasePushId(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_FIREBASE_PUSH_ID,\n validator: {\n validate: (value, args): boolean => isFirebasePushId(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a Firebase Push Id',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsFullWidth.js b/views/node_modules/class-validator/cjs/decorator/string/IsFullWidth.js deleted file mode 100644 index f28fa1b..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsFullWidth.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsFullWidth = exports.isFullWidth = exports.IS_FULL_WIDTH = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isFullWidth_1 = __importDefault(require("validator/lib/isFullWidth")); -exports.IS_FULL_WIDTH = 'isFullWidth'; -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -function isFullWidth(value) { - return typeof value === 'string' && isFullWidth_1.default(value); -} -exports.isFullWidth = isFullWidth; -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -function IsFullWidth(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_FULL_WIDTH, - validator: { - validate: (value, args) => isFullWidth(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain a full-width characters', validationOptions), - }, - }, validationOptions); -} -exports.IsFullWidth = IsFullWidth; -//# sourceMappingURL=IsFullWidth.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsFullWidth.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsFullWidth.js.map deleted file mode 100644 index 1924795..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsFullWidth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsFullWidth.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsFullWidth.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,4EAA6D;AAEhD,QAAA,aAAa,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAFD,kCAEC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,iBAAqC;IAC/D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,qBAAa;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,kCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFullWidthValidator from 'validator/lib/isFullWidth';\n\nexport const IS_FULL_WIDTH = 'isFullWidth';\n\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isFullWidth(value: unknown): boolean {\n return typeof value === 'string' && isFullWidthValidator(value);\n}\n\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsFullWidth(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_FULL_WIDTH,\n validator: {\n validate: (value, args): boolean => isFullWidth(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a full-width characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsHSL.js b/views/node_modules/class-validator/cjs/decorator/string/IsHSL.js deleted file mode 100644 index 60310ad..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsHSL.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsHSL = exports.isHSL = exports.IS_HSL = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isHSL_1 = __importDefault(require("validator/lib/isHSL")); -exports.IS_HSL = 'isHSL'; -/** - * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification. - * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)). - * If given value is not a string, then it returns false. - */ -function isHSL(value) { - return typeof value === 'string' && isHSL_1.default(value); -} -exports.isHSL = isHSL; -/** - * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification. - * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)). - * If given value is not a string, then it returns false. - */ -function IsHSL(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_HSL, - validator: { - validate: (value, args) => isHSL(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a HSL color', validationOptions), - }, - }, validationOptions); -} -exports.IsHSL = IsHSL; -//# sourceMappingURL=IsHSL.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsHSL.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsHSL.js.map deleted file mode 100644 index c5a35dd..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsHSL.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHSL.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHSL.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,gEAAiD;AAEpC,QAAA,MAAM,GAAG,OAAO,CAAC;AAE9B;;;;GAIG;AACH,SAAgB,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAFD,sBAEC;AAED;;;;GAIG;AACH,SAAgB,KAAK,CAAC,iBAAqC;IACzD,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,cAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+BAA+B,EAAE,iBAAiB,CAAC;SAC5G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,sBAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHSLValidator from 'validator/lib/isHSL';\n\nexport const IS_HSL = 'isHSL';\n\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function isHSL(value: unknown): boolean {\n return typeof value === 'string' && isHSLValidator(value);\n}\n\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function IsHSL(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HSL,\n validator: {\n validate: (value, args): boolean => isHSL(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a HSL color', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsHalfWidth.js b/views/node_modules/class-validator/cjs/decorator/string/IsHalfWidth.js deleted file mode 100644 index f77113f..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsHalfWidth.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsHalfWidth = exports.isHalfWidth = exports.IS_HALF_WIDTH = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isHalfWidth_1 = __importDefault(require("validator/lib/isHalfWidth")); -exports.IS_HALF_WIDTH = 'isHalfWidth'; -/** - * Checks if the string contains any half-width chars. - * If given value is not a string, then it returns false. - */ -function isHalfWidth(value) { - return typeof value === 'string' && isHalfWidth_1.default(value); -} -exports.isHalfWidth = isHalfWidth; -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -function IsHalfWidth(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_HALF_WIDTH, - validator: { - validate: (value, args) => isHalfWidth(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain a half-width characters', validationOptions), - }, - }, validationOptions); -} -exports.IsHalfWidth = IsHalfWidth; -//# sourceMappingURL=IsHalfWidth.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsHalfWidth.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsHalfWidth.js.map deleted file mode 100644 index 5ad46d6..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsHalfWidth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHalfWidth.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHalfWidth.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,4EAA6D;AAEhD,QAAA,aAAa,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAFD,kCAEC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,iBAAqC;IAC/D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,qBAAa;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,kCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHalfWidthValidator from 'validator/lib/isHalfWidth';\n\nexport const IS_HALF_WIDTH = 'isHalfWidth';\n\n/**\n * Checks if the string contains any half-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isHalfWidth(value: unknown): boolean {\n return typeof value === 'string' && isHalfWidthValidator(value);\n}\n\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsHalfWidth(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HALF_WIDTH,\n validator: {\n validate: (value, args): boolean => isHalfWidth(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a half-width characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsHash.js b/views/node_modules/class-validator/cjs/decorator/string/IsHash.js deleted file mode 100644 index b2b90dc..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsHash.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsHash = exports.isHash = exports.IS_HASH = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isHash_1 = __importDefault(require("validator/lib/isHash")); -exports.IS_HASH = 'isHash'; -/** - * Check if the string is a hash of type algorithm. - * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', - * 'tiger160', 'tiger192', 'crc32', 'crc32b'] - */ -function isHash(value, algorithm) { - return typeof value === 'string' && isHash_1.default(value, algorithm); -} -exports.isHash = isHash; -/** - * Check if the string is a hash of type algorithm. - * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', - * 'tiger160', 'tiger192', 'crc32', 'crc32b'] - */ -function IsHash(algorithm, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_HASH, - constraints: [algorithm], - validator: { - validate: (value, args) => isHash(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a hash of type $constraint1', validationOptions), - }, - }, validationOptions); -} -exports.IsHash = IsHash; -//# sourceMappingURL=IsHash.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsHash.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsHash.js.map deleted file mode 100644 index 1920a66..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsHash.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHash.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHash.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kEAAmD;AAGtC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;;GAIG;AACH,SAAgB,MAAM,CAAC,KAAc,EAAE,SAAoC;IACzE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACxE,CAAC;AAFD,wBAEC;AAED;;;;GAIG;AACH,SAAgB,MAAM,CAAC,SAAiB,EAAE,iBAAqC;IAC7E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+CAA+C,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,wBAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHashValidator from 'validator/lib/isHash';\nimport ValidatorJS from 'validator';\n\nexport const IS_HASH = 'isHash';\n\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function isHash(value: unknown, algorithm: ValidatorJS.HashAlgorithm): boolean {\n return typeof value === 'string' && isHashValidator(value, algorithm);\n}\n\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function IsHash(algorithm: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HASH,\n constraints: [algorithm],\n validator: {\n validate: (value, args): boolean => isHash(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a hash of type $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsHexColor.js b/views/node_modules/class-validator/cjs/decorator/string/IsHexColor.js deleted file mode 100644 index 8d2298f..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsHexColor.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsHexColor = exports.isHexColor = exports.IS_HEX_COLOR = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isHexColor_1 = __importDefault(require("validator/lib/isHexColor")); -exports.IS_HEX_COLOR = 'isHexColor'; -/** - * Checks if the string is a hexadecimal color. - * If given value is not a string, then it returns false. - */ -function isHexColor(value) { - return typeof value === 'string' && isHexColor_1.default(value); -} -exports.isHexColor = isHexColor; -/** - * Checks if the string is a hexadecimal color. - * If given value is not a string, then it returns false. - */ -function IsHexColor(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_HEX_COLOR, - validator: { - validate: (value, args) => isHexColor(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a hexadecimal color', validationOptions), - }, - }, validationOptions); -} -exports.IsHexColor = IsHexColor; -//# sourceMappingURL=IsHexColor.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsHexColor.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsHexColor.js.map deleted file mode 100644 index fe64c3c..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsHexColor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHexColor.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHexColor.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,0EAA2D;AAE9C,QAAA,YAAY,GAAG,YAAY,CAAC;AAEzC;;;GAGG;AACH,SAAgB,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAmB,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAFD,gCAEC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,iBAAqC;IAC9D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,oBAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uCAAuC,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,gCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexColorValidator from 'validator/lib/isHexColor';\n\nexport const IS_HEX_COLOR = 'isHexColor';\n\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function isHexColor(value: unknown): boolean {\n return typeof value === 'string' && isHexColorValidator(value);\n}\n\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexColor(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HEX_COLOR,\n validator: {\n validate: (value, args): boolean => isHexColor(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a hexadecimal color',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsHexadecimal.js b/views/node_modules/class-validator/cjs/decorator/string/IsHexadecimal.js deleted file mode 100644 index 2d30e66..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsHexadecimal.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsHexadecimal = exports.isHexadecimal = exports.IS_HEXADECIMAL = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isHexadecimal_1 = __importDefault(require("validator/lib/isHexadecimal")); -exports.IS_HEXADECIMAL = 'isHexadecimal'; -/** - * Checks if the string is a hexadecimal number. - * If given value is not a string, then it returns false. - */ -function isHexadecimal(value) { - return typeof value === 'string' && isHexadecimal_1.default(value); -} -exports.isHexadecimal = isHexadecimal; -/** - * Checks if the string is a hexadecimal number. - * If given value is not a string, then it returns false. - */ -function IsHexadecimal(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_HEXADECIMAL, - validator: { - validate: (value, args) => isHexadecimal(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a hexadecimal number', validationOptions), - }, - }, validationOptions); -} -exports.IsHexadecimal = IsHexadecimal; -//# sourceMappingURL=IsHexadecimal.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsHexadecimal.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsHexadecimal.js.map deleted file mode 100644 index 7b7eac4..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsHexadecimal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHexadecimal.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHexadecimal.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,gFAAiE;AAEpD,QAAA,cAAc,GAAG,eAAe,CAAC;AAE9C;;;GAGG;AACH,SAAgB,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAsB,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAFD,sCAEC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,iBAAqC;IACjE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,sBAAc;QACpB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;YACxD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,wCAAwC,EACnE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,sCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexadecimalValidator from 'validator/lib/isHexadecimal';\n\nexport const IS_HEXADECIMAL = 'isHexadecimal';\n\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function isHexadecimal(value: unknown): boolean {\n return typeof value === 'string' && isHexadecimalValidator(value);\n}\n\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexadecimal(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HEXADECIMAL,\n validator: {\n validate: (value, args): boolean => isHexadecimal(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a hexadecimal number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsIBAN.js b/views/node_modules/class-validator/cjs/decorator/string/IsIBAN.js deleted file mode 100644 index 4b9ecc3..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsIBAN.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsIBAN = exports.isIBAN = exports.IS_IBAN = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isIBAN_1 = __importDefault(require("validator/lib/isIBAN")); -exports.IS_IBAN = 'isIBAN'; -/** - * Check if a string is a IBAN (International Bank Account Number). - * If given value is not a string, then it returns false. - */ -function isIBAN(value) { - return typeof value === 'string' && isIBAN_1.default(value); -} -exports.isIBAN = isIBAN; -/** - * Check if a string is a IBAN (International Bank Account Number). - * If given value is not a string, then it returns false. - */ -function IsIBAN(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_IBAN, - validator: { - validate: (value, args) => isIBAN(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an IBAN', validationOptions), - }, - }, validationOptions); -} -exports.IsIBAN = IsIBAN; -//# sourceMappingURL=IsIBAN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsIBAN.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsIBAN.js.map deleted file mode 100644 index 48ecf11..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsIBAN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIBAN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsIBAN.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kEAAmD;AAEtC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,SAAgB,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAFD,wBAEC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,iBAAqC;IAC1D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,2BAA2B,EAAE,iBAAiB,CAAC;SACxG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,wBAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIBANValidator from 'validator/lib/isIBAN';\n\nexport const IS_IBAN = 'isIBAN';\n\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function isIBAN(value: unknown): boolean {\n return typeof value === 'string' && isIBANValidator(value);\n}\n\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsIBAN(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IBAN,\n validator: {\n validate: (value, args): boolean => isIBAN(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an IBAN', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsIP.js b/views/node_modules/class-validator/cjs/decorator/string/IsIP.js deleted file mode 100644 index 499b3af..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsIP.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsIP = exports.isIP = exports.IS_IP = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isIP_1 = __importDefault(require("validator/lib/isIP")); -exports.IS_IP = 'isIp'; -/** - * Checks if the string is an IP (version 4 or 6). - * If given value is not a string, then it returns false. - */ -function isIP(value, version) { - const versionStr = version ? `${version}` : undefined; - return typeof value === 'string' && isIP_1.default(value, versionStr); -} -exports.isIP = isIP; -/** - * Checks if the string is an IP (version 4 or 6). - * If given value is not a string, then it returns false. - */ -function IsIP(version, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_IP, - constraints: [version], - validator: { - validate: (value, args) => isIP(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an ip address', validationOptions), - }, - }, validationOptions); -} -exports.IsIP = IsIP; -//# sourceMappingURL=IsIP.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsIP.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsIP.js.map deleted file mode 100644 index 94d796c..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsIP.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIP.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsIP.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,8DAA+C;AAIlC,QAAA,KAAK,GAAG,MAAM,CAAC;AAE5B;;;GAGG;AACH,SAAgB,IAAI,CAAC,KAAc,EAAE,OAAqB;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAE,GAAG,OAAO,EAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACvE,CAAC;AAHD,oBAGC;AAED;;;GAGG;AACH,SAAgB,IAAI,CAAC,OAAqB,EAAE,iBAAqC;IAC/E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,aAAK;QACX,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACpE,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAZD,oBAYC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIPValidator from 'validator/lib/isIP';\n\nexport type IsIpVersion = '4' | '6' | 4 | 6;\n\nexport const IS_IP = 'isIp';\n\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function isIP(value: unknown, version?: IsIpVersion): boolean {\n const versionStr = version ? (`${version}` as '4' | '6') : undefined;\n return typeof value === 'string' && isIPValidator(value, versionStr);\n}\n\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function IsIP(version?: IsIpVersion, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IP,\n constraints: [version],\n validator: {\n validate: (value, args): boolean => isIP(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ip address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISBN.js b/views/node_modules/class-validator/cjs/decorator/string/IsISBN.js deleted file mode 100644 index 09ad282..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISBN.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsISBN = exports.isISBN = exports.IS_ISBN = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isISBN_1 = __importDefault(require("validator/lib/isISBN")); -exports.IS_ISBN = 'isIsbn'; -/** - * Checks if the string is an ISBN (version 10 or 13). - * If given value is not a string, then it returns false. - */ -function isISBN(value, version) { - const versionStr = version ? `${version}` : undefined; - return typeof value === 'string' && isISBN_1.default(value, versionStr); -} -exports.isISBN = isISBN; -/** - * Checks if the string is an ISBN (version 10 or 13). - * If given value is not a string, then it returns false. - */ -function IsISBN(version, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ISBN, - constraints: [version], - validator: { - validate: (value, args) => isISBN(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an ISBN', validationOptions), - }, - }, validationOptions); -} -exports.IsISBN = IsISBN; -//# sourceMappingURL=IsISBN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISBN.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsISBN.js.map deleted file mode 100644 index a294b61..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISBN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISBN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISBN.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kEAAmD;AAItC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,SAAgB,MAAM,CAAC,KAAc,EAAE,OAAuB;IAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAE,GAAG,OAAO,EAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACzE,CAAC;AAHD,wBAGC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,OAAuB,EAAE,iBAAqC;IACnF,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,2BAA2B,EAAE,iBAAiB,CAAC;SACxG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAZD,wBAYC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsbnValidator from 'validator/lib/isISBN';\n\nexport type IsISBNVersion = '10' | '13' | 10 | 13;\n\nexport const IS_ISBN = 'isIsbn';\n\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function isISBN(value: unknown, version?: IsISBNVersion): boolean {\n const versionStr = version ? (`${version}` as '10' | '13') : undefined;\n return typeof value === 'string' && isIsbnValidator(value, versionStr);\n}\n\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function IsISBN(version?: IsISBNVersion, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISBN,\n constraints: [version],\n validator: {\n validate: (value, args): boolean => isISBN(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISBN', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISIN.js b/views/node_modules/class-validator/cjs/decorator/string/IsISIN.js deleted file mode 100644 index dbbe929..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISIN.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsISIN = exports.isISIN = exports.IS_ISIN = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isISIN_1 = __importDefault(require("validator/lib/isISIN")); -exports.IS_ISIN = 'isIsin'; -/** - * Checks if the string is an ISIN (stock/security identifier). - * If given value is not a string, then it returns false. - */ -function isISIN(value) { - return typeof value === 'string' && isISIN_1.default(value); -} -exports.isISIN = isISIN; -/** - * Checks if the string is an ISIN (stock/security identifier). - * If given value is not a string, then it returns false. - */ -function IsISIN(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ISIN, - validator: { - validate: (value, args) => isISIN(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an ISIN (stock/security identifier)', validationOptions), - }, - }, validationOptions); -} -exports.IsISIN = IsISIN; -//# sourceMappingURL=IsISIN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISIN.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsISIN.js.map deleted file mode 100644 index 6bc6f52..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISIN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISIN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISIN.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kEAAmD;AAEtC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,SAAgB,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAFD,wBAEC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,iBAAqC;IAC1D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uDAAuD,EAClF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,wBAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsinValidator from 'validator/lib/isISIN';\n\nexport const IS_ISIN = 'isIsin';\n\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function isISIN(value: unknown): boolean {\n return typeof value === 'string' && isIsinValidator(value);\n}\n\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function IsISIN(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISIN,\n validator: {\n validate: (value, args): boolean => isISIN(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an ISIN (stock/security identifier)',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha2.js b/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha2.js deleted file mode 100644 index f0428b6..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha2.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsISO31661Alpha2 = exports.isISO31661Alpha2 = exports.IS_ISO31661_ALPHA_2 = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isISO31661Alpha2_1 = __importDefault(require("validator/lib/isISO31661Alpha2")); -exports.IS_ISO31661_ALPHA_2 = 'isISO31661Alpha2'; -/** - * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code. - */ -function isISO31661Alpha2(value) { - return typeof value === 'string' && isISO31661Alpha2_1.default(value); -} -exports.isISO31661Alpha2 = isISO31661Alpha2; -/** - * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code. - */ -function IsISO31661Alpha2(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ISO31661_ALPHA_2, - validator: { - validate: (value, args) => isISO31661Alpha2(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha2 code', validationOptions), - }, - }, validationOptions); -} -exports.IsISO31661Alpha2 = IsISO31661Alpha2; -//# sourceMappingURL=IsISO31661Alpha2.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha2.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha2.js.map deleted file mode 100644 index 405896a..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISO31661Alpha2.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISO31661Alpha2.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sFAAuE;AAE1D,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,0BAAyB,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAFD,4CAEC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,2BAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC3D,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,4CAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha2Validator from 'validator/lib/isISO31661Alpha2';\n\nexport const IS_ISO31661_ALPHA_2 = 'isISO31661Alpha2';\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function isISO31661Alpha2(value: unknown): boolean {\n return typeof value === 'string' && isISO31661Alpha2Validator(value);\n}\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function IsISO31661Alpha2(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISO31661_ALPHA_2,\n validator: {\n validate: (value, args): boolean => isISO31661Alpha2(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha2 code',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha3.js b/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha3.js deleted file mode 100644 index 06ea37f..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha3.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsISO31661Alpha3 = exports.isISO31661Alpha3 = exports.IS_ISO31661_ALPHA_3 = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isISO31661Alpha3_1 = __importDefault(require("validator/lib/isISO31661Alpha3")); -exports.IS_ISO31661_ALPHA_3 = 'isISO31661Alpha3'; -/** - * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code. - */ -function isISO31661Alpha3(value) { - return typeof value === 'string' && isISO31661Alpha3_1.default(value); -} -exports.isISO31661Alpha3 = isISO31661Alpha3; -/** - * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code. - */ -function IsISO31661Alpha3(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ISO31661_ALPHA_3, - validator: { - validate: (value, args) => isISO31661Alpha3(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha3 code', validationOptions), - }, - }, validationOptions); -} -exports.IsISO31661Alpha3 = IsISO31661Alpha3; -//# sourceMappingURL=IsISO31661Alpha3.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha3.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha3.js.map deleted file mode 100644 index fb56e56..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISO31661Alpha3.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISO31661Alpha3.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISO31661Alpha3.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sFAAuE;AAE1D,QAAA,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,0BAAyB,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAFD,4CAEC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,2BAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC3D,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,4CAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha3Validator from 'validator/lib/isISO31661Alpha3';\n\nexport const IS_ISO31661_ALPHA_3 = 'isISO31661Alpha3';\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function isISO31661Alpha3(value: unknown): boolean {\n return typeof value === 'string' && isISO31661Alpha3Validator(value);\n}\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function IsISO31661Alpha3(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISO31661_ALPHA_3,\n validator: {\n validate: (value, args): boolean => isISO31661Alpha3(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha3 code',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISO8601.js b/views/node_modules/class-validator/cjs/decorator/string/IsISO8601.js deleted file mode 100644 index fd3869e..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISO8601.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsISO8601 = exports.isISO8601 = exports.IS_ISO8601 = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isISO8601_1 = __importDefault(require("validator/lib/isISO8601")); -exports.IS_ISO8601 = 'isIso8601'; -/** - * Checks if the string is a valid ISO 8601 date. - * If given value is not a string, then it returns false. - * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29. - */ -function isISO8601(value, options) { - return typeof value === 'string' && isISO8601_1.default(value, options); -} -exports.isISO8601 = isISO8601; -/** - * Checks if the string is a valid ISO 8601 date. - * If given value is not a string, then it returns false. - * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29. - */ -function IsISO8601(options, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ISO8601, - constraints: [options], - validator: { - validate: (value, args) => isISO8601(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string', validationOptions), - }, - }, validationOptions); -} -exports.IsISO8601 = IsISO8601; -//# sourceMappingURL=IsISO8601.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISO8601.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsISO8601.js.map deleted file mode 100644 index 7ae7d3a..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISO8601.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISO8601.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISO8601.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,wEAAyD;AAG5C,QAAA,UAAU,GAAG,WAAW,CAAC;AAEtC;;;;GAIG;AACH,SAAgB,SAAS,CAAC,KAAc,EAAE,OAAsC;IAC9E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAFD,8BAEC;AAED;;;;GAIG;AACH,SAAgB,SAAS,CACvB,OAAsC,EACtC,iBAAqC;IAErC,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,kBAAU;QAChB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACzE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAlBD,8BAkBC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIso8601Validator from 'validator/lib/isISO8601';\nimport ValidatorJS from 'validator';\n\nexport const IS_ISO8601 = 'isIso8601';\n\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function isISO8601(value: unknown, options?: ValidatorJS.IsISO8601Options): boolean {\n return typeof value === 'string' && isIso8601Validator(value, options);\n}\n\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function IsISO8601(\n options?: ValidatorJS.IsISO8601Options,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISO8601,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isISO8601(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISRC.js b/views/node_modules/class-validator/cjs/decorator/string/IsISRC.js deleted file mode 100644 index 15f2587..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISRC.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsISRC = exports.isISRC = exports.IS_ISRC = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isISRC_1 = __importDefault(require("validator/lib/isISRC")); -exports.IS_ISRC = 'isISRC'; -/** - * Check if the string is a ISRC. - * If given value is not a string, then it returns false. - */ -function isISRC(value) { - return typeof value === 'string' && isISRC_1.default(value); -} -exports.isISRC = isISRC; -/** - * Check if the string is a ISRC. - * If given value is not a string, then it returns false. - */ -function IsISRC(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ISRC, - validator: { - validate: (value, args) => isISRC(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an ISRC', validationOptions), - }, - }, validationOptions); -} -exports.IsISRC = IsISRC; -//# sourceMappingURL=IsISRC.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISRC.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsISRC.js.map deleted file mode 100644 index 179c35f..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISRC.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISRC.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISRC.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kEAAmD;AAEtC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,SAAgB,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAFD,wBAEC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,iBAAqC;IAC1D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,2BAA2B,EAAE,iBAAiB,CAAC;SACxG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,wBAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISRCValidator from 'validator/lib/isISRC';\n\nexport const IS_ISRC = 'isISRC';\n\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function isISRC(value: unknown): boolean {\n return typeof value === 'string' && isISRCValidator(value);\n}\n\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function IsISRC(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISRC,\n validator: {\n validate: (value, args): boolean => isISRC(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISRC', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISSN.js b/views/node_modules/class-validator/cjs/decorator/string/IsISSN.js deleted file mode 100644 index 7a4f18d..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISSN.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsISSN = exports.isISSN = exports.IS_ISSN = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isISSN_1 = __importDefault(require("validator/lib/isISSN")); -exports.IS_ISSN = 'isISSN'; -/** - * Checks if the string is a ISSN. - * If given value is not a string, then it returns false. - */ -function isISSN(value, options) { - return typeof value === 'string' && isISSN_1.default(value, options); -} -exports.isISSN = isISSN; -/** - * Checks if the string is a ISSN. - * If given value is not a string, then it returns false. - */ -function IsISSN(options, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ISSN, - constraints: [options], - validator: { - validate: (value, args) => isISSN(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a ISSN', validationOptions), - }, - }, validationOptions); -} -exports.IsISSN = IsISSN; -//# sourceMappingURL=IsISSN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsISSN.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsISSN.js.map deleted file mode 100644 index 6385c56..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsISSN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISSN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISSN.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kEAAmD;AAGtC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,SAAgB,MAAM,CAAC,KAAc,EAAE,OAAmC;IACxE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAFD,wBAEC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,OAAmC,EAAE,iBAAqC;IAC/F,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0BAA0B,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAZD,wBAYC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISSNValidator from 'validator/lib/isISSN';\nimport ValidatorJS from 'validator';\n\nexport const IS_ISSN = 'isISSN';\n\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function isISSN(value: unknown, options?: ValidatorJS.IsISSNOptions): boolean {\n return typeof value === 'string' && isISSNValidator(value, options);\n}\n\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function IsISSN(options?: ValidatorJS.IsISSNOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISSN,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isISSN(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a ISSN', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsIdentityCard.js b/views/node_modules/class-validator/cjs/decorator/string/IsIdentityCard.js deleted file mode 100644 index 4e25d32..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsIdentityCard.js +++ /dev/null @@ -1,37 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsIdentityCard = exports.isIdentityCard = exports.IS_IDENTITY_CARD = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isIdentityCard_1 = __importDefault(require("validator/lib/isIdentityCard")); -exports.IS_IDENTITY_CARD = 'isIdentityCard'; -/** - * Check if the string is a valid identity card code. - * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match. - * Defaults to 'any'. - * If given value is not a string, then it returns false. - */ -function isIdentityCard(value, locale) { - return typeof value === 'string' && isIdentityCard_1.default(value, locale); -} -exports.isIdentityCard = isIdentityCard; -/** - * Check if the string is a valid identity card code. - * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match. - * Defaults to 'any'. - * If given value is not a string, then it returns false. - */ -function IsIdentityCard(locale, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_IDENTITY_CARD, - constraints: [locale], - validator: { - validate: (value, args) => isIdentityCard(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a identity card number', validationOptions), - }, - }, validationOptions); -} -exports.IsIdentityCard = IsIdentityCard; -//# sourceMappingURL=IsIdentityCard.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsIdentityCard.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsIdentityCard.js.map deleted file mode 100644 index 31ef335..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsIdentityCard.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIdentityCard.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsIdentityCard.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kFAAmE;AAGtD,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,KAAc,EAAE,MAAsC;IACnF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,wBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC;AAFD,wCAEC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,MAAuC,EACvC,iBAAqC;IAErC,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,wBAAgB;QACtB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9E,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0CAA0C,EACrE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAlBD,wCAkBC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIdentityCardValidator from 'validator/lib/isIdentityCard';\nimport ValidatorJS from 'validator';\n\nexport const IS_IDENTITY_CARD = 'isIdentityCard';\n\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function isIdentityCard(value: unknown, locale: ValidatorJS.IdentityCardLocale): boolean {\n return typeof value === 'string' && isIdentityCardValidator(value, locale);\n}\n\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function IsIdentityCard(\n locale?: ValidatorJS.IdentityCardLocale,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IDENTITY_CARD,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isIdentityCard(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a identity card number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsJSON.js b/views/node_modules/class-validator/cjs/decorator/string/IsJSON.js deleted file mode 100644 index f021187..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsJSON.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsJSON = exports.isJSON = exports.IS_JSON = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isJSON_1 = __importDefault(require("validator/lib/isJSON")); -exports.IS_JSON = 'isJson'; -/** - * Checks if the string is valid JSON (note: uses JSON.parse). - * If given value is not a string, then it returns false. - */ -function isJSON(value) { - return typeof value === 'string' && isJSON_1.default(value); -} -exports.isJSON = isJSON; -/** - * Checks if the string is valid JSON (note: uses JSON.parse). - * If given value is not a string, then it returns false. - */ -function IsJSON(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_JSON, - validator: { - validate: (value, args) => isJSON(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a json string', validationOptions), - }, - }, validationOptions); -} -exports.IsJSON = IsJSON; -//# sourceMappingURL=IsJSON.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsJSON.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsJSON.js.map deleted file mode 100644 index c591612..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsJSON.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsJSON.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsJSON.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kEAAmD;AAEtC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,SAAgB,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAFD,wBAEC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,iBAAqC;IAC1D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,wBAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJSONValidator from 'validator/lib/isJSON';\n\nexport const IS_JSON = 'isJson';\n\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function isJSON(value: unknown): boolean {\n return typeof value === 'string' && isJSONValidator(value);\n}\n\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function IsJSON(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_JSON,\n validator: {\n validate: (value, args): boolean => isJSON(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a json string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsJWT.js b/views/node_modules/class-validator/cjs/decorator/string/IsJWT.js deleted file mode 100644 index df944d8..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsJWT.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsJWT = exports.isJWT = exports.IS_JWT = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isJWT_1 = __importDefault(require("validator/lib/isJWT")); -exports.IS_JWT = 'isJwt'; -/** - * Checks if the string is valid JWT token. - * If given value is not a string, then it returns false. - */ -function isJWT(value) { - return typeof value === 'string' && isJWT_1.default(value); -} -exports.isJWT = isJWT; -/** - * Checks if the string is valid JWT token. - * If given value is not a string, then it returns false. - */ -function IsJWT(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_JWT, - validator: { - validate: (value, args) => isJWT(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a jwt string', validationOptions), - }, - }, validationOptions); -} -exports.IsJWT = IsJWT; -//# sourceMappingURL=IsJWT.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsJWT.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsJWT.js.map deleted file mode 100644 index 20a9b10..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsJWT.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsJWT.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsJWT.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,gEAAiD;AAEpC,QAAA,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,SAAgB,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,iBAAqC;IACzD,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,cAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gCAAgC,EAAE,iBAAiB,CAAC;SAC7G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,sBAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJwtValidator from 'validator/lib/isJWT';\n\nexport const IS_JWT = 'isJwt';\n\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function isJWT(value: unknown): boolean {\n return typeof value === 'string' && isJwtValidator(value);\n}\n\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function IsJWT(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_JWT,\n validator: {\n validate: (value, args): boolean => isJWT(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a jwt string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsLocale.js b/views/node_modules/class-validator/cjs/decorator/string/IsLocale.js deleted file mode 100644 index 38f5611..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsLocale.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsLocale = exports.isLocale = exports.IS_LOCALE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isLocale_1 = __importDefault(require("validator/lib/isLocale")); -exports.IS_LOCALE = 'isLocale'; -/** - * Check if the string is a locale. - * If given value is not a string, then it returns false. - */ -function isLocale(value) { - return typeof value === 'string' && isLocale_1.default(value); -} -exports.isLocale = isLocale; -/** - * Check if the string is a locale. - * If given value is not a string, then it returns false. - */ -function IsLocale(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_LOCALE, - validator: { - validate: (value, args) => isLocale(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be locale', validationOptions), - }, - }, validationOptions); -} -exports.IsLocale = IsLocale; -//# sourceMappingURL=IsLocale.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsLocale.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsLocale.js.map deleted file mode 100644 index 7ab12b9..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsLocale.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLocale.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsLocale.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sEAAuD;AAE1C,QAAA,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAFD,4BAEC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,iBAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0BAA0B,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,4BAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLocaleValidator from 'validator/lib/isLocale';\n\nexport const IS_LOCALE = 'isLocale';\n\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function isLocale(value: unknown): boolean {\n return typeof value === 'string' && isLocaleValidator(value);\n}\n\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function IsLocale(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LOCALE,\n validator: {\n validate: (value, args): boolean => isLocale(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be locale', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsLowercase.js b/views/node_modules/class-validator/cjs/decorator/string/IsLowercase.js deleted file mode 100644 index 707e405..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsLowercase.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsLowercase = exports.isLowercase = exports.IS_LOWERCASE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isLowercase_1 = __importDefault(require("validator/lib/isLowercase")); -exports.IS_LOWERCASE = 'isLowercase'; -/** - * Checks if the string is lowercase. - * If given value is not a string, then it returns false. - */ -function isLowercase(value) { - return typeof value === 'string' && isLowercase_1.default(value); -} -exports.isLowercase = isLowercase; -/** - * Checks if the string is lowercase. - * If given value is not a string, then it returns false. - */ -function IsLowercase(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_LOWERCASE, - validator: { - validate: (value, args) => isLowercase(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a lowercase string', validationOptions), - }, - }, validationOptions); -} -exports.IsLowercase = IsLowercase; -//# sourceMappingURL=IsLowercase.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsLowercase.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsLowercase.js.map deleted file mode 100644 index 5e74386..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsLowercase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLowercase.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsLowercase.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,4EAA6D;AAEhD,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAFD,kCAEC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,iBAAqC;IAC/D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,oBAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,sCAAsC,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,kCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLowercaseValidator from 'validator/lib/isLowercase';\n\nexport const IS_LOWERCASE = 'isLowercase';\n\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function isLowercase(value: unknown): boolean {\n return typeof value === 'string' && isLowercaseValidator(value);\n}\n\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsLowercase(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LOWERCASE,\n validator: {\n validate: (value, args): boolean => isLowercase(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a lowercase string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMacAddress.js b/views/node_modules/class-validator/cjs/decorator/string/IsMacAddress.js deleted file mode 100644 index 60c585c..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMacAddress.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsMACAddress = exports.isMACAddress = exports.IS_MAC_ADDRESS = void 0; -const ValidationOptions_1 = require("../ValidationOptions"); -const ValidateBy_1 = require("../common/ValidateBy"); -const isMACAddress_1 = __importDefault(require("validator/lib/isMACAddress")); -exports.IS_MAC_ADDRESS = 'isMacAddress'; -/** - * Check if the string is a MAC address. - * If given value is not a string, then it returns false. - */ -function isMACAddress(value, options) { - return typeof value === 'string' && isMACAddress_1.default(value, options); -} -exports.isMACAddress = isMACAddress; -function IsMACAddress(optionsOrValidationOptionsArg, validationOptionsArg) { - const options = !ValidationOptions_1.isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : undefined; - const validationOptions = ValidationOptions_1.isValidationOptions(optionsOrValidationOptionsArg) - ? optionsOrValidationOptionsArg - : validationOptionsArg; - return ValidateBy_1.ValidateBy({ - name: exports.IS_MAC_ADDRESS, - constraints: [options], - validator: { - validate: (value, args) => isMACAddress(value, options), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a MAC Address', validationOptions), - }, - }, validationOptions); -} -exports.IsMACAddress = IsMACAddress; -//# sourceMappingURL=IsMacAddress.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMacAddress.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsMacAddress.js.map deleted file mode 100644 index cac1899..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMacAddress.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMacAddress.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMacAddress.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA8E;AAC9E,qDAAgE;AAChE,8EAA+D;AAGlD,QAAA,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAc,EAAE,OAAyC;IACpF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC;AAFD,oCAEC;AAWD,SAAgB,YAAY,CAC1B,6BAAmF,EACnF,oBAAwC;IAExC,MAAM,OAAO,GAAG,CAAC,uCAAmB,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,CAAC;IAChH,MAAM,iBAAiB,GAAG,uCAAmB,CAAC,6BAA6B,CAAC;QAC1E,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,oBAAoB,CAAC;IAEzB,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,sBAAc;QACpB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;YAChE,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AApBD,oCAoBC","sourcesContent":["import { ValidationOptions, isValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMacAddressValidator from 'validator/lib/isMACAddress';\nimport ValidatorJS from 'validator';\n\nexport const IS_MAC_ADDRESS = 'isMacAddress';\n\n/**\n * Check if the string is a MAC address.\n * If given value is not a string, then it returns false.\n */\nexport function isMACAddress(value: unknown, options?: ValidatorJS.IsMACAddressOptions): boolean {\n return typeof value === 'string' && isMacAddressValidator(value, options);\n}\n\n/**\n * Check if the string is a MAC address.\n * If given value is not a string, then it returns false.\n */\nexport function IsMACAddress(\n optionsArg?: ValidatorJS.IsMACAddressOptions,\n validationOptionsArg?: ValidationOptions\n): PropertyDecorator;\nexport function IsMACAddress(validationOptionsArg?: ValidationOptions): PropertyDecorator;\nexport function IsMACAddress(\n optionsOrValidationOptionsArg?: ValidatorJS.IsMACAddressOptions | ValidationOptions,\n validationOptionsArg?: ValidationOptions\n): PropertyDecorator {\n const options = !isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : undefined;\n const validationOptions = isValidationOptions(optionsOrValidationOptionsArg)\n ? optionsOrValidationOptionsArg\n : validationOptionsArg;\n\n return ValidateBy(\n {\n name: IS_MAC_ADDRESS,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isMACAddress(value, options),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a MAC Address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMagnetURI.js b/views/node_modules/class-validator/cjs/decorator/string/IsMagnetURI.js deleted file mode 100644 index 59f2bf7..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMagnetURI.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsMagnetURI = exports.isMagnetURI = exports.IS_MAGNET_URI = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isMagnetURI_1 = __importDefault(require("validator/lib/isMagnetURI")); -exports.IS_MAGNET_URI = 'isMagnetURI'; -/** - * Check if the string is a magnet uri format. - * If given value is not a string, then it returns false. - */ -function isMagnetURI(value) { - return typeof value === 'string' && isMagnetURI_1.default(value); -} -exports.isMagnetURI = isMagnetURI; -/** - * Check if the string is a magnet uri format. - * If given value is not a string, then it returns false. - */ -function IsMagnetURI(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_MAGNET_URI, - validator: { - validate: (value, args) => isMagnetURI(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be magnet uri format', validationOptions), - }, - }, validationOptions); -} -exports.IsMagnetURI = IsMagnetURI; -//# sourceMappingURL=IsMagnetURI.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMagnetURI.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsMagnetURI.js.map deleted file mode 100644 index cd2c16f..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMagnetURI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMagnetURI.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMagnetURI.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,4EAA6D;AAEhD,QAAA,aAAa,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAFD,kCAEC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,iBAAqC;IAC/D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,qBAAa;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,qCAAqC,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,kCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMagnetURIValidator from 'validator/lib/isMagnetURI';\n\nexport const IS_MAGNET_URI = 'isMagnetURI';\n\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isMagnetURI(value: unknown): boolean {\n return typeof value === 'string' && isMagnetURIValidator(value);\n}\n\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsMagnetURI(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MAGNET_URI,\n validator: {\n validate: (value, args): boolean => isMagnetURI(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be magnet uri format',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMilitaryTime.js b/views/node_modules/class-validator/cjs/decorator/string/IsMilitaryTime.js deleted file mode 100644 index fa2a239..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMilitaryTime.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsMilitaryTime = exports.isMilitaryTime = exports.IS_MILITARY_TIME = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const matches_1 = __importDefault(require("validator/lib/matches")); -exports.IS_MILITARY_TIME = 'isMilitaryTime'; -/** - * Checks if the string represents a time without a given timezone in the format HH:MM (military) - * If the given value does not match the pattern HH:MM, then it returns false. - */ -function isMilitaryTime(value) { - const militaryTimeRegex = /^([01]\d|2[0-3]):?([0-5]\d)$/; - return typeof value === 'string' && matches_1.default(value, militaryTimeRegex); -} -exports.isMilitaryTime = isMilitaryTime; -/** - * Checks if the string represents a time without a given timezone in the format HH:MM (military) - * If the given value does not match the pattern HH:MM, then it returns false. - */ -function IsMilitaryTime(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_MILITARY_TIME, - validator: { - validate: (value, args) => isMilitaryTime(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a valid representation of military time in the format HH:MM', validationOptions), - }, - }, validationOptions); -} -exports.IsMilitaryTime = IsMilitaryTime; -//# sourceMappingURL=IsMilitaryTime.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMilitaryTime.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsMilitaryTime.js.map deleted file mode 100644 index 1d77256..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMilitaryTime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMilitaryTime.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMilitaryTime.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,oEAAqD;AAExC,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAc;IAC3C,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;IACzD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAgB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AACjF,CAAC;AAHD,wCAGC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAAC,iBAAqC;IAClE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,wBAAgB;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;YACzD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+EAA+E,EAC1G,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,wCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\n\nexport const IS_MILITARY_TIME = 'isMilitaryTime';\n\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function isMilitaryTime(value: unknown): boolean {\n const militaryTimeRegex = /^([01]\\d|2[0-3]):?([0-5]\\d)$/;\n return typeof value === 'string' && matchesValidator(value, militaryTimeRegex);\n}\n\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function IsMilitaryTime(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MILITARY_TIME,\n validator: {\n validate: (value, args): boolean => isMilitaryTime(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid representation of military time in the format HH:MM',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMimeType.js b/views/node_modules/class-validator/cjs/decorator/string/IsMimeType.js deleted file mode 100644 index 5f4ea89..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMimeType.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsMimeType = exports.isMimeType = exports.IS_MIME_TYPE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isMimeType_1 = __importDefault(require("validator/lib/isMimeType")); -exports.IS_MIME_TYPE = 'isMimeType'; -/** - * Check if the string matches to a valid MIME type format - * If given value is not a string, then it returns false. - */ -function isMimeType(value) { - return typeof value === 'string' && isMimeType_1.default(value); -} -exports.isMimeType = isMimeType; -/** - * Check if the string matches to a valid MIME type format - * If given value is not a string, then it returns false. - */ -function IsMimeType(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_MIME_TYPE, - validator: { - validate: (value, args) => isMimeType(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be MIME type format', validationOptions), - }, - }, validationOptions); -} -exports.IsMimeType = IsMimeType; -//# sourceMappingURL=IsMimeType.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMimeType.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsMimeType.js.map deleted file mode 100644 index 08bbed7..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMimeType.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMimeType.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMimeType.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,0EAA2D;AAE9C,QAAA,YAAY,GAAG,YAAY,CAAC;AAEzC;;;GAGG;AACH,SAAgB,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAmB,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAFD,gCAEC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,iBAAqC;IAC9D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,oBAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oCAAoC,EAC/D,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,gCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMimeTypeValidator from 'validator/lib/isMimeType';\n\nexport const IS_MIME_TYPE = 'isMimeType';\n\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function isMimeType(value: unknown): boolean {\n return typeof value === 'string' && isMimeTypeValidator(value);\n}\n\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function IsMimeType(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MIME_TYPE,\n validator: {\n validate: (value, args): boolean => isMimeType(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be MIME type format',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMobilePhone.js b/views/node_modules/class-validator/cjs/decorator/string/IsMobilePhone.js deleted file mode 100644 index 9fa318f..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMobilePhone.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsMobilePhone = exports.isMobilePhone = exports.IS_MOBILE_PHONE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isMobilePhone_1 = __importDefault(require("validator/lib/isMobilePhone")); -exports.IS_MOBILE_PHONE = 'isMobilePhone'; -/** - * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS']) - * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY', - * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK', - * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG', - * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE', - * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID', - * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL', - * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN', - * 'zh-HK', 'zh-MO', 'zh-TW'] - * If given value is not a string, then it returns false. - */ -function isMobilePhone(value, locale, options) { - return typeof value === 'string' && isMobilePhone_1.default(value, locale, options); -} -exports.isMobilePhone = isMobilePhone; -/** - * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS']) - * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY', - * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK', - * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG', - * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE', - * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID', - * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL', - * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN', - * 'zh-HK', 'zh-MO', 'zh-TW'] - * If given value is not a string, then it returns false. - */ -function IsMobilePhone(locale, options, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_MOBILE_PHONE, - constraints: [locale, options], - validator: { - validate: (value, args) => isMobilePhone(value, args.constraints[0], args.constraints[1]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a phone number', validationOptions), - }, - }, validationOptions); -} -exports.IsMobilePhone = IsMobilePhone; -//# sourceMappingURL=IsMobilePhone.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMobilePhone.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsMobilePhone.js.map deleted file mode 100644 index a287563..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMobilePhone.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMobilePhone.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMobilePhone.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,gFAAiE;AAGpD,QAAA,eAAe,GAAG,eAAe,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAC3B,KAAc,EACd,MAAsC,EACtC,OAA0C;IAE1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACrF,CAAC;AAND,sCAMC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAC3B,MAAsC,EACtC,OAA0C,EAC1C,iBAAqC;IAErC,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,uBAAe;QACrB,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAC9B,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAClG,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kCAAkC,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAhBD,sCAgBC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMobilePhoneValidator from 'validator/lib/isMobilePhone';\nimport ValidatorJS from 'validator';\n\nexport const IS_MOBILE_PHONE = 'isMobilePhone';\n\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function isMobilePhone(\n value: unknown,\n locale?: ValidatorJS.MobilePhoneLocale,\n options?: ValidatorJS.IsMobilePhoneOptions\n): boolean {\n return typeof value === 'string' && isMobilePhoneValidator(value, locale, options);\n}\n\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function IsMobilePhone(\n locale?: ValidatorJS.MobilePhoneLocale,\n options?: ValidatorJS.IsMobilePhoneOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MOBILE_PHONE,\n constraints: [locale, options],\n validator: {\n validate: (value, args): boolean => isMobilePhone(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a phone number', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMongoId.js b/views/node_modules/class-validator/cjs/decorator/string/IsMongoId.js deleted file mode 100644 index 5eef134..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMongoId.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsMongoId = exports.isMongoId = exports.IS_MONGO_ID = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isMongoId_1 = __importDefault(require("validator/lib/isMongoId")); -exports.IS_MONGO_ID = 'isMongoId'; -/** - * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. - * If given value is not a string, then it returns false. - */ -function isMongoId(value) { - return typeof value === 'string' && isMongoId_1.default(value); -} -exports.isMongoId = isMongoId; -/** - * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. - * If given value is not a string, then it returns false. - */ -function IsMongoId(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_MONGO_ID, - validator: { - validate: (value, args) => isMongoId(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a mongodb id', validationOptions), - }, - }, validationOptions); -} -exports.IsMongoId = IsMongoId; -//# sourceMappingURL=IsMongoId.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMongoId.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsMongoId.js.map deleted file mode 100644 index 187b274..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMongoId.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMongoId.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMongoId.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,wEAAyD;AAE5C,QAAA,WAAW,GAAG,WAAW,CAAC;AAEvC;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,iBAAqC;IAC7D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,mBAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACpD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gCAAgC,EAAE,iBAAiB,CAAC;SAC7G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,8BAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMongoIdValidator from 'validator/lib/isMongoId';\n\nexport const IS_MONGO_ID = 'isMongoId';\n\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function isMongoId(value: unknown): boolean {\n return typeof value === 'string' && isMongoIdValidator(value);\n}\n\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function IsMongoId(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MONGO_ID,\n validator: {\n validate: (value, args): boolean => isMongoId(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a mongodb id', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMultibyte.js b/views/node_modules/class-validator/cjs/decorator/string/IsMultibyte.js deleted file mode 100644 index c4030fd..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMultibyte.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsMultibyte = exports.isMultibyte = exports.IS_MULTIBYTE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isMultibyte_1 = __importDefault(require("validator/lib/isMultibyte")); -exports.IS_MULTIBYTE = 'isMultibyte'; -/** - * Checks if the string contains one or more multibyte chars. - * If given value is not a string, then it returns false. - */ -function isMultibyte(value) { - return typeof value === 'string' && isMultibyte_1.default(value); -} -exports.isMultibyte = isMultibyte; -/** - * Checks if the string contains one or more multibyte chars. - * If given value is not a string, then it returns false. - */ -function IsMultibyte(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_MULTIBYTE, - validator: { - validate: (value, args) => isMultibyte(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain one or more multibyte chars', validationOptions), - }, - }, validationOptions); -} -exports.IsMultibyte = IsMultibyte; -//# sourceMappingURL=IsMultibyte.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsMultibyte.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsMultibyte.js.map deleted file mode 100644 index d279158..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsMultibyte.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMultibyte.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMultibyte.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,4EAA6D;AAEhD,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAFD,kCAEC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,iBAAqC;IAC/D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,oBAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oDAAoD,EAC/E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,kCAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMultibyteValidator from 'validator/lib/isMultibyte';\n\nexport const IS_MULTIBYTE = 'isMultibyte';\n\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function isMultibyte(value: unknown): boolean {\n return typeof value === 'string' && isMultibyteValidator(value);\n}\n\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsMultibyte(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MULTIBYTE,\n validator: {\n validate: (value, args): boolean => isMultibyte(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain one or more multibyte chars',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsNumberString.js b/views/node_modules/class-validator/cjs/decorator/string/IsNumberString.js deleted file mode 100644 index 1bcf5ce..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsNumberString.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsNumberString = exports.isNumberString = exports.IS_NUMBER_STRING = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isNumeric_1 = __importDefault(require("validator/lib/isNumeric")); -exports.IS_NUMBER_STRING = 'isNumberString'; -/** - * Checks if the string is numeric. - * If given value is not a string, then it returns false. - */ -function isNumberString(value, options) { - return typeof value === 'string' && isNumeric_1.default(value, options); -} -exports.isNumberString = isNumberString; -/** - * Checks if the string is numeric. - * If given value is not a string, then it returns false. - */ -function IsNumberString(options, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_NUMBER_STRING, - constraints: [options], - validator: { - validate: (value, args) => isNumberString(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a number string', validationOptions), - }, - }, validationOptions); -} -exports.IsNumberString = IsNumberString; -//# sourceMappingURL=IsNumberString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsNumberString.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsNumberString.js.map deleted file mode 100644 index 6dd89ba..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsNumberString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNumberString.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsNumberString.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,wEAAyD;AAG5C,QAAA,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAAc,EAAE,OAAsC;IACnF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAFD,wCAEC;AAED;;;GAGG;AACH,SAAgB,cAAc,CAC5B,OAAsC,EACtC,iBAAqC;IAErC,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,wBAAgB;QACtB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9E,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,mCAAmC,EAAE,iBAAiB,CAAC;SAChH;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,wCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isNumericValidator from 'validator/lib/isNumeric';\nimport ValidatorJS from 'validator';\n\nexport const IS_NUMBER_STRING = 'isNumberString';\n\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function isNumberString(value: unknown, options?: ValidatorJS.IsNumericOptions): boolean {\n return typeof value === 'string' && isNumericValidator(value, options);\n}\n\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function IsNumberString(\n options?: ValidatorJS.IsNumericOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NUMBER_STRING,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isNumberString(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a number string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsOctal.js b/views/node_modules/class-validator/cjs/decorator/string/IsOctal.js deleted file mode 100644 index 4b92cd9..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsOctal.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsOctal = exports.isOctal = exports.IS_OCTAL = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isOctal_1 = __importDefault(require("validator/lib/isOctal")); -exports.IS_OCTAL = 'isOctal'; -/** - * Check if the string is a valid octal number. - * If given value is not a string, then it returns false. - */ -function isOctal(value) { - return typeof value === 'string' && isOctal_1.default(value); -} -exports.isOctal = isOctal; -/** - * Check if the string is a valid octal number. - * If given value is not a string, then it returns false. - */ -function IsOctal(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_OCTAL, - validator: { - validate: (value, args) => isOctal(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be valid octal number', validationOptions), - }, - }, validationOptions); -} -exports.IsOctal = IsOctal; -//# sourceMappingURL=IsOctal.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsOctal.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsOctal.js.map deleted file mode 100644 index 1eff574..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsOctal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsOctal.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsOctal.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,oEAAqD;AAExC,QAAA,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAFD,0BAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,iBAAqC;IAC3D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,gBAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAClD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,sCAAsC,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,0BAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isOctalValidator from 'validator/lib/isOctal';\n\nexport const IS_OCTAL = 'isOctal';\n\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function isOctal(value: unknown): boolean {\n return typeof value === 'string' && isOctalValidator(value);\n}\n\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsOctal(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_OCTAL,\n validator: {\n validate: (value, args): boolean => isOctal(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be valid octal number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsPassportNumber.js b/views/node_modules/class-validator/cjs/decorator/string/IsPassportNumber.js deleted file mode 100644 index d6ca990..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsPassportNumber.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsPassportNumber = exports.isPassportNumber = exports.IS_PASSPORT_NUMBER = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isPassportNumber_1 = __importDefault(require("validator/lib/isPassportNumber")); -exports.IS_PASSPORT_NUMBER = 'isPassportNumber'; -/** - * Check if the string is a valid passport number relative to a specific country code. - * If given value is not a string, then it returns false. - */ -function isPassportNumber(value, countryCode) { - return typeof value === 'string' && isPassportNumber_1.default(value, countryCode); -} -exports.isPassportNumber = isPassportNumber; -/** - * Check if the string is a valid passport number relative to a specific country code. - * If given value is not a string, then it returns false. - */ -function IsPassportNumber(countryCode, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_PASSPORT_NUMBER, - constraints: [countryCode], - validator: { - validate: (value, args) => isPassportNumber(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be valid passport number', validationOptions), - }, - }, validationOptions); -} -exports.IsPassportNumber = IsPassportNumber; -//# sourceMappingURL=IsPassportNumber.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsPassportNumber.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsPassportNumber.js.map deleted file mode 100644 index 4899032..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsPassportNumber.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPassportNumber.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPassportNumber.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sFAAuE;AAE1D,QAAA,kBAAkB,GAAG,kBAAkB,CAAC;AAErD;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAc,EAAE,WAAmB;IAClE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,0BAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACpF,CAAC;AAFD,4CAEC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,WAAmB,EAAE,iBAAqC;IACzF,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,0BAAkB;QACxB,WAAW,EAAE,CAAC,WAAW,CAAC;QAC1B,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAChF,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,yCAAyC,EACpE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,4CAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPassportNumberValidator from 'validator/lib/isPassportNumber';\n\nexport const IS_PASSPORT_NUMBER = 'isPassportNumber';\n\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function isPassportNumber(value: unknown, countryCode: string): boolean {\n return typeof value === 'string' && isPassportNumberValidator(value, countryCode);\n}\n\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function IsPassportNumber(countryCode: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_PASSPORT_NUMBER,\n constraints: [countryCode],\n validator: {\n validate: (value, args): boolean => isPassportNumber(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be valid passport number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsPhoneNumber.js b/views/node_modules/class-validator/cjs/decorator/string/IsPhoneNumber.js deleted file mode 100644 index 7cbaf37..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsPhoneNumber.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsPhoneNumber = exports.isPhoneNumber = exports.IS_PHONE_NUMBER = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const libphonenumber_js_1 = require("libphonenumber-js"); -exports.IS_PHONE_NUMBER = 'isPhoneNumber'; -/** - * Checks if the string is a valid phone number. To successfully validate any phone number the text must include - * the intl. calling code, if the calling code wont be provided then the region must be set. - * - * @param value the potential phone number string to test - * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation. - * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter. - */ -function isPhoneNumber(value, region) { - try { - const phoneNum = libphonenumber_js_1.parsePhoneNumberFromString(value, region); - const result = phoneNum === null || phoneNum === void 0 ? void 0 : phoneNum.isValid(); - return !!result; - } - catch (error) { - // logging? - return false; - } -} -exports.isPhoneNumber = isPhoneNumber; -/** - * Checks if the string is a valid phone number. To successfully validate any phone number the text must include - * the intl. calling code, if the calling code wont be provided then the region must be set. - * - * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation. - * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter. - */ -function IsPhoneNumber(region, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_PHONE_NUMBER, - constraints: [region], - validator: { - validate: (value, args) => isPhoneNumber(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a valid phone number', validationOptions), - }, - }, validationOptions); -} -exports.IsPhoneNumber = IsPhoneNumber; -//# sourceMappingURL=IsPhoneNumber.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsPhoneNumber.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsPhoneNumber.js.map deleted file mode 100644 index b8d2b11..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsPhoneNumber.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPhoneNumber.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPhoneNumber.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAChE,yDAA4E;AAE/D,QAAA,eAAe,GAAG,eAAe,CAAC;AAE/C;;;;;;;GAOG;AACH,SAAgB,aAAa,CAAC,KAAa,EAAE,MAAoB;IAC/D,IAAI;QACF,MAAM,QAAQ,GAAG,8CAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC,MAAM,CAAC;KACjB;IAAC,OAAO,KAAK,EAAE;QACd,WAAW;QACX,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AATD,sCASC;AAED;;;;;;GAMG;AACH,SAAgB,aAAa,CAAC,MAAoB,EAAE,iBAAqC;IACvF,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,uBAAe;QACrB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7E,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,wCAAwC,EACnE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,sCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { parsePhoneNumberFromString, CountryCode } from 'libphonenumber-js';\n\nexport const IS_PHONE_NUMBER = 'isPhoneNumber';\n\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param value the potential phone number string to test\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function isPhoneNumber(value: string, region?: CountryCode): boolean {\n try {\n const phoneNum = parsePhoneNumberFromString(value, region);\n const result = phoneNum?.isValid();\n return !!result;\n } catch (error) {\n // logging?\n return false;\n }\n}\n\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function IsPhoneNumber(region?: CountryCode, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_PHONE_NUMBER,\n constraints: [region],\n validator: {\n validate: (value, args): boolean => isPhoneNumber(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid phone number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsPort.js b/views/node_modules/class-validator/cjs/decorator/string/IsPort.js deleted file mode 100644 index bbfcc0a..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsPort.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsPort = exports.isPort = exports.IS_PORT = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isPort_1 = __importDefault(require("validator/lib/isPort")); -exports.IS_PORT = 'isPort'; -/** - * Check if the string is a valid port number. - */ -function isPort(value) { - return typeof value === 'string' && isPort_1.default(value); -} -exports.isPort = isPort; -/** - * Check if the string is a valid port number. - */ -function IsPort(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_PORT, - validator: { - validate: (value, args) => isPort(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a port', validationOptions), - }, - }, validationOptions); -} -exports.IsPort = IsPort; -//# sourceMappingURL=IsPort.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsPort.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsPort.js.map deleted file mode 100644 index 9dc1d0e..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsPort.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPort.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPort.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kEAAmD;AAEtC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AACH,SAAgB,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAFD,wBAEC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAC,iBAAqC;IAC1D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0BAA0B,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,wBAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPortValidator from 'validator/lib/isPort';\n\nexport const IS_PORT = 'isPort';\n\n/**\n * Check if the string is a valid port number.\n */\nexport function isPort(value: unknown): boolean {\n return typeof value === 'string' && isPortValidator(value);\n}\n\n/**\n * Check if the string is a valid port number.\n */\nexport function IsPort(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_PORT,\n validator: {\n validate: (value, args): boolean => isPort(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a port', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsPostalCode.js b/views/node_modules/class-validator/cjs/decorator/string/IsPostalCode.js deleted file mode 100644 index 73c3ec6..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsPostalCode.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsPostalCode = exports.isPostalCode = exports.IS_POSTAL_CODE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isPostalCode_1 = __importDefault(require("validator/lib/isPostalCode")); -exports.IS_POSTAL_CODE = 'isPostalCode'; -/** - * Check if the string is a postal code, - * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.). - * If given value is not a string, then it returns false. - */ -function isPostalCode(value, locale) { - return typeof value === 'string' && isPostalCode_1.default(value, locale); -} -exports.isPostalCode = isPostalCode; -/** - * Check if the string is a postal code, - * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.). - * If given value is not a string, then it returns false. - */ -function IsPostalCode(locale, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_POSTAL_CODE, - constraints: [locale], - validator: { - validate: (value, args) => isPostalCode(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a postal code', validationOptions), - }, - }, validationOptions); -} -exports.IsPostalCode = IsPostalCode; -//# sourceMappingURL=IsPostalCode.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsPostalCode.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsPostalCode.js.map deleted file mode 100644 index f5db145..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsPostalCode.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPostalCode.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPostalCode.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,8EAA+D;AAGlD,QAAA,cAAc,GAAG,cAAc,CAAC;AAE7C;;;;GAIG;AACH,SAAgB,YAAY,CAAC,KAAc,EAAE,MAA4C;IACvF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3E,CAAC;AAFD,oCAEC;AAED;;;;GAIG;AACH,SAAgB,YAAY,CAC1B,MAA6C,EAC7C,iBAAqC;IAErC,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,sBAAc;QACpB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5E,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,oCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPostalCodeValidator from 'validator/lib/isPostalCode';\nimport ValidatorJS from 'validator';\n\nexport const IS_POSTAL_CODE = 'isPostalCode';\n\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function isPostalCode(value: unknown, locale: 'any' | ValidatorJS.PostalCodeLocale): boolean {\n return typeof value === 'string' && isPostalCodeValidator(value, locale);\n}\n\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function IsPostalCode(\n locale?: 'any' | ValidatorJS.PostalCodeLocale,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_POSTAL_CODE,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isPostalCode(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a postal code', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsRFC3339.js b/views/node_modules/class-validator/cjs/decorator/string/IsRFC3339.js deleted file mode 100644 index 94b3337..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsRFC3339.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsRFC3339 = exports.isRFC3339 = exports.IS_RFC_3339 = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isRFC3339_1 = __importDefault(require("validator/lib/isRFC3339")); -exports.IS_RFC_3339 = 'isRFC3339'; -/** - * Check if the string is a valid RFC 3339 date. - * If given value is not a string, then it returns false. - */ -function isRFC3339(value) { - return typeof value === 'string' && isRFC3339_1.default(value); -} -exports.isRFC3339 = isRFC3339; -/** - * Check if the string is a valid RFC 3339 date. - * If given value is not a string, then it returns false. - */ -function IsRFC3339(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_RFC_3339, - validator: { - validate: (value, args) => isRFC3339(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be RFC 3339 date', validationOptions), - }, - }, validationOptions); -} -exports.IsRFC3339 = IsRFC3339; -//# sourceMappingURL=IsRFC3339.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsRFC3339.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsRFC3339.js.map deleted file mode 100644 index a669748..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsRFC3339.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsRFC3339.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsRFC3339.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,wEAAyD;AAE5C,QAAA,WAAW,GAAG,WAAW,CAAC;AAEvC;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,iBAAqC;IAC7D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,mBAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACpD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,8BAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRFC3339Validator from 'validator/lib/isRFC3339';\n\nexport const IS_RFC_3339 = 'isRFC3339';\n\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function isRFC3339(value: unknown): boolean {\n return typeof value === 'string' && isRFC3339Validator(value);\n}\n\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function IsRFC3339(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_RFC_3339,\n validator: {\n validate: (value, args): boolean => isRFC3339(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be RFC 3339 date', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsRgbColor.js b/views/node_modules/class-validator/cjs/decorator/string/IsRgbColor.js deleted file mode 100644 index fb050dc..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsRgbColor.js +++ /dev/null @@ -1,35 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsRgbColor = exports.isRgbColor = exports.IS_RGB_COLOR = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isRgbColor_1 = __importDefault(require("validator/lib/isRgbColor")); -exports.IS_RGB_COLOR = 'isRgbColor'; -/** - * Check if the string is a rgb or rgba color. - * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false. - * If given value is not a string, then it returns false. - */ -function isRgbColor(value, includePercentValues) { - return typeof value === 'string' && isRgbColor_1.default(value, includePercentValues); -} -exports.isRgbColor = isRgbColor; -/** - * Check if the string is a rgb or rgba color. - * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false. - * If given value is not a string, then it returns false. - */ -function IsRgbColor(includePercentValues, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_RGB_COLOR, - constraints: [includePercentValues], - validator: { - validate: (value, args) => isRgbColor(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be RGB color', validationOptions), - }, - }, validationOptions); -} -exports.IsRgbColor = IsRgbColor; -//# sourceMappingURL=IsRgbColor.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsRgbColor.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsRgbColor.js.map deleted file mode 100644 index 40e963a..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsRgbColor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsRgbColor.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsRgbColor.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,0EAA2D;AAE9C,QAAA,YAAY,GAAG,YAAY,CAAC;AAEzC;;;;GAIG;AACH,SAAgB,UAAU,CAAC,KAAc,EAAE,oBAA8B;IACvE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAmB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;AACvF,CAAC;AAFD,gCAEC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,oBAA8B,EAAE,iBAAqC;IAC9F,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,oBAAY;QAClB,WAAW,EAAE,CAAC,oBAAoB,CAAC;QACnC,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1E,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,6BAA6B,EAAE,iBAAiB,CAAC;SAC1G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAZD,gCAYC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRgbColorValidator from 'validator/lib/isRgbColor';\n\nexport const IS_RGB_COLOR = 'isRgbColor';\n\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function isRgbColor(value: unknown, includePercentValues?: boolean): boolean {\n return typeof value === 'string' && isRgbColorValidator(value, includePercentValues);\n}\n\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function IsRgbColor(includePercentValues?: boolean, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_RGB_COLOR,\n constraints: [includePercentValues],\n validator: {\n validate: (value, args): boolean => isRgbColor(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be RGB color', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsSemVer.js b/views/node_modules/class-validator/cjs/decorator/string/IsSemVer.js deleted file mode 100644 index 8a3eeff..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsSemVer.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsSemVer = exports.isSemVer = exports.IS_SEM_VER = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isSemVer_1 = __importDefault(require("validator/lib/isSemVer")); -exports.IS_SEM_VER = 'isSemVer'; -/** - * Check if the string is a Semantic Versioning Specification (SemVer). - * If given value is not a string, then it returns false. - */ -function isSemVer(value) { - return typeof value === 'string' && isSemVer_1.default(value); -} -exports.isSemVer = isSemVer; -/** - * Check if the string is a Semantic Versioning Specification (SemVer). - * If given value is not a string, then it returns false. - */ -function IsSemVer(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_SEM_VER, - validator: { - validate: (value, args) => isSemVer(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a Semantic Versioning Specification', validationOptions), - }, - }, validationOptions); -} -exports.IsSemVer = IsSemVer; -//# sourceMappingURL=IsSemVer.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsSemVer.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsSemVer.js.map deleted file mode 100644 index d841db8..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsSemVer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsSemVer.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsSemVer.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sEAAuD;AAE1C,QAAA,UAAU,GAAG,UAAU,CAAC;AAErC;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAFD,4BAEC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,kBAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uDAAuD,EAClF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,4BAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSemVerValidator from 'validator/lib/isSemVer';\n\nexport const IS_SEM_VER = 'isSemVer';\n\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function isSemVer(value: unknown): boolean {\n return typeof value === 'string' && isSemVerValidator(value);\n}\n\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function IsSemVer(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_SEM_VER,\n validator: {\n validate: (value, args): boolean => isSemVer(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a Semantic Versioning Specification',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsSurrogatePair.js b/views/node_modules/class-validator/cjs/decorator/string/IsSurrogatePair.js deleted file mode 100644 index ecf29fa..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsSurrogatePair.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsSurrogatePair = exports.isSurrogatePair = exports.IS_SURROGATE_PAIR = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isSurrogatePair_1 = __importDefault(require("validator/lib/isSurrogatePair")); -exports.IS_SURROGATE_PAIR = 'isSurrogatePair'; -/** - * Checks if the string contains any surrogate pairs chars. - * If given value is not a string, then it returns false. - */ -function isSurrogatePair(value) { - return typeof value === 'string' && isSurrogatePair_1.default(value); -} -exports.isSurrogatePair = isSurrogatePair; -/** - * Checks if the string contains any surrogate pairs chars. - * If given value is not a string, then it returns false. - */ -function IsSurrogatePair(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_SURROGATE_PAIR, - validator: { - validate: (value, args) => isSurrogatePair(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain any surrogate pairs chars', validationOptions), - }, - }, validationOptions); -} -exports.IsSurrogatePair = IsSurrogatePair; -//# sourceMappingURL=IsSurrogatePair.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsSurrogatePair.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsSurrogatePair.js.map deleted file mode 100644 index 2e69f22..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsSurrogatePair.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsSurrogatePair.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsSurrogatePair.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,oFAAqE;AAExD,QAAA,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,yBAAwB,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAFD,0CAEC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,iBAAqC;IACnE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,yBAAiB;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;YAC1D,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kDAAkD,EAC7E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,0CAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSurrogatePairValidator from 'validator/lib/isSurrogatePair';\n\nexport const IS_SURROGATE_PAIR = 'isSurrogatePair';\n\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function isSurrogatePair(value: unknown): boolean {\n return typeof value === 'string' && isSurrogatePairValidator(value);\n}\n\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsSurrogatePair(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_SURROGATE_PAIR,\n validator: {\n validate: (value, args): boolean => isSurrogatePair(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain any surrogate pairs chars',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsUUID.js b/views/node_modules/class-validator/cjs/decorator/string/IsUUID.js deleted file mode 100644 index 94790b0..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsUUID.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsUUID = exports.isUUID = exports.IS_UUID = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isUUID_1 = __importDefault(require("validator/lib/isUUID")); -exports.IS_UUID = 'isUuid'; -/** - * Checks if the string is a UUID (version 3, 4 or 5). - * If given value is not a string, then it returns false. - */ -function isUUID(value, version) { - return typeof value === 'string' && isUUID_1.default(value, version); -} -exports.isUUID = isUUID; -/** - * Checks if the string is a UUID (version 3, 4 or 5). - * If given value is not a string, then it returns false. - */ -function IsUUID(version, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_UUID, - constraints: [version], - validator: { - validate: (value, args) => isUUID(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a UUID', validationOptions), - }, - }, validationOptions); -} -exports.IsUUID = IsUUID; -//# sourceMappingURL=IsUUID.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsUUID.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsUUID.js.map deleted file mode 100644 index 4193d9e..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsUUID.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsUUID.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsUUID.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,kEAAmD;AAItC,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,SAAgB,MAAM,CAAC,KAAc,EAAE,OAAqB;IAC1D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAFD,wBAEC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,OAAqB,EAAE,iBAAqC;IACjF,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0BAA0B,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAZD,wBAYC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUuidValidator from 'validator/lib/isUUID';\n\nexport type UUIDVersion = '3' | '4' | '5' | 'all' | 3 | 4 | 5;\n\nexport const IS_UUID = 'isUuid';\n\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function isUUID(value: unknown, version?: UUIDVersion): boolean {\n return typeof value === 'string' && isUuidValidator(value, version);\n}\n\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function IsUUID(version?: UUIDVersion, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_UUID,\n constraints: [version],\n validator: {\n validate: (value, args): boolean => isUUID(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a UUID', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsUppercase.js b/views/node_modules/class-validator/cjs/decorator/string/IsUppercase.js deleted file mode 100644 index fe940e0..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsUppercase.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsUppercase = exports.isUppercase = exports.IS_UPPERCASE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isUppercase_1 = __importDefault(require("validator/lib/isUppercase")); -exports.IS_UPPERCASE = 'isUppercase'; -/** - * Checks if the string is uppercase. - * If given value is not a string, then it returns false. - */ -function isUppercase(value) { - return typeof value === 'string' && isUppercase_1.default(value); -} -exports.isUppercase = isUppercase; -/** - * Checks if the string is uppercase. - * If given value is not a string, then it returns false. - */ -function IsUppercase(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_UPPERCASE, - validator: { - validate: (value, args) => isUppercase(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be uppercase', validationOptions), - }, - }, validationOptions); -} -exports.IsUppercase = IsUppercase; -//# sourceMappingURL=IsUppercase.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsUppercase.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsUppercase.js.map deleted file mode 100644 index c525b26..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsUppercase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsUppercase.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsUppercase.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,4EAA6D;AAEhD,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAFD,kCAEC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,iBAAqC;IAC/D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,oBAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,6BAA6B,EAAE,iBAAiB,CAAC;SAC1G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,kCAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUppercaseValidator from 'validator/lib/isUppercase';\n\nexport const IS_UPPERCASE = 'isUppercase';\n\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function isUppercase(value: unknown): boolean {\n return typeof value === 'string' && isUppercaseValidator(value);\n}\n\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsUppercase(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_UPPERCASE,\n validator: {\n validate: (value, args): boolean => isUppercase(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be uppercase', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsUrl.js b/views/node_modules/class-validator/cjs/decorator/string/IsUrl.js deleted file mode 100644 index cbc3711..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsUrl.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsUrl = exports.isURL = exports.IS_URL = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isURL_1 = __importDefault(require("validator/lib/isURL")); -exports.IS_URL = 'isUrl'; -/** - * Checks if the string is an url. - * If given value is not a string, then it returns false. - */ -function isURL(value, options) { - return typeof value === 'string' && isURL_1.default(value, options); -} -exports.isURL = isURL; -/** - * Checks if the string is an url. - * If given value is not a string, then it returns false. - */ -function IsUrl(options, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_URL, - constraints: [options], - validator: { - validate: (value, args) => isURL(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an URL address', validationOptions), - }, - }, validationOptions); -} -exports.IsUrl = IsUrl; -//# sourceMappingURL=IsUrl.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsUrl.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsUrl.js.map deleted file mode 100644 index e74406c..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsUrl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsUrl.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsUrl.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,gEAAiD;AAGpC,QAAA,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,SAAgB,KAAK,CAAC,KAAa,EAAE,OAAkC;IACrE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAFD,sBAEC;AAED;;;GAGG;AACH,SAAgB,KAAK,CAAC,OAAkC,EAAE,iBAAqC;IAC7F,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,cAAM;QACZ,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACrE,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kCAAkC,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAZD,sBAYC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUrlValidator from 'validator/lib/isURL';\nimport ValidatorJS from 'validator';\n\nexport const IS_URL = 'isUrl';\n\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function isURL(value: string, options?: ValidatorJS.IsURLOptions): boolean {\n return typeof value === 'string' && isUrlValidator(value, options);\n}\n\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function IsUrl(options?: ValidatorJS.IsURLOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_URL,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isURL(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an URL address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsVariableWidth.js b/views/node_modules/class-validator/cjs/decorator/string/IsVariableWidth.js deleted file mode 100644 index a5c3f9e..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsVariableWidth.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsVariableWidth = exports.isVariableWidth = exports.IS_VARIABLE_WIDTH = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isVariableWidth_1 = __importDefault(require("validator/lib/isVariableWidth")); -exports.IS_VARIABLE_WIDTH = 'isVariableWidth'; -/** - * Checks if the string contains variable-width chars. - * If given value is not a string, then it returns false. - */ -function isVariableWidth(value) { - return typeof value === 'string' && isVariableWidth_1.default(value); -} -exports.isVariableWidth = isVariableWidth; -/** - * Checks if the string contains variable-width chars. - * If given value is not a string, then it returns false. - */ -function IsVariableWidth(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_VARIABLE_WIDTH, - validator: { - validate: (value, args) => isVariableWidth(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must contain a full-width and half-width characters', validationOptions), - }, - }, validationOptions); -} -exports.IsVariableWidth = IsVariableWidth; -//# sourceMappingURL=IsVariableWidth.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/IsVariableWidth.js.map b/views/node_modules/class-validator/cjs/decorator/string/IsVariableWidth.js.map deleted file mode 100644 index 661d3a3..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/IsVariableWidth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsVariableWidth.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsVariableWidth.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,oFAAqE;AAExD,QAAA,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,yBAAwB,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAFD,0CAEC;AAED;;;GAGG;AACH,SAAgB,eAAe,CAAC,iBAAqC;IACnE,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,yBAAiB;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;YAC1D,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+DAA+D,EAC1F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,0CAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isVariableWidthValidator from 'validator/lib/isVariableWidth';\n\nexport const IS_VARIABLE_WIDTH = 'isVariableWidth';\n\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isVariableWidth(value: unknown): boolean {\n return typeof value === 'string' && isVariableWidthValidator(value);\n}\n\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsVariableWidth(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_VARIABLE_WIDTH,\n validator: {\n validate: (value, args): boolean => isVariableWidth(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a full-width and half-width characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/Length.js b/views/node_modules/class-validator/cjs/decorator/string/Length.js deleted file mode 100644 index 6fe8aeb..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/Length.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Length = exports.length = exports.IS_LENGTH = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isLength_1 = __importDefault(require("validator/lib/isLength")); -exports.IS_LENGTH = 'isLength'; -/** - * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -function length(value, min, max) { - return typeof value === 'string' && isLength_1.default(value, { min, max }); -} -exports.length = length; -/** - * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -function Length(min, max, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_LENGTH, - constraints: [min, max], - validator: { - validate: (value, args) => length(value, args.constraints[0], args.constraints[1]), - defaultMessage: ValidateBy_1.buildMessage((eachPrefix, args) => { - const isMinLength = args.constraints[0] !== null && args.constraints[0] !== undefined; - const isMaxLength = args.constraints[1] !== null && args.constraints[1] !== undefined; - if (isMinLength && (!args.value || args.value.length < args.constraints[0])) { - return eachPrefix + '$property must be longer than or equal to $constraint1 characters'; - } - else if (isMaxLength && args.value.length > args.constraints[1]) { - return eachPrefix + '$property must be shorter than or equal to $constraint2 characters'; - } - return (eachPrefix + - '$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters'); - }, validationOptions), - }, - }, validationOptions); -} -exports.Length = Length; -//# sourceMappingURL=Length.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/Length.js.map b/views/node_modules/class-validator/cjs/decorator/string/Length.js.map deleted file mode 100644 index 5ebd846..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/Length.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Length.js","sourceRoot":"","sources":["../../../../src/decorator/string/Length.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sEAAuD;AAE1C,QAAA,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,SAAgB,MAAM,CAAC,KAAc,EAAE,GAAW,EAAE,GAAY;IAC9D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7E,CAAC;AAFD,wBAEC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,GAAW,EAAE,GAAY,EAAE,iBAAqC;IACrF,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,iBAAS;QACf,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3F,cAAc,EAAE,yBAAY,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;gBAChD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;gBACtF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;gBACtF,IAAI,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC3E,OAAO,UAAU,GAAG,mEAAmE,CAAC;iBACzF;qBAAM,IAAI,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;oBACjE,OAAO,UAAU,GAAG,oEAAoE,CAAC;iBAC1F;gBACD,OAAO,CACL,UAAU;oBACV,6GAA6G,CAC9G,CAAC;YACJ,CAAC,EAAE,iBAAiB,CAAC;SACtB;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAxBD,wBAwBC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\n\nexport const IS_LENGTH = 'isLength';\n\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function length(value: unknown, min: number, max?: number): boolean {\n return typeof value === 'string' && isLengthValidator(value, { min, max });\n}\n\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function Length(min: number, max?: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LENGTH,\n constraints: [min, max],\n validator: {\n validate: (value, args): boolean => length(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage((eachPrefix, args) => {\n const isMinLength = args.constraints[0] !== null && args.constraints[0] !== undefined;\n const isMaxLength = args.constraints[1] !== null && args.constraints[1] !== undefined;\n if (isMinLength && (!args.value || args.value.length < args.constraints[0])) {\n return eachPrefix + '$property must be longer than or equal to $constraint1 characters';\n } else if (isMaxLength && args.value.length > args.constraints[1]) {\n return eachPrefix + '$property must be shorter than or equal to $constraint2 characters';\n }\n return (\n eachPrefix +\n '$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters'\n );\n }, validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/Matches.js b/views/node_modules/class-validator/cjs/decorator/string/Matches.js deleted file mode 100644 index 477563b..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/Matches.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Matches = exports.matches = exports.MATCHES = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const matches_1 = __importDefault(require("validator/lib/matches")); -exports.MATCHES = 'matches'; -function matches(value, pattern, modifiers) { - return typeof value === 'string' && matches_1.default(value, pattern, modifiers); -} -exports.matches = matches; -function Matches(pattern, modifiersOrAnnotationOptions, validationOptions) { - let modifiers; - if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) { - validationOptions = modifiersOrAnnotationOptions; - } - else { - modifiers = modifiersOrAnnotationOptions; - } - return ValidateBy_1.ValidateBy({ - name: exports.MATCHES, - constraints: [pattern, modifiers], - validator: { - validate: (value, args) => matches(value, args.constraints[0], args.constraints[1]), - defaultMessage: ValidateBy_1.buildMessage((eachPrefix, args) => eachPrefix + '$property must match $constraint1 regular expression', validationOptions), - }, - }, validationOptions); -} -exports.Matches = Matches; -//# sourceMappingURL=Matches.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/Matches.js.map b/views/node_modules/class-validator/cjs/decorator/string/Matches.js.map deleted file mode 100644 index eecf516..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/Matches.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Matches.js","sourceRoot":"","sources":["../../../../src/decorator/string/Matches.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,oEAAqD;AAExC,QAAA,OAAO,GAAG,SAAS,CAAC;AAQjC,SAAgB,OAAO,CAAC,KAAa,EAAE,OAAwB,EAAE,SAAkB;IACjF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAgB,CAAC,KAAK,EAAG,OAA0B,EAAE,SAAS,CAAC,CAAC;AACtG,CAAC;AAFD,0BAEC;AAQD,SAAgB,OAAO,CACrB,OAAwB,EACxB,4BAAyD,EACzD,iBAAqC;IAErC,IAAI,SAAiB,CAAC;IACtB,IAAI,4BAA4B,IAAI,4BAA4B,YAAY,MAAM,IAAI,CAAC,iBAAiB,EAAE;QACxG,iBAAiB,GAAG,4BAA4B,CAAC;KAClD;SAAM;QACL,SAAS,GAAG,4BAAsC,CAAC;KACpD;IAED,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,WAAW,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;QACjC,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5F,cAAc,EAAE,yBAAY,CAC1B,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,sDAAsD,EACzF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AA1BD,0BA0BC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\n\nexport const MATCHES = 'matches';\n\n/**\n * Checks if string matches the pattern. Either matches('foo', /foo/i).\n * If given value is not a string, then it returns false.\n */\nexport function matches(value: string, pattern: RegExp): boolean;\nexport function matches(value: string, pattern: string, modifiers: string): boolean;\nexport function matches(value: string, pattern: RegExp | string, modifiers?: string): boolean {\n return typeof value === 'string' && matchesValidator(value, (pattern as unknown) as any, modifiers);\n}\n\n/**\n * Checks if string matches the pattern. Either matches('foo', /foo/i)\n * If given value is not a string, then it returns false.\n */\nexport function Matches(pattern: RegExp, validationOptions?: ValidationOptions): PropertyDecorator;\nexport function Matches(pattern: string, modifiers?: string, validationOptions?: ValidationOptions): PropertyDecorator;\nexport function Matches(\n pattern: RegExp | string,\n modifiersOrAnnotationOptions?: string | ValidationOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n let modifiers: string;\n if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) {\n validationOptions = modifiersOrAnnotationOptions;\n } else {\n modifiers = modifiersOrAnnotationOptions as string;\n }\n\n return ValidateBy(\n {\n name: MATCHES,\n constraints: [pattern, modifiers],\n validator: {\n validate: (value, args): boolean => matches(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage(\n (eachPrefix, args) => eachPrefix + '$property must match $constraint1 regular expression',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/MaxLength.js b/views/node_modules/class-validator/cjs/decorator/string/MaxLength.js deleted file mode 100644 index 5ce872e..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/MaxLength.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MaxLength = exports.maxLength = exports.MAX_LENGTH = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isLength_1 = __importDefault(require("validator/lib/isLength")); -exports.MAX_LENGTH = 'maxLength'; -/** - * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -function maxLength(value, max) { - return typeof value === 'string' && isLength_1.default(value, { min: 0, max }); -} -exports.maxLength = maxLength; -/** - * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -function MaxLength(max, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.MAX_LENGTH, - constraints: [max], - validator: { - validate: (value, args) => maxLength(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be shorter than or equal to $constraint1 characters', validationOptions), - }, - }, validationOptions); -} -exports.MaxLength = MaxLength; -//# sourceMappingURL=MaxLength.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/MaxLength.js.map b/views/node_modules/class-validator/cjs/decorator/string/MaxLength.js.map deleted file mode 100644 index 746a6a0..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/MaxLength.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MaxLength.js","sourceRoot":"","sources":["../../../../src/decorator/string/MaxLength.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sEAAuD;AAE1C,QAAA,UAAU,GAAG,WAAW,CAAC;AAEtC;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAc,EAAE,GAAW;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAChF,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,GAAW,EAAE,iBAAqC;IAC1E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,kBAAU;QAChB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACzE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oEAAoE,EAC/F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,8BAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\n\nexport const MAX_LENGTH = 'maxLength';\n\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function maxLength(value: unknown, max: number): boolean {\n return typeof value === 'string' && isLengthValidator(value, { min: 0, max });\n}\n\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MaxLength(max: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MAX_LENGTH,\n constraints: [max],\n validator: {\n validate: (value, args): boolean => maxLength(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be shorter than or equal to $constraint1 characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/MinLength.js b/views/node_modules/class-validator/cjs/decorator/string/MinLength.js deleted file mode 100644 index ec7a26b..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/MinLength.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.MinLength = exports.minLength = exports.MIN_LENGTH = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const isLength_1 = __importDefault(require("validator/lib/isLength")); -exports.MIN_LENGTH = 'minLength'; -/** - * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -function minLength(value, min) { - return typeof value === 'string' && isLength_1.default(value, { min }); -} -exports.minLength = minLength; -/** - * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -function MinLength(min, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.MIN_LENGTH, - constraints: [min], - validator: { - validate: (value, args) => minLength(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be longer than or equal to $constraint1 characters', validationOptions), - }, - }, validationOptions); -} -exports.MinLength = MinLength; -//# sourceMappingURL=MinLength.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/MinLength.js.map b/views/node_modules/class-validator/cjs/decorator/string/MinLength.js.map deleted file mode 100644 index 55693a0..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/MinLength.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MinLength.js","sourceRoot":"","sources":["../../../../src/decorator/string/MinLength.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sEAAuD;AAE1C,QAAA,UAAU,GAAG,WAAW,CAAC;AAEtC;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAc,EAAE,GAAW;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACxE,CAAC;AAFD,8BAEC;AAED;;;GAGG;AACH,SAAgB,SAAS,CAAC,GAAW,EAAE,iBAAqC;IAC1E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,kBAAU;QAChB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACzE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,mEAAmE,EAC9F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,8BAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\n\nexport const MIN_LENGTH = 'minLength';\n\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function minLength(value: unknown, min: number): boolean {\n return typeof value === 'string' && isLengthValidator(value, { min });\n}\n\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MinLength(min: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MIN_LENGTH,\n constraints: [min],\n validator: {\n validate: (value, args): boolean => minLength(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be longer than or equal to $constraint1 characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/NotContains.js b/views/node_modules/class-validator/cjs/decorator/string/NotContains.js deleted file mode 100644 index ef8011d..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/NotContains.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.NotContains = exports.notContains = exports.NOT_CONTAINS = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -const contains_1 = __importDefault(require("validator/lib/contains")); -exports.NOT_CONTAINS = 'notContains'; -/** - * Checks if the string does not contain the seed. - * If given value is not a string, then it returns false. - */ -function notContains(value, seed) { - return typeof value === 'string' && !contains_1.default(value, seed); -} -exports.notContains = notContains; -/** - * Checks if the string does not contain the seed. - * If given value is not a string, then it returns false. - */ -function NotContains(seed, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.NOT_CONTAINS, - constraints: [seed], - validator: { - validate: (value, args) => notContains(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property should not contain a $constraint1 string', validationOptions), - }, - }, validationOptions); -} -exports.NotContains = NotContains; -//# sourceMappingURL=NotContains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/string/NotContains.js.map b/views/node_modules/class-validator/cjs/decorator/string/NotContains.js.map deleted file mode 100644 index b40eb97..0000000 --- a/views/node_modules/class-validator/cjs/decorator/string/NotContains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NotContains.js","sourceRoot":"","sources":["../../../../src/decorator/string/NotContains.ts"],"names":[],"mappings":";;;;;;AACA,qDAAgE;AAChE,sEAAuD;AAE1C,QAAA,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,SAAgB,WAAW,CAAC,KAAc,EAAE,IAAY;IACtD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,kBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAFD,kCAEC;AAED;;;GAGG;AACH,SAAgB,WAAW,CAAC,IAAY,EAAE,iBAAqC;IAC7E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,oBAAY;QAClB,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3E,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oDAAoD,EAC/E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,kCAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\n\nexport const NOT_CONTAINS = 'notContains';\n\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function notContains(value: unknown, seed: string): boolean {\n return typeof value === 'string' && !containsValidator(value, seed);\n}\n\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function NotContains(seed: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: NOT_CONTAINS,\n constraints: [seed],\n validator: {\n validate: (value, args): boolean => notContains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not contain a $constraint1 string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsArray.js b/views/node_modules/class-validator/cjs/decorator/typechecker/IsArray.js deleted file mode 100644 index a05d3f2..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsArray.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsArray = exports.isArray = exports.IS_ARRAY = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_ARRAY = 'isArray'; -/** - * Checks if a given value is an array - */ -function isArray(value) { - return value instanceof Array; -} -exports.isArray = isArray; -/** - * Checks if a given value is an array - */ -function IsArray(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ARRAY, - validator: { - validate: (value, args) => isArray(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an array', validationOptions), - }, - }, validationOptions); -} -exports.IsArray = IsArray; -//# sourceMappingURL=IsArray.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsArray.js.map b/views/node_modules/class-validator/cjs/decorator/typechecker/IsArray.js.map deleted file mode 100644 index d90e31d..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsArray.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsArray.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsArray.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,SAAgB,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC;AAChC,CAAC;AAFD,0BAEC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,iBAAqC;IAC3D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,gBAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAClD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,4BAA4B,EAAE,iBAAiB,CAAC;SACzG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,0BAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_ARRAY = 'isArray';\n\n/**\n * Checks if a given value is an array\n */\nexport function isArray(value: unknown): boolean {\n return value instanceof Array;\n}\n\n/**\n * Checks if a given value is an array\n */\nexport function IsArray(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ARRAY,\n validator: {\n validate: (value, args): boolean => isArray(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an array', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsBoolean.js b/views/node_modules/class-validator/cjs/decorator/typechecker/IsBoolean.js deleted file mode 100644 index 1aa3031..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsBoolean.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsBoolean = exports.isBoolean = exports.IS_BOOLEAN = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_BOOLEAN = 'isBoolean'; -/** - * Checks if a given value is a boolean. - */ -function isBoolean(value) { - return value instanceof Boolean || typeof value === 'boolean'; -} -exports.isBoolean = isBoolean; -/** - * Checks if a value is a boolean. - */ -function IsBoolean(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_BOOLEAN, - validator: { - validate: (value, args) => isBoolean(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a boolean value', validationOptions), - }, - }, validationOptions); -} -exports.IsBoolean = IsBoolean; -//# sourceMappingURL=IsBoolean.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsBoolean.js.map b/views/node_modules/class-validator/cjs/decorator/typechecker/IsBoolean.js.map deleted file mode 100644 index 0ac0e5a..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsBoolean.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBoolean.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsBoolean.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,UAAU,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,KAAK,YAAY,OAAO,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AAChE,CAAC;AAFD,8BAEC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,iBAAqC;IAC7D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,kBAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACpD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,mCAAmC,EAAE,iBAAiB,CAAC;SAChH;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,8BAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_BOOLEAN = 'isBoolean';\n\n/**\n * Checks if a given value is a boolean.\n */\nexport function isBoolean(value: unknown): boolean {\n return value instanceof Boolean || typeof value === 'boolean';\n}\n\n/**\n * Checks if a value is a boolean.\n */\nexport function IsBoolean(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BOOLEAN,\n validator: {\n validate: (value, args): boolean => isBoolean(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a boolean value', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsDate.js b/views/node_modules/class-validator/cjs/decorator/typechecker/IsDate.js deleted file mode 100644 index d451326..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsDate.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsDate = exports.isDate = exports.IS_DATE = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_DATE = 'isDate'; -/** - * Checks if a given value is a date. - */ -function isDate(value) { - return value instanceof Date && !isNaN(value.getTime()); -} -exports.isDate = isDate; -/** - * Checks if a value is a date. - */ -function IsDate(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_DATE, - validator: { - validate: (value, args) => isDate(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a Date instance', validationOptions), - }, - }, validationOptions); -} -exports.IsDate = IsDate; -//# sourceMappingURL=IsDate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsDate.js.map b/views/node_modules/class-validator/cjs/decorator/typechecker/IsDate.js.map deleted file mode 100644 index 0b853c0..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsDate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDate.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsDate.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AACH,SAAgB,MAAM,CAAC,KAAc;IACnC,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAFD,wBAEC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAC,iBAAqC;IAC1D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,mCAAmC,EAAE,iBAAiB,CAAC;SAChH;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,wBAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_DATE = 'isDate';\n\n/**\n * Checks if a given value is a date.\n */\nexport function isDate(value: unknown): boolean {\n return value instanceof Date && !isNaN(value.getTime());\n}\n\n/**\n * Checks if a value is a date.\n */\nexport function IsDate(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DATE,\n validator: {\n validate: (value, args): boolean => isDate(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a Date instance', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsEnum.js b/views/node_modules/class-validator/cjs/decorator/typechecker/IsEnum.js deleted file mode 100644 index 50c2c8d..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsEnum.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsEnum = exports.isEnum = exports.IS_ENUM = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_ENUM = 'isEnum'; -/** - * Checks if a given value is an enum - */ -function isEnum(value, entity) { - const enumValues = Object.keys(entity).map(k => entity[k]); - return enumValues.indexOf(value) >= 0; -} -exports.isEnum = isEnum; -/** - * Checks if a given value is an enum - */ -function IsEnum(entity, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_ENUM, - constraints: [entity], - validator: { - validate: (value, args) => isEnum(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a valid enum value', validationOptions), - }, - }, validationOptions); -} -exports.IsEnum = IsEnum; -//# sourceMappingURL=IsEnum.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsEnum.js.map b/views/node_modules/class-validator/cjs/decorator/typechecker/IsEnum.js.map deleted file mode 100644 index 83f92c1..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsEnum.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEnum.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsEnum.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,OAAO,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AACH,SAAgB,MAAM,CAAC,KAAc,EAAE,MAAW;IAChD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAHD,wBAGC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAC,MAAc,EAAE,iBAAqC;IAC1E,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,eAAO;QACb,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,sCAAsC,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,wBAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_ENUM = 'isEnum';\n\n/**\n * Checks if a given value is an enum\n */\nexport function isEnum(value: unknown, entity: any): boolean {\n const enumValues = Object.keys(entity).map(k => entity[k]);\n return enumValues.indexOf(value) >= 0;\n}\n\n/**\n * Checks if a given value is an enum\n */\nexport function IsEnum(entity: object, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ENUM,\n constraints: [entity],\n validator: {\n validate: (value, args): boolean => isEnum(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid enum value',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsInt.js b/views/node_modules/class-validator/cjs/decorator/typechecker/IsInt.js deleted file mode 100644 index 0f8bb54..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsInt.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsInt = exports.isInt = exports.IS_INT = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_INT = 'isInt'; -/** - * Checks if value is an integer. - */ -function isInt(val) { - return typeof val === 'number' && Number.isInteger(val); -} -exports.isInt = isInt; -/** - * Checks if value is an integer. - */ -function IsInt(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_INT, - validator: { - validate: (value, args) => isInt(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an integer number', validationOptions), - }, - }, validationOptions); -} -exports.IsInt = IsInt; -//# sourceMappingURL=IsInt.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsInt.js.map b/views/node_modules/class-validator/cjs/decorator/typechecker/IsInt.js.map deleted file mode 100644 index 1664f08..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsInt.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsInt.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsInt.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,MAAM,GAAG,OAAO,CAAC;AAE9B;;GAEG;AACH,SAAgB,KAAK,CAAC,GAAY;IAChC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAFD,sBAEC;AAED;;GAEG;AACH,SAAgB,KAAK,CAAC,iBAAqC;IACzD,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,cAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,qCAAqC,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAdD,sBAcC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_INT = 'isInt';\n\n/**\n * Checks if value is an integer.\n */\nexport function isInt(val: unknown): boolean {\n return typeof val === 'number' && Number.isInteger(val);\n}\n\n/**\n * Checks if value is an integer.\n */\nexport function IsInt(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_INT,\n validator: {\n validate: (value, args): boolean => isInt(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an integer number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsNumber.js b/views/node_modules/class-validator/cjs/decorator/typechecker/IsNumber.js deleted file mode 100644 index 1e03c9b..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsNumber.js +++ /dev/null @@ -1,45 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsNumber = exports.isNumber = exports.IS_NUMBER = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_NUMBER = 'isNumber'; -/** - * Checks if a given value is a number. - */ -function isNumber(value, options = {}) { - if (typeof value !== 'number') { - return false; - } - if (value === Infinity || value === -Infinity) { - return options.allowInfinity; - } - if (Number.isNaN(value)) { - return options.allowNaN; - } - if (options.maxDecimalPlaces !== undefined) { - let decimalPlaces = 0; - if (value % 1 !== 0) { - decimalPlaces = value.toString().split('.')[1].length; - } - if (decimalPlaces > options.maxDecimalPlaces) { - return false; - } - } - return Number.isFinite(value); -} -exports.isNumber = isNumber; -/** - * Checks if a value is a number. - */ -function IsNumber(options = {}, validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_NUMBER, - constraints: [options], - validator: { - validate: (value, args) => isNumber(value, args.constraints[0]), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a number conforming to the specified constraints', validationOptions), - }, - }, validationOptions); -} -exports.IsNumber = IsNumber; -//# sourceMappingURL=IsNumber.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsNumber.js.map b/views/node_modules/class-validator/cjs/decorator/typechecker/IsNumber.js.map deleted file mode 100644 index 17acd1d..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsNumber.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNumber.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsNumber.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,SAAS,GAAG,UAAU,CAAC;AAWpC;;GAEG;AACH,SAAgB,QAAQ,CAAC,KAAc,EAAE,UAA2B,EAAE;IACpE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IAED,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE;QAC7C,OAAO,OAAO,CAAC,aAAa,CAAC;KAC9B;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,OAAO,CAAC,QAAQ,CAAC;KACzB;IAED,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE;QAC1C,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SACvD;QACD,IAAI,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE;YAC5C,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAxBD,4BAwBC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,UAA2B,EAAE,EAAE,iBAAqC;IAC3F,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,iBAAS;QACf,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACxE,cAAc,EAAE,yBAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oEAAoE,EAC/F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAfD,4BAeC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NUMBER = 'isNumber';\n\n/**\n * Options to be passed to IsNumber decorator.\n */\nexport interface IsNumberOptions {\n allowNaN?: boolean;\n allowInfinity?: boolean;\n maxDecimalPlaces?: number;\n}\n\n/**\n * Checks if a given value is a number.\n */\nexport function isNumber(value: unknown, options: IsNumberOptions = {}): boolean {\n if (typeof value !== 'number') {\n return false;\n }\n\n if (value === Infinity || value === -Infinity) {\n return options.allowInfinity;\n }\n\n if (Number.isNaN(value)) {\n return options.allowNaN;\n }\n\n if (options.maxDecimalPlaces !== undefined) {\n let decimalPlaces = 0;\n if (value % 1 !== 0) {\n decimalPlaces = value.toString().split('.')[1].length;\n }\n if (decimalPlaces > options.maxDecimalPlaces) {\n return false;\n }\n }\n\n return Number.isFinite(value);\n}\n\n/**\n * Checks if a value is a number.\n */\nexport function IsNumber(options: IsNumberOptions = {}, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NUMBER,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isNumber(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a number conforming to the specified constraints',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsObject.js b/views/node_modules/class-validator/cjs/decorator/typechecker/IsObject.js deleted file mode 100644 index 24b8463..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsObject.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsObject = exports.isObject = exports.IS_OBJECT = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_OBJECT = 'isObject'; -/** - * Checks if the value is valid Object. - * Returns false if the value is not an object. - */ -function isObject(value) { - return value != null && (typeof value === 'object' || typeof value === 'function') && !Array.isArray(value); -} -exports.isObject = isObject; -/** - * Checks if the value is valid Object. - * Returns false if the value is not an object. - */ -function IsObject(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_OBJECT, - validator: { - validate: (value, args) => isObject(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be an object', validationOptions), - }, - }, validationOptions); -} -exports.IsObject = IsObject; -//# sourceMappingURL=IsObject.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsObject.js.map b/views/node_modules/class-validator/cjs/decorator/typechecker/IsObject.js.map deleted file mode 100644 index 2beb346..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsObject.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsObject.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsObject.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9G,CAAC;AAFD,4BAEC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,iBAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,6BAA6B,EAAE,iBAAiB,CAAC;SAC1G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,4BAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_OBJECT = 'isObject';\n\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function isObject(value: unknown): value is object {\n return value != null && (typeof value === 'object' || typeof value === 'function') && !Array.isArray(value);\n}\n\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function IsObject(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_OBJECT,\n validator: {\n validate: (value, args): boolean => isObject(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an object', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsString.js b/views/node_modules/class-validator/cjs/decorator/typechecker/IsString.js deleted file mode 100644 index c5c49b5..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsString.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.IsString = exports.isString = exports.IS_STRING = void 0; -const ValidateBy_1 = require("../common/ValidateBy"); -exports.IS_STRING = 'isString'; -/** - * Checks if a given value is a real string. - */ -function isString(value) { - return value instanceof String || typeof value === 'string'; -} -exports.isString = isString; -/** - * Checks if a given value is a real string. - */ -function IsString(validationOptions) { - return ValidateBy_1.ValidateBy({ - name: exports.IS_STRING, - validator: { - validate: (value, args) => isString(value), - defaultMessage: ValidateBy_1.buildMessage(eachPrefix => eachPrefix + '$property must be a string', validationOptions), - }, - }, validationOptions); -} -exports.IsString = IsString; -//# sourceMappingURL=IsString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/decorator/typechecker/IsString.js.map b/views/node_modules/class-validator/cjs/decorator/typechecker/IsString.js.map deleted file mode 100644 index a6d79cc..0000000 --- a/views/node_modules/class-validator/cjs/decorator/typechecker/IsString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsString.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsString.ts"],"names":[],"mappings":";;;AACA,qDAAgE;AAEnD,QAAA,SAAS,GAAG,UAAU,CAAC;AAEpC;;GAEG;AACH,SAAgB,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,YAAY,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AAC9D,CAAC;AAFD,4BAEC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,uBAAU,CACf;QACE,IAAI,EAAE,iBAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,yBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,4BAA4B,EAAE,iBAAiB,CAAC;SACzG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAXD,4BAWC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_STRING = 'isString';\n\n/**\n * Checks if a given value is a real string.\n */\nexport function isString(value: unknown): value is string {\n return value instanceof String || typeof value === 'string';\n}\n\n/**\n * Checks if a given value is a real string.\n */\nexport function IsString(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_STRING,\n validator: {\n validate: (value, args): boolean => isString(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/index.js b/views/node_modules/class-validator/cjs/index.js deleted file mode 100644 index fa527f6..0000000 --- a/views/node_modules/class-validator/cjs/index.js +++ /dev/null @@ -1,77 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.registerSchema = exports.validateSync = exports.validateOrReject = exports.validate = void 0; -const MetadataStorage_1 = require("./metadata/MetadataStorage"); -const Validator_1 = require("./validation/Validator"); -const container_1 = require("./container"); -// ------------------------------------------------------------------------- -// Export everything api users needs -// ------------------------------------------------------------------------- -__exportStar(require("./container"), exports); -__exportStar(require("./decorator/decorators"), exports); -__exportStar(require("./decorator/ValidationOptions"), exports); -__exportStar(require("./validation/ValidatorConstraintInterface"), exports); -__exportStar(require("./validation/ValidationError"), exports); -__exportStar(require("./validation/ValidatorOptions"), exports); -__exportStar(require("./validation/ValidationArguments"), exports); -__exportStar(require("./validation/ValidationTypes"), exports); -__exportStar(require("./validation/Validator"), exports); -__exportStar(require("./validation-schema/ValidationSchema"), exports); -__exportStar(require("./register-decorator"), exports); -__exportStar(require("./metadata/MetadataStorage"), exports); -/** - * Validates given object by object's decorators or given validation schema. - */ -function validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return container_1.getFromContainer(Validator_1.Validator).validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return container_1.getFromContainer(Validator_1.Validator).validate(schemaNameOrObject, objectOrValidationOptions); - } -} -exports.validate = validate; -/** - * Validates given object by object's decorators or given validation schema and reject on error. - */ -function validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return container_1.getFromContainer(Validator_1.Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return container_1.getFromContainer(Validator_1.Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions); - } -} -exports.validateOrReject = validateOrReject; -/** - * Validates given object by object's decorators or given validation schema. - * Note that this method completely ignores async validations. - * If you want to properly perform validation you need to call validate method instead. - */ -function validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return container_1.getFromContainer(Validator_1.Validator).validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return container_1.getFromContainer(Validator_1.Validator).validateSync(schemaNameOrObject, objectOrValidationOptions); - } -} -exports.validateSync = validateSync; -/** - * Registers a new validation schema. - */ -function registerSchema(schema) { - MetadataStorage_1.getMetadataStorage().addValidationSchema(schema); -} -exports.registerSchema = registerSchema; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/index.js.map b/views/node_modules/class-validator/cjs/index.js.map deleted file mode 100644 index 24ff965..0000000 --- a/views/node_modules/class-validator/cjs/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAGA,gEAAgE;AAChE,sDAAmD;AACnD,2CAA+C;AAE/C,4EAA4E;AAC5E,oCAAoC;AACpC,4EAA4E;AAE5E,8CAA4B;AAC5B,yDAAuC;AACvC,gEAA8C;AAC9C,4EAA0D;AAC1D,+DAA6C;AAC7C,gEAA8C;AAC9C,mEAAiD;AACjD,+DAA6C;AAC7C,yDAAuC;AACvC,uEAAqD;AACrD,uDAAqC;AACrC,6DAA2C;AAoB3C;;GAEG;AACH,SAAgB,QAAQ,CACtB,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;IAExC,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAC1C,OAAO,4BAAgB,CAAC,qBAAS,CAAC,CAAC,QAAQ,CACzC,kBAAkB,EAClB,yBAAmC,EACnC,qBAAqB,CACtB,CAAC;KACH;SAAM;QACL,OAAO,4BAAgB,CAAC,qBAAS,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,yBAA6C,CAAC,CAAC;KAChH;AACH,CAAC;AAdD,4BAcC;AAgBD;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;IAExC,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAC1C,OAAO,4BAAgB,CAAC,qBAAS,CAAC,CAAC,gBAAgB,CACjD,kBAAkB,EAClB,yBAAmC,EACnC,qBAAqB,CACtB,CAAC;KACH;SAAM;QACL,OAAO,4BAAgB,CAAC,qBAAS,CAAC,CAAC,gBAAgB,CACjD,kBAAkB,EAClB,yBAA6C,CAC9C,CAAC;KACH;AACH,CAAC;AAjBD,4CAiBC;AAoBD;;;;GAIG;AACH,SAAgB,YAAY,CAC1B,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;IAExC,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAC1C,OAAO,4BAAgB,CAAC,qBAAS,CAAC,CAAC,YAAY,CAC7C,kBAAkB,EAClB,yBAAmC,EACnC,qBAAqB,CACtB,CAAC;KACH;SAAM;QACL,OAAO,4BAAgB,CAAC,qBAAS,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,yBAA6C,CAAC,CAAC;KACpH;AACH,CAAC;AAdD,oCAcC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,MAAwB;IACrD,oCAAkB,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAFD,wCAEC","sourcesContent":["import { ValidationError } from './validation/ValidationError';\nimport { ValidatorOptions } from './validation/ValidatorOptions';\nimport { ValidationSchema } from './validation-schema/ValidationSchema';\nimport { getMetadataStorage } from './metadata/MetadataStorage';\nimport { Validator } from './validation/Validator';\nimport { getFromContainer } from './container';\n\n// -------------------------------------------------------------------------\n// Export everything api users needs\n// -------------------------------------------------------------------------\n\nexport * from './container';\nexport * from './decorator/decorators';\nexport * from './decorator/ValidationOptions';\nexport * from './validation/ValidatorConstraintInterface';\nexport * from './validation/ValidationError';\nexport * from './validation/ValidatorOptions';\nexport * from './validation/ValidationArguments';\nexport * from './validation/ValidationTypes';\nexport * from './validation/Validator';\nexport * from './validation-schema/ValidationSchema';\nexport * from './register-decorator';\nexport * from './metadata/MetadataStorage';\n\n// -------------------------------------------------------------------------\n// Shortcut methods for api users\n// -------------------------------------------------------------------------\n\n/**\n * Validates given object.\n */\nexport function validate(object: object, validatorOptions?: ValidatorOptions): Promise;\n\n/**\n * Validates given object by a given validation schema.\n */\nexport function validate(\n schemaName: string,\n object: object,\n validatorOptions?: ValidatorOptions\n): Promise;\n\n/**\n * Validates given object by object's decorators or given validation schema.\n */\nexport function validate(\n schemaNameOrObject: object | string,\n objectOrValidationOptions?: object | ValidatorOptions,\n maybeValidatorOptions?: ValidatorOptions\n): Promise {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validate(\n schemaNameOrObject,\n objectOrValidationOptions as object,\n maybeValidatorOptions\n );\n } else {\n return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions as ValidatorOptions);\n }\n}\n\n/**\n * Validates given object and reject on error.\n */\nexport function validateOrReject(object: object, validatorOptions?: ValidatorOptions): Promise;\n\n/**\n * Validates given object by a given validation schema and reject on error.\n */\nexport function validateOrReject(\n schemaName: string,\n object: object,\n validatorOptions?: ValidatorOptions\n): Promise;\n\n/**\n * Validates given object by object's decorators or given validation schema and reject on error.\n */\nexport function validateOrReject(\n schemaNameOrObject: object | string,\n objectOrValidationOptions?: object | ValidatorOptions,\n maybeValidatorOptions?: ValidatorOptions\n): Promise {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateOrReject(\n schemaNameOrObject,\n objectOrValidationOptions as object,\n maybeValidatorOptions\n );\n } else {\n return getFromContainer(Validator).validateOrReject(\n schemaNameOrObject,\n objectOrValidationOptions as ValidatorOptions\n );\n }\n}\n\n/**\n * Performs sync validation of the given object.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(object: object, validatorOptions?: ValidatorOptions): ValidationError[];\n\n/**\n * Validates given object by a given validation schema.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(\n schemaName: string,\n object: object,\n validatorOptions?: ValidatorOptions\n): ValidationError[];\n\n/**\n * Validates given object by object's decorators or given validation schema.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(\n schemaNameOrObject: object | string,\n objectOrValidationOptions?: object | ValidatorOptions,\n maybeValidatorOptions?: ValidatorOptions\n): ValidationError[] {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateSync(\n schemaNameOrObject,\n objectOrValidationOptions as object,\n maybeValidatorOptions\n );\n } else {\n return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions as ValidatorOptions);\n }\n}\n\n/**\n * Registers a new validation schema.\n */\nexport function registerSchema(schema: ValidationSchema): void {\n getMetadataStorage().addValidationSchema(schema);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/metadata/ConstraintMetadata.js b/views/node_modules/class-validator/cjs/metadata/ConstraintMetadata.js deleted file mode 100644 index e50cfcc..0000000 --- a/views/node_modules/class-validator/cjs/metadata/ConstraintMetadata.js +++ /dev/null @@ -1,28 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ConstraintMetadata = void 0; -const container_1 = require("../container"); -/** - * This metadata interface contains information for custom validators. - */ -class ConstraintMetadata { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - constructor(target, name, async = false) { - this.target = target; - this.name = name; - this.async = async; - } - // ------------------------------------------------------------------------- - // Accessors - // ------------------------------------------------------------------------- - /** - * Instance of the target custom validation class which performs validation. - */ - get instance() { - return container_1.getFromContainer(this.target); - } -} -exports.ConstraintMetadata = ConstraintMetadata; -//# sourceMappingURL=ConstraintMetadata.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/metadata/ConstraintMetadata.js.map b/views/node_modules/class-validator/cjs/metadata/ConstraintMetadata.js.map deleted file mode 100644 index e51ee1c..0000000 --- a/views/node_modules/class-validator/cjs/metadata/ConstraintMetadata.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ConstraintMetadata.js","sourceRoot":"","sources":["../../../src/metadata/ConstraintMetadata.ts"],"names":[],"mappings":";;;AACA,4CAAgD;AAEhD;;GAEG;AACH,MAAa,kBAAkB;IAoB7B,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAY,MAAgB,EAAE,IAAa,EAAE,QAAiB,KAAK;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,4EAA4E;IAC5E,YAAY;IACZ,4EAA4E;IAE5E;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,4BAAgB,CAA+B,IAAI,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;CACF;AAxCD,gDAwCC","sourcesContent":["import { ValidatorConstraintInterface } from '../validation/ValidatorConstraintInterface';\nimport { getFromContainer } from '../container';\n\n/**\n * This metadata interface contains information for custom validators.\n */\nexport class ConstraintMetadata {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n /**\n * Target class which performs validation.\n */\n target: Function;\n\n /**\n * Custom validation's name, that will be used as validation error type.\n */\n name: string;\n\n /**\n * Indicates if this validation is asynchronous or not.\n */\n async: boolean;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(target: Function, name?: string, async: boolean = false) {\n this.target = target;\n this.name = name;\n this.async = async;\n }\n\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n\n /**\n * Instance of the target custom validation class which performs validation.\n */\n get instance(): ValidatorConstraintInterface {\n return getFromContainer(this.target);\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/metadata/MetadataStorage.js b/views/node_modules/class-validator/cjs/metadata/MetadataStorage.js deleted file mode 100644 index ae70e00..0000000 --- a/views/node_modules/class-validator/cjs/metadata/MetadataStorage.js +++ /dev/null @@ -1,137 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getMetadataStorage = exports.MetadataStorage = void 0; -const ValidationSchemaToMetadataTransformer_1 = require("../validation-schema/ValidationSchemaToMetadataTransformer"); -const utils_1 = require("../utils"); -/** - * Storage all metadatas. - */ -class MetadataStorage { - constructor() { - // ------------------------------------------------------------------------- - // Private properties - // ------------------------------------------------------------------------- - this.validationMetadatas = []; - this.constraintMetadatas = []; - } - get hasValidationMetaData() { - return !!this.validationMetadatas.length; - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - /** - * Adds a new validation metadata. - */ - addValidationSchema(schema) { - const validationMetadatas = new ValidationSchemaToMetadataTransformer_1.ValidationSchemaToMetadataTransformer().transform(schema); - validationMetadatas.forEach(validationMetadata => this.addValidationMetadata(validationMetadata)); - } - /** - * Adds a new validation metadata. - */ - addValidationMetadata(metadata) { - this.validationMetadatas.push(metadata); - } - /** - * Adds a new constraint metadata. - */ - addConstraintMetadata(metadata) { - this.constraintMetadatas.push(metadata); - } - /** - * Groups metadata by their property names. - */ - groupByPropertyName(metadata) { - const grouped = {}; - metadata.forEach(metadata => { - if (!grouped[metadata.propertyName]) - grouped[metadata.propertyName] = []; - grouped[metadata.propertyName].push(metadata); - }); - return grouped; - } - /** - * Gets all validation metadatas for the given object with the given groups. - */ - getTargetValidationMetadatas(targetConstructor, targetSchema, always, strictGroups, groups) { - const includeMetadataBecauseOfAlwaysOption = (metadata) => { - // `metadata.always` overrides global default. - if (typeof metadata.always !== 'undefined') - return metadata.always; - // `metadata.groups` overrides global default. - if (metadata.groups && metadata.groups.length) - return false; - // Use global default. - return always; - }; - const excludeMetadataBecauseOfStrictGroupsOption = (metadata) => { - if (strictGroups) { - // Validation is not using groups. - if (!groups || !groups.length) { - // `metadata.groups` has at least one group. - if (metadata.groups && metadata.groups.length) - return true; - } - } - return false; - }; - // get directly related to a target metadatas - const originalMetadatas = this.validationMetadatas.filter(metadata => { - if (metadata.target !== targetConstructor && metadata.target !== targetSchema) - return false; - if (includeMetadataBecauseOfAlwaysOption(metadata)) - return true; - if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) - return false; - if (groups && groups.length > 0) - return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1); - return true; - }); - // get metadatas for inherited classes - const inheritedMetadatas = this.validationMetadatas.filter(metadata => { - // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas - if (typeof metadata.target === 'string') - return false; - if (metadata.target === targetConstructor) - return false; - if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target)) - return false; - if (includeMetadataBecauseOfAlwaysOption(metadata)) - return true; - if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) - return false; - if (groups && groups.length > 0) - return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1); - return true; - }); - // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas - const uniqueInheritedMetadatas = inheritedMetadatas.filter(inheritedMetadata => { - return !originalMetadatas.find(originalMetadata => { - return (originalMetadata.propertyName === inheritedMetadata.propertyName && - originalMetadata.type === inheritedMetadata.type); - }); - }); - return originalMetadatas.concat(uniqueInheritedMetadatas); - } - /** - * Gets all validator constraints for the given object. - */ - getTargetValidatorConstraints(target) { - return this.constraintMetadatas.filter(metadata => metadata.target === target); - } -} -exports.MetadataStorage = MetadataStorage; -/** - * Gets metadata storage. - * Metadata storage follows the best practices and stores metadata in a global variable. - */ -function getMetadataStorage() { - const global = utils_1.getGlobal(); - if (!global.classValidatorMetadataStorage) { - global.classValidatorMetadataStorage = new MetadataStorage(); - } - return global.classValidatorMetadataStorage; -} -exports.getMetadataStorage = getMetadataStorage; -//# sourceMappingURL=MetadataStorage.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/metadata/MetadataStorage.js.map b/views/node_modules/class-validator/cjs/metadata/MetadataStorage.js.map deleted file mode 100644 index b2035d8..0000000 --- a/views/node_modules/class-validator/cjs/metadata/MetadataStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MetadataStorage.js","sourceRoot":"","sources":["../../../src/metadata/MetadataStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import { ValidationMetadata } from './ValidationMetadata';\nimport { ConstraintMetadata } from './ConstraintMetadata';\nimport { ValidationSchema } from '../validation-schema/ValidationSchema';\nimport { ValidationSchemaToMetadataTransformer } from '../validation-schema/ValidationSchemaToMetadataTransformer';\nimport { getGlobal } from '../utils';\n\n/**\n * Storage all metadatas.\n */\nexport class MetadataStorage {\n // -------------------------------------------------------------------------\n // Private properties\n // -------------------------------------------------------------------------\n\n private validationMetadatas: ValidationMetadata[] = [];\n private constraintMetadatas: ConstraintMetadata[] = [];\n\n get hasValidationMetaData(): boolean {\n return !!this.validationMetadatas.length;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Adds a new validation metadata.\n */\n addValidationSchema(schema: ValidationSchema): void {\n const validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema);\n validationMetadatas.forEach(validationMetadata => this.addValidationMetadata(validationMetadata));\n }\n\n /**\n * Adds a new validation metadata.\n */\n addValidationMetadata(metadata: ValidationMetadata): void {\n this.validationMetadatas.push(metadata);\n }\n\n /**\n * Adds a new constraint metadata.\n */\n addConstraintMetadata(metadata: ConstraintMetadata): void {\n this.constraintMetadatas.push(metadata);\n }\n\n /**\n * Groups metadata by their property names.\n */\n groupByPropertyName(metadata: ValidationMetadata[]): { [propertyName: string]: ValidationMetadata[] } {\n const grouped: { [propertyName: string]: ValidationMetadata[] } = {};\n metadata.forEach(metadata => {\n if (!grouped[metadata.propertyName]) grouped[metadata.propertyName] = [];\n grouped[metadata.propertyName].push(metadata);\n });\n return grouped;\n }\n\n /**\n * Gets all validation metadatas for the given object with the given groups.\n */\n getTargetValidationMetadatas(\n targetConstructor: Function,\n targetSchema: string,\n always: boolean,\n strictGroups: boolean,\n groups?: string[]\n ): ValidationMetadata[] {\n const includeMetadataBecauseOfAlwaysOption = (metadata: ValidationMetadata): boolean => {\n // `metadata.always` overrides global default.\n if (typeof metadata.always !== 'undefined') return metadata.always;\n\n // `metadata.groups` overrides global default.\n if (metadata.groups && metadata.groups.length) return false;\n\n // Use global default.\n return always;\n };\n\n const excludeMetadataBecauseOfStrictGroupsOption = (metadata: ValidationMetadata): boolean => {\n if (strictGroups) {\n // Validation is not using groups.\n if (!groups || !groups.length) {\n // `metadata.groups` has at least one group.\n if (metadata.groups && metadata.groups.length) return true;\n }\n }\n\n return false;\n };\n\n // get directly related to a target metadatas\n const originalMetadatas = this.validationMetadatas.filter(metadata => {\n if (metadata.target !== targetConstructor && metadata.target !== targetSchema) return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1);\n\n return true;\n });\n\n // get metadatas for inherited classes\n const inheritedMetadatas = this.validationMetadatas.filter(metadata => {\n // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas\n if (typeof metadata.target === 'string') return false;\n if (metadata.target === targetConstructor) return false;\n if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target))\n return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1);\n\n return true;\n });\n\n // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas\n const uniqueInheritedMetadatas = inheritedMetadatas.filter(inheritedMetadata => {\n return !originalMetadatas.find(originalMetadata => {\n return (\n originalMetadata.propertyName === inheritedMetadata.propertyName &&\n originalMetadata.type === inheritedMetadata.type\n );\n });\n });\n\n return originalMetadatas.concat(uniqueInheritedMetadatas);\n }\n\n /**\n * Gets all validator constraints for the given object.\n */\n getTargetValidatorConstraints(target: Function): ConstraintMetadata[] {\n return this.constraintMetadatas.filter(metadata => metadata.target === target);\n }\n}\n\n/**\n * Gets metadata storage.\n * Metadata storage follows the best practices and stores metadata in a global variable.\n */\nexport function getMetadataStorage(): MetadataStorage {\n const global = getGlobal();\n\n if (!global.classValidatorMetadataStorage) {\n global.classValidatorMetadataStorage = new MetadataStorage();\n }\n\n return global.classValidatorMetadataStorage;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/metadata/ValidationMetadata.js b/views/node_modules/class-validator/cjs/metadata/ValidationMetadata.js deleted file mode 100644 index 56db2f7..0000000 --- a/views/node_modules/class-validator/cjs/metadata/ValidationMetadata.js +++ /dev/null @@ -1,40 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ValidationMetadata = void 0; -/** - * This metadata contains validation rules. - */ -class ValidationMetadata { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - constructor(args) { - /** - * Validation groups used for this validation. - */ - this.groups = []; - /** - * Specifies if validated value is an array and each of its item must be validated. - */ - this.each = false; - /* - * A transient set of data passed through to the validation result for response mapping - */ - this.context = undefined; - this.type = args.type; - this.target = args.target; - this.propertyName = args.propertyName; - this.constraints = args.constraints; - this.constraintCls = args.constraintCls; - this.validationTypeOptions = args.validationTypeOptions; - if (args.validationOptions) { - this.message = args.validationOptions.message; - this.groups = args.validationOptions.groups; - this.always = args.validationOptions.always; - this.each = args.validationOptions.each; - this.context = args.validationOptions.context; - } - } -} -exports.ValidationMetadata = ValidationMetadata; -//# sourceMappingURL=ValidationMetadata.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/metadata/ValidationMetadata.js.map b/views/node_modules/class-validator/cjs/metadata/ValidationMetadata.js.map deleted file mode 100644 index bdeceb3..0000000 --- a/views/node_modules/class-validator/cjs/metadata/ValidationMetadata.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationMetadata.js","sourceRoot":"","sources":["../../../src/metadata/ValidationMetadata.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAa,kBAAkB;IA4D7B,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAY,IAA4B;QA7BxC;;WAEG;QACH,WAAM,GAAa,EAAE,CAAC;QAOtB;;WAEG;QACH,SAAI,GAAY,KAAK,CAAC;QAEtB;;WAEG;QACH,YAAO,GAAS,SAAS,CAAC;QAYxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACxD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;SAC/C;IACH,CAAC;CACF;AA/ED,gDA+EC","sourcesContent":["import { ValidationMetadataArgs } from './ValidationMetadataArgs';\nimport { ValidationArguments } from '../validation/ValidationArguments';\n\n/**\n * This metadata contains validation rules.\n */\nexport class ValidationMetadata {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n /**\n * Validation type.\n */\n type: string;\n\n /**\n * Target class to which this validation is applied.\n */\n target: Function | string;\n\n /**\n * Property of the object to be validated.\n */\n propertyName: string;\n\n /**\n * Constraint class that performs validation. Used only for custom validations.\n */\n constraintCls: Function;\n\n /**\n * Array of constraints of this validation.\n */\n constraints: any[];\n\n /**\n * Validation message to be shown in the case of error.\n */\n message: string | ((args: ValidationArguments) => string);\n\n /**\n * Validation groups used for this validation.\n */\n groups: string[] = [];\n\n /**\n * Indicates if validation must be performed always, no matter of validation groups used.\n */\n always?: boolean;\n\n /**\n * Specifies if validated value is an array and each of its item must be validated.\n */\n each: boolean = false;\n\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n context?: any = undefined;\n\n /**\n * Extra options specific to validation type.\n */\n validationTypeOptions: any;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(args: ValidationMetadataArgs) {\n this.type = args.type;\n this.target = args.target;\n this.propertyName = args.propertyName;\n this.constraints = args.constraints;\n this.constraintCls = args.constraintCls;\n this.validationTypeOptions = args.validationTypeOptions;\n if (args.validationOptions) {\n this.message = args.validationOptions.message;\n this.groups = args.validationOptions.groups;\n this.always = args.validationOptions.always;\n this.each = args.validationOptions.each;\n this.context = args.validationOptions.context;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/metadata/ValidationMetadataArgs.js b/views/node_modules/class-validator/cjs/metadata/ValidationMetadataArgs.js deleted file mode 100644 index 06fd6e1..0000000 --- a/views/node_modules/class-validator/cjs/metadata/ValidationMetadataArgs.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=ValidationMetadataArgs.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/metadata/ValidationMetadataArgs.js.map b/views/node_modules/class-validator/cjs/metadata/ValidationMetadataArgs.js.map deleted file mode 100644 index 3f88114..0000000 --- a/views/node_modules/class-validator/cjs/metadata/ValidationMetadataArgs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationMetadataArgs.js","sourceRoot":"","sources":["../../../src/metadata/ValidationMetadataArgs.ts"],"names":[],"mappings":"","sourcesContent":["import { ValidationOptions } from '../decorator/ValidationOptions';\n\n/**\n * Constructor arguments for ValidationMetadata class.\n */\nexport interface ValidationMetadataArgs {\n /**\n * Validation type.\n */\n type: string;\n\n /**\n * Object that is used to be validated.\n */\n target: Function | string;\n\n /**\n * Property of the object to be validated.\n */\n propertyName: string;\n\n /**\n * Constraint class that performs validation. Used only for custom validations.\n */\n constraintCls?: Function;\n\n /**\n * Array of constraints of this validation.\n */\n constraints?: any[];\n\n /**\n * Validation options.\n */\n validationOptions?: ValidationOptions;\n\n /**\n * Extra options specific to validation type.\n */\n validationTypeOptions?: any;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/register-decorator.js b/views/node_modules/class-validator/cjs/register-decorator.js deleted file mode 100644 index 46a119f..0000000 --- a/views/node_modules/class-validator/cjs/register-decorator.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.registerDecorator = void 0; -const ConstraintMetadata_1 = require("./metadata/ConstraintMetadata"); -const ValidationMetadata_1 = require("./metadata/ValidationMetadata"); -const ValidationTypes_1 = require("./validation/ValidationTypes"); -const container_1 = require("./container"); -const MetadataStorage_1 = require("./metadata/MetadataStorage"); -/** - * Registers a custom validation decorator. - */ -function registerDecorator(options) { - let constraintCls; - if (options.validator instanceof Function) { - constraintCls = options.validator; - const constraintClasses = container_1.getFromContainer(MetadataStorage_1.MetadataStorage).getTargetValidatorConstraints(options.validator); - if (constraintClasses.length > 1) { - throw `More than one implementation of ValidatorConstraintInterface found for validator on: ${options.target.name}:${options.propertyName}`; - } - } - else { - const validator = options.validator; - constraintCls = class CustomConstraint { - validate(value, validationArguments) { - return validator.validate(value, validationArguments); - } - defaultMessage(validationArguments) { - if (validator.defaultMessage) { - return validator.defaultMessage(validationArguments); - } - return ''; - } - }; - MetadataStorage_1.getMetadataStorage().addConstraintMetadata(new ConstraintMetadata_1.ConstraintMetadata(constraintCls, options.name, options.async)); - } - const validationMetadataArgs = { - type: options.name && ValidationTypes_1.ValidationTypes.isValid(options.name) ? options.name : ValidationTypes_1.ValidationTypes.CUSTOM_VALIDATION, - target: options.target, - propertyName: options.propertyName, - validationOptions: options.options, - constraintCls: constraintCls, - constraints: options.constraints, - }; - MetadataStorage_1.getMetadataStorage().addValidationMetadata(new ValidationMetadata_1.ValidationMetadata(validationMetadataArgs)); -} -exports.registerDecorator = registerDecorator; -//# sourceMappingURL=register-decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/register-decorator.js.map b/views/node_modules/class-validator/cjs/register-decorator.js.map deleted file mode 100644 index 605c84c..0000000 --- a/views/node_modules/class-validator/cjs/register-decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"register-decorator.js","sourceRoot":"","sources":["../../src/register-decorator.ts"],"names":[],"mappings":";;;AAAA,sEAAmE;AAEnE,sEAAmE;AAEnE,kEAA+D;AAE/D,2CAA+C;AAC/C,gEAAiF;AAwCjF;;GAEG;AACH,SAAgB,iBAAiB,CAAC,OAAmC;IACnE,IAAI,aAAuB,CAAC;IAC5B,IAAI,OAAO,CAAC,SAAS,YAAY,QAAQ,EAAE;QACzC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;QAClC,MAAM,iBAAiB,GAAG,4BAAgB,CAAC,iCAAe,CAAC,CAAC,6BAA6B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7G,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,MAAM,wFAAwF,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;SAC7I;KACF;SAAM;QACL,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,aAAa,GAAG,MAAM,gBAAgB;YACpC,QAAQ,CAAC,KAAU,EAAE,mBAAyC;gBAC5D,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;YACxD,CAAC;YAED,cAAc,CAAC,mBAAyC;gBACtD,IAAI,SAAS,CAAC,cAAc,EAAE;oBAC5B,OAAO,SAAS,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;iBACtD;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC;SACF,CAAC;QACF,oCAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,uCAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KAChH;IAED,MAAM,sBAAsB,GAA2B;QACrD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,iCAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,iCAAe,CAAC,iBAAiB;QAC9G,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,iBAAiB,EAAE,OAAO,CAAC,OAAO;QAClC,aAAa,EAAE,aAAa;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;IACF,oCAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,uCAAkB,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAC7F,CAAC;AAnCD,8CAmCC","sourcesContent":["import { ConstraintMetadata } from './metadata/ConstraintMetadata';\nimport { ValidatorConstraintInterface } from './validation/ValidatorConstraintInterface';\nimport { ValidationMetadata } from './metadata/ValidationMetadata';\nimport { ValidationMetadataArgs } from './metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from './validation/ValidationTypes';\nimport { ValidationArguments } from './validation/ValidationArguments';\nimport { getFromContainer } from './container';\nimport { MetadataStorage, getMetadataStorage } from './metadata/MetadataStorage';\nimport { ValidationOptions } from './decorator/ValidationOptions';\n\nexport interface ValidationDecoratorOptions {\n /**\n * Target object to be validated.\n */\n target: Function;\n\n /**\n * Target object's property name to be validated.\n */\n propertyName: string;\n\n /**\n * Name of the validation that is being registered.\n */\n name?: string;\n\n /**\n * Indicates if this decorator will perform async validation.\n */\n async?: boolean;\n\n /**\n * Validator options.\n */\n options?: ValidationOptions;\n\n /**\n * Array of validation constraints.\n */\n constraints?: any[];\n\n /**\n * Validator that performs validation.\n */\n validator: ValidatorConstraintInterface | Function;\n}\n\n/**\n * Registers a custom validation decorator.\n */\nexport function registerDecorator(options: ValidationDecoratorOptions): void {\n let constraintCls: Function;\n if (options.validator instanceof Function) {\n constraintCls = options.validator;\n const constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator);\n if (constraintClasses.length > 1) {\n throw `More than one implementation of ValidatorConstraintInterface found for validator on: ${options.target.name}:${options.propertyName}`;\n }\n } else {\n const validator = options.validator;\n constraintCls = class CustomConstraint implements ValidatorConstraintInterface {\n validate(value: any, validationArguments?: ValidationArguments): Promise | boolean {\n return validator.validate(value, validationArguments);\n }\n\n defaultMessage(validationArguments?: ValidationArguments): string {\n if (validator.defaultMessage) {\n return validator.defaultMessage(validationArguments);\n }\n\n return '';\n }\n };\n getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async));\n }\n\n const validationMetadataArgs: ValidationMetadataArgs = {\n type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION,\n target: options.target,\n propertyName: options.propertyName,\n validationOptions: options.options,\n constraintCls: constraintCls,\n constraints: options.constraints,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs));\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/utils/convert-to-array.util.js b/views/node_modules/class-validator/cjs/utils/convert-to-array.util.js deleted file mode 100644 index de486a4..0000000 --- a/views/node_modules/class-validator/cjs/utils/convert-to-array.util.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.convertToArray = void 0; -/** - * Convert Map, Set to Array - */ -function convertToArray(val) { - if (val instanceof Map) { - return Array.from(val.values()); - } - return Array.isArray(val) ? val : Array.from(val); -} -exports.convertToArray = convertToArray; -//# sourceMappingURL=convert-to-array.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/utils/convert-to-array.util.js.map b/views/node_modules/class-validator/cjs/utils/convert-to-array.util.js.map deleted file mode 100644 index 6b7b707..0000000 --- a/views/node_modules/class-validator/cjs/utils/convert-to-array.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"convert-to-array.util.js","sourceRoot":"","sources":["../../../src/utils/convert-to-array.util.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,SAAgB,cAAc,CAAI,GAAoC;IACpE,IAAI,GAAG,YAAY,GAAG,EAAE;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;KACjC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AALD,wCAKC","sourcesContent":["/**\n * Convert Map, Set to Array\n */\nexport function convertToArray(val: Array | Set | Map): Array {\n if (val instanceof Map) {\n return Array.from(val.values());\n }\n return Array.isArray(val) ? val : Array.from(val);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/utils/get-global.util.js b/views/node_modules/class-validator/cjs/utils/get-global.util.js deleted file mode 100644 index 63c6eeb..0000000 --- a/views/node_modules/class-validator/cjs/utils/get-global.util.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.getGlobal = void 0; -/** - * This function returns the global object across Node and browsers. - * - * Note: `globalThis` is the standardized approach however it has been added to - * Node.js in version 12. We need to include this snippet until Node 12 EOL. - */ -function getGlobal() { - if (typeof globalThis !== 'undefined') { - return globalThis; - } - if (typeof global !== 'undefined') { - return global; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - if (typeof window !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - return window; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - if (typeof self !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - return self; - } -} -exports.getGlobal = getGlobal; -//# sourceMappingURL=get-global.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/utils/get-global.util.js.map b/views/node_modules/class-validator/cjs/utils/get-global.util.js.map deleted file mode 100644 index c74ab15..0000000 --- a/views/node_modules/class-validator/cjs/utils/get-global.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-global.util.js","sourceRoot":"","sources":["../../../src/utils/get-global.util.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,SAAgB,SAAS;IACvB,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;QACrC,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,yCAAyC;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,6DAA6D;QAC7D,yCAAyC;QACzC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,uCAAuC;IACvC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC/B,6DAA6D;QAC7D,uCAAuC;QACvC,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAxBD,8BAwBC","sourcesContent":["/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/utils/index.js b/views/node_modules/class-validator/cjs/utils/index.js deleted file mode 100644 index 6ef45ec..0000000 --- a/views/node_modules/class-validator/cjs/utils/index.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -__exportStar(require("./convert-to-array.util"), exports); -__exportStar(require("./get-global.util"), exports); -__exportStar(require("./is-promise.util"), exports); -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/utils/index.js.map b/views/node_modules/class-validator/cjs/utils/index.js.map deleted file mode 100644 index 7af1ea9..0000000 --- a/views/node_modules/class-validator/cjs/utils/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0DAAwC;AACxC,oDAAkC;AAClC,oDAAkC","sourcesContent":["export * from './convert-to-array.util';\nexport * from './get-global.util';\nexport * from './is-promise.util';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/utils/is-promise.util.js b/views/node_modules/class-validator/cjs/utils/is-promise.util.js deleted file mode 100644 index 14fadbc..0000000 --- a/views/node_modules/class-validator/cjs/utils/is-promise.util.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -// https://github.com/TylorS/typed-is-promise/blob/abf1514e1b6961adfc75765476b0debb96b2c3ae/src/index.ts -Object.defineProperty(exports, "__esModule", { value: true }); -exports.isPromise = void 0; -function isPromise(p) { - return p !== null && typeof p === 'object' && typeof p.then === 'function'; -} -exports.isPromise = isPromise; -//# sourceMappingURL=is-promise.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/utils/is-promise.util.js.map b/views/node_modules/class-validator/cjs/utils/is-promise.util.js.map deleted file mode 100644 index edc587f..0000000 --- a/views/node_modules/class-validator/cjs/utils/is-promise.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"is-promise.util.js","sourceRoot":"","sources":["../../../src/utils/is-promise.util.ts"],"names":[],"mappings":";AAAA,wGAAwG;;;AAExG,SAAgB,SAAS,CAAU,CAAM;IACvC,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AAC7E,CAAC;AAFD,8BAEC","sourcesContent":["// https://github.com/TylorS/typed-is-promise/blob/abf1514e1b6961adfc75765476b0debb96b2c3ae/src/index.ts\n\nexport function isPromise(p: any): p is Promise {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation-schema/ValidationSchema.js b/views/node_modules/class-validator/cjs/validation-schema/ValidationSchema.js deleted file mode 100644 index 84b6503..0000000 --- a/views/node_modules/class-validator/cjs/validation-schema/ValidationSchema.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=ValidationSchema.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation-schema/ValidationSchema.js.map b/views/node_modules/class-validator/cjs/validation-schema/ValidationSchema.js.map deleted file mode 100644 index 27cc488..0000000 --- a/views/node_modules/class-validator/cjs/validation-schema/ValidationSchema.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationSchema.js","sourceRoot":"","sources":["../../../src/validation-schema/ValidationSchema.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Validation schema is a decorator-free way of validation of your objects.\n * Also using validation schemas makes this library to be easily used with es6/es5.\n */\nexport interface ValidationSchema {\n /**\n * Schema name. This is required, because we tell validator to validate by this schema using its name.\n */\n name: string;\n\n /**\n * Validated properties.\n */\n properties: {\n /**\n * Name of the object's property to be validated which holds an array of validation constraints.\n */\n [propertyName: string]: {\n /**\n * Validation type. Should be one of the ValidationTypes value.\n */\n type: string;\n\n /**\n * Constraints set by validation type.\n */\n constraints?: any[];\n\n /**\n * Error message used to be used on validation fail.\n * You can use \"$value\" to use value that was failed by validation.\n * You can use \"$constraint1\" and \"$constraint2\" keys in the message string,\n * and they will be replaced with constraint values if they exist.\n * Message can be either string, either a function that returns a string.\n * Second option allows to use values and custom messages depend of them.\n */\n message?: string | ((value?: any, constraint1?: any, constraint2?: any) => string);\n\n /**\n * Specifies if validated value is an array and each of its item must be validated.\n */\n each?: boolean;\n\n /**\n * Indicates if validation must be performed always, no matter of validation groups used.\n */\n always?: boolean;\n\n /**\n * Validation groups used for this validation.\n */\n groups?: string[];\n\n /**\n * Specific validation type options.\n */\n options?: any;\n }[];\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation-schema/ValidationSchemaToMetadataTransformer.js b/views/node_modules/class-validator/cjs/validation-schema/ValidationSchemaToMetadataTransformer.js deleted file mode 100644 index 0f75999..0000000 --- a/views/node_modules/class-validator/cjs/validation-schema/ValidationSchemaToMetadataTransformer.js +++ /dev/null @@ -1,34 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ValidationSchemaToMetadataTransformer = void 0; -const ValidationMetadata_1 = require("../metadata/ValidationMetadata"); -/** - * Used to transform validation schemas to validation metadatas. - */ -class ValidationSchemaToMetadataTransformer { - transform(schema) { - const metadatas = []; - Object.keys(schema.properties).forEach(property => { - schema.properties[property].forEach(validation => { - const validationOptions = { - message: validation.message, - groups: validation.groups, - always: validation.always, - each: validation.each, - }; - const args = { - type: validation.type, - target: schema.name, - propertyName: property, - constraints: validation.constraints, - validationTypeOptions: validation.options, - validationOptions: validationOptions, - }; - metadatas.push(new ValidationMetadata_1.ValidationMetadata(args)); - }); - }); - return metadatas; - } -} -exports.ValidationSchemaToMetadataTransformer = ValidationSchemaToMetadataTransformer; -//# sourceMappingURL=ValidationSchemaToMetadataTransformer.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation-schema/ValidationSchemaToMetadataTransformer.js.map b/views/node_modules/class-validator/cjs/validation-schema/ValidationSchemaToMetadataTransformer.js.map deleted file mode 100644 index fed40fa..0000000 --- a/views/node_modules/class-validator/cjs/validation-schema/ValidationSchemaToMetadataTransformer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationSchemaToMetadataTransformer.js","sourceRoot":"","sources":["../../../src/validation-schema/ValidationSchemaToMetadataTransformer.ts"],"names":[],"mappings":";;;AACA,uEAAoE;AAIpE;;GAEG;AACH,MAAa,qCAAqC;IAChD,SAAS,CAAC,MAAwB;QAChC,MAAM,SAAS,GAAyB,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAChD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC/C,MAAM,iBAAiB,GAAsB;oBAC3C,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,IAAI,EAAE,UAAU,CAAC,IAAI;iBACtB,CAAC;gBACF,MAAM,IAAI,GAA2B;oBACnC,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,YAAY,EAAE,QAAQ;oBACtB,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,qBAAqB,EAAE,UAAU,CAAC,OAAO;oBACzC,iBAAiB,EAAE,iBAAiB;iBACrC,CAAC;gBACF,SAAS,CAAC,IAAI,CAAC,IAAI,uCAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAxBD,sFAwBC","sourcesContent":["import { ValidationSchema } from './ValidationSchema';\nimport { ValidationMetadata } from '../metadata/ValidationMetadata';\nimport { ValidationMetadataArgs } from '../metadata/ValidationMetadataArgs';\nimport { ValidationOptions } from '../decorator/ValidationOptions';\n\n/**\n * Used to transform validation schemas to validation metadatas.\n */\nexport class ValidationSchemaToMetadataTransformer {\n transform(schema: ValidationSchema): ValidationMetadata[] {\n const metadatas: ValidationMetadata[] = [];\n Object.keys(schema.properties).forEach(property => {\n schema.properties[property].forEach(validation => {\n const validationOptions: ValidationOptions = {\n message: validation.message,\n groups: validation.groups,\n always: validation.always,\n each: validation.each,\n };\n const args: ValidationMetadataArgs = {\n type: validation.type,\n target: schema.name,\n propertyName: property,\n constraints: validation.constraints,\n validationTypeOptions: validation.options,\n validationOptions: validationOptions,\n };\n metadatas.push(new ValidationMetadata(args));\n });\n });\n return metadatas;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidationArguments.js b/views/node_modules/class-validator/cjs/validation/ValidationArguments.js deleted file mode 100644 index e48b372..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidationArguments.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=ValidationArguments.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidationArguments.js.map b/views/node_modules/class-validator/cjs/validation/ValidationArguments.js.map deleted file mode 100644 index c2b0f6f..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidationArguments.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationArguments.js","sourceRoot":"","sources":["../../../src/validation/ValidationArguments.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Arguments being sent to message builders - user can create message either by simply returning a string,\n * either by returning a function that accepts MessageArguments and returns a message string built based on these arguments.\n */\nexport interface ValidationArguments {\n /**\n * Validating value.\n */\n value: any;\n\n /**\n * Constraints set by this validation type.\n */\n constraints: any[];\n\n /**\n * Name of the target that is being validated.\n */\n targetName: string;\n\n /**\n * Object that is being validated.\n */\n object: object;\n\n /**\n * Name of the object's property being validated.\n */\n property: string;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidationError.js b/views/node_modules/class-validator/cjs/validation/ValidationError.js deleted file mode 100644 index 917edcc..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidationError.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ValidationError = void 0; -/** - * Validation error description. - */ -class ValidationError { - /** - * - * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability - * @param hasParent true when the error is a child of an another one - * @param parentPath path as string to the parent of this property - */ - toString(shouldDecorate = false, hasParent = false, parentPath = ``) { - const boldStart = shouldDecorate ? `\x1b[1m` : ``; - const boldEnd = shouldDecorate ? `\x1b[22m` : ``; - const propConstraintFailed = (propertyName) => ` - property ${boldStart}${parentPath}${propertyName}${boldEnd} has failed the following constraints: ${boldStart}${Object.keys(this.constraints).join(`, `)}${boldEnd} \n`; - if (!hasParent) { - return (`An instance of ${boldStart}${this.target ? this.target.constructor.name : 'an object'}${boldEnd} has failed the validation:\n` + - (this.constraints ? propConstraintFailed(this.property) : ``) + - (this.children - ? this.children.map(childError => childError.toString(shouldDecorate, true, this.property)).join(``) - : ``)); - } - else { - // we format numbers as array indexes for better readability. - const formattedProperty = Number.isInteger(+this.property) - ? `[${this.property}]` - : `${parentPath ? `.` : ``}${this.property}`; - if (this.constraints) { - return propConstraintFailed(formattedProperty); - } - else { - return this.children - ? this.children - .map(childError => childError.toString(shouldDecorate, true, `${parentPath}${formattedProperty}`)) - .join(``) - : ``; - } - } - } -} -exports.ValidationError = ValidationError; -//# sourceMappingURL=ValidationError.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidationError.js.map b/views/node_modules/class-validator/cjs/validation/ValidationError.js.map deleted file mode 100644 index e6c93bb..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidationError.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationError.js","sourceRoot":"","sources":["../../../src/validation/ValidationError.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,eAAe;IAuC1B;;;;;OAKG;IACH,QAAQ,CAAC,iBAA0B,KAAK,EAAE,YAAqB,KAAK,EAAE,aAAqB,EAAE;QAC3F,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAU,EAAE,CAC5D,eAAe,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,0CAA0C,SAAS,GAAG,MAAM,CAAC,IAAI,CAC7H,IAAI,CAAC,WAAW,CACjB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,CAAC;QAE9B,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,CACL,kBAAkB,SAAS,GACzB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAC/C,GAAG,OAAO,+BAA+B;gBACzC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,CAAC,IAAI,CAAC,QAAQ;oBACZ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpG,CAAC,CAAC,EAAE,CAAC,CACR,CAAC;SACH;aAAM;YACL,6DAA6D;YAC7D,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACxD,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG;gBACtB,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE/C,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;aAChD;iBAAM;gBACL,OAAO,IAAI,CAAC,QAAQ;oBAClB,CAAC,CAAC,IAAI,CAAC,QAAQ;yBACV,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,GAAG,UAAU,GAAG,iBAAiB,EAAE,CAAC,CAAC;yBACjG,IAAI,CAAC,EAAE,CAAC;oBACb,CAAC,CAAC,EAAE,CAAC;aACR;SACF;IACH,CAAC;CACF;AAhFD,0CAgFC","sourcesContent":["/**\n * Validation error description.\n */\nexport class ValidationError {\n /**\n * Object that was validated.\n *\n * OPTIONAL - configurable via the ValidatorOptions.validationError.target option\n */\n target?: object;\n\n /**\n * Object's property that haven't pass validation.\n */\n property: string;\n\n /**\n * Value that haven't pass a validation.\n *\n * OPTIONAL - configurable via the ValidatorOptions.validationError.value option\n */\n value?: any;\n\n /**\n * Constraints that failed validation with error messages.\n */\n constraints?: {\n [type: string]: string;\n };\n\n /**\n * Contains all nested validation errors of the property.\n */\n children?: ValidationError[];\n\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n contexts?: {\n [type: string]: any;\n };\n\n /**\n *\n * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability\n * @param hasParent true when the error is a child of an another one\n * @param parentPath path as string to the parent of this property\n */\n toString(shouldDecorate: boolean = false, hasParent: boolean = false, parentPath: string = ``): string {\n const boldStart = shouldDecorate ? `\\x1b[1m` : ``;\n const boldEnd = shouldDecorate ? `\\x1b[22m` : ``;\n const propConstraintFailed = (propertyName: string): string =>\n ` - property ${boldStart}${parentPath}${propertyName}${boldEnd} has failed the following constraints: ${boldStart}${Object.keys(\n this.constraints\n ).join(`, `)}${boldEnd} \\n`;\n\n if (!hasParent) {\n return (\n `An instance of ${boldStart}${\n this.target ? this.target.constructor.name : 'an object'\n }${boldEnd} has failed the validation:\\n` +\n (this.constraints ? propConstraintFailed(this.property) : ``) +\n (this.children\n ? this.children.map(childError => childError.toString(shouldDecorate, true, this.property)).join(``)\n : ``)\n );\n } else {\n // we format numbers as array indexes for better readability.\n const formattedProperty = Number.isInteger(+this.property)\n ? `[${this.property}]`\n : `${parentPath ? `.` : ``}${this.property}`;\n\n if (this.constraints) {\n return propConstraintFailed(formattedProperty);\n } else {\n return this.children\n ? this.children\n .map(childError => childError.toString(shouldDecorate, true, `${parentPath}${formattedProperty}`))\n .join(``)\n : ``;\n }\n }\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidationExecutor.js b/views/node_modules/class-validator/cjs/validation/ValidationExecutor.js deleted file mode 100644 index a6f7c4e..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidationExecutor.js +++ /dev/null @@ -1,322 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ValidationExecutor = void 0; -const ValidationError_1 = require("./ValidationError"); -const ValidationTypes_1 = require("./ValidationTypes"); -const ValidationUtils_1 = require("./ValidationUtils"); -const utils_1 = require("../utils"); -const MetadataStorage_1 = require("../metadata/MetadataStorage"); -/** - * Executes validation over given object. - */ -class ValidationExecutor { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - constructor(validator, validatorOptions) { - this.validator = validator; - this.validatorOptions = validatorOptions; - // ------------------------------------------------------------------------- - // Properties - // ------------------------------------------------------------------------- - this.awaitingPromises = []; - this.ignoreAsyncValidations = false; - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - this.metadataStorage = MetadataStorage_1.getMetadataStorage(); - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - execute(object, targetSchema, validationErrors) { - var _a; - /** - * If there is no metadata registered it means possibly the dependencies are not flatterned and - * more than one instance is used. - * - * TODO: This needs proper handling, forcing to use the same container or some other proper solution. - */ - if (!this.metadataStorage.hasValidationMetaData && ((_a = this.validatorOptions) === null || _a === void 0 ? void 0 : _a.enableDebugMessages) === true) { - console.warn(`No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies.`); - } - const groups = this.validatorOptions ? this.validatorOptions.groups : undefined; - const strictGroups = (this.validatorOptions && this.validatorOptions.strictGroups) || false; - const always = (this.validatorOptions && this.validatorOptions.always) || false; - const targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(object.constructor, targetSchema, always, strictGroups, groups); - const groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas); - if (this.validatorOptions && this.validatorOptions.forbidUnknownValues && !targetMetadatas.length) { - const validationError = new ValidationError_1.ValidationError(); - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.target === undefined || - this.validatorOptions.validationError.target === true) - validationError.target = object; - validationError.value = undefined; - validationError.property = undefined; - validationError.children = []; - validationError.constraints = { unknownValue: 'an unknown value was passed to the validate function' }; - validationErrors.push(validationError); - return; - } - if (this.validatorOptions && this.validatorOptions.whitelist) - this.whitelist(object, groupedMetadatas, validationErrors); - // General validation - Object.keys(groupedMetadatas).forEach(propertyName => { - const value = object[propertyName]; - const definedMetadatas = groupedMetadatas[propertyName].filter(metadata => metadata.type === ValidationTypes_1.ValidationTypes.IS_DEFINED); - const metadatas = groupedMetadatas[propertyName].filter(metadata => metadata.type !== ValidationTypes_1.ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes_1.ValidationTypes.WHITELIST); - if (value instanceof Promise && - metadatas.find(metadata => metadata.type === ValidationTypes_1.ValidationTypes.PROMISE_VALIDATION)) { - this.awaitingPromises.push(value.then(resolvedValue => { - this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors); - })); - } - else { - this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors); - } - }); - } - whitelist(object, groupedMetadatas, validationErrors) { - const notAllowedProperties = []; - Object.keys(object).forEach(propertyName => { - // does this property have no metadata? - if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0) - notAllowedProperties.push(propertyName); - }); - if (notAllowedProperties.length > 0) { - if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) { - // throw errors - notAllowedProperties.forEach(property => { - const validationError = this.generateValidationError(object, object[property], property); - validationError.constraints = { [ValidationTypes_1.ValidationTypes.WHITELIST]: `property ${property} should not exist` }; - validationError.children = undefined; - validationErrors.push(validationError); - }); - } - else { - // strip non allowed properties - notAllowedProperties.forEach(property => delete object[property]); - } - } - } - stripEmptyErrors(errors) { - return errors.filter(error => { - if (error.children) { - error.children = this.stripEmptyErrors(error.children); - } - if (Object.keys(error.constraints).length === 0) { - if (error.children.length === 0) { - return false; - } - else { - delete error.constraints; - } - } - return true; - }); - } - // ------------------------------------------------------------------------- - // Private Methods - // ------------------------------------------------------------------------- - performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors) { - const customValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes_1.ValidationTypes.CUSTOM_VALIDATION); - const nestedValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes_1.ValidationTypes.NESTED_VALIDATION); - const conditionalValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes_1.ValidationTypes.CONDITIONAL_VALIDATION); - const validationError = this.generateValidationError(object, value, propertyName); - validationErrors.push(validationError); - const canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas); - if (!canValidate) { - return; - } - // handle IS_DEFINED validation type the special way - it should work no matter skipUndefinedProperties/skipMissingProperties is set or not - this.customValidations(object, value, definedMetadatas, validationError); - this.mapContexts(object, value, definedMetadatas, validationError); - if (value === undefined && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) { - return; - } - if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) { - return; - } - if ((value === null || value === undefined) && - this.validatorOptions && - this.validatorOptions.skipMissingProperties === true) { - return; - } - this.customValidations(object, value, customValidationMetadatas, validationError); - this.nestedValidations(value, nestedValidationMetadatas, validationError.children); - this.mapContexts(object, value, metadatas, validationError); - this.mapContexts(object, value, customValidationMetadatas, validationError); - } - generateValidationError(object, value, propertyName) { - const validationError = new ValidationError_1.ValidationError(); - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.target === undefined || - this.validatorOptions.validationError.target === true) - validationError.target = object; - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.value === undefined || - this.validatorOptions.validationError.value === true) - validationError.value = value; - validationError.property = propertyName; - validationError.children = []; - validationError.constraints = {}; - return validationError; - } - conditionalValidations(object, value, metadatas) { - return metadatas - .map(metadata => metadata.constraints[0](object, value)) - .reduce((resultA, resultB) => resultA && resultB, true); - } - customValidations(object, value, metadatas, error) { - metadatas.forEach(metadata => { - this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls).forEach(customConstraintMetadata => { - if (customConstraintMetadata.async && this.ignoreAsyncValidations) - return; - if (this.validatorOptions && - this.validatorOptions.stopAtFirstError && - Object.keys(error.constraints || {}).length > 0) - return; - const validationArguments = { - targetName: object.constructor ? object.constructor.name : undefined, - property: metadata.propertyName, - object: object, - value: value, - constraints: metadata.constraints, - }; - if (!metadata.each || !(value instanceof Array || value instanceof Set || value instanceof Map)) { - const validatedValue = customConstraintMetadata.instance.validate(value, validationArguments); - if (utils_1.isPromise(validatedValue)) { - const promise = validatedValue.then(isValid => { - if (!isValid) { - const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); - error.constraints[type] = message; - if (metadata.context) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - this.awaitingPromises.push(promise); - } - else { - if (!validatedValue) { - const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); - error.constraints[type] = message; - } - } - return; - } - // convert set and map into array - const arrayValue = utils_1.convertToArray(value); - // Validation needs to be applied to each array item - const validatedSubValues = arrayValue.map((subValue) => customConstraintMetadata.instance.validate(subValue, validationArguments)); - const validationIsAsync = validatedSubValues.some((validatedSubValue) => utils_1.isPromise(validatedSubValue)); - if (validationIsAsync) { - // Wrap plain values (if any) in promises, so that all are async - const asyncValidatedSubValues = validatedSubValues.map((validatedSubValue) => utils_1.isPromise(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue)); - const asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues).then((flatValidatedValues) => { - const validationResult = flatValidatedValues.every((isValid) => isValid); - if (!validationResult) { - const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); - error.constraints[type] = message; - if (metadata.context) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - this.awaitingPromises.push(asyncValidationIsFinishedPromise); - return; - } - const validationResult = validatedSubValues.every((isValid) => isValid); - if (!validationResult) { - const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); - error.constraints[type] = message; - } - }); - }); - } - nestedValidations(value, metadatas, errors) { - if (value === void 0) { - return; - } - metadatas.forEach(metadata => { - if (metadata.type !== ValidationTypes_1.ValidationTypes.NESTED_VALIDATION && metadata.type !== ValidationTypes_1.ValidationTypes.PROMISE_VALIDATION) { - return; - } - if (value instanceof Array || value instanceof Set || value instanceof Map) { - // Treats Set as an array - as index of Set value is value itself and it is common case to have Object as value - const arrayLikeValue = value instanceof Set ? Array.from(value) : value; - arrayLikeValue.forEach((subValue, index) => { - this.performValidations(value, subValue, index.toString(), [], metadatas, errors); - }); - } - else if (value instanceof Object) { - const targetSchema = typeof metadata.target === 'string' ? metadata.target : metadata.target.name; - this.execute(value, targetSchema, errors); - } - else { - const error = new ValidationError_1.ValidationError(); - error.value = value; - error.property = metadata.propertyName; - error.target = metadata.target; - const [type, message] = this.createValidationError(metadata.target, value, metadata); - error.constraints = { - [type]: message, - }; - errors.push(error); - } - }); - } - mapContexts(object, value, metadatas, error) { - return metadatas.forEach(metadata => { - if (metadata.context) { - let customConstraint; - if (metadata.type === ValidationTypes_1.ValidationTypes.CUSTOM_VALIDATION) { - const customConstraints = this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls); - customConstraint = customConstraints[0]; - } - const type = this.getConstraintType(metadata, customConstraint); - if (error.constraints[type]) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - } - createValidationError(object, value, metadata, customValidatorMetadata) { - const targetName = object.constructor ? object.constructor.name : undefined; - const type = this.getConstraintType(metadata, customValidatorMetadata); - const validationArguments = { - targetName: targetName, - property: metadata.propertyName, - object: object, - value: value, - constraints: metadata.constraints, - }; - let message = metadata.message || ''; - if (!metadata.message && - (!this.validatorOptions || (this.validatorOptions && !this.validatorOptions.dismissDefaultMessages))) { - if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) { - message = customValidatorMetadata.instance.defaultMessage(validationArguments); - } - } - const messageString = ValidationUtils_1.ValidationUtils.replaceMessageSpecialTokens(message, validationArguments); - return [type, messageString]; - } - getConstraintType(metadata, customValidatorMetadata) { - const type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type; - return type; - } -} -exports.ValidationExecutor = ValidationExecutor; -//# sourceMappingURL=ValidationExecutor.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidationExecutor.js.map b/views/node_modules/class-validator/cjs/validation/ValidationExecutor.js.map deleted file mode 100644 index d26c60b..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidationExecutor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationExecutor.js","sourceRoot":"","sources":["../../../src/validation/ValidationExecutor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Validator } from './Validator';\nimport { ValidationError } from './ValidationError';\nimport { ValidationMetadata } from '../metadata/ValidationMetadata';\nimport { ValidatorOptions } from './ValidatorOptions';\nimport { ValidationTypes } from './ValidationTypes';\nimport { ConstraintMetadata } from '../metadata/ConstraintMetadata';\nimport { ValidationArguments } from './ValidationArguments';\nimport { ValidationUtils } from './ValidationUtils';\nimport { isPromise, convertToArray } from '../utils';\nimport { getMetadataStorage } from '../metadata/MetadataStorage';\n\n/**\n * Executes validation over given object.\n */\nexport class ValidationExecutor {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n awaitingPromises: Promise[] = [];\n ignoreAsyncValidations: boolean = false;\n\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n\n private metadataStorage = getMetadataStorage();\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private validator: Validator, private validatorOptions?: ValidatorOptions) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n execute(object: object, targetSchema: string, validationErrors: ValidationError[]): void {\n /**\n * If there is no metadata registered it means possibly the dependencies are not flatterned and\n * more than one instance is used.\n *\n * TODO: This needs proper handling, forcing to use the same container or some other proper solution.\n */\n if (!this.metadataStorage.hasValidationMetaData && this.validatorOptions?.enableDebugMessages === true) {\n console.warn(\n `No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies.`\n );\n }\n\n const groups = this.validatorOptions ? this.validatorOptions.groups : undefined;\n const strictGroups = (this.validatorOptions && this.validatorOptions.strictGroups) || false;\n const always = (this.validatorOptions && this.validatorOptions.always) || false;\n\n const targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(\n object.constructor,\n targetSchema,\n always,\n strictGroups,\n groups\n );\n const groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas);\n\n if (this.validatorOptions && this.validatorOptions.forbidUnknownValues && !targetMetadatas.length) {\n const validationError = new ValidationError();\n\n if (\n !this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true\n )\n validationError.target = object;\n\n validationError.value = undefined;\n validationError.property = undefined;\n validationError.children = [];\n validationError.constraints = { unknownValue: 'an unknown value was passed to the validate function' };\n\n validationErrors.push(validationError);\n\n return;\n }\n\n if (this.validatorOptions && this.validatorOptions.whitelist)\n this.whitelist(object, groupedMetadatas, validationErrors);\n\n // General validation\n Object.keys(groupedMetadatas).forEach(propertyName => {\n const value = (object as any)[propertyName];\n const definedMetadatas = groupedMetadatas[propertyName].filter(\n metadata => metadata.type === ValidationTypes.IS_DEFINED\n );\n const metadatas = groupedMetadatas[propertyName].filter(\n metadata => metadata.type !== ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes.WHITELIST\n );\n\n if (\n value instanceof Promise &&\n metadatas.find(metadata => metadata.type === ValidationTypes.PROMISE_VALIDATION)\n ) {\n this.awaitingPromises.push(\n value.then(resolvedValue => {\n this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors);\n })\n );\n } else {\n this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors);\n }\n });\n }\n\n whitelist(\n object: any,\n groupedMetadatas: { [propertyName: string]: ValidationMetadata[] },\n validationErrors: ValidationError[]\n ): void {\n const notAllowedProperties: string[] = [];\n\n Object.keys(object).forEach(propertyName => {\n // does this property have no metadata?\n if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0)\n notAllowedProperties.push(propertyName);\n });\n\n if (notAllowedProperties.length > 0) {\n if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) {\n // throw errors\n notAllowedProperties.forEach(property => {\n const validationError: ValidationError = this.generateValidationError(object, object[property], property);\n validationError.constraints = { [ValidationTypes.WHITELIST]: `property ${property} should not exist` };\n validationError.children = undefined;\n validationErrors.push(validationError);\n });\n } else {\n // strip non allowed properties\n notAllowedProperties.forEach(property => delete object[property]);\n }\n }\n }\n\n stripEmptyErrors(errors: ValidationError[]): ValidationError[] {\n return errors.filter(error => {\n if (error.children) {\n error.children = this.stripEmptyErrors(error.children);\n }\n\n if (Object.keys(error.constraints).length === 0) {\n if (error.children.length === 0) {\n return false;\n } else {\n delete error.constraints;\n }\n }\n\n return true;\n });\n }\n\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n\n private performValidations(\n object: any,\n value: any,\n propertyName: string,\n definedMetadatas: ValidationMetadata[],\n metadatas: ValidationMetadata[],\n validationErrors: ValidationError[]\n ): void {\n const customValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.CUSTOM_VALIDATION);\n const nestedValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.NESTED_VALIDATION);\n const conditionalValidationMetadatas = metadatas.filter(\n metadata => metadata.type === ValidationTypes.CONDITIONAL_VALIDATION\n );\n\n const validationError = this.generateValidationError(object, value, propertyName);\n validationErrors.push(validationError);\n\n const canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas);\n if (!canValidate) {\n return;\n }\n\n // handle IS_DEFINED validation type the special way - it should work no matter skipUndefinedProperties/skipMissingProperties is set or not\n this.customValidations(object, value, definedMetadatas, validationError);\n this.mapContexts(object, value, definedMetadatas, validationError);\n\n if (value === undefined && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) {\n return;\n }\n\n if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) {\n return;\n }\n\n if (\n (value === null || value === undefined) &&\n this.validatorOptions &&\n this.validatorOptions.skipMissingProperties === true\n ) {\n return;\n }\n\n this.customValidations(object, value, customValidationMetadatas, validationError);\n this.nestedValidations(value, nestedValidationMetadatas, validationError.children);\n\n this.mapContexts(object, value, metadatas, validationError);\n this.mapContexts(object, value, customValidationMetadatas, validationError);\n }\n\n private generateValidationError(object: object, value: any, propertyName: string): ValidationError {\n const validationError = new ValidationError();\n\n if (\n !this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true\n )\n validationError.target = object;\n\n if (\n !this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.value === undefined ||\n this.validatorOptions.validationError.value === true\n )\n validationError.value = value;\n\n validationError.property = propertyName;\n validationError.children = [];\n validationError.constraints = {};\n\n return validationError;\n }\n\n private conditionalValidations(object: object, value: any, metadatas: ValidationMetadata[]): ValidationMetadata[] {\n return metadatas\n .map(metadata => metadata.constraints[0](object, value))\n .reduce((resultA, resultB) => resultA && resultB, true);\n }\n\n private customValidations(object: object, value: any, metadatas: ValidationMetadata[], error: ValidationError): void {\n metadatas.forEach(metadata => {\n this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls).forEach(customConstraintMetadata => {\n if (customConstraintMetadata.async && this.ignoreAsyncValidations) return;\n if (\n this.validatorOptions &&\n this.validatorOptions.stopAtFirstError &&\n Object.keys(error.constraints || {}).length > 0\n )\n return;\n\n const validationArguments: ValidationArguments = {\n targetName: object.constructor ? (object.constructor as any).name : undefined,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n\n if (!metadata.each || !(value instanceof Array || value instanceof Set || value instanceof Map)) {\n const validatedValue = customConstraintMetadata.instance.validate(value, validationArguments);\n if (isPromise(validatedValue)) {\n const promise = validatedValue.then(isValid => {\n if (!isValid) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n this.awaitingPromises.push(promise);\n } else {\n if (!validatedValue) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n }\n }\n\n return;\n }\n\n // convert set and map into array\n const arrayValue = convertToArray(value);\n // Validation needs to be applied to each array item\n const validatedSubValues = arrayValue.map((subValue: any) =>\n customConstraintMetadata.instance.validate(subValue, validationArguments)\n );\n const validationIsAsync = validatedSubValues.some((validatedSubValue: boolean | Promise) =>\n isPromise(validatedSubValue)\n );\n\n if (validationIsAsync) {\n // Wrap plain values (if any) in promises, so that all are async\n const asyncValidatedSubValues = validatedSubValues.map((validatedSubValue: boolean | Promise) =>\n isPromise(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue)\n );\n const asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues).then(\n (flatValidatedValues: boolean[]) => {\n const validationResult = flatValidatedValues.every((isValid: boolean) => isValid);\n if (!validationResult) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n }\n );\n\n this.awaitingPromises.push(asyncValidationIsFinishedPromise);\n\n return;\n }\n\n const validationResult = validatedSubValues.every((isValid: boolean) => isValid);\n if (!validationResult) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n }\n });\n });\n }\n\n private nestedValidations(value: any, metadatas: ValidationMetadata[], errors: ValidationError[]): void {\n if (value === void 0) {\n return;\n }\n\n metadatas.forEach(metadata => {\n if (metadata.type !== ValidationTypes.NESTED_VALIDATION && metadata.type !== ValidationTypes.PROMISE_VALIDATION) {\n return;\n }\n\n if (value instanceof Array || value instanceof Set || value instanceof Map) {\n // Treats Set as an array - as index of Set value is value itself and it is common case to have Object as value\n const arrayLikeValue = value instanceof Set ? Array.from(value) : value;\n arrayLikeValue.forEach((subValue: any, index: any) => {\n this.performValidations(value, subValue, index.toString(), [], metadatas, errors);\n });\n } else if (value instanceof Object) {\n const targetSchema = typeof metadata.target === 'string' ? metadata.target : metadata.target.name;\n this.execute(value, targetSchema, errors);\n } else {\n const error = new ValidationError();\n error.value = value;\n error.property = metadata.propertyName;\n error.target = metadata.target as object;\n const [type, message] = this.createValidationError(metadata.target as object, value, metadata);\n error.constraints = {\n [type]: message,\n };\n errors.push(error);\n }\n });\n }\n\n private mapContexts(object: object, value: any, metadatas: ValidationMetadata[], error: ValidationError): void {\n return metadatas.forEach(metadata => {\n if (metadata.context) {\n let customConstraint;\n if (metadata.type === ValidationTypes.CUSTOM_VALIDATION) {\n const customConstraints = this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls);\n customConstraint = customConstraints[0];\n }\n\n const type = this.getConstraintType(metadata, customConstraint);\n\n if (error.constraints[type]) {\n if (!error.contexts) {\n error.contexts = {};\n }\n\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n }\n\n private createValidationError(\n object: object,\n value: any,\n metadata: ValidationMetadata,\n customValidatorMetadata?: ConstraintMetadata\n ): [string, string] {\n const targetName = object.constructor ? (object.constructor as any).name : undefined;\n const type = this.getConstraintType(metadata, customValidatorMetadata);\n const validationArguments: ValidationArguments = {\n targetName: targetName,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n\n let message = metadata.message || '';\n if (\n !metadata.message &&\n (!this.validatorOptions || (this.validatorOptions && !this.validatorOptions.dismissDefaultMessages))\n ) {\n if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) {\n message = customValidatorMetadata.instance.defaultMessage(validationArguments);\n }\n }\n\n const messageString = ValidationUtils.replaceMessageSpecialTokens(message, validationArguments);\n return [type, messageString];\n }\n\n private getConstraintType(metadata: ValidationMetadata, customValidatorMetadata?: ConstraintMetadata): string {\n const type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type;\n return type;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidationTypes.js b/views/node_modules/class-validator/cjs/validation/ValidationTypes.js deleted file mode 100644 index ae4220a..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidationTypes.js +++ /dev/null @@ -1,27 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ValidationTypes = void 0; -/** - * Validation types. - */ -class ValidationTypes { - /** - * Checks if validation type is valid. - */ - static isValid(type) { - return (type !== 'isValid' && - type !== 'getMessage' && - Object.keys(this) - .map(key => this[key]) - .indexOf(type) !== -1); - } -} -exports.ValidationTypes = ValidationTypes; -/* system */ -ValidationTypes.CUSTOM_VALIDATION = 'customValidation'; // done -ValidationTypes.NESTED_VALIDATION = 'nestedValidation'; // done -ValidationTypes.PROMISE_VALIDATION = 'promiseValidation'; // done -ValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation'; // done -ValidationTypes.WHITELIST = 'whitelistValidation'; // done -ValidationTypes.IS_DEFINED = 'isDefined'; // done -//# sourceMappingURL=ValidationTypes.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidationTypes.js.map b/views/node_modules/class-validator/cjs/validation/ValidationTypes.js.map deleted file mode 100644 index d802886..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidationTypes.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationTypes.js","sourceRoot":"","sources":["../../../src/validation/ValidationTypes.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,eAAe;IAS1B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAY;QACzB,OAAO,CACL,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,YAAY;YACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;iBACd,GAAG,CAAC,GAAG,CAAC,EAAE,CAAE,IAAY,CAAC,GAAG,CAAC,CAAC;iBAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;IACJ,CAAC;;AApBH,0CAqBC;AApBC,YAAY;AACL,iCAAiB,GAAG,kBAAkB,CAAC,CAAC,OAAO;AAC/C,iCAAiB,GAAG,kBAAkB,CAAC,CAAC,OAAO;AAC/C,kCAAkB,GAAG,mBAAmB,CAAC,CAAC,OAAO;AACjD,sCAAsB,GAAG,uBAAuB,CAAC,CAAC,OAAO;AACzD,yBAAS,GAAG,qBAAqB,CAAC,CAAC,OAAO;AAC1C,0BAAU,GAAG,WAAW,CAAC,CAAC,OAAO","sourcesContent":["/**\n * Validation types.\n */\nexport class ValidationTypes {\n /* system */\n static CUSTOM_VALIDATION = 'customValidation'; // done\n static NESTED_VALIDATION = 'nestedValidation'; // done\n static PROMISE_VALIDATION = 'promiseValidation'; // done\n static CONDITIONAL_VALIDATION = 'conditionalValidation'; // done\n static WHITELIST = 'whitelistValidation'; // done\n static IS_DEFINED = 'isDefined'; // done\n\n /**\n * Checks if validation type is valid.\n */\n static isValid(type: string): boolean {\n return (\n type !== 'isValid' &&\n type !== 'getMessage' &&\n Object.keys(this)\n .map(key => (this as any)[key])\n .indexOf(type) !== -1\n );\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidationUtils.js b/views/node_modules/class-validator/cjs/validation/ValidationUtils.js deleted file mode 100644 index e98573c..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidationUtils.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.ValidationUtils = exports.constraintToString = void 0; -/** - * Convert the constraint to a string to be shown in an error - */ -function constraintToString(constraint) { - if (Array.isArray(constraint)) { - return constraint.join(', '); - } - return `${constraint}`; -} -exports.constraintToString = constraintToString; -class ValidationUtils { - static replaceMessageSpecialTokens(message, validationArguments) { - let messageString; - if (message instanceof Function) { - messageString = message(validationArguments); - } - else if (typeof message === 'string') { - messageString = message; - } - if (messageString && validationArguments.constraints instanceof Array) { - validationArguments.constraints.forEach((constraint, index) => { - messageString = messageString.replace(new RegExp(`\\$constraint${index + 1}`, 'g'), constraintToString(constraint)); - }); - } - if (messageString && - validationArguments.value !== undefined && - validationArguments.value !== null && - typeof validationArguments.value === 'string') - messageString = messageString.replace(/\$value/g, validationArguments.value); - if (messageString) - messageString = messageString.replace(/\$property/g, validationArguments.property); - if (messageString) - messageString = messageString.replace(/\$target/g, validationArguments.targetName); - return messageString; - } -} -exports.ValidationUtils = ValidationUtils; -//# sourceMappingURL=ValidationUtils.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidationUtils.js.map b/views/node_modules/class-validator/cjs/validation/ValidationUtils.js.map deleted file mode 100644 index d412ca1..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidationUtils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationUtils.js","sourceRoot":"","sources":["../../../src/validation/ValidationUtils.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,SAAgB,kBAAkB,CAAC,UAAmB;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC7B,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,OAAO,GAAG,UAAU,EAAE,CAAC;AACzB,CAAC;AAND,gDAMC;AAED,MAAa,eAAe;IAC1B,MAAM,CAAC,2BAA2B,CAChC,OAAyD,EACzD,mBAAwC;QAExC,IAAI,aAAqB,CAAC;QAC1B,IAAI,OAAO,YAAY,QAAQ,EAAE;YAC/B,aAAa,GAAI,OAAiD,CAAC,mBAAmB,CAAC,CAAC;SACzF;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YACtC,aAAa,GAAG,OAAO,CAAC;SACzB;QAED,IAAI,aAAa,IAAI,mBAAmB,CAAC,WAAW,YAAY,KAAK,EAAE;YACrE,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;gBAC5D,aAAa,GAAG,aAAa,CAAC,OAAO,CACnC,IAAI,MAAM,CAAC,gBAAgB,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAC5C,kBAAkB,CAAC,UAAU,CAAC,CAC/B,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QAED,IACE,aAAa;YACb,mBAAmB,CAAC,KAAK,KAAK,SAAS;YACvC,mBAAmB,CAAC,KAAK,KAAK,IAAI;YAClC,OAAO,mBAAmB,CAAC,KAAK,KAAK,QAAQ;YAE7C,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAI,aAAa;YAAE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACtG,IAAI,aAAa;YAAE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEtG,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AAjCD,0CAiCC","sourcesContent":["import { ValidationArguments } from './ValidationArguments';\n\n/**\n * Convert the constraint to a string to be shown in an error\n */\nexport function constraintToString(constraint: unknown): string {\n if (Array.isArray(constraint)) {\n return constraint.join(', ');\n }\n\n return `${constraint}`;\n}\n\nexport class ValidationUtils {\n static replaceMessageSpecialTokens(\n message: string | ((args: ValidationArguments) => string),\n validationArguments: ValidationArguments\n ): string {\n let messageString: string;\n if (message instanceof Function) {\n messageString = (message as (args: ValidationArguments) => string)(validationArguments);\n } else if (typeof message === 'string') {\n messageString = message;\n }\n\n if (messageString && validationArguments.constraints instanceof Array) {\n validationArguments.constraints.forEach((constraint, index) => {\n messageString = messageString.replace(\n new RegExp(`\\\\$constraint${index + 1}`, 'g'),\n constraintToString(constraint)\n );\n });\n }\n\n if (\n messageString &&\n validationArguments.value !== undefined &&\n validationArguments.value !== null &&\n typeof validationArguments.value === 'string'\n )\n messageString = messageString.replace(/\\$value/g, validationArguments.value);\n if (messageString) messageString = messageString.replace(/\\$property/g, validationArguments.property);\n if (messageString) messageString = messageString.replace(/\\$target/g, validationArguments.targetName);\n\n return messageString;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/Validator.js b/views/node_modules/class-validator/cjs/validation/Validator.js deleted file mode 100644 index 4ea5e57..0000000 --- a/views/node_modules/class-validator/cjs/validation/Validator.js +++ /dev/null @@ -1,56 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Validator = void 0; -const ValidationExecutor_1 = require("./ValidationExecutor"); -/** - * Validator performs validation of the given object based on its metadata. - */ -class Validator { - /** - * Performs validation of the given object based on decorators or validation schema. - */ - validate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions); - } - /** - * Performs validation of the given object based on decorators or validation schema and reject on error. - */ - async validateOrReject(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - const errors = await this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions); - if (errors.length) - return Promise.reject(errors); - } - /** - * Performs validation of the given object based on decorators or validation schema. - */ - validateSync(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - const object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName; - const options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions; - const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined; - const executor = new ValidationExecutor_1.ValidationExecutor(this, options); - executor.ignoreAsyncValidations = true; - const validationErrors = []; - executor.execute(object, schema, validationErrors); - return executor.stripEmptyErrors(validationErrors); - } - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - /** - * Performs validation of the given object based on decorators or validation schema. - * Common method for `validateOrReject` and `validate` methods. - */ - coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - const object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName; - const options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions; - const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined; - const executor = new ValidationExecutor_1.ValidationExecutor(this, options); - const validationErrors = []; - executor.execute(object, schema, validationErrors); - return Promise.all(executor.awaitingPromises).then(() => { - return executor.stripEmptyErrors(validationErrors); - }); - } -} -exports.Validator = Validator; -//# sourceMappingURL=Validator.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/Validator.js.map b/views/node_modules/class-validator/cjs/validation/Validator.js.map deleted file mode 100644 index c7559dc..0000000 --- a/views/node_modules/class-validator/cjs/validation/Validator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../../src/validation/Validator.ts"],"names":[],"mappings":";;;AAEA,6DAA0D;AAG1D;;GAEG;AACH,MAAa,SAAS;IAepB;;OAEG;IACH,QAAQ,CACN,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;QAExC,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,qBAAqB,CAAC,CAAC;IACjG,CAAC;IAYD;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;QAExC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,qBAAqB,CAAC,CAAC;QAC7G,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAaD;;OAEG;IACH,YAAY,CACV,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;QAExC,MAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAE,yBAAoC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACnH,MAAM,OAAO,GACX,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAE,yBAA+C,CAAC;QACpH,MAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvF,MAAM,QAAQ,GAAG,IAAI,uCAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACvC,MAAM,gBAAgB,GAAsB,EAAE,CAAC;QAC/C,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,4EAA4E;IAC5E,qBAAqB;IACrB,4EAA4E;IAC5E;;;OAGG;IACK,YAAY,CAClB,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;QAExC,MAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAE,yBAAoC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACnH,MAAM,OAAO,GACX,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAE,yBAA+C,CAAC;QACpH,MAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvF,MAAM,QAAQ,GAAG,IAAI,uCAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,gBAAgB,GAAsB,EAAE,CAAC;QAC/C,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACtD,OAAO,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAxGD,8BAwGC","sourcesContent":["import { ValidationError } from './ValidationError';\nimport { ValidatorOptions } from './ValidatorOptions';\nimport { ValidationExecutor } from './ValidationExecutor';\nimport { ValidationOptions } from '../decorator/ValidationOptions';\n\n/**\n * Validator performs validation of the given object based on its metadata.\n */\nexport class Validator {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Performs validation of the given object based on decorators used in given object class.\n */\n validate(object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on validation schema.\n */\n validate(schemaName: string, object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n validate(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): Promise {\n return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions);\n }\n\n /**\n * Performs validation of the given object based on decorators used in given object class and reject on error.\n */\n validateOrReject(object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on validation schema and reject on error.\n */\n validateOrReject(schemaName: string, object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on decorators or validation schema and reject on error.\n */\n async validateOrReject(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): Promise {\n const errors = await this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions);\n if (errors.length) return Promise.reject(errors);\n }\n\n /**\n * Performs validation of the given object based on decorators used in given object class.\n * NOTE: This method completely ignores all async validations.\n */\n validateSync(object: object, options?: ValidatorOptions): ValidationError[];\n\n /**\n * Performs validation of the given object based on validation schema.\n */\n validateSync(schemaName: string, object: object, options?: ValidatorOptions): ValidationError[];\n\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n validateSync(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): ValidationError[] {\n const object = typeof objectOrSchemaName === 'string' ? (objectOrValidationOptions as object) : objectOrSchemaName;\n const options =\n typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : (objectOrValidationOptions as ValidationOptions);\n const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n\n const executor = new ValidationExecutor(this, options);\n executor.ignoreAsyncValidations = true;\n const validationErrors: ValidationError[] = [];\n executor.execute(object, schema, validationErrors);\n return executor.stripEmptyErrors(validationErrors);\n }\n\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n /**\n * Performs validation of the given object based on decorators or validation schema.\n * Common method for `validateOrReject` and `validate` methods.\n */\n private coreValidate(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): Promise {\n const object = typeof objectOrSchemaName === 'string' ? (objectOrValidationOptions as object) : objectOrSchemaName;\n const options =\n typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : (objectOrValidationOptions as ValidationOptions);\n const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n\n const executor = new ValidationExecutor(this, options);\n const validationErrors: ValidationError[] = [];\n executor.execute(object, schema, validationErrors);\n\n return Promise.all(executor.awaitingPromises).then(() => {\n return executor.stripEmptyErrors(validationErrors);\n });\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidatorConstraintInterface.js b/views/node_modules/class-validator/cjs/validation/ValidatorConstraintInterface.js deleted file mode 100644 index e4f6fa7..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidatorConstraintInterface.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=ValidatorConstraintInterface.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidatorConstraintInterface.js.map b/views/node_modules/class-validator/cjs/validation/ValidatorConstraintInterface.js.map deleted file mode 100644 index acc4adf..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidatorConstraintInterface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidatorConstraintInterface.js","sourceRoot":"","sources":["../../../src/validation/ValidatorConstraintInterface.ts"],"names":[],"mappings":"","sourcesContent":["import { ValidationArguments } from './ValidationArguments';\n/**\n * Custom validators must implement this interface to provide custom validation logic.\n */\nexport interface ValidatorConstraintInterface {\n /**\n * Method to be called to perform custom validation over given value.\n */\n validate(value: any, validationArguments?: ValidationArguments): Promise | boolean;\n\n /**\n * Gets default message when validation for this constraint fail.\n */\n defaultMessage?(validationArguments?: ValidationArguments): string;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidatorOptions.js b/views/node_modules/class-validator/cjs/validation/ValidatorOptions.js deleted file mode 100644 index cc130b6..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidatorOptions.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -//# sourceMappingURL=ValidatorOptions.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/cjs/validation/ValidatorOptions.js.map b/views/node_modules/class-validator/cjs/validation/ValidatorOptions.js.map deleted file mode 100644 index 40e2172..0000000 --- a/views/node_modules/class-validator/cjs/validation/ValidatorOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidatorOptions.js","sourceRoot":"","sources":["../../../src/validation/ValidatorOptions.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Options passed to validator during validation.\n */\nexport interface ValidatorOptions {\n /**\n * If set to true then class-validator will print extra warning messages to the console when something is not right.\n */\n enableDebugMessages?: boolean;\n\n /**\n * If set to true then validator will skip validation of all properties that are undefined in the validating object.\n */\n skipUndefinedProperties?: boolean;\n\n /**\n * If set to true then validator will skip validation of all properties that are null in the validating object.\n */\n skipNullProperties?: boolean;\n\n /**\n * If set to true then validator will skip validation of all properties that are null or undefined in the validating object.\n */\n skipMissingProperties?: boolean;\n\n /**\n * If set to true validator will strip validated object of any properties that do not have any decorators.\n *\n * Tip: if no other decorator is suitable for your property use @Allow decorator.\n */\n whitelist?: boolean;\n\n /**\n * If set to true, instead of stripping non-whitelisted properties validator will throw an error\n */\n forbidNonWhitelisted?: boolean;\n\n /**\n * Groups to be used during validation of the object.\n */\n groups?: string[];\n\n /**\n * Set default for `always` option of decorators. Default can be overridden in decorator options.\n */\n always?: boolean;\n\n /**\n * If [groups]{@link ValidatorOptions#groups} is not given or is empty,\n * ignore decorators with at least one group.\n */\n strictGroups?: boolean;\n\n /**\n * If set to true, the validation will not use default messages.\n * Error message always will be undefined if its not explicitly set.\n */\n dismissDefaultMessages?: boolean;\n\n /**\n * ValidationError special options.\n */\n validationError?: {\n /**\n * Indicates if target should be exposed in ValidationError.\n */\n target?: boolean;\n\n /**\n * Indicates if validated value should be exposed in ValidationError.\n */\n value?: boolean;\n };\n\n /**\n * Settings true will cause fail validation of unknown objects.\n */\n forbidUnknownValues?: boolean;\n\n /**\n * When set to true, validation of the given property will stop after encountering the first error. Defaults to false.\n */\n stopAtFirstError?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/container.js b/views/node_modules/class-validator/esm2015/container.js deleted file mode 100644 index 42dfd94..0000000 --- a/views/node_modules/class-validator/esm2015/container.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Container to be used by this library for inversion control. If container was not implicitly set then by default - * container simply creates a new instance of the given class. - */ -const defaultContainer = new (class { - constructor() { - this.instances = []; - } - get(someClass) { - let instance = this.instances.find(instance => instance.type === someClass); - if (!instance) { - instance = { type: someClass, object: new someClass() }; - this.instances.push(instance); - } - return instance.object; - } -})(); -let userContainer; -let userContainerOptions; -/** - * Sets container to be used by this library. - */ -export function useContainer(iocContainer, options) { - userContainer = iocContainer; - userContainerOptions = options; -} -/** - * Gets the IOC container used by this library. - */ -export function getFromContainer(someClass) { - if (userContainer) { - try { - const instance = userContainer.get(someClass); - if (instance) - return instance; - if (!userContainerOptions || !userContainerOptions.fallback) - return instance; - } - catch (error) { - if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) - throw error; - } - } - return defaultContainer.get(someClass); -} -//# sourceMappingURL=container.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/container.js.map b/views/node_modules/class-validator/esm2015/container.js.map deleted file mode 100644 index f9e8d73..0000000 --- a/views/node_modules/class-validator/esm2015/container.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/container.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,MAAM,gBAAgB,GAAqE,IAAI,CAAC;IAAA;QACtF,cAAS,GAAsC,EAAE,CAAC;IAU5D,CAAC;IATC,GAAG,CAAI,SAAsC;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/B;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;CACF,CAAC,EAAE,CAAC;AAEL,IAAI,aAA+E,CAAC;AACpF,IAAI,oBAAyC,CAAC;AAE9C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,YAA0C,EAAE,OAA6B;IACpG,aAAa,GAAG,YAAY,CAAC;IAC7B,oBAAoB,GAAG,OAAO,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAI,SAAiD;IACnF,IAAI,aAAa,EAAE;QACjB,IAAI;YACF,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAE9B,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,QAAQ;gBAAE,OAAO,QAAQ,CAAC;SAC9E;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,gBAAgB;gBAAE,MAAM,KAAK,CAAC;SAClF;KACF;IACD,OAAO,gBAAgB,CAAC,GAAG,CAAI,SAAS,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["/**\n * Container options.\n */\nexport interface UseContainerOptions {\n /**\n * If set to true, then default container will be used in the case if given container haven't returned anything.\n */\n fallback?: boolean;\n\n /**\n * If set to true, then default container will be used in the case if given container thrown an exception.\n */\n fallbackOnErrors?: boolean;\n}\n\n/**\n * Container to be used by this library for inversion control. If container was not implicitly set then by default\n * container simply creates a new instance of the given class.\n */\nconst defaultContainer: { get(someClass: { new (...args: any[]): T } | Function): T } = new (class {\n private instances: { type: Function; object: any }[] = [];\n get(someClass: { new (...args: any[]): T }): T {\n let instance = this.instances.find(instance => instance.type === someClass);\n if (!instance) {\n instance = { type: someClass, object: new someClass() };\n this.instances.push(instance);\n }\n\n return instance.object;\n }\n})();\n\nlet userContainer: { get(someClass: { new (...args: any[]): T } | Function): T };\nlet userContainerOptions: UseContainerOptions;\n\n/**\n * Sets container to be used by this library.\n */\nexport function useContainer(iocContainer: { get(someClass: any): any }, options?: UseContainerOptions): void {\n userContainer = iocContainer;\n userContainerOptions = options;\n}\n\n/**\n * Gets the IOC container used by this library.\n */\nexport function getFromContainer(someClass: { new (...args: any[]): T } | Function): T {\n if (userContainer) {\n try {\n const instance = userContainer.get(someClass);\n if (instance) return instance;\n\n if (!userContainerOptions || !userContainerOptions.fallback) return instance;\n } catch (error) {\n if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) throw error;\n }\n }\n return defaultContainer.get(someClass);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/ValidationOptions.js b/views/node_modules/class-validator/esm2015/decorator/ValidationOptions.js deleted file mode 100644 index cfe207a..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/ValidationOptions.js +++ /dev/null @@ -1,7 +0,0 @@ -export function isValidationOptions(val) { - if (!val) { - return false; - } - return 'each' in val || 'message' in val || 'groups' in val || 'always' in val || 'context' in val; -} -//# sourceMappingURL=ValidationOptions.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/ValidationOptions.js.map b/views/node_modules/class-validator/esm2015/decorator/ValidationOptions.js.map deleted file mode 100644 index 6238604..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/ValidationOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationOptions.js","sourceRoot":"","sources":["../../../src/decorator/ValidationOptions.ts"],"names":[],"mappings":"AAiCA,MAAM,UAAU,mBAAmB,CAAC,GAAQ;IAC1C,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;KACd;IACD,OAAO,MAAM,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC;AACrG,CAAC","sourcesContent":["import { ValidationArguments } from '../validation/ValidationArguments';\n\n/**\n * Options used to pass to validation decorators.\n */\nexport interface ValidationOptions {\n /**\n * Specifies if validated value is an array and each of its items must be validated.\n */\n each?: boolean;\n\n /**\n * Error message to be used on validation fail.\n * Message can be either string or a function that returns a string.\n */\n message?: string | ((validationArguments: ValidationArguments) => string);\n\n /**\n * Validation groups used for this validation.\n */\n groups?: string[];\n\n /**\n * Indicates if validation must be performed always, no matter of validation groups used.\n */\n always?: boolean;\n\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n context?: any;\n}\n\nexport function isValidationOptions(val: any): val is ValidationOptions {\n if (!val) {\n return false;\n }\n return 'each' in val || 'message' in val || 'groups' in val || 'always' in val || 'context' in val;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayContains.js b/views/node_modules/class-validator/esm2015/decorator/array/ArrayContains.js deleted file mode 100644 index b852122..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayContains.js +++ /dev/null @@ -1,26 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const ARRAY_CONTAINS = 'arrayContains'; -/** - * Checks if array contains all values from the given array of values. - * If null or undefined is given then this function returns false. - */ -export function arrayContains(array, values) { - if (!(array instanceof Array)) - return false; - return values.every(value => array.indexOf(value) !== -1); -} -/** - * Checks if array contains all values from the given array of values. - * If null or undefined is given then this function returns false. - */ -export function ArrayContains(values, validationOptions) { - return ValidateBy({ - name: ARRAY_CONTAINS, - constraints: [values], - validator: { - validate: (value, args) => arrayContains(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain $constraint1 values', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=ArrayContains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayContains.js.map b/views/node_modules/class-validator/esm2015/decorator/array/ArrayContains.js.map deleted file mode 100644 index 1ea809d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayContains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayContains.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayContains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,MAAa;IACzD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAa,EAAE,iBAAqC;IAChF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7E,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,4CAA4C,EACvE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_CONTAINS = 'arrayContains';\n\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayContains(array: unknown, values: any[]): boolean {\n if (!(array instanceof Array)) return false;\n\n return values.every(value => array.indexOf(value) !== -1);\n}\n\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayContains(values: any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_CONTAINS,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => arrayContains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain $constraint1 values',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayMaxSize.js b/views/node_modules/class-validator/esm2015/decorator/array/ArrayMaxSize.js deleted file mode 100644 index 6927339..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayMaxSize.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const ARRAY_MAX_SIZE = 'arrayMaxSize'; -/** - * Checks if the array's length is less or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export function arrayMaxSize(array, max) { - return array instanceof Array && array.length <= max; -} -/** - * Checks if the array's length is less or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export function ArrayMaxSize(max, validationOptions) { - return ValidateBy({ - name: ARRAY_MAX_SIZE, - constraints: [max], - validator: { - validate: (value, args) => arrayMaxSize(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain not more than $constraint1 elements', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=ArrayMaxSize.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayMaxSize.js.map b/views/node_modules/class-validator/esm2015/decorator/array/ArrayMaxSize.js.map deleted file mode 100644 index b9abe66..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayMaxSize.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayMaxSize.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayMaxSize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,GAAW;IACtD,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,iBAAqC;IAC7E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5E,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,4DAA4D,EACvF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_MAX_SIZE = 'arrayMaxSize';\n\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMaxSize(array: unknown, max: number): boolean {\n return array instanceof Array && array.length <= max;\n}\n\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMaxSize(max: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_MAX_SIZE,\n constraints: [max],\n validator: {\n validate: (value, args): boolean => arrayMaxSize(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain not more than $constraint1 elements',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayMinSize.js b/views/node_modules/class-validator/esm2015/decorator/array/ArrayMinSize.js deleted file mode 100644 index 492fc4d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayMinSize.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const ARRAY_MIN_SIZE = 'arrayMinSize'; -/** - * Checks if the array's length is greater than or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export function arrayMinSize(array, min) { - return array instanceof Array && array.length >= min; -} -/** - * Checks if the array's length is greater than or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export function ArrayMinSize(min, validationOptions) { - return ValidateBy({ - name: ARRAY_MIN_SIZE, - constraints: [min], - validator: { - validate: (value, args) => arrayMinSize(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain at least $constraint1 elements', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=ArrayMinSize.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayMinSize.js.map b/views/node_modules/class-validator/esm2015/decorator/array/ArrayMinSize.js.map deleted file mode 100644 index 458cdf2..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayMinSize.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayMinSize.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayMinSize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,GAAW;IACtD,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,iBAAqC;IAC7E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5E,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uDAAuD,EAClF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_MIN_SIZE = 'arrayMinSize';\n\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMinSize(array: unknown, min: number): boolean {\n return array instanceof Array && array.length >= min;\n}\n\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMinSize(min: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_MIN_SIZE,\n constraints: [min],\n validator: {\n validate: (value, args): boolean => arrayMinSize(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain at least $constraint1 elements',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotContains.js b/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotContains.js deleted file mode 100644 index 15dc016..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotContains.js +++ /dev/null @@ -1,26 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const ARRAY_NOT_CONTAINS = 'arrayNotContains'; -/** - * Checks if array does not contain any of the given values. - * If null or undefined is given then this function returns false. - */ -export function arrayNotContains(array, values) { - if (!(array instanceof Array)) - return false; - return values.every(value => array.indexOf(value) === -1); -} -/** - * Checks if array does not contain any of the given values. - * If null or undefined is given then this function returns false. - */ -export function ArrayNotContains(values, validationOptions) { - return ValidateBy({ - name: ARRAY_NOT_CONTAINS, - constraints: [values], - validator: { - validate: (value, args) => arrayNotContains(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not contain $constraint1 values', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=ArrayNotContains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotContains.js.map b/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotContains.js.map deleted file mode 100644 index fc72172..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotContains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayNotContains.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayNotContains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,MAAa;IAC5D,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAa,EAAE,iBAAqC;IACnF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAChF,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kDAAkD,EAC7E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_NOT_CONTAINS = 'arrayNotContains';\n\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotContains(array: unknown, values: any[]): boolean {\n if (!(array instanceof Array)) return false;\n\n return values.every(value => array.indexOf(value) === -1);\n}\n\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotContains(values: any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_NOT_CONTAINS,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => arrayNotContains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not contain $constraint1 values',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotEmpty.js b/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotEmpty.js deleted file mode 100644 index 067f27a..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotEmpty.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const ARRAY_NOT_EMPTY = 'arrayNotEmpty'; -/** - * Checks if given array is not empty. - * If null or undefined is given then this function returns false. - */ -export function arrayNotEmpty(array) { - return array instanceof Array && array.length > 0; -} -/** - * Checks if given array is not empty. - * If null or undefined is given then this function returns false. - */ -export function ArrayNotEmpty(validationOptions) { - return ValidateBy({ - name: ARRAY_NOT_EMPTY, - validator: { - validate: (value, args) => arrayNotEmpty(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=ArrayNotEmpty.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotEmpty.js.map b/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotEmpty.js.map deleted file mode 100644 index 4d9bf31..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayNotEmpty.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayNotEmpty.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayNotEmpty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,iBAAqC;IACjE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;YACxD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+BAA+B,EAAE,iBAAiB,CAAC;SAC5G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_NOT_EMPTY = 'arrayNotEmpty';\n\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotEmpty(array: unknown): boolean {\n return array instanceof Array && array.length > 0;\n}\n\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotEmpty(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_NOT_EMPTY,\n validator: {\n validate: (value, args): boolean => arrayNotEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayUnique.js b/views/node_modules/class-validator/esm2015/decorator/array/ArrayUnique.js deleted file mode 100644 index 8b3dfab..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayUnique.js +++ /dev/null @@ -1,31 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const ARRAY_UNIQUE = 'arrayUnique'; -/** - * Checks if all array's values are unique. Comparison for objects is reference-based. - * If null or undefined is given then this function returns false. - */ -export function arrayUnique(array, identifier) { - if (!(array instanceof Array)) - return false; - if (identifier) { - array = array.map(o => (o != null ? identifier(o) : o)); - } - const uniqueItems = array.filter((a, b, c) => c.indexOf(a) === b); - return array.length === uniqueItems.length; -} -/** - * Checks if all array's values are unique. Comparison for objects is reference-based. - * If null or undefined is given then this function returns false. - */ -export function ArrayUnique(identifierOrOptions, validationOptions) { - const identifier = typeof identifierOrOptions === 'function' ? identifierOrOptions : undefined; - const options = typeof identifierOrOptions !== 'function' ? identifierOrOptions : validationOptions; - return ValidateBy({ - name: ARRAY_UNIQUE, - validator: { - validate: (value, args) => arrayUnique(value, identifier), - defaultMessage: buildMessage(eachPrefix => eachPrefix + "All $property's elements must be unique", options), - }, - }, options); -} -//# sourceMappingURL=ArrayUnique.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/array/ArrayUnique.js.map b/views/node_modules/class-validator/esm2015/decorator/array/ArrayUnique.js.map deleted file mode 100644 index 4763925..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/array/ArrayUnique.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayUnique.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayUnique.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAG1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,UAAkC;IAC9E,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,IAAI,UAAU,EAAE;QACd,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACzD;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,mBAAkE,EAClE,iBAAqC;IAErC,MAAM,UAAU,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,OAAO,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEpG,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC;YAClE,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,yCAAyC,EAAE,OAAO,CAAC;SAC5G;KACF,EACD,OAAO,CACR,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_UNIQUE = 'arrayUnique';\nexport type ArrayUniqueIdentifier = (o: T) => any;\n\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayUnique(array: unknown[], identifier?: ArrayUniqueIdentifier): boolean {\n if (!(array instanceof Array)) return false;\n\n if (identifier) {\n array = array.map(o => (o != null ? identifier(o) : o));\n }\n\n const uniqueItems = array.filter((a, b, c) => c.indexOf(a) === b);\n return array.length === uniqueItems.length;\n}\n\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayUnique(\n identifierOrOptions?: ArrayUniqueIdentifier | ValidationOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n const identifier = typeof identifierOrOptions === 'function' ? identifierOrOptions : undefined;\n const options = typeof identifierOrOptions !== 'function' ? identifierOrOptions : validationOptions;\n\n return ValidateBy(\n {\n name: ARRAY_UNIQUE,\n validator: {\n validate: (value, args): boolean => arrayUnique(value, identifier),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + \"All $property's elements must be unique\", options),\n },\n },\n options\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/Allow.js b/views/node_modules/class-validator/esm2015/decorator/common/Allow.js deleted file mode 100644 index f443eff..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/Allow.js +++ /dev/null @@ -1,18 +0,0 @@ -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -/** - * If object has both allowed and not allowed properties a validation error will be thrown. - */ -export function Allow(validationOptions) { - return function (object, propertyName) { - const args = { - type: ValidationTypes.WHITELIST, - target: object.constructor, - propertyName: propertyName, - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=Allow.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/Allow.js.map b/views/node_modules/class-validator/esm2015/decorator/common/Allow.js.map deleted file mode 100644 index c28ee40..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/Allow.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Allow.js","sourceRoot":"","sources":["../../../../src/decorator/common/Allow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,SAAS;YAC/B,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * If object has both allowed and not allowed properties a validation error will be thrown.\n */\nexport function Allow(validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.WHITELIST,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/Equals.js b/views/node_modules/class-validator/esm2015/decorator/common/Equals.js deleted file mode 100644 index f06b2d6..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/Equals.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const EQUALS = 'equals'; -/** - * Checks if value matches ("===") the comparison. - */ -export function equals(value, comparison) { - return value === comparison; -} -/** - * Checks if value matches ("===") the comparison. - */ -export function Equals(comparison, validationOptions) { - return ValidateBy({ - name: EQUALS, - constraints: [comparison], - validator: { - validate: (value, args) => equals(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be equal to $constraint1', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Equals.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/Equals.js.map b/views/node_modules/class-validator/esm2015/decorator/common/Equals.js.map deleted file mode 100644 index c984951..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/Equals.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Equals.js","sourceRoot":"","sources":["../../../../src/decorator/common/Equals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,UAAmB;IACxD,OAAO,KAAK,KAAK,UAAU,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,UAAe,EAAE,iBAAqC;IAC3E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,yCAAyC,EACpE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const EQUALS = 'equals';\n\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function equals(value: unknown, comparison: unknown): boolean {\n return value === comparison;\n}\n\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function Equals(comparison: any, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: EQUALS,\n constraints: [comparison],\n validator: {\n validate: (value, args): boolean => equals(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be equal to $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsDefined.js b/views/node_modules/class-validator/esm2015/decorator/common/IsDefined.js deleted file mode 100644 index fc4d0ab..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsDefined.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from './ValidateBy'; -import { ValidationTypes } from '../../validation/ValidationTypes'; -// isDefined is (yet) a special case -export const IS_DEFINED = ValidationTypes.IS_DEFINED; -/** - * Checks if value is defined (!== undefined, !== null). - */ -export function isDefined(value) { - return value !== undefined && value !== null; -} -/** - * Checks if value is defined (!== undefined, !== null). - */ -export function IsDefined(validationOptions) { - return ValidateBy({ - name: IS_DEFINED, - validator: { - validate: (value) => isDefined(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be null or undefined', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDefined.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsDefined.js.map b/views/node_modules/class-validator/esm2015/decorator/common/IsDefined.js.map deleted file mode 100644 index e31e7b1..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsDefined.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDefined.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsDefined.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,oCAAoC;AACpC,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAU;IAClC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YAC9C,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,2CAA2C,EACtE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\n\n// isDefined is (yet) a special case\nexport const IS_DEFINED = ValidationTypes.IS_DEFINED;\n\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function isDefined(value: any): boolean {\n return value !== undefined && value !== null;\n}\n\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function IsDefined(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DEFINED,\n validator: {\n validate: (value): boolean => isDefined(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not be null or undefined',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsEmpty.js b/views/node_modules/class-validator/esm2015/decorator/common/IsEmpty.js deleted file mode 100644 index cba22a7..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsEmpty.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_EMPTY = 'isEmpty'; -/** - * Checks if given value is empty (=== '', === null, === undefined). - */ -export function isEmpty(value) { - return value === '' || value === null || value === undefined; -} -/** - * Checks if given value is empty (=== '', === null, === undefined). - */ -export function IsEmpty(validationOptions) { - return ValidateBy({ - name: IS_EMPTY, - validator: { - validate: (value, args) => isEmpty(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be empty', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsEmpty.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsEmpty.js.map b/views/node_modules/class-validator/esm2015/decorator/common/IsEmpty.js.map deleted file mode 100644 index 17c9030..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsEmpty.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEmpty.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsEmpty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,iBAAqC;IAC3D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAClD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,yBAAyB,EAAE,iBAAiB,CAAC;SACtG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_EMPTY = 'isEmpty';\n\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function isEmpty(value: unknown): boolean {\n return value === '' || value === null || value === undefined;\n}\n\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function IsEmpty(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_EMPTY,\n validator: {\n validate: (value, args): boolean => isEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be empty', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsIn.js b/views/node_modules/class-validator/esm2015/decorator/common/IsIn.js deleted file mode 100644 index 3a76ebe..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsIn.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_IN = 'isIn'; -/** - * Checks if given value is in a array of allowed values. - */ -export function isIn(value, possibleValues) { - return !(possibleValues instanceof Array) || possibleValues.some(possibleValue => possibleValue === value); -} -/** - * Checks if given value is in a array of allowed values. - */ -export function IsIn(values, validationOptions) { - return ValidateBy({ - name: IS_IN, - constraints: [values], - validator: { - validate: (value, args) => isIn(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be one of the following values: $constraint1', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsIn.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsIn.js.map b/views/node_modules/class-validator/esm2015/decorator/common/IsIn.js.map deleted file mode 100644 index d0eaebd..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsIn.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIn.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsIn.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC;AAE5B;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,KAAc,EAAE,cAAkC;IACrE,OAAO,CAAC,CAAC,cAAc,YAAY,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC;AAC7G,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,MAAsB,EAAE,iBAAqC;IAChF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACpE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,6DAA6D,EACxF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_IN = 'isIn';\n\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function isIn(value: unknown, possibleValues: readonly unknown[]): boolean {\n return !(possibleValues instanceof Array) || possibleValues.some(possibleValue => possibleValue === value);\n}\n\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function IsIn(values: readonly any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IN,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => isIn(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be one of the following values: $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsLatLong.js b/views/node_modules/class-validator/esm2015/decorator/common/IsLatLong.js deleted file mode 100644 index 9f78f5a..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsLatLong.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from './ValidateBy'; -import isLatLongValidator from 'validator/lib/isLatLong'; -export const IS_LATLONG = 'isLatLong'; -/** - * Checks if a value is string in format a "latitude,longitude". - */ -export function isLatLong(value) { - return typeof value === 'string' && isLatLongValidator(value); -} -/** - * Checks if a value is string in format a "latitude,longitude". - */ -export function IsLatLong(validationOptions) { - return ValidateBy({ - name: IS_LATLONG, - validator: { - validate: (value, args) => isLatLong(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a latitude,longitude string', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsLatLong.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsLatLong.js.map b/views/node_modules/class-validator/esm2015/decorator/common/IsLatLong.js.map deleted file mode 100644 index 4cc250d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsLatLong.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLatLong.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsLatLong.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACpD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+CAA+C,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport isLatLongValidator from 'validator/lib/isLatLong';\n\nexport const IS_LATLONG = 'isLatLong';\n\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function isLatLong(value: string): boolean {\n return typeof value === 'string' && isLatLongValidator(value);\n}\n\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function IsLatLong(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LATLONG,\n validator: {\n validate: (value, args): boolean => isLatLong(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a latitude,longitude string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsLatitude.js b/views/node_modules/class-validator/esm2015/decorator/common/IsLatitude.js deleted file mode 100644 index 575ff96..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsLatitude.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from './ValidateBy'; -import { isLatLong } from './IsLatLong'; -export const IS_LATITUDE = 'isLatitude'; -/** - * Checks if a given value is a latitude. - */ -export function isLatitude(value) { - return (typeof value === 'number' || typeof value === 'string') && isLatLong(`${value},0`); -} -/** - * Checks if a given value is a latitude. - */ -export function IsLatitude(validationOptions) { - return ValidateBy({ - name: IS_LATITUDE, - validator: { - validate: (value, args) => isLatitude(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a latitude string or number', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsLatitude.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsLatitude.js.map b/views/node_modules/class-validator/esm2015/decorator/common/IsLatitude.js.map deleted file mode 100644 index fef6987..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsLatitude.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLatitude.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsLatitude.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,SAAS,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;AAC7F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+CAA+C,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\n\nexport const IS_LATITUDE = 'isLatitude';\n\n/**\n * Checks if a given value is a latitude.\n */\nexport function isLatitude(value: string): boolean {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(`${value},0`);\n}\n\n/**\n * Checks if a given value is a latitude.\n */\nexport function IsLatitude(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LATITUDE,\n validator: {\n validate: (value, args): boolean => isLatitude(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a latitude string or number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsLongitude.js b/views/node_modules/class-validator/esm2015/decorator/common/IsLongitude.js deleted file mode 100644 index 6737f78..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsLongitude.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from './ValidateBy'; -import { isLatLong } from './IsLatLong'; -export const IS_LONGITUDE = 'isLongitude'; -/** - * Checks if a given value is a longitude. - */ -export function isLongitude(value) { - return (typeof value === 'number' || typeof value === 'string') && isLatLong(`0,${value}`); -} -/** - * Checks if a given value is a longitude. - */ -export function IsLongitude(validationOptions) { - return ValidateBy({ - name: IS_LONGITUDE, - validator: { - validate: (value, args) => isLongitude(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a longitude string or number', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsLongitude.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsLongitude.js.map b/views/node_modules/class-validator/esm2015/decorator/common/IsLongitude.js.map deleted file mode 100644 index baf799f..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsLongitude.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLongitude.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsLongitude.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,SAAS,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AAC7F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\n\nexport const IS_LONGITUDE = 'isLongitude';\n\n/**\n * Checks if a given value is a longitude.\n */\nexport function isLongitude(value: string): boolean {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(`0,${value}`);\n}\n\n/**\n * Checks if a given value is a longitude.\n */\nexport function IsLongitude(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LONGITUDE,\n validator: {\n validate: (value, args): boolean => isLongitude(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a longitude string or number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsNotEmpty.js b/views/node_modules/class-validator/esm2015/decorator/common/IsNotEmpty.js deleted file mode 100644 index 9be59a9..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsNotEmpty.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_NOT_EMPTY = 'isNotEmpty'; -/** - * Checks if given value is not empty (!== '', !== null, !== undefined). - */ -export function isNotEmpty(value) { - return value !== '' && value !== null && value !== undefined; -} -/** - * Checks if given value is not empty (!== '', !== null, !== undefined). - */ -export function IsNotEmpty(validationOptions) { - return ValidateBy({ - name: IS_NOT_EMPTY, - validator: { - validate: (value, args) => isNotEmpty(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNotEmpty.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsNotEmpty.js.map b/views/node_modules/class-validator/esm2015/decorator/common/IsNotEmpty.js.map deleted file mode 100644 index 0bb538f..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsNotEmpty.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNotEmpty.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsNotEmpty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+BAA+B,EAAE,iBAAiB,CAAC;SAC5G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NOT_EMPTY = 'isNotEmpty';\n\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function isNotEmpty(value: unknown): boolean {\n return value !== '' && value !== null && value !== undefined;\n}\n\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function IsNotEmpty(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NOT_EMPTY,\n validator: {\n validate: (value, args): boolean => isNotEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsNotIn.js b/views/node_modules/class-validator/esm2015/decorator/common/IsNotIn.js deleted file mode 100644 index 377354d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsNotIn.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_NOT_IN = 'isNotIn'; -/** - * Checks if given value not in a array of allowed values. - */ -export function isNotIn(value, possibleValues) { - return !(possibleValues instanceof Array) || !possibleValues.some(possibleValue => possibleValue === value); -} -/** - * Checks if given value not in a array of allowed values. - */ -export function IsNotIn(values, validationOptions) { - return ValidateBy({ - name: IS_NOT_IN, - constraints: [values], - validator: { - validate: (value, args) => isNotIn(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be one of the following values: $constraint1', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNotIn.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsNotIn.js.map b/views/node_modules/class-validator/esm2015/decorator/common/IsNotIn.js.map deleted file mode 100644 index 19903eb..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsNotIn.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNotIn.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsNotIn.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,SAAS,GAAG,SAAS,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,cAAkC;IACxE,OAAO,CAAC,CAAC,cAAc,YAAY,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC;AAC9G,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,MAAsB,EAAE,iBAAqC;IACnF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,mEAAmE,EAC9F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NOT_IN = 'isNotIn';\n\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function isNotIn(value: unknown, possibleValues: readonly unknown[]): boolean {\n return !(possibleValues instanceof Array) || !possibleValues.some(possibleValue => possibleValue === value);\n}\n\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function IsNotIn(values: readonly any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NOT_IN,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => isNotIn(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not be one of the following values: $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsOptional.js b/views/node_modules/class-validator/esm2015/decorator/common/IsOptional.js deleted file mode 100644 index 4de1e9d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsOptional.js +++ /dev/null @@ -1,23 +0,0 @@ -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -/** - * Checks if value is missing and if so, ignores all validators. - */ -export function IsOptional(validationOptions) { - return function (object, propertyName) { - const args = { - type: ValidationTypes.CONDITIONAL_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraints: [ - (object, value) => { - return object[propertyName] !== null && object[propertyName] !== undefined; - }, - ], - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=IsOptional.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/IsOptional.js.map b/views/node_modules/class-validator/esm2015/decorator/common/IsOptional.js.map deleted file mode 100644 index 8e94a78..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/IsOptional.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsOptional.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsOptional.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,sBAAsB;YAC5C,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE;gBACX,CAAC,MAAW,EAAE,KAAU,EAAW,EAAE;oBACnC,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC;gBAC7E,CAAC;aACF;YACD,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Checks if value is missing and if so, ignores all validators.\n */\nexport function IsOptional(validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [\n (object: any, value: any): boolean => {\n return object[propertyName] !== null && object[propertyName] !== undefined;\n },\n ],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/NotEquals.js b/views/node_modules/class-validator/esm2015/decorator/common/NotEquals.js deleted file mode 100644 index b7ca7d2..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/NotEquals.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const NOT_EQUALS = 'notEquals'; -/** - * Checks if value does not match ("!==") the comparison. - */ -export function notEquals(value, comparison) { - return value !== comparison; -} -/** - * Checks if value does not match ("!==") the comparison. - */ -export function NotEquals(comparison, validationOptions) { - return ValidateBy({ - name: NOT_EQUALS, - constraints: [comparison], - validator: { - validate: (value, args) => notEquals(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be equal to $constraint1', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=NotEquals.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/NotEquals.js.map b/views/node_modules/class-validator/esm2015/decorator/common/NotEquals.js.map deleted file mode 100644 index 60db9b1..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/NotEquals.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NotEquals.js","sourceRoot":"","sources":["../../../../src/decorator/common/NotEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,UAAmB;IAC3D,OAAO,KAAK,KAAK,UAAU,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,UAAe,EAAE,iBAAqC;IAC9E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACzE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+CAA+C,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const NOT_EQUALS = 'notEquals';\n\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function notEquals(value: unknown, comparison: unknown): boolean {\n return value !== comparison;\n}\n\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function NotEquals(comparison: any, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: NOT_EQUALS,\n constraints: [comparison],\n validator: {\n validate: (value, args): boolean => notEquals(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not be equal to $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/Validate.js b/views/node_modules/class-validator/esm2015/decorator/common/Validate.js deleted file mode 100644 index cfd671e..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/Validate.js +++ /dev/null @@ -1,37 +0,0 @@ -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ConstraintMetadata } from '../../metadata/ConstraintMetadata'; -/** - * Registers custom validator class. - */ -export function ValidatorConstraint(options) { - return function (target) { - const isAsync = options && options.async; - let name = options && options.name ? options.name : ''; - if (!name) { - name = target.name; - if (!name) - // generate name if it was not given - name = name.replace(/\.?([A-Z]+)/g, (x, y) => '_' + y.toLowerCase()).replace(/^_/, ''); - } - const metadata = new ConstraintMetadata(target, name, isAsync); - getMetadataStorage().addConstraintMetadata(metadata); - }; -} -export function Validate(constraintClass, constraintsOrValidationOptions, maybeValidationOptions) { - return function (object, propertyName) { - const args = { - type: ValidationTypes.CUSTOM_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraintCls: constraintClass, - constraints: constraintsOrValidationOptions instanceof Array ? constraintsOrValidationOptions : undefined, - validationOptions: !(constraintsOrValidationOptions instanceof Array) - ? constraintsOrValidationOptions - : maybeValidationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=Validate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/Validate.js.map b/views/node_modules/class-validator/esm2015/decorator/common/Validate.js.map deleted file mode 100644 index 65e5194..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/Validate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Validate.js","sourceRoot":"","sources":["../../../../src/decorator/common/Validate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA4C;IAC9E,OAAO,UAAU,MAAgB;QAC/B,MAAM,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;QACzC,IAAI,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAI,MAAc,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,IAAI;gBACP,oCAAoC;gBACpC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAI,CAAY,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACtG;QACD,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/D,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AAYD,MAAM,UAAU,QAAQ,CACtB,eAAyB,EACzB,8BAA0D,EAC1D,sBAA0C;IAE1C,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,iBAAiB;YACvC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,aAAa,EAAE,eAAe;YAC9B,WAAW,EAAE,8BAA8B,YAAY,KAAK,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,SAAS;YACzG,iBAAiB,EAAE,CAAC,CAAC,8BAA8B,YAAY,KAAK,CAAC;gBACnE,CAAC,CAAC,8BAA8B;gBAChC,CAAC,CAAC,sBAAsB;SAC3B,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ConstraintMetadata } from '../../metadata/ConstraintMetadata';\n\n/**\n * Registers custom validator class.\n */\nexport function ValidatorConstraint(options?: { name?: string; async?: boolean }) {\n return function (target: Function): void {\n const isAsync = options && options.async;\n let name = options && options.name ? options.name : '';\n if (!name) {\n name = (target as any).name;\n if (!name)\n // generate name if it was not given\n name = name.replace(/\\.?([A-Z]+)/g, (x, y) => '_' + (y as string).toLowerCase()).replace(/^_/, '');\n }\n const metadata = new ConstraintMetadata(target, name, isAsync);\n getMetadataStorage().addConstraintMetadata(metadata);\n };\n}\n\n/**\n * Performs validation based on the given custom validation class.\n * Validation class must be decorated with ValidatorConstraint decorator.\n */\nexport function Validate(constraintClass: Function, validationOptions?: ValidationOptions): PropertyDecorator;\nexport function Validate(\n constraintClass: Function,\n constraints?: any[],\n validationOptions?: ValidationOptions\n): PropertyDecorator;\nexport function Validate(\n constraintClass: Function,\n constraintsOrValidationOptions?: any[] | ValidationOptions,\n maybeValidationOptions?: ValidationOptions\n): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.CUSTOM_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraintCls: constraintClass,\n constraints: constraintsOrValidationOptions instanceof Array ? constraintsOrValidationOptions : undefined,\n validationOptions: !(constraintsOrValidationOptions instanceof Array)\n ? constraintsOrValidationOptions\n : maybeValidationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/ValidateBy.js b/views/node_modules/class-validator/esm2015/decorator/common/ValidateBy.js deleted file mode 100644 index d48b3e7..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/ValidateBy.js +++ /dev/null @@ -1,20 +0,0 @@ -import { registerDecorator } from '../../register-decorator'; -export function buildMessage(impl, validationOptions) { - return (validationArguments) => { - const eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : ''; - return impl(eachPrefix, validationArguments); - }; -} -export function ValidateBy(options, validationOptions) { - return function (object, propertyName) { - registerDecorator({ - name: options.name, - target: object.constructor, - propertyName: propertyName, - options: validationOptions, - constraints: options.constraints, - validator: options.validator, - }); - }; -} -//# sourceMappingURL=ValidateBy.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/ValidateBy.js.map b/views/node_modules/class-validator/esm2015/decorator/common/ValidateBy.js.map deleted file mode 100644 index 5aedfa1..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/ValidateBy.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidateBy.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidateBy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAW7D,MAAM,UAAU,YAAY,CAC1B,IAAgE,EAChE,iBAAqC;IAErC,OAAO,CAAC,mBAAyC,EAAU,EAAE;QAC3D,MAAM,UAAU,GAAG,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,OAAO,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAA0B,EAAE,iBAAqC;IAC1F,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,iBAAiB,CAAC;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { registerDecorator } from '../../register-decorator';\nimport { ValidationArguments } from '../../validation/ValidationArguments';\nimport { ValidatorConstraintInterface } from '../../validation/ValidatorConstraintInterface';\n\nexport interface ValidateByOptions {\n name: string;\n constraints?: any[];\n validator: ValidatorConstraintInterface | Function;\n async?: boolean;\n}\n\nexport function buildMessage(\n impl: (eachPrefix: string, args?: ValidationArguments) => string,\n validationOptions?: ValidationOptions\n): (validationArguments?: ValidationArguments) => string {\n return (validationArguments?: ValidationArguments): string => {\n const eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : '';\n return impl(eachPrefix, validationArguments);\n };\n}\n\nexport function ValidateBy(options: ValidateByOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n registerDecorator({\n name: options.name,\n target: object.constructor,\n propertyName: propertyName,\n options: validationOptions,\n constraints: options.constraints,\n validator: options.validator,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/ValidateIf.js b/views/node_modules/class-validator/esm2015/decorator/common/ValidateIf.js deleted file mode 100644 index a4fc4e7..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/ValidateIf.js +++ /dev/null @@ -1,19 +0,0 @@ -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -/** - * Ignores the other validators on a property when the provided condition function returns false. - */ -export function ValidateIf(condition, validationOptions) { - return function (object, propertyName) { - const args = { - type: ValidationTypes.CONDITIONAL_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraints: [condition], - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=ValidateIf.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/ValidateIf.js.map b/views/node_modules/class-validator/esm2015/decorator/common/ValidateIf.js.map deleted file mode 100644 index 3c366fe..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/ValidateIf.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidateIf.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidateIf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,SAA+C,EAC/C,iBAAqC;IAErC,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,sBAAsB;YAC5C,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,CAAC,SAAS,CAAC;YACxB,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Ignores the other validators on a property when the provided condition function returns false.\n */\nexport function ValidateIf(\n condition: (object: any, value: any) => boolean,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [condition],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/ValidateNested.js b/views/node_modules/class-validator/esm2015/decorator/common/ValidateNested.js deleted file mode 100644 index 6e29fd5..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/ValidateNested.js +++ /dev/null @@ -1,21 +0,0 @@ -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -/** - * Objects / object arrays marked with this decorator will also be validated. - */ -export function ValidateNested(validationOptions) { - const opts = { ...validationOptions }; - const eachPrefix = opts.each ? 'each value in ' : ''; - opts.message = opts.message || eachPrefix + 'nested property $property must be either object or array'; - return function (object, propertyName) { - const args = { - type: ValidationTypes.NESTED_VALIDATION, - target: object.constructor, - propertyName: propertyName, - validationOptions: opts, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=ValidateNested.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/ValidateNested.js.map b/views/node_modules/class-validator/esm2015/decorator/common/ValidateNested.js.map deleted file mode 100644 index 430e181..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/ValidateNested.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidateNested.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidateNested.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,iBAAqC;IAClE,MAAM,IAAI,GAAsB,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,UAAU,GAAG,0DAA0D,CAAC;IAEvG,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,iBAAiB;YACvC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,iBAAiB,EAAE,IAAI;SACxB,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Objects / object arrays marked with this decorator will also be validated.\n */\nexport function ValidateNested(validationOptions?: ValidationOptions): PropertyDecorator {\n const opts: ValidationOptions = { ...validationOptions };\n const eachPrefix = opts.each ? 'each value in ' : '';\n opts.message = opts.message || eachPrefix + 'nested property $property must be either object or array';\n\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.NESTED_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: opts,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/ValidatePromise.js b/views/node_modules/class-validator/esm2015/decorator/common/ValidatePromise.js deleted file mode 100644 index b14158d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/ValidatePromise.js +++ /dev/null @@ -1,18 +0,0 @@ -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -/** - * Resolve promise before validation - */ -export function ValidatePromise(validationOptions) { - return function (object, propertyName) { - const args = { - type: ValidationTypes.PROMISE_VALIDATION, - target: object.constructor, - propertyName: propertyName, - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=ValidatePromise.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/common/ValidatePromise.js.map b/views/node_modules/class-validator/esm2015/decorator/common/ValidatePromise.js.map deleted file mode 100644 index aab10aa..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/common/ValidatePromise.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidatePromise.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidatePromise.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,iBAAqC;IACnE,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,MAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,kBAAkB;YACxC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Resolve promise before validation\n */\nexport function ValidatePromise(validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.PROMISE_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/date/MaxDate.js b/views/node_modules/class-validator/esm2015/decorator/date/MaxDate.js deleted file mode 100644 index c09ac8d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/date/MaxDate.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const MAX_DATE = 'maxDate'; -/** - * Checks if the value is a date that's before the specified date. - */ -export function maxDate(date, maxDate) { - return date instanceof Date && date.getTime() <= maxDate.getTime(); -} -/** - * Checks if the value is a date that's after the specified date. - */ -export function MaxDate(date, validationOptions) { - return ValidateBy({ - name: MAX_DATE, - constraints: [date], - validator: { - validate: (value, args) => maxDate(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => 'maximal allowed date for ' + eachPrefix + '$property is $constraint1', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=MaxDate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/date/MaxDate.js.map b/views/node_modules/class-validator/esm2015/decorator/date/MaxDate.js.map deleted file mode 100644 index d582377..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/date/MaxDate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MaxDate.js","sourceRoot":"","sources":["../../../../src/decorator/date/MaxDate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAa,EAAE,OAAa;IAClD,OAAO,IAAI,YAAY,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAU,EAAE,iBAAqC;IACvE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,2BAA2B,GAAG,UAAU,GAAG,2BAA2B,EACpF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MAX_DATE = 'maxDate';\n\n/**\n * Checks if the value is a date that's before the specified date.\n */\nexport function maxDate(date: unknown, maxDate: Date): boolean {\n return date instanceof Date && date.getTime() <= maxDate.getTime();\n}\n\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MaxDate(date: Date, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MAX_DATE,\n constraints: [date],\n validator: {\n validate: (value, args): boolean => maxDate(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => 'maximal allowed date for ' + eachPrefix + '$property is $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/date/MinDate.js b/views/node_modules/class-validator/esm2015/decorator/date/MinDate.js deleted file mode 100644 index 19854d6..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/date/MinDate.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const MIN_DATE = 'minDate'; -/** - * Checks if the value is a date that's after the specified date. - */ -export function minDate(date, minDate) { - return date instanceof Date && date.getTime() >= minDate.getTime(); -} -/** - * Checks if the value is a date that's after the specified date. - */ -export function MinDate(date, validationOptions) { - return ValidateBy({ - name: MIN_DATE, - constraints: [date], - validator: { - validate: (value, args) => minDate(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => 'minimal allowed date for ' + eachPrefix + '$property is $constraint1', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=MinDate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/date/MinDate.js.map b/views/node_modules/class-validator/esm2015/decorator/date/MinDate.js.map deleted file mode 100644 index 44058a4..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/date/MinDate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MinDate.js","sourceRoot":"","sources":["../../../../src/decorator/date/MinDate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAa,EAAE,OAAa;IAClD,OAAO,IAAI,YAAY,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAU,EAAE,iBAAqC;IACvE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,2BAA2B,GAAG,UAAU,GAAG,2BAA2B,EACpF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MIN_DATE = 'minDate';\n\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function minDate(date: unknown, minDate: Date): boolean {\n return date instanceof Date && date.getTime() >= minDate.getTime();\n}\n\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MinDate(date: Date, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MIN_DATE,\n constraints: [date],\n validator: {\n validate: (value, args): boolean => minDate(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => 'minimal allowed date for ' + eachPrefix + '$property is $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/decorators.js b/views/node_modules/class-validator/esm2015/decorator/decorators.js deleted file mode 100644 index 8e32354..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/decorators.js +++ /dev/null @@ -1,131 +0,0 @@ -// ------------------------------------------------------------------------- -// System -// ------------------------------------------------------------------------- -// ------------------------------------------------------------------------- -// Common checkers -// ------------------------------------------------------------------------- -export * from './common/Allow'; -export * from './common/IsDefined'; -export * from './common/IsOptional'; -export * from './common/Validate'; -export * from './common/ValidateBy'; -export * from './common/ValidateIf'; -export * from './common/ValidateNested'; -export * from './common/ValidatePromise'; -export * from './common/IsLatLong'; -export * from './common/IsLatitude'; -export * from './common/IsLongitude'; -export * from './common/Equals'; -export * from './common/NotEquals'; -export * from './common/IsEmpty'; -export * from './common/IsNotEmpty'; -export * from './common/IsIn'; -export * from './common/IsNotIn'; -// ------------------------------------------------------------------------- -// Number checkers -// ------------------------------------------------------------------------- -export * from './number/IsDivisibleBy'; -export * from './number/IsPositive'; -export * from './number/IsNegative'; -export * from './number/Max'; -export * from './number/Min'; -// ------------------------------------------------------------------------- -// Date checkers -// ------------------------------------------------------------------------- -export * from './date/MinDate'; -export * from './date/MaxDate'; -// ------------------------------------------------------------------------- -// String checkers -// ------------------------------------------------------------------------- -export * from './string/Contains'; -export * from './string/NotContains'; -export * from './string/IsAlpha'; -export * from './string/IsAlphanumeric'; -export * from './string/IsDecimal'; -export * from './string/IsAscii'; -export * from './string/IsBase64'; -export * from './string/IsByteLength'; -export * from './string/IsCreditCard'; -export * from './string/IsCurrency'; -export * from './string/IsEmail'; -export * from './string/IsFQDN'; -export * from './string/IsFullWidth'; -export * from './string/IsHalfWidth'; -export * from './string/IsVariableWidth'; -export * from './string/IsHexColor'; -export * from './string/IsHexadecimal'; -export * from './string/IsMacAddress'; -export * from './string/IsIP'; -export * from './string/IsPort'; -export * from './string/IsISBN'; -export * from './string/IsISIN'; -export * from './string/IsISO8601'; -export * from './string/IsJSON'; -export * from './string/IsJWT'; -export * from './string/IsLowercase'; -export * from './string/IsMobilePhone'; -export * from './string/IsISO31661Alpha2'; -export * from './string/IsISO31661Alpha3'; -export * from './string/IsMongoId'; -export * from './string/IsMultibyte'; -export * from './string/IsSurrogatePair'; -export * from './string/IsUrl'; -export * from './string/IsUUID'; -export * from './string/IsFirebasePushId'; -export * from './string/IsUppercase'; -export * from './string/Length'; -export * from './string/MaxLength'; -export * from './string/MinLength'; -export * from './string/Matches'; -export * from './string/IsPhoneNumber'; -export * from './string/IsMilitaryTime'; -export * from './string/IsHash'; -export * from './string/IsISSN'; -export * from './string/IsDateString'; -export * from './string/IsBooleanString'; -export * from './string/IsNumberString'; -export * from './string/IsBase32'; -export * from './string/IsBIC'; -export * from './string/IsBtcAddress'; -export * from './string/IsDataURI'; -export * from './string/IsEAN'; -export * from './string/IsEthereumAddress'; -export * from './string/IsHSL'; -export * from './string/IsIBAN'; -export * from './string/IsIdentityCard'; -export * from './string/IsISRC'; -export * from './string/IsLocale'; -export * from './string/IsMagnetURI'; -export * from './string/IsMimeType'; -export * from './string/IsOctal'; -export * from './string/IsPassportNumber'; -export * from './string/IsPostalCode'; -export * from './string/IsRFC3339'; -export * from './string/IsRgbColor'; -export * from './string/IsSemVer'; -// ------------------------------------------------------------------------- -// Type checkers -// ------------------------------------------------------------------------- -export * from './typechecker/IsBoolean'; -export * from './typechecker/IsDate'; -export * from './typechecker/IsNumber'; -export * from './typechecker/IsEnum'; -export * from './typechecker/IsInt'; -export * from './typechecker/IsString'; -export * from './typechecker/IsArray'; -export * from './typechecker/IsObject'; -// ------------------------------------------------------------------------- -// Array checkers -// ------------------------------------------------------------------------- -export * from './array/ArrayContains'; -export * from './array/ArrayNotContains'; -export * from './array/ArrayNotEmpty'; -export * from './array/ArrayMinSize'; -export * from './array/ArrayMaxSize'; -export * from './array/ArrayUnique'; -// ------------------------------------------------------------------------- -// Object checkers -// ------------------------------------------------------------------------- -export * from './object/IsNotEmptyObject'; -export * from './object/IsInstance'; -//# sourceMappingURL=decorators.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/decorators.js.map b/views/node_modules/class-validator/esm2015/decorator/decorators.js.map deleted file mode 100644 index 4409bf0..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/decorators.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/decorator/decorators.ts"],"names":[],"mappings":"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","sourcesContent":["// -------------------------------------------------------------------------\n// System\n// -------------------------------------------------------------------------\n\n// -------------------------------------------------------------------------\n// Common checkers\n// -------------------------------------------------------------------------\n\nexport * from './common/Allow';\nexport * from './common/IsDefined';\nexport * from './common/IsOptional';\nexport * from './common/Validate';\nexport * from './common/ValidateBy';\nexport * from './common/ValidateIf';\nexport * from './common/ValidateNested';\nexport * from './common/ValidatePromise';\nexport * from './common/IsLatLong';\nexport * from './common/IsLatitude';\nexport * from './common/IsLongitude';\nexport * from './common/Equals';\nexport * from './common/NotEquals';\nexport * from './common/IsEmpty';\nexport * from './common/IsNotEmpty';\nexport * from './common/IsIn';\nexport * from './common/IsNotIn';\n\n// -------------------------------------------------------------------------\n// Number checkers\n// -------------------------------------------------------------------------\n\nexport * from './number/IsDivisibleBy';\nexport * from './number/IsPositive';\nexport * from './number/IsNegative';\nexport * from './number/Max';\nexport * from './number/Min';\n\n// -------------------------------------------------------------------------\n// Date checkers\n// -------------------------------------------------------------------------\n\nexport * from './date/MinDate';\nexport * from './date/MaxDate';\n\n// -------------------------------------------------------------------------\n// String checkers\n// -------------------------------------------------------------------------\n\nexport * from './string/Contains';\nexport * from './string/NotContains';\nexport * from './string/IsAlpha';\nexport * from './string/IsAlphanumeric';\nexport * from './string/IsDecimal';\nexport * from './string/IsAscii';\nexport * from './string/IsBase64';\nexport * from './string/IsByteLength';\nexport * from './string/IsCreditCard';\nexport * from './string/IsCurrency';\nexport * from './string/IsEmail';\nexport * from './string/IsFQDN';\nexport * from './string/IsFullWidth';\nexport * from './string/IsHalfWidth';\nexport * from './string/IsVariableWidth';\nexport * from './string/IsHexColor';\nexport * from './string/IsHexadecimal';\nexport * from './string/IsMacAddress';\nexport * from './string/IsIP';\nexport * from './string/IsPort';\nexport * from './string/IsISBN';\nexport * from './string/IsISIN';\nexport * from './string/IsISO8601';\nexport * from './string/IsJSON';\nexport * from './string/IsJWT';\nexport * from './string/IsLowercase';\nexport * from './string/IsMobilePhone';\nexport * from './string/IsISO31661Alpha2';\nexport * from './string/IsISO31661Alpha3';\nexport * from './string/IsMongoId';\nexport * from './string/IsMultibyte';\nexport * from './string/IsSurrogatePair';\nexport * from './string/IsUrl';\nexport * from './string/IsUUID';\nexport * from './string/IsFirebasePushId';\nexport * from './string/IsUppercase';\nexport * from './string/Length';\nexport * from './string/MaxLength';\nexport * from './string/MinLength';\nexport * from './string/Matches';\nexport * from './string/IsPhoneNumber';\nexport * from './string/IsMilitaryTime';\nexport * from './string/IsHash';\nexport * from './string/IsISSN';\nexport * from './string/IsDateString';\nexport * from './string/IsBooleanString';\nexport * from './string/IsNumberString';\nexport * from './string/IsBase32';\nexport * from './string/IsBIC';\nexport * from './string/IsBtcAddress';\nexport * from './string/IsDataURI';\nexport * from './string/IsEAN';\nexport * from './string/IsEthereumAddress';\nexport * from './string/IsHSL';\nexport * from './string/IsIBAN';\nexport * from './string/IsIdentityCard';\nexport * from './string/IsISRC';\nexport * from './string/IsLocale';\nexport * from './string/IsMagnetURI';\nexport * from './string/IsMimeType';\nexport * from './string/IsOctal';\nexport * from './string/IsPassportNumber';\nexport * from './string/IsPostalCode';\nexport * from './string/IsRFC3339';\nexport * from './string/IsRgbColor';\nexport * from './string/IsSemVer';\n\n// -------------------------------------------------------------------------\n// Type checkers\n// -------------------------------------------------------------------------\n\nexport * from './typechecker/IsBoolean';\nexport * from './typechecker/IsDate';\nexport * from './typechecker/IsNumber';\nexport * from './typechecker/IsEnum';\nexport * from './typechecker/IsInt';\nexport * from './typechecker/IsString';\nexport * from './typechecker/IsArray';\nexport * from './typechecker/IsObject';\n\n// -------------------------------------------------------------------------\n// Array checkers\n// -------------------------------------------------------------------------\n\nexport * from './array/ArrayContains';\nexport * from './array/ArrayNotContains';\nexport * from './array/ArrayNotEmpty';\nexport * from './array/ArrayMinSize';\nexport * from './array/ArrayMaxSize';\nexport * from './array/ArrayUnique';\n\n// -------------------------------------------------------------------------\n// Object checkers\n// -------------------------------------------------------------------------\n\nexport * from './object/IsNotEmptyObject';\nexport * from './object/IsInstance';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/number/IsDivisibleBy.js b/views/node_modules/class-validator/esm2015/decorator/number/IsDivisibleBy.js deleted file mode 100644 index 2ec710d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/number/IsDivisibleBy.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isDivisibleByValidator from 'validator/lib/isDivisibleBy'; -export const IS_DIVISIBLE_BY = 'isDivisibleBy'; -/** - * Checks if value is a number that's divisible by another. - */ -export function isDivisibleBy(value, num) { - return typeof value === 'number' && typeof num === 'number' && isDivisibleByValidator(String(value), num); -} -/** - * Checks if value is a number that's divisible by another. - */ -export function IsDivisibleBy(num, validationOptions) { - return ValidateBy({ - name: IS_DIVISIBLE_BY, - constraints: [num], - validator: { - validate: (value, args) => isDivisibleBy(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be divisible by $constraint1', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDivisibleBy.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/number/IsDivisibleBy.js.map b/views/node_modules/class-validator/esm2015/decorator/number/IsDivisibleBy.js.map deleted file mode 100644 index c3958df..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/number/IsDivisibleBy.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDivisibleBy.js","sourceRoot":"","sources":["../../../../src/decorator/number/IsDivisibleBy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AAEjE,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,GAAW;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5G,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,iBAAqC;IAC9E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7E,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,6CAA6C,EACxE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDivisibleByValidator from 'validator/lib/isDivisibleBy';\n\nexport const IS_DIVISIBLE_BY = 'isDivisibleBy';\n\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function isDivisibleBy(value: unknown, num: number): boolean {\n return typeof value === 'number' && typeof num === 'number' && isDivisibleByValidator(String(value), num);\n}\n\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function IsDivisibleBy(num: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DIVISIBLE_BY,\n constraints: [num],\n validator: {\n validate: (value, args): boolean => isDivisibleBy(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be divisible by $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/number/IsNegative.js b/views/node_modules/class-validator/esm2015/decorator/number/IsNegative.js deleted file mode 100644 index 60b5e27..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/number/IsNegative.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_NEGATIVE = 'isNegative'; -/** - * Checks if the value is a negative number smaller than zero. - */ -export function isNegative(value) { - return typeof value === 'number' && value < 0; -} -/** - * Checks if the value is a negative number smaller than zero. - */ -export function IsNegative(validationOptions) { - return ValidateBy({ - name: IS_NEGATIVE, - validator: { - validate: (value, args) => isNegative(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a negative number', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNegative.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/number/IsNegative.js.map b/views/node_modules/class-validator/esm2015/decorator/number/IsNegative.js.map deleted file mode 100644 index 7513b47..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/number/IsNegative.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNegative.js","sourceRoot":"","sources":["../../../../src/decorator/number/IsNegative.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,qCAAqC,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NEGATIVE = 'isNegative';\n\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function isNegative(value: unknown): boolean {\n return typeof value === 'number' && value < 0;\n}\n\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function IsNegative(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NEGATIVE,\n validator: {\n validate: (value, args): boolean => isNegative(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a negative number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/number/IsPositive.js b/views/node_modules/class-validator/esm2015/decorator/number/IsPositive.js deleted file mode 100644 index e5c14ae..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/number/IsPositive.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_POSITIVE = 'isPositive'; -/** - * Checks if the value is a positive number greater than zero. - */ -export function isPositive(value) { - return typeof value === 'number' && value > 0; -} -/** - * Checks if the value is a positive number greater than zero. - */ -export function IsPositive(validationOptions) { - return ValidateBy({ - name: IS_POSITIVE, - validator: { - validate: (value, args) => isPositive(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a positive number', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsPositive.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/number/IsPositive.js.map b/views/node_modules/class-validator/esm2015/decorator/number/IsPositive.js.map deleted file mode 100644 index 1d4ba41..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/number/IsPositive.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPositive.js","sourceRoot":"","sources":["../../../../src/decorator/number/IsPositive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,qCAAqC,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_POSITIVE = 'isPositive';\n\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function isPositive(value: unknown): boolean {\n return typeof value === 'number' && value > 0;\n}\n\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function IsPositive(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_POSITIVE,\n validator: {\n validate: (value, args): boolean => isPositive(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a positive number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/number/Max.js b/views/node_modules/class-validator/esm2015/decorator/number/Max.js deleted file mode 100644 index 8a45044..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/number/Max.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const MAX = 'max'; -/** - * Checks if the first number is less than or equal to the second. - */ -export function max(num, max) { - return typeof num === 'number' && typeof max === 'number' && num <= max; -} -/** - * Checks if the first number is less than or equal to the second. - */ -export function Max(maxValue, validationOptions) { - return ValidateBy({ - name: MAX, - constraints: [maxValue], - validator: { - validate: (value, args) => max(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must not be greater than $constraint1', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Max.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/number/Max.js.map b/views/node_modules/class-validator/esm2015/decorator/number/Max.js.map deleted file mode 100644 index c0b6d4d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/number/Max.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Max.js","sourceRoot":"","sources":["../../../../src/decorator/number/Max.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;AAEzB;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,GAAY,EAAE,GAAW;IAC3C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,iBAAqC;IACzE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,CAAC,QAAQ,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACnE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iDAAiD,EAC5E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MAX = 'max';\n\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function max(num: unknown, max: number): boolean {\n return typeof num === 'number' && typeof max === 'number' && num <= max;\n}\n\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function Max(maxValue: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MAX,\n constraints: [maxValue],\n validator: {\n validate: (value, args): boolean => max(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must not be greater than $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/number/Min.js b/views/node_modules/class-validator/esm2015/decorator/number/Min.js deleted file mode 100644 index 18be626..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/number/Min.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const MIN = 'min'; -/** - * Checks if the first number is greater than or equal to the second. - */ -export function min(num, min) { - return typeof num === 'number' && typeof min === 'number' && num >= min; -} -/** - * Checks if the first number is greater than or equal to the second. - */ -export function Min(minValue, validationOptions) { - return ValidateBy({ - name: MIN, - constraints: [minValue], - validator: { - validate: (value, args) => min(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must not be less than $constraint1', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Min.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/number/Min.js.map b/views/node_modules/class-validator/esm2015/decorator/number/Min.js.map deleted file mode 100644 index aa599c5..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/number/Min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Min.js","sourceRoot":"","sources":["../../../../src/decorator/number/Min.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,CAAC;AAEzB;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,GAAY,EAAE,GAAW;IAC3C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,iBAAqC;IACzE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,CAAC,QAAQ,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACnE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,8CAA8C,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MIN = 'min';\n\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function min(num: unknown, min: number): boolean {\n return typeof num === 'number' && typeof min === 'number' && num >= min;\n}\n\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function Min(minValue: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MIN,\n constraints: [minValue],\n validator: {\n validate: (value, args): boolean => min(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must not be less than $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/object/IsInstance.js b/views/node_modules/class-validator/esm2015/decorator/object/IsInstance.js deleted file mode 100644 index 5f97871..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/object/IsInstance.js +++ /dev/null @@ -1,29 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_INSTANCE = 'isInstance'; -/** - * Checks if the value is an instance of the specified object. - */ -export function isInstance(object, targetTypeConstructor) { - return (targetTypeConstructor && typeof targetTypeConstructor === 'function' && object instanceof targetTypeConstructor); -} -/** - * Checks if the value is an instance of the specified object. - */ -export function IsInstance(targetType, validationOptions) { - return ValidateBy({ - name: IS_INSTANCE, - constraints: [targetType], - validator: { - validate: (value, args) => isInstance(value, args.constraints[0]), - defaultMessage: buildMessage((eachPrefix, args) => { - if (args.constraints[0]) { - return eachPrefix + `$property must be an instance of ${args.constraints[0].name}`; - } - else { - return eachPrefix + `${IS_INSTANCE} decorator expects and object as value, but got falsy value.`; - } - }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsInstance.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/object/IsInstance.js.map b/views/node_modules/class-validator/esm2015/decorator/object/IsInstance.js.map deleted file mode 100644 index 098a3c1..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/object/IsInstance.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsInstance.js","sourceRoot":"","sources":["../../../../src/decorator/object/IsInstance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAe,EAAE,qBAAkD;IAC5F,OAAO,CACL,qBAAqB,IAAI,OAAO,qBAAqB,KAAK,UAAU,IAAI,MAAM,YAAY,qBAAqB,CAChH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,UAAuC,EACvC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1E,cAAc,EAAE,YAAY,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;gBAChD,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;oBACvB,OAAO,UAAU,GAAG,oCAAoC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAc,EAAE,CAAC;iBAC9F;qBAAM;oBACL,OAAO,UAAU,GAAG,GAAG,WAAW,8DAA8D,CAAC;iBAClG;YACH,CAAC,EAAE,iBAAiB,CAAC;SACtB;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_INSTANCE = 'isInstance';\n\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function isInstance(object: unknown, targetTypeConstructor: new (...args: any[]) => any): boolean {\n return (\n targetTypeConstructor && typeof targetTypeConstructor === 'function' && object instanceof targetTypeConstructor\n );\n}\n\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function IsInstance(\n targetType: new (...args: any[]) => any,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_INSTANCE,\n constraints: [targetType],\n validator: {\n validate: (value, args): boolean => isInstance(value, args.constraints[0]),\n defaultMessage: buildMessage((eachPrefix, args) => {\n if (args.constraints[0]) {\n return eachPrefix + `$property must be an instance of ${args.constraints[0].name as string}`;\n } else {\n return eachPrefix + `${IS_INSTANCE} decorator expects and object as value, but got falsy value.`;\n }\n }, validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/object/IsNotEmptyObject.js b/views/node_modules/class-validator/esm2015/decorator/object/IsNotEmptyObject.js deleted file mode 100644 index dfb281f..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/object/IsNotEmptyObject.js +++ /dev/null @@ -1,36 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import { isObject } from '../typechecker/IsObject'; -export const IS_NOT_EMPTY_OBJECT = 'isNotEmptyObject'; -/** - * Checks if the value is valid Object & not empty. - * Returns false if the value is not an object or an empty valid object. - */ -export function isNotEmptyObject(value, options) { - if (!isObject(value)) { - return false; - } - if ((options === null || options === void 0 ? void 0 : options.nullable) === true) { - return !Object.values(value).every(propertyValue => propertyValue === null || propertyValue === undefined); - } - for (const key in value) { - if (value.hasOwnProperty(key)) { - return true; - } - } - return false; -} -/** - * Checks if the value is valid Object & not empty. - * Returns false if the value is not an object or an empty valid object. - */ -export function IsNotEmptyObject(options, validationOptions) { - return ValidateBy({ - name: IS_NOT_EMPTY_OBJECT, - constraints: [options], - validator: { - validate: (value, args) => isNotEmptyObject(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a non-empty object', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNotEmptyObject.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/object/IsNotEmptyObject.js.map b/views/node_modules/class-validator/esm2015/decorator/object/IsNotEmptyObject.js.map deleted file mode 100644 index fe3c7f3..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/object/IsNotEmptyObject.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNotEmptyObject.js","sourceRoot":"","sources":["../../../../src/decorator/object/IsNotEmptyObject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,OAAgC;IAC/E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACpB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,MAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,CAAC,CAAC;KAC5G;IAED,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;QACvB,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAgC,EAChC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAChF,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,sCAAsC,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { isObject } from '../typechecker/IsObject';\n\nexport const IS_NOT_EMPTY_OBJECT = 'isNotEmptyObject';\n\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function isNotEmptyObject(value: unknown, options?: { nullable?: boolean }): boolean {\n if (!isObject(value)) {\n return false;\n }\n\n if (options?.nullable === true) {\n return !Object.values(value).every(propertyValue => propertyValue === null || propertyValue === undefined);\n }\n\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function IsNotEmptyObject(\n options?: { nullable?: boolean },\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NOT_EMPTY_OBJECT,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isNotEmptyObject(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a non-empty object',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/Contains.js b/views/node_modules/class-validator/esm2015/decorator/string/Contains.js deleted file mode 100644 index 6ed8fb3..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/Contains.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import containsValidator from 'validator/lib/contains'; -export const CONTAINS = 'contains'; -/** - * Checks if the string contains the seed. - * If given value is not a string, then it returns false. - */ -export function contains(value, seed) { - return typeof value === 'string' && containsValidator(value, seed); -} -/** - * Checks if the string contains the seed. - * If given value is not a string, then it returns false. - */ -export function Contains(seed, validationOptions) { - return ValidateBy({ - name: CONTAINS, - constraints: [seed], - validator: { - validate: (value, args) => contains(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain a $constraint1 string', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Contains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/Contains.js.map b/views/node_modules/class-validator/esm2015/decorator/string/Contains.js.map deleted file mode 100644 index 9bc3e9d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/Contains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Contains.js","sourceRoot":"","sources":["../../../../src/decorator/string/Contains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;AAEnC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc,EAAE,IAAY;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,iBAAqC;IAC1E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACxE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,8CAA8C,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\n\nexport const CONTAINS = 'contains';\n\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function contains(value: unknown, seed: string): boolean {\n return typeof value === 'string' && containsValidator(value, seed);\n}\n\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function Contains(seed: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: CONTAINS,\n constraints: [seed],\n validator: {\n validate: (value, args): boolean => contains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a $constraint1 string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsAlpha.js b/views/node_modules/class-validator/esm2015/decorator/string/IsAlpha.js deleted file mode 100644 index 95a198c..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsAlpha.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isAlphaValidator from 'validator/lib/isAlpha'; -export const IS_ALPHA = 'isAlpha'; -/** - * Checks if the string contains only letters (a-zA-Z). - * If given value is not a string, then it returns false. - */ -export function isAlpha(value, locale) { - return typeof value === 'string' && isAlphaValidator(value, locale); -} -/** - * Checks if the string contains only letters (a-zA-Z). - * If given value is not a string, then it returns false. - */ -export function IsAlpha(locale, validationOptions) { - return ValidateBy({ - name: IS_ALPHA, - constraints: [locale], - validator: { - validate: (value, args) => isAlpha(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain only letters (a-zA-Z)', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsAlpha.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsAlpha.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsAlpha.js.map deleted file mode 100644 index 0a100cb..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsAlpha.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsAlpha.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsAlpha.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAGrD,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,MAAgC;IACtE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,MAAe,EAAE,iBAAqC;IAC5E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,8CAA8C,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphaValidator from 'validator/lib/isAlpha';\nimport ValidatorJS from 'validator';\n\nexport const IS_ALPHA = 'isAlpha';\n\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function isAlpha(value: unknown, locale?: ValidatorJS.AlphaLocale): boolean {\n return typeof value === 'string' && isAlphaValidator(value, locale);\n}\n\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function IsAlpha(locale?: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ALPHA,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isAlpha(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain only letters (a-zA-Z)',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsAlphanumeric.js b/views/node_modules/class-validator/esm2015/decorator/string/IsAlphanumeric.js deleted file mode 100644 index b53c263..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsAlphanumeric.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isAlphanumericValidator from 'validator/lib/isAlphanumeric'; -export const IS_ALPHANUMERIC = 'isAlphanumeric'; -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -export function isAlphanumeric(value, locale) { - return typeof value === 'string' && isAlphanumericValidator(value, locale); -} -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -export function IsAlphanumeric(locale, validationOptions) { - return ValidateBy({ - name: IS_ALPHANUMERIC, - constraints: [locale], - validator: { - validate: (value, args) => isAlphanumeric(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain only letters and numbers', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsAlphanumeric.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsAlphanumeric.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsAlphanumeric.js.map deleted file mode 100644 index 157ea34..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsAlphanumeric.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsAlphanumeric.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsAlphanumeric.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAGnE,MAAM,CAAC,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,MAAuC;IACpF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe,EAAE,iBAAqC;IACnF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9E,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iDAAiD,EAC5E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphanumericValidator from 'validator/lib/isAlphanumeric';\nimport ValidatorJS from 'validator';\n\nexport const IS_ALPHANUMERIC = 'isAlphanumeric';\n\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function isAlphanumeric(value: unknown, locale?: ValidatorJS.AlphanumericLocale): boolean {\n return typeof value === 'string' && isAlphanumericValidator(value, locale);\n}\n\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsAlphanumeric(locale?: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ALPHANUMERIC,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isAlphanumeric(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain only letters and numbers',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsAscii.js b/views/node_modules/class-validator/esm2015/decorator/string/IsAscii.js deleted file mode 100644 index 39b1503..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsAscii.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isAsciiValidator from 'validator/lib/isAscii'; -export const IS_ASCII = 'isAscii'; -/** - * Checks if the string contains ASCII chars only. - * If given value is not a string, then it returns false. - */ -export function isAscii(value) { - return typeof value === 'string' && isAsciiValidator(value); -} -/** - * Checks if the string contains ASCII chars only. - * If given value is not a string, then it returns false. - */ -export function IsAscii(validationOptions) { - return ValidateBy({ - name: IS_ASCII, - validator: { - validate: (value, args) => isAscii(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain only ASCII characters', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsAscii.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsAscii.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsAscii.js.map deleted file mode 100644 index 5600ec0..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsAscii.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsAscii.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsAscii.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,iBAAqC;IAC3D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAClD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,8CAA8C,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAsciiValidator from 'validator/lib/isAscii';\n\nexport const IS_ASCII = 'isAscii';\n\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function isAscii(value: unknown): boolean {\n return typeof value === 'string' && isAsciiValidator(value);\n}\n\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function IsAscii(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ASCII,\n validator: {\n validate: (value, args): boolean => isAscii(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain only ASCII characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsBIC.js b/views/node_modules/class-validator/esm2015/decorator/string/IsBIC.js deleted file mode 100644 index 84bafec..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsBIC.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isBICValidator from 'validator/lib/isBIC'; -export const IS_BIC = 'isBIC'; -/** - * Check if a string is a BIC (Bank Identification Code) or SWIFT code. - * If given value is not a string, then it returns false. - */ -export function isBIC(value) { - return typeof value === 'string' && isBICValidator(value); -} -/** - * Check if a string is a BIC (Bank Identification Code) or SWIFT code. - * If given value is not a string, then it returns false. - */ -export function IsBIC(validationOptions) { - return ValidateBy({ - name: IS_BIC, - validator: { - validate: (value, args) => isBIC(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a BIC or SWIFT code', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBIC.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsBIC.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsBIC.js.map deleted file mode 100644 index 31c237a..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsBIC.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBIC.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBIC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uCAAuC,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBICValidator from 'validator/lib/isBIC';\n\nexport const IS_BIC = 'isBIC';\n\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function isBIC(value: unknown): boolean {\n return typeof value === 'string' && isBICValidator(value);\n}\n\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function IsBIC(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BIC,\n validator: {\n validate: (value, args): boolean => isBIC(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a BIC or SWIFT code',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsBase32.js b/views/node_modules/class-validator/esm2015/decorator/string/IsBase32.js deleted file mode 100644 index 834a8e3..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsBase32.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isBase32Validator from 'validator/lib/isBase32'; -export const IS_BASE32 = 'isBase32'; -/** - * Checks if a string is base32 encoded. - * If given value is not a string, then it returns false. - */ -export function isBase32(value) { - return typeof value === 'string' && isBase32Validator(value); -} -/** - * Check if a string is base32 encoded. - * If given value is not a string, then it returns false. - */ -export function IsBase32(validationOptions) { - return ValidateBy({ - name: IS_BASE32, - validator: { - validate: (value, args) => isBase32(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be base32 encoded', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBase32.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsBase32.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsBase32.js.map deleted file mode 100644 index 6b520b7..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsBase32.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBase32.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBase32.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kCAAkC,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase32Validator from 'validator/lib/isBase32';\n\nexport const IS_BASE32 = 'isBase32';\n\n/**\n * Checks if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase32(value: unknown): boolean {\n return typeof value === 'string' && isBase32Validator(value);\n}\n\n/**\n * Check if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase32(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BASE32,\n validator: {\n validate: (value, args): boolean => isBase32(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be base32 encoded', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsBase64.js b/views/node_modules/class-validator/esm2015/decorator/string/IsBase64.js deleted file mode 100644 index 1bbdb5d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsBase64.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isBase64Validator from 'validator/lib/isBase64'; -export const IS_BASE64 = 'isBase64'; -/** - * Checks if a string is base64 encoded. - * If given value is not a string, then it returns false. - */ -export function isBase64(value) { - return typeof value === 'string' && isBase64Validator(value); -} -/** - * Checks if a string is base64 encoded. - * If given value is not a string, then it returns false. - */ -export function IsBase64(validationOptions) { - return ValidateBy({ - name: IS_BASE64, - validator: { - validate: (value, args) => isBase64(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be base64 encoded', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBase64.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsBase64.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsBase64.js.map deleted file mode 100644 index ea74f88..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsBase64.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBase64.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBase64.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kCAAkC,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase64Validator from 'validator/lib/isBase64';\n\nexport const IS_BASE64 = 'isBase64';\n\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase64(value: unknown): boolean {\n return typeof value === 'string' && isBase64Validator(value);\n}\n\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase64(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BASE64,\n validator: {\n validate: (value, args): boolean => isBase64(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be base64 encoded', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsBooleanString.js b/views/node_modules/class-validator/esm2015/decorator/string/IsBooleanString.js deleted file mode 100644 index 235c3c7..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsBooleanString.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isBooleanValidator from 'validator/lib/isBoolean'; -export const IS_BOOLEAN_STRING = 'isBooleanString'; -/** - * Checks if a string is a boolean. - * If given value is not a string, then it returns false. - */ -export function isBooleanString(value) { - return typeof value === 'string' && isBooleanValidator(value); -} -/** - * Checks if a string is a boolean. - * If given value is not a string, then it returns false. - */ -export function IsBooleanString(validationOptions) { - return ValidateBy({ - name: IS_BOOLEAN_STRING, - validator: { - validate: (value, args) => isBooleanString(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a boolean string', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBooleanString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsBooleanString.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsBooleanString.js.map deleted file mode 100644 index 741dd3b..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsBooleanString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBooleanString.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBooleanString.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,iBAAqC;IACnE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;YAC1D,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oCAAoC,EAC/D,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBooleanValidator from 'validator/lib/isBoolean';\n\nexport const IS_BOOLEAN_STRING = 'isBooleanString';\n\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function isBooleanString(value: unknown): boolean {\n return typeof value === 'string' && isBooleanValidator(value);\n}\n\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function IsBooleanString(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BOOLEAN_STRING,\n validator: {\n validate: (value, args): boolean => isBooleanString(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a boolean string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsBtcAddress.js b/views/node_modules/class-validator/esm2015/decorator/string/IsBtcAddress.js deleted file mode 100644 index 21683b6..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsBtcAddress.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isBtcAddressValidator from 'validator/lib/isBtcAddress'; -export const IS_BTC_ADDRESS = 'isBtcAddress'; -/** - * Check if the string is a valid BTC address. - * If given value is not a string, then it returns false. - */ -export function isBtcAddress(value) { - return typeof value === 'string' && isBtcAddressValidator(value); -} -/** - * Check if the string is a valid BTC address. - * If given value is not a string, then it returns false. - */ -export function IsBtcAddress(validationOptions) { - return ValidateBy({ - name: IS_BTC_ADDRESS, - validator: { - validate: (value, args) => isBtcAddress(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a BTC address', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBtcAddress.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsBtcAddress.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsBtcAddress.js.map deleted file mode 100644 index 58438fb..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsBtcAddress.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBtcAddress.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBtcAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,iBAAqC;IAChE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;YACvD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBtcAddressValidator from 'validator/lib/isBtcAddress';\n\nexport const IS_BTC_ADDRESS = 'isBtcAddress';\n\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function isBtcAddress(value: unknown): boolean {\n return typeof value === 'string' && isBtcAddressValidator(value);\n}\n\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function IsBtcAddress(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BTC_ADDRESS,\n validator: {\n validate: (value, args): boolean => isBtcAddress(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a BTC address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsByteLength.js b/views/node_modules/class-validator/esm2015/decorator/string/IsByteLength.js deleted file mode 100644 index a70a31f..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsByteLength.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isByteLengthValidator from 'validator/lib/isByteLength'; -export const IS_BYTE_LENGTH = 'isByteLength'; -/** - * Checks if the string's length (in bytes) falls in a range. - * If given value is not a string, then it returns false. - */ -export function isByteLength(value, min, max) { - return typeof value === 'string' && isByteLengthValidator(value, { min, max }); -} -/** - * Checks if the string's length (in bytes) falls in a range. - * If given value is not a string, then it returns false. - */ -export function IsByteLength(min, max, validationOptions) { - return ValidateBy({ - name: IS_BYTE_LENGTH, - constraints: [min, max], - validator: { - validate: (value, args) => isByteLength(value, args.constraints[0], args.constraints[1]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + "$property's byte length must fall into ($constraint1, $constraint2) range", validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsByteLength.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsByteLength.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsByteLength.js.map deleted file mode 100644 index 65fdbca..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsByteLength.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsByteLength.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsByteLength.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,GAAW,EAAE,GAAY;IACpE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACjF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,GAAY,EAAE,iBAAqC;IAC3F,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACjG,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,2EAA2E,EACtG,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isByteLengthValidator from 'validator/lib/isByteLength';\n\nexport const IS_BYTE_LENGTH = 'isByteLength';\n\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function isByteLength(value: unknown, min: number, max?: number): boolean {\n return typeof value === 'string' && isByteLengthValidator(value, { min, max });\n}\n\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function IsByteLength(min: number, max?: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BYTE_LENGTH,\n constraints: [min, max],\n validator: {\n validate: (value, args): boolean => isByteLength(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + \"$property's byte length must fall into ($constraint1, $constraint2) range\",\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsCreditCard.js b/views/node_modules/class-validator/esm2015/decorator/string/IsCreditCard.js deleted file mode 100644 index b1cff8d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsCreditCard.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isCreditCardValidator from 'validator/lib/isCreditCard'; -export const IS_CREDIT_CARD = 'isCreditCard'; -/** - * Checks if the string is a credit card. - * If given value is not a string, then it returns false. - */ -export function isCreditCard(value) { - return typeof value === 'string' && isCreditCardValidator(value); -} -/** - * Checks if the string is a credit card. - * If given value is not a string, then it returns false. - */ -export function IsCreditCard(validationOptions) { - return ValidateBy({ - name: IS_CREDIT_CARD, - validator: { - validate: (value, args) => isCreditCard(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a credit card', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsCreditCard.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsCreditCard.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsCreditCard.js.map deleted file mode 100644 index 6cfc2bf..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsCreditCard.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsCreditCard.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsCreditCard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,iBAAqC;IAChE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;YACvD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCreditCardValidator from 'validator/lib/isCreditCard';\n\nexport const IS_CREDIT_CARD = 'isCreditCard';\n\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function isCreditCard(value: unknown): boolean {\n return typeof value === 'string' && isCreditCardValidator(value);\n}\n\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function IsCreditCard(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_CREDIT_CARD,\n validator: {\n validate: (value, args): boolean => isCreditCard(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a credit card', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsCurrency.js b/views/node_modules/class-validator/esm2015/decorator/string/IsCurrency.js deleted file mode 100644 index c2d083e..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsCurrency.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isCurrencyValidator from 'validator/lib/isCurrency'; -export const IS_CURRENCY = 'isCurrency'; -/** - * Checks if the string is a valid currency amount. - * If given value is not a string, then it returns false. - */ -export function isCurrency(value, options) { - return typeof value === 'string' && isCurrencyValidator(value, options); -} -/** - * Checks if the string is a valid currency amount. - * If given value is not a string, then it returns false. - */ -export function IsCurrency(options, validationOptions) { - return ValidateBy({ - name: IS_CURRENCY, - constraints: [options], - validator: { - validate: (value, args) => isCurrency(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a currency', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsCurrency.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsCurrency.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsCurrency.js.map deleted file mode 100644 index 9e8eab7..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsCurrency.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsCurrency.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsCurrency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAG3D,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AAExC;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,OAAuC;IAChF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,OAAuC,EACvC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1E,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,8BAA8B,EAAE,iBAAiB,CAAC;SAC3G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCurrencyValidator from 'validator/lib/isCurrency';\nimport ValidatorJS from 'validator';\n\nexport const IS_CURRENCY = 'isCurrency';\n\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function isCurrency(value: unknown, options?: ValidatorJS.IsCurrencyOptions): boolean {\n return typeof value === 'string' && isCurrencyValidator(value, options);\n}\n\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function IsCurrency(\n options?: ValidatorJS.IsCurrencyOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_CURRENCY,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isCurrency(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a currency', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsDataURI.js b/views/node_modules/class-validator/esm2015/decorator/string/IsDataURI.js deleted file mode 100644 index abb73cc..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsDataURI.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isDataURIValidator from 'validator/lib/isDataURI'; -export const IS_DATA_URI = 'isDataURI'; -/** - * Check if the string is a data uri format. - * If given value is not a string, then it returns false. - */ -export function isDataURI(value) { - return typeof value === 'string' && isDataURIValidator(value); -} -/** - * Check if the string is a data uri format. - * If given value is not a string, then it returns false. - */ -export function IsDataURI(validationOptions) { - return ValidateBy({ - name: IS_DATA_URI, - validator: { - validate: (value, args) => isDataURI(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a data uri format', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDataURI.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsDataURI.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsDataURI.js.map deleted file mode 100644 index ee3ec1e..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsDataURI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDataURI.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsDataURI.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACpD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,qCAAqC,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDataURIValidator from 'validator/lib/isDataURI';\n\nexport const IS_DATA_URI = 'isDataURI';\n\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isDataURI(value: unknown): boolean {\n return typeof value === 'string' && isDataURIValidator(value);\n}\n\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsDataURI(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DATA_URI,\n validator: {\n validate: (value, args): boolean => isDataURI(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a data uri format',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsDateString.js b/views/node_modules/class-validator/esm2015/decorator/string/IsDateString.js deleted file mode 100644 index b70ccab..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsDateString.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import { isISO8601 } from './IsISO8601'; -export const IS_DATE_STRING = 'isDateString'; -/** - * Alias for IsISO8601 validator - */ -export function isDateString(value, options) { - return isISO8601(value, options); -} -/** - * Alias for IsISO8601 validator - */ -export function IsDateString(options, validationOptions) { - return ValidateBy({ - name: IS_DATE_STRING, - constraints: [options], - validator: { - validate: (value, args) => isDateString(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDateString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsDateString.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsDateString.js.map deleted file mode 100644 index 9fcb869..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsDateString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDateString.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsDateString.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,OAAsC;IACjF,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAsC,EACtC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;YACvD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport ValidatorJS from 'validator';\nimport { isISO8601 } from './IsISO8601';\n\nexport const IS_DATE_STRING = 'isDateString';\n\n/**\n * Alias for IsISO8601 validator\n */\nexport function isDateString(value: unknown, options?: ValidatorJS.IsISO8601Options): boolean {\n return isISO8601(value, options);\n}\n\n/**\n * Alias for IsISO8601 validator\n */\nexport function IsDateString(\n options?: ValidatorJS.IsISO8601Options,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DATE_STRING,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isDateString(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsDecimal.js b/views/node_modules/class-validator/esm2015/decorator/string/IsDecimal.js deleted file mode 100644 index 82134fb..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsDecimal.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isDecimalValidator from 'validator/lib/isDecimal'; -export const IS_DECIMAL = 'isDecimal'; -/** - * Checks if the string is a valid decimal. - * If given value is not a string, then it returns false. - */ -export function isDecimal(value, options) { - return typeof value === 'string' && isDecimalValidator(value, options); -} -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -export function IsDecimal(options, validationOptions) { - return ValidateBy({ - name: IS_DECIMAL, - constraints: [options], - validator: { - validate: (value, args) => isDecimal(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property is not a valid decimal number.', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDecimal.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsDecimal.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsDecimal.js.map deleted file mode 100644 index 524a6e1..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsDecimal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDecimal.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsDecimal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAGzD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,OAAsC;IAC9E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,OAAsC,EACtC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACzE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0CAA0C,EACrE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDecimalValidator from 'validator/lib/isDecimal';\nimport ValidatorJS from 'validator';\n\nexport const IS_DECIMAL = 'isDecimal';\n\n/**\n * Checks if the string is a valid decimal.\n * If given value is not a string, then it returns false.\n */\nexport function isDecimal(value: unknown, options?: ValidatorJS.IsDecimalOptions): boolean {\n return typeof value === 'string' && isDecimalValidator(value, options);\n}\n\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsDecimal(\n options?: ValidatorJS.IsDecimalOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DECIMAL,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isDecimal(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property is not a valid decimal number.',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsEAN.js b/views/node_modules/class-validator/esm2015/decorator/string/IsEAN.js deleted file mode 100644 index 50adc82..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsEAN.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isEANValidator from 'validator/lib/isEAN'; -export const IS_EAN = 'isEAN'; -/** - * Check if the string is an EAN (European Article Number). - * If given value is not a string, then it returns false. - */ -export function isEAN(value) { - return typeof value === 'string' && isEANValidator(value); -} -/** - * Check if the string is an EAN (European Article Number). - * If given value is not a string, then it returns false. - */ -export function IsEAN(validationOptions) { - return ValidateBy({ - name: IS_EAN, - validator: { - validate: (value, args) => isEAN(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an EAN (European Article Number)', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsEAN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsEAN.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsEAN.js.map deleted file mode 100644 index 14db051..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsEAN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEAN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsEAN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oDAAoD,EAC/E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEANValidator from 'validator/lib/isEAN';\n\nexport const IS_EAN = 'isEAN';\n\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function isEAN(value: unknown): boolean {\n return typeof value === 'string' && isEANValidator(value);\n}\n\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsEAN(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_EAN,\n validator: {\n validate: (value, args): boolean => isEAN(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an EAN (European Article Number)',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsEmail.js b/views/node_modules/class-validator/esm2015/decorator/string/IsEmail.js deleted file mode 100644 index 2088071..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsEmail.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isEmailValidator from 'validator/lib/isEmail'; -export const IS_EMAIL = 'isEmail'; -/** - * Checks if the string is an email. - * If given value is not a string, then it returns false. - */ -export function isEmail(value, options) { - return typeof value === 'string' && isEmailValidator(value, options); -} -/** - * Checks if the string is an email. - * If given value is not a string, then it returns false. - */ -export function IsEmail(options, validationOptions) { - return ValidateBy({ - name: IS_EMAIL, - constraints: [options], - validator: { - validate: (value, args) => isEmail(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an email', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsEmail.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsEmail.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsEmail.js.map deleted file mode 100644 index bec3f64..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsEmail.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEmail.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsEmail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAGrD,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,OAAoC;IAC1E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CACrB,OAAoC,EACpC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvE,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,4BAA4B,EAAE,iBAAiB,CAAC;SACzG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEmailValidator from 'validator/lib/isEmail';\nimport ValidatorJS from 'validator';\n\nexport const IS_EMAIL = 'isEmail';\n\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function isEmail(value: unknown, options?: ValidatorJS.IsEmailOptions): boolean {\n return typeof value === 'string' && isEmailValidator(value, options);\n}\n\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function IsEmail(\n options?: ValidatorJS.IsEmailOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_EMAIL,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isEmail(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an email', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsEthereumAddress.js b/views/node_modules/class-validator/esm2015/decorator/string/IsEthereumAddress.js deleted file mode 100644 index 16ea725..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsEthereumAddress.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isEthereumAddressValidator from 'validator/lib/isEthereumAddress'; -export const IS_ETHEREUM_ADDRESS = 'isEthereumAddress'; -/** - * Check if the string is an Ethereum address using basic regex. Does not validate address checksums. - * If given value is not a string, then it returns false. - */ -export function isEthereumAddress(value) { - return typeof value === 'string' && isEthereumAddressValidator(value); -} -/** - * Check if the string is an Ethereum address using basic regex. Does not validate address checksums. - * If given value is not a string, then it returns false. - */ -export function IsEthereumAddress(validationOptions) { - return ValidateBy({ - name: IS_ETHEREUM_ADDRESS, - validator: { - validate: (value, args) => isEthereumAddress(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an Ethereum address', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsEthereumAddress.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsEthereumAddress.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsEthereumAddress.js.map deleted file mode 100644 index 9108460..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsEthereumAddress.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEthereumAddress.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsEthereumAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AAEzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEvD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,0BAA0B,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,iBAAqC;IACrE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAC5D,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uCAAuC,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEthereumAddressValidator from 'validator/lib/isEthereumAddress';\n\nexport const IS_ETHEREUM_ADDRESS = 'isEthereumAddress';\n\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function isEthereumAddress(value: unknown): boolean {\n return typeof value === 'string' && isEthereumAddressValidator(value);\n}\n\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function IsEthereumAddress(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ETHEREUM_ADDRESS,\n validator: {\n validate: (value, args): boolean => isEthereumAddress(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an Ethereum address',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsFQDN.js b/views/node_modules/class-validator/esm2015/decorator/string/IsFQDN.js deleted file mode 100644 index 57ecbf6..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsFQDN.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isFqdnValidator from 'validator/lib/isFQDN'; -export const IS_FQDN = 'isFqdn'; -/** - * Checks if the string is a fully qualified domain name (e.g. domain.com). - * If given value is not a string, then it returns false. - */ -export function isFQDN(value, options) { - return typeof value === 'string' && isFqdnValidator(value, options); -} -/** - * Checks if the string is a fully qualified domain name (e.g. domain.com). - * If given value is not a string, then it returns false. - */ -export function IsFQDN(options, validationOptions) { - return ValidateBy({ - name: IS_FQDN, - constraints: [options], - validator: { - validate: (value, args) => isFQDN(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid domain name', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsFQDN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsFQDN.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsFQDN.js.map deleted file mode 100644 index 6b6c535..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsFQDN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsFQDN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsFQDN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAGnD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,OAAmC;IACxE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,OAAmC,EAAE,iBAAqC;IAC/F,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uCAAuC,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFqdnValidator from 'validator/lib/isFQDN';\nimport ValidatorJS from 'validator';\n\nexport const IS_FQDN = 'isFqdn';\n\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function isFQDN(value: unknown, options?: ValidatorJS.IsFQDNOptions): boolean {\n return typeof value === 'string' && isFqdnValidator(value, options);\n}\n\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function IsFQDN(options?: ValidatorJS.IsFQDNOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_FQDN,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isFQDN(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid domain name',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsFirebasePushId.js b/views/node_modules/class-validator/esm2015/decorator/string/IsFirebasePushId.js deleted file mode 100644 index b83dd67..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsFirebasePushId.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_FIREBASE_PUSH_ID = 'IsFirebasePushId'; -/** - * Checks if the string is a Firebase Push Id - * If given value is not a Firebase Push Id, it returns false - */ -export function isFirebasePushId(value) { - const webSafeRegex = /^[a-zA-Z0-9_-]*$/; - return typeof value === 'string' && value.length === 20 && webSafeRegex.test(value); -} -/** - * Checks if the string is a Firebase Push Id - * If given value is not a Firebase Push Id, it returns false - */ -export function IsFirebasePushId(validationOptions) { - return ValidateBy({ - name: IS_FIREBASE_PUSH_ID, - validator: { - validate: (value, args) => isFirebasePushId(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a Firebase Push Id', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsFirebasePushId.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsFirebasePushId.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsFirebasePushId.js.map deleted file mode 100644 index 817a137..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsFirebasePushId.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsFirebasePushId.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsFirebasePushId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,MAAM,YAAY,GAAG,kBAAkB,CAAC;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC3D,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,sCAAsC,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_FIREBASE_PUSH_ID = 'IsFirebasePushId';\n\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function isFirebasePushId(value: unknown): boolean {\n const webSafeRegex = /^[a-zA-Z0-9_-]*$/;\n return typeof value === 'string' && value.length === 20 && webSafeRegex.test(value);\n}\n\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function IsFirebasePushId(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_FIREBASE_PUSH_ID,\n validator: {\n validate: (value, args): boolean => isFirebasePushId(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a Firebase Push Id',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsFullWidth.js b/views/node_modules/class-validator/esm2015/decorator/string/IsFullWidth.js deleted file mode 100644 index 089b6d2..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsFullWidth.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isFullWidthValidator from 'validator/lib/isFullWidth'; -export const IS_FULL_WIDTH = 'isFullWidth'; -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -export function isFullWidth(value) { - return typeof value === 'string' && isFullWidthValidator(value); -} -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -export function IsFullWidth(validationOptions) { - return ValidateBy({ - name: IS_FULL_WIDTH, - validator: { - validate: (value, args) => isFullWidth(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain a full-width characters', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsFullWidth.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsFullWidth.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsFullWidth.js.map deleted file mode 100644 index c7b8717..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsFullWidth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsFullWidth.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsFullWidth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFullWidthValidator from 'validator/lib/isFullWidth';\n\nexport const IS_FULL_WIDTH = 'isFullWidth';\n\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isFullWidth(value: unknown): boolean {\n return typeof value === 'string' && isFullWidthValidator(value);\n}\n\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsFullWidth(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_FULL_WIDTH,\n validator: {\n validate: (value, args): boolean => isFullWidth(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a full-width characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsHSL.js b/views/node_modules/class-validator/esm2015/decorator/string/IsHSL.js deleted file mode 100644 index 19f0222..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsHSL.js +++ /dev/null @@ -1,26 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isHSLValidator from 'validator/lib/isHSL'; -export const IS_HSL = 'isHSL'; -/** - * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification. - * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)). - * If given value is not a string, then it returns false. - */ -export function isHSL(value) { - return typeof value === 'string' && isHSLValidator(value); -} -/** - * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification. - * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)). - * If given value is not a string, then it returns false. - */ -export function IsHSL(validationOptions) { - return ValidateBy({ - name: IS_HSL, - validator: { - validate: (value, args) => isHSL(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a HSL color', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsHSL.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsHSL.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsHSL.js.map deleted file mode 100644 index d96f7c1..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsHSL.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHSL.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHSL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+BAA+B,EAAE,iBAAiB,CAAC;SAC5G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHSLValidator from 'validator/lib/isHSL';\n\nexport const IS_HSL = 'isHSL';\n\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function isHSL(value: unknown): boolean {\n return typeof value === 'string' && isHSLValidator(value);\n}\n\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function IsHSL(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HSL,\n validator: {\n validate: (value, args): boolean => isHSL(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a HSL color', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsHalfWidth.js b/views/node_modules/class-validator/esm2015/decorator/string/IsHalfWidth.js deleted file mode 100644 index c659bd2..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsHalfWidth.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isHalfWidthValidator from 'validator/lib/isHalfWidth'; -export const IS_HALF_WIDTH = 'isHalfWidth'; -/** - * Checks if the string contains any half-width chars. - * If given value is not a string, then it returns false. - */ -export function isHalfWidth(value) { - return typeof value === 'string' && isHalfWidthValidator(value); -} -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -export function IsHalfWidth(validationOptions) { - return ValidateBy({ - name: IS_HALF_WIDTH, - validator: { - validate: (value, args) => isHalfWidth(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain a half-width characters', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsHalfWidth.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsHalfWidth.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsHalfWidth.js.map deleted file mode 100644 index a964917..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsHalfWidth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHalfWidth.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHalfWidth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHalfWidthValidator from 'validator/lib/isHalfWidth';\n\nexport const IS_HALF_WIDTH = 'isHalfWidth';\n\n/**\n * Checks if the string contains any half-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isHalfWidth(value: unknown): boolean {\n return typeof value === 'string' && isHalfWidthValidator(value);\n}\n\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsHalfWidth(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HALF_WIDTH,\n validator: {\n validate: (value, args): boolean => isHalfWidth(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a half-width characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsHash.js b/views/node_modules/class-validator/esm2015/decorator/string/IsHash.js deleted file mode 100644 index 60b43f7..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsHash.js +++ /dev/null @@ -1,27 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isHashValidator from 'validator/lib/isHash'; -export const IS_HASH = 'isHash'; -/** - * Check if the string is a hash of type algorithm. - * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', - * 'tiger160', 'tiger192', 'crc32', 'crc32b'] - */ -export function isHash(value, algorithm) { - return typeof value === 'string' && isHashValidator(value, algorithm); -} -/** - * Check if the string is a hash of type algorithm. - * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', - * 'tiger160', 'tiger192', 'crc32', 'crc32b'] - */ -export function IsHash(algorithm, validationOptions) { - return ValidateBy({ - name: IS_HASH, - constraints: [algorithm], - validator: { - validate: (value, args) => isHash(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a hash of type $constraint1', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsHash.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsHash.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsHash.js.map deleted file mode 100644 index 3e2ab93..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsHash.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHash.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAGnD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,SAAoC;IACzE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,SAAiB,EAAE,iBAAqC;IAC7E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+CAA+C,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHashValidator from 'validator/lib/isHash';\nimport ValidatorJS from 'validator';\n\nexport const IS_HASH = 'isHash';\n\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function isHash(value: unknown, algorithm: ValidatorJS.HashAlgorithm): boolean {\n return typeof value === 'string' && isHashValidator(value, algorithm);\n}\n\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function IsHash(algorithm: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HASH,\n constraints: [algorithm],\n validator: {\n validate: (value, args): boolean => isHash(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a hash of type $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsHexColor.js b/views/node_modules/class-validator/esm2015/decorator/string/IsHexColor.js deleted file mode 100644 index ac0eabb..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsHexColor.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isHexColorValidator from 'validator/lib/isHexColor'; -export const IS_HEX_COLOR = 'isHexColor'; -/** - * Checks if the string is a hexadecimal color. - * If given value is not a string, then it returns false. - */ -export function isHexColor(value) { - return typeof value === 'string' && isHexColorValidator(value); -} -/** - * Checks if the string is a hexadecimal color. - * If given value is not a string, then it returns false. - */ -export function IsHexColor(validationOptions) { - return ValidateBy({ - name: IS_HEX_COLOR, - validator: { - validate: (value, args) => isHexColor(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a hexadecimal color', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsHexColor.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsHexColor.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsHexColor.js.map deleted file mode 100644 index c1f7a34..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsHexColor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHexColor.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHexColor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uCAAuC,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexColorValidator from 'validator/lib/isHexColor';\n\nexport const IS_HEX_COLOR = 'isHexColor';\n\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function isHexColor(value: unknown): boolean {\n return typeof value === 'string' && isHexColorValidator(value);\n}\n\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexColor(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HEX_COLOR,\n validator: {\n validate: (value, args): boolean => isHexColor(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a hexadecimal color',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsHexadecimal.js b/views/node_modules/class-validator/esm2015/decorator/string/IsHexadecimal.js deleted file mode 100644 index aa64619..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsHexadecimal.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isHexadecimalValidator from 'validator/lib/isHexadecimal'; -export const IS_HEXADECIMAL = 'isHexadecimal'; -/** - * Checks if the string is a hexadecimal number. - * If given value is not a string, then it returns false. - */ -export function isHexadecimal(value) { - return typeof value === 'string' && isHexadecimalValidator(value); -} -/** - * Checks if the string is a hexadecimal number. - * If given value is not a string, then it returns false. - */ -export function IsHexadecimal(validationOptions) { - return ValidateBy({ - name: IS_HEXADECIMAL, - validator: { - validate: (value, args) => isHexadecimal(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a hexadecimal number', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsHexadecimal.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsHexadecimal.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsHexadecimal.js.map deleted file mode 100644 index 1b6a66d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsHexadecimal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHexadecimal.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHexadecimal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,iBAAqC;IACjE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;YACxD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,wCAAwC,EACnE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexadecimalValidator from 'validator/lib/isHexadecimal';\n\nexport const IS_HEXADECIMAL = 'isHexadecimal';\n\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function isHexadecimal(value: unknown): boolean {\n return typeof value === 'string' && isHexadecimalValidator(value);\n}\n\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexadecimal(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HEXADECIMAL,\n validator: {\n validate: (value, args): boolean => isHexadecimal(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a hexadecimal number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsIBAN.js b/views/node_modules/class-validator/esm2015/decorator/string/IsIBAN.js deleted file mode 100644 index 14465de..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsIBAN.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIBANValidator from 'validator/lib/isIBAN'; -export const IS_IBAN = 'isIBAN'; -/** - * Check if a string is a IBAN (International Bank Account Number). - * If given value is not a string, then it returns false. - */ -export function isIBAN(value) { - return typeof value === 'string' && isIBANValidator(value); -} -/** - * Check if a string is a IBAN (International Bank Account Number). - * If given value is not a string, then it returns false. - */ -export function IsIBAN(validationOptions) { - return ValidateBy({ - name: IS_IBAN, - validator: { - validate: (value, args) => isIBAN(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an IBAN', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsIBAN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsIBAN.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsIBAN.js.map deleted file mode 100644 index 1d76384..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsIBAN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIBAN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsIBAN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,2BAA2B,EAAE,iBAAiB,CAAC;SACxG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIBANValidator from 'validator/lib/isIBAN';\n\nexport const IS_IBAN = 'isIBAN';\n\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function isIBAN(value: unknown): boolean {\n return typeof value === 'string' && isIBANValidator(value);\n}\n\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsIBAN(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IBAN,\n validator: {\n validate: (value, args): boolean => isIBAN(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an IBAN', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsIP.js b/views/node_modules/class-validator/esm2015/decorator/string/IsIP.js deleted file mode 100644 index 5f9fe7a..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsIP.js +++ /dev/null @@ -1,26 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIPValidator from 'validator/lib/isIP'; -export const IS_IP = 'isIp'; -/** - * Checks if the string is an IP (version 4 or 6). - * If given value is not a string, then it returns false. - */ -export function isIP(value, version) { - const versionStr = version ? `${version}` : undefined; - return typeof value === 'string' && isIPValidator(value, versionStr); -} -/** - * Checks if the string is an IP (version 4 or 6). - * If given value is not a string, then it returns false. - */ -export function IsIP(version, validationOptions) { - return ValidateBy({ - name: IS_IP, - constraints: [version], - validator: { - validate: (value, args) => isIP(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ip address', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsIP.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsIP.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsIP.js.map deleted file mode 100644 index dbb6cdf..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsIP.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIP.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsIP.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAI/C,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC;AAE5B;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,KAAc,EAAE,OAAqB;IACxD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAE,GAAG,OAAO,EAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,OAAqB,EAAE,iBAAqC;IAC/E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACpE,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIPValidator from 'validator/lib/isIP';\n\nexport type IsIpVersion = '4' | '6' | 4 | 6;\n\nexport const IS_IP = 'isIp';\n\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function isIP(value: unknown, version?: IsIpVersion): boolean {\n const versionStr = version ? (`${version}` as '4' | '6') : undefined;\n return typeof value === 'string' && isIPValidator(value, versionStr);\n}\n\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function IsIP(version?: IsIpVersion, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IP,\n constraints: [version],\n validator: {\n validate: (value, args): boolean => isIP(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ip address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISBN.js b/views/node_modules/class-validator/esm2015/decorator/string/IsISBN.js deleted file mode 100644 index 5bc1ac5..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISBN.js +++ /dev/null @@ -1,26 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIsbnValidator from 'validator/lib/isISBN'; -export const IS_ISBN = 'isIsbn'; -/** - * Checks if the string is an ISBN (version 10 or 13). - * If given value is not a string, then it returns false. - */ -export function isISBN(value, version) { - const versionStr = version ? `${version}` : undefined; - return typeof value === 'string' && isIsbnValidator(value, versionStr); -} -/** - * Checks if the string is an ISBN (version 10 or 13). - * If given value is not a string, then it returns false. - */ -export function IsISBN(version, validationOptions) { - return ValidateBy({ - name: IS_ISBN, - constraints: [version], - validator: { - validate: (value, args) => isISBN(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISBN', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISBN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISBN.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsISBN.js.map deleted file mode 100644 index 9a9309b..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISBN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISBN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISBN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAInD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,OAAuB;IAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAE,GAAG,OAAO,EAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,OAAuB,EAAE,iBAAqC;IACnF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,2BAA2B,EAAE,iBAAiB,CAAC;SACxG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsbnValidator from 'validator/lib/isISBN';\n\nexport type IsISBNVersion = '10' | '13' | 10 | 13;\n\nexport const IS_ISBN = 'isIsbn';\n\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function isISBN(value: unknown, version?: IsISBNVersion): boolean {\n const versionStr = version ? (`${version}` as '10' | '13') : undefined;\n return typeof value === 'string' && isIsbnValidator(value, versionStr);\n}\n\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function IsISBN(version?: IsISBNVersion, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISBN,\n constraints: [version],\n validator: {\n validate: (value, args): boolean => isISBN(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISBN', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISIN.js b/views/node_modules/class-validator/esm2015/decorator/string/IsISIN.js deleted file mode 100644 index 5c4b837..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISIN.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIsinValidator from 'validator/lib/isISIN'; -export const IS_ISIN = 'isIsin'; -/** - * Checks if the string is an ISIN (stock/security identifier). - * If given value is not a string, then it returns false. - */ -export function isISIN(value) { - return typeof value === 'string' && isIsinValidator(value); -} -/** - * Checks if the string is an ISIN (stock/security identifier). - * If given value is not a string, then it returns false. - */ -export function IsISIN(validationOptions) { - return ValidateBy({ - name: IS_ISIN, - validator: { - validate: (value, args) => isISIN(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISIN (stock/security identifier)', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISIN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISIN.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsISIN.js.map deleted file mode 100644 index 59949c3..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISIN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISIN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISIN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uDAAuD,EAClF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsinValidator from 'validator/lib/isISIN';\n\nexport const IS_ISIN = 'isIsin';\n\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function isISIN(value: unknown): boolean {\n return typeof value === 'string' && isIsinValidator(value);\n}\n\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function IsISIN(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISIN,\n validator: {\n validate: (value, args): boolean => isISIN(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an ISIN (stock/security identifier)',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha2.js b/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha2.js deleted file mode 100644 index 5b8a1b2..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha2.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isISO31661Alpha2Validator from 'validator/lib/isISO31661Alpha2'; -export const IS_ISO31661_ALPHA_2 = 'isISO31661Alpha2'; -/** - * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code. - */ -export function isISO31661Alpha2(value) { - return typeof value === 'string' && isISO31661Alpha2Validator(value); -} -/** - * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code. - */ -export function IsISO31661Alpha2(validationOptions) { - return ValidateBy({ - name: IS_ISO31661_ALPHA_2, - validator: { - validate: (value, args) => isISO31661Alpha2(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha2 code', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISO31661Alpha2.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha2.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha2.js.map deleted file mode 100644 index 0e21d4f..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISO31661Alpha2.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISO31661Alpha2.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC3D,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha2Validator from 'validator/lib/isISO31661Alpha2';\n\nexport const IS_ISO31661_ALPHA_2 = 'isISO31661Alpha2';\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function isISO31661Alpha2(value: unknown): boolean {\n return typeof value === 'string' && isISO31661Alpha2Validator(value);\n}\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function IsISO31661Alpha2(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISO31661_ALPHA_2,\n validator: {\n validate: (value, args): boolean => isISO31661Alpha2(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha2 code',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha3.js b/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha3.js deleted file mode 100644 index ae4d85d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha3.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isISO31661Alpha3Validator from 'validator/lib/isISO31661Alpha3'; -export const IS_ISO31661_ALPHA_3 = 'isISO31661Alpha3'; -/** - * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code. - */ -export function isISO31661Alpha3(value) { - return typeof value === 'string' && isISO31661Alpha3Validator(value); -} -/** - * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code. - */ -export function IsISO31661Alpha3(validationOptions) { - return ValidateBy({ - name: IS_ISO31661_ALPHA_3, - validator: { - validate: (value, args) => isISO31661Alpha3(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha3 code', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISO31661Alpha3.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha3.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha3.js.map deleted file mode 100644 index 22349a8..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISO31661Alpha3.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISO31661Alpha3.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISO31661Alpha3.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AAEvE,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC3D,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha3Validator from 'validator/lib/isISO31661Alpha3';\n\nexport const IS_ISO31661_ALPHA_3 = 'isISO31661Alpha3';\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function isISO31661Alpha3(value: unknown): boolean {\n return typeof value === 'string' && isISO31661Alpha3Validator(value);\n}\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function IsISO31661Alpha3(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISO31661_ALPHA_3,\n validator: {\n validate: (value, args): boolean => isISO31661Alpha3(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha3 code',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISO8601.js b/views/node_modules/class-validator/esm2015/decorator/string/IsISO8601.js deleted file mode 100644 index dbfb5ae..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISO8601.js +++ /dev/null @@ -1,27 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIso8601Validator from 'validator/lib/isISO8601'; -export const IS_ISO8601 = 'isIso8601'; -/** - * Checks if the string is a valid ISO 8601 date. - * If given value is not a string, then it returns false. - * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29. - */ -export function isISO8601(value, options) { - return typeof value === 'string' && isIso8601Validator(value, options); -} -/** - * Checks if the string is a valid ISO 8601 date. - * If given value is not a string, then it returns false. - * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29. - */ -export function IsISO8601(options, validationOptions) { - return ValidateBy({ - name: IS_ISO8601, - constraints: [options], - validator: { - validate: (value, args) => isISO8601(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISO8601.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISO8601.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsISO8601.js.map deleted file mode 100644 index 3ca5808..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISO8601.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISO8601.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISO8601.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAGzD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,OAAsC;IAC9E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,OAAsC,EACtC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACzE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gDAAgD,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIso8601Validator from 'validator/lib/isISO8601';\nimport ValidatorJS from 'validator';\n\nexport const IS_ISO8601 = 'isIso8601';\n\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function isISO8601(value: unknown, options?: ValidatorJS.IsISO8601Options): boolean {\n return typeof value === 'string' && isIso8601Validator(value, options);\n}\n\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function IsISO8601(\n options?: ValidatorJS.IsISO8601Options,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISO8601,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isISO8601(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISRC.js b/views/node_modules/class-validator/esm2015/decorator/string/IsISRC.js deleted file mode 100644 index 8de24e1..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISRC.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isISRCValidator from 'validator/lib/isISRC'; -export const IS_ISRC = 'isISRC'; -/** - * Check if the string is a ISRC. - * If given value is not a string, then it returns false. - */ -export function isISRC(value) { - return typeof value === 'string' && isISRCValidator(value); -} -/** - * Check if the string is a ISRC. - * If given value is not a string, then it returns false. - */ -export function IsISRC(validationOptions) { - return ValidateBy({ - name: IS_ISRC, - validator: { - validate: (value, args) => isISRC(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISRC', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISRC.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISRC.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsISRC.js.map deleted file mode 100644 index 6d79b0b..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISRC.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISRC.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISRC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,2BAA2B,EAAE,iBAAiB,CAAC;SACxG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISRCValidator from 'validator/lib/isISRC';\n\nexport const IS_ISRC = 'isISRC';\n\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function isISRC(value: unknown): boolean {\n return typeof value === 'string' && isISRCValidator(value);\n}\n\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function IsISRC(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISRC,\n validator: {\n validate: (value, args): boolean => isISRC(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISRC', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISSN.js b/views/node_modules/class-validator/esm2015/decorator/string/IsISSN.js deleted file mode 100644 index 5e9d61c..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISSN.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isISSNValidator from 'validator/lib/isISSN'; -export const IS_ISSN = 'isISSN'; -/** - * Checks if the string is a ISSN. - * If given value is not a string, then it returns false. - */ -export function isISSN(value, options) { - return typeof value === 'string' && isISSNValidator(value, options); -} -/** - * Checks if the string is a ISSN. - * If given value is not a string, then it returns false. - */ -export function IsISSN(options, validationOptions) { - return ValidateBy({ - name: IS_ISSN, - constraints: [options], - validator: { - validate: (value, args) => isISSN(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a ISSN', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISSN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsISSN.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsISSN.js.map deleted file mode 100644 index fd75abf..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsISSN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISSN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISSN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAGnD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,OAAmC;IACxE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,OAAmC,EAAE,iBAAqC;IAC/F,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0BAA0B,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISSNValidator from 'validator/lib/isISSN';\nimport ValidatorJS from 'validator';\n\nexport const IS_ISSN = 'isISSN';\n\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function isISSN(value: unknown, options?: ValidatorJS.IsISSNOptions): boolean {\n return typeof value === 'string' && isISSNValidator(value, options);\n}\n\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function IsISSN(options?: ValidatorJS.IsISSNOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISSN,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isISSN(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a ISSN', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsIdentityCard.js b/views/node_modules/class-validator/esm2015/decorator/string/IsIdentityCard.js deleted file mode 100644 index 459b47e..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsIdentityCard.js +++ /dev/null @@ -1,29 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIdentityCardValidator from 'validator/lib/isIdentityCard'; -export const IS_IDENTITY_CARD = 'isIdentityCard'; -/** - * Check if the string is a valid identity card code. - * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match. - * Defaults to 'any'. - * If given value is not a string, then it returns false. - */ -export function isIdentityCard(value, locale) { - return typeof value === 'string' && isIdentityCardValidator(value, locale); -} -/** - * Check if the string is a valid identity card code. - * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match. - * Defaults to 'any'. - * If given value is not a string, then it returns false. - */ -export function IsIdentityCard(locale, validationOptions) { - return ValidateBy({ - name: IS_IDENTITY_CARD, - constraints: [locale], - validator: { - validate: (value, args) => isIdentityCard(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a identity card number', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsIdentityCard.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsIdentityCard.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsIdentityCard.js.map deleted file mode 100644 index 194ce10..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsIdentityCard.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIdentityCard.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsIdentityCard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAGnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,MAAsC;IACnF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAuC,EACvC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9E,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0CAA0C,EACrE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIdentityCardValidator from 'validator/lib/isIdentityCard';\nimport ValidatorJS from 'validator';\n\nexport const IS_IDENTITY_CARD = 'isIdentityCard';\n\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function isIdentityCard(value: unknown, locale: ValidatorJS.IdentityCardLocale): boolean {\n return typeof value === 'string' && isIdentityCardValidator(value, locale);\n}\n\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function IsIdentityCard(\n locale?: ValidatorJS.IdentityCardLocale,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IDENTITY_CARD,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isIdentityCard(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a identity card number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsJSON.js b/views/node_modules/class-validator/esm2015/decorator/string/IsJSON.js deleted file mode 100644 index 2291912..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsJSON.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isJSONValidator from 'validator/lib/isJSON'; -export const IS_JSON = 'isJson'; -/** - * Checks if the string is valid JSON (note: uses JSON.parse). - * If given value is not a string, then it returns false. - */ -export function isJSON(value) { - return typeof value === 'string' && isJSONValidator(value); -} -/** - * Checks if the string is valid JSON (note: uses JSON.parse). - * If given value is not a string, then it returns false. - */ -export function IsJSON(validationOptions) { - return ValidateBy({ - name: IS_JSON, - validator: { - validate: (value, args) => isJSON(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a json string', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsJSON.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsJSON.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsJSON.js.map deleted file mode 100644 index ceebbde..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsJSON.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsJSON.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsJSON.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJSONValidator from 'validator/lib/isJSON';\n\nexport const IS_JSON = 'isJson';\n\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function isJSON(value: unknown): boolean {\n return typeof value === 'string' && isJSONValidator(value);\n}\n\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function IsJSON(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_JSON,\n validator: {\n validate: (value, args): boolean => isJSON(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a json string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsJWT.js b/views/node_modules/class-validator/esm2015/decorator/string/IsJWT.js deleted file mode 100644 index 4bfe96f..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsJWT.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isJwtValidator from 'validator/lib/isJWT'; -export const IS_JWT = 'isJwt'; -/** - * Checks if the string is valid JWT token. - * If given value is not a string, then it returns false. - */ -export function isJWT(value) { - return typeof value === 'string' && isJwtValidator(value); -} -/** - * Checks if the string is valid JWT token. - * If given value is not a string, then it returns false. - */ -export function IsJWT(validationOptions) { - return ValidateBy({ - name: IS_JWT, - validator: { - validate: (value, args) => isJWT(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a jwt string', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsJWT.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsJWT.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsJWT.js.map deleted file mode 100644 index 102cf9e..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsJWT.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsJWT.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsJWT.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gCAAgC,EAAE,iBAAiB,CAAC;SAC7G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJwtValidator from 'validator/lib/isJWT';\n\nexport const IS_JWT = 'isJwt';\n\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function isJWT(value: unknown): boolean {\n return typeof value === 'string' && isJwtValidator(value);\n}\n\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function IsJWT(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_JWT,\n validator: {\n validate: (value, args): boolean => isJWT(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a jwt string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsLocale.js b/views/node_modules/class-validator/esm2015/decorator/string/IsLocale.js deleted file mode 100644 index 932e9eb..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsLocale.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isLocaleValidator from 'validator/lib/isLocale'; -export const IS_LOCALE = 'isLocale'; -/** - * Check if the string is a locale. - * If given value is not a string, then it returns false. - */ -export function isLocale(value) { - return typeof value === 'string' && isLocaleValidator(value); -} -/** - * Check if the string is a locale. - * If given value is not a string, then it returns false. - */ -export function IsLocale(validationOptions) { - return ValidateBy({ - name: IS_LOCALE, - validator: { - validate: (value, args) => isLocale(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be locale', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsLocale.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsLocale.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsLocale.js.map deleted file mode 100644 index 5440594..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsLocale.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLocale.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsLocale.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0BAA0B,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLocaleValidator from 'validator/lib/isLocale';\n\nexport const IS_LOCALE = 'isLocale';\n\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function isLocale(value: unknown): boolean {\n return typeof value === 'string' && isLocaleValidator(value);\n}\n\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function IsLocale(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LOCALE,\n validator: {\n validate: (value, args): boolean => isLocale(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be locale', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsLowercase.js b/views/node_modules/class-validator/esm2015/decorator/string/IsLowercase.js deleted file mode 100644 index c3df94c..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsLowercase.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isLowercaseValidator from 'validator/lib/isLowercase'; -export const IS_LOWERCASE = 'isLowercase'; -/** - * Checks if the string is lowercase. - * If given value is not a string, then it returns false. - */ -export function isLowercase(value) { - return typeof value === 'string' && isLowercaseValidator(value); -} -/** - * Checks if the string is lowercase. - * If given value is not a string, then it returns false. - */ -export function IsLowercase(validationOptions) { - return ValidateBy({ - name: IS_LOWERCASE, - validator: { - validate: (value, args) => isLowercase(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a lowercase string', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsLowercase.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsLowercase.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsLowercase.js.map deleted file mode 100644 index 27f2c58..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsLowercase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLowercase.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsLowercase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,sCAAsC,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLowercaseValidator from 'validator/lib/isLowercase';\n\nexport const IS_LOWERCASE = 'isLowercase';\n\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function isLowercase(value: unknown): boolean {\n return typeof value === 'string' && isLowercaseValidator(value);\n}\n\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsLowercase(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LOWERCASE,\n validator: {\n validate: (value, args): boolean => isLowercase(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a lowercase string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMacAddress.js b/views/node_modules/class-validator/esm2015/decorator/string/IsMacAddress.js deleted file mode 100644 index 9f430ae..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMacAddress.js +++ /dev/null @@ -1,26 +0,0 @@ -import { isValidationOptions } from '../ValidationOptions'; -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMacAddressValidator from 'validator/lib/isMACAddress'; -export const IS_MAC_ADDRESS = 'isMacAddress'; -/** - * Check if the string is a MAC address. - * If given value is not a string, then it returns false. - */ -export function isMACAddress(value, options) { - return typeof value === 'string' && isMacAddressValidator(value, options); -} -export function IsMACAddress(optionsOrValidationOptionsArg, validationOptionsArg) { - const options = !isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : undefined; - const validationOptions = isValidationOptions(optionsOrValidationOptionsArg) - ? optionsOrValidationOptionsArg - : validationOptionsArg; - return ValidateBy({ - name: IS_MAC_ADDRESS, - constraints: [options], - validator: { - validate: (value, args) => isMACAddress(value, options), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a MAC Address', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMacAddress.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMacAddress.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsMacAddress.js.map deleted file mode 100644 index 4496348..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMacAddress.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMacAddress.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMacAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAG/D,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,OAAyC;IACpF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC;AAWD,MAAM,UAAU,YAAY,CAC1B,6BAAmF,EACnF,oBAAwC;IAExC,MAAM,OAAO,GAAG,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,CAAC;IAChH,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,6BAA6B,CAAC;QAC1E,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,oBAAoB,CAAC;IAEzB,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;YAChE,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions, isValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMacAddressValidator from 'validator/lib/isMACAddress';\nimport ValidatorJS from 'validator';\n\nexport const IS_MAC_ADDRESS = 'isMacAddress';\n\n/**\n * Check if the string is a MAC address.\n * If given value is not a string, then it returns false.\n */\nexport function isMACAddress(value: unknown, options?: ValidatorJS.IsMACAddressOptions): boolean {\n return typeof value === 'string' && isMacAddressValidator(value, options);\n}\n\n/**\n * Check if the string is a MAC address.\n * If given value is not a string, then it returns false.\n */\nexport function IsMACAddress(\n optionsArg?: ValidatorJS.IsMACAddressOptions,\n validationOptionsArg?: ValidationOptions\n): PropertyDecorator;\nexport function IsMACAddress(validationOptionsArg?: ValidationOptions): PropertyDecorator;\nexport function IsMACAddress(\n optionsOrValidationOptionsArg?: ValidatorJS.IsMACAddressOptions | ValidationOptions,\n validationOptionsArg?: ValidationOptions\n): PropertyDecorator {\n const options = !isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : undefined;\n const validationOptions = isValidationOptions(optionsOrValidationOptionsArg)\n ? optionsOrValidationOptionsArg\n : validationOptionsArg;\n\n return ValidateBy(\n {\n name: IS_MAC_ADDRESS,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isMACAddress(value, options),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a MAC Address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMagnetURI.js b/views/node_modules/class-validator/esm2015/decorator/string/IsMagnetURI.js deleted file mode 100644 index d0bd1f1..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMagnetURI.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMagnetURIValidator from 'validator/lib/isMagnetURI'; -export const IS_MAGNET_URI = 'isMagnetURI'; -/** - * Check if the string is a magnet uri format. - * If given value is not a string, then it returns false. - */ -export function isMagnetURI(value) { - return typeof value === 'string' && isMagnetURIValidator(value); -} -/** - * Check if the string is a magnet uri format. - * If given value is not a string, then it returns false. - */ -export function IsMagnetURI(validationOptions) { - return ValidateBy({ - name: IS_MAGNET_URI, - validator: { - validate: (value, args) => isMagnetURI(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be magnet uri format', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMagnetURI.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMagnetURI.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsMagnetURI.js.map deleted file mode 100644 index d63b5e2..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMagnetURI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMagnetURI.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMagnetURI.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,qCAAqC,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMagnetURIValidator from 'validator/lib/isMagnetURI';\n\nexport const IS_MAGNET_URI = 'isMagnetURI';\n\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isMagnetURI(value: unknown): boolean {\n return typeof value === 'string' && isMagnetURIValidator(value);\n}\n\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsMagnetURI(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MAGNET_URI,\n validator: {\n validate: (value, args): boolean => isMagnetURI(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be magnet uri format',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMilitaryTime.js b/views/node_modules/class-validator/esm2015/decorator/string/IsMilitaryTime.js deleted file mode 100644 index 56342f1..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMilitaryTime.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import matchesValidator from 'validator/lib/matches'; -export const IS_MILITARY_TIME = 'isMilitaryTime'; -/** - * Checks if the string represents a time without a given timezone in the format HH:MM (military) - * If the given value does not match the pattern HH:MM, then it returns false. - */ -export function isMilitaryTime(value) { - const militaryTimeRegex = /^([01]\d|2[0-3]):?([0-5]\d)$/; - return typeof value === 'string' && matchesValidator(value, militaryTimeRegex); -} -/** - * Checks if the string represents a time without a given timezone in the format HH:MM (military) - * If the given value does not match the pattern HH:MM, then it returns false. - */ -export function IsMilitaryTime(validationOptions) { - return ValidateBy({ - name: IS_MILITARY_TIME, - validator: { - validate: (value, args) => isMilitaryTime(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid representation of military time in the format HH:MM', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMilitaryTime.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMilitaryTime.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsMilitaryTime.js.map deleted file mode 100644 index b2ea178..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMilitaryTime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMilitaryTime.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMilitaryTime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;IACzD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AACjF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,iBAAqC;IAClE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC;YACzD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+EAA+E,EAC1G,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\n\nexport const IS_MILITARY_TIME = 'isMilitaryTime';\n\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function isMilitaryTime(value: unknown): boolean {\n const militaryTimeRegex = /^([01]\\d|2[0-3]):?([0-5]\\d)$/;\n return typeof value === 'string' && matchesValidator(value, militaryTimeRegex);\n}\n\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function IsMilitaryTime(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MILITARY_TIME,\n validator: {\n validate: (value, args): boolean => isMilitaryTime(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid representation of military time in the format HH:MM',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMimeType.js b/views/node_modules/class-validator/esm2015/decorator/string/IsMimeType.js deleted file mode 100644 index ad850b4..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMimeType.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMimeTypeValidator from 'validator/lib/isMimeType'; -export const IS_MIME_TYPE = 'isMimeType'; -/** - * Check if the string matches to a valid MIME type format - * If given value is not a string, then it returns false. - */ -export function isMimeType(value) { - return typeof value === 'string' && isMimeTypeValidator(value); -} -/** - * Check if the string matches to a valid MIME type format - * If given value is not a string, then it returns false. - */ -export function IsMimeType(validationOptions) { - return ValidateBy({ - name: IS_MIME_TYPE, - validator: { - validate: (value, args) => isMimeType(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be MIME type format', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMimeType.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMimeType.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsMimeType.js.map deleted file mode 100644 index 758b931..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMimeType.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMimeType.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMimeType.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YACrD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oCAAoC,EAC/D,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMimeTypeValidator from 'validator/lib/isMimeType';\n\nexport const IS_MIME_TYPE = 'isMimeType';\n\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function isMimeType(value: unknown): boolean {\n return typeof value === 'string' && isMimeTypeValidator(value);\n}\n\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function IsMimeType(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MIME_TYPE,\n validator: {\n validate: (value, args): boolean => isMimeType(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be MIME type format',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMobilePhone.js b/views/node_modules/class-validator/esm2015/decorator/string/IsMobilePhone.js deleted file mode 100644 index b7d2d3b..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMobilePhone.js +++ /dev/null @@ -1,41 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMobilePhoneValidator from 'validator/lib/isMobilePhone'; -export const IS_MOBILE_PHONE = 'isMobilePhone'; -/** - * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS']) - * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY', - * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK', - * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG', - * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE', - * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID', - * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL', - * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN', - * 'zh-HK', 'zh-MO', 'zh-TW'] - * If given value is not a string, then it returns false. - */ -export function isMobilePhone(value, locale, options) { - return typeof value === 'string' && isMobilePhoneValidator(value, locale, options); -} -/** - * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS']) - * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY', - * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK', - * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG', - * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE', - * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID', - * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL', - * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN', - * 'zh-HK', 'zh-MO', 'zh-TW'] - * If given value is not a string, then it returns false. - */ -export function IsMobilePhone(locale, options, validationOptions) { - return ValidateBy({ - name: IS_MOBILE_PHONE, - constraints: [locale, options], - validator: { - validate: (value, args) => isMobilePhone(value, args.constraints[0], args.constraints[1]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a phone number', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMobilePhone.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMobilePhone.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsMobilePhone.js.map deleted file mode 100644 index d207b61..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMobilePhone.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMobilePhone.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMobilePhone.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AAGjE,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAc,EACd,MAAsC,EACtC,OAA0C;IAE1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAsC,EACtC,OAA0C,EAC1C,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAC9B,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAClG,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kCAAkC,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMobilePhoneValidator from 'validator/lib/isMobilePhone';\nimport ValidatorJS from 'validator';\n\nexport const IS_MOBILE_PHONE = 'isMobilePhone';\n\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function isMobilePhone(\n value: unknown,\n locale?: ValidatorJS.MobilePhoneLocale,\n options?: ValidatorJS.IsMobilePhoneOptions\n): boolean {\n return typeof value === 'string' && isMobilePhoneValidator(value, locale, options);\n}\n\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function IsMobilePhone(\n locale?: ValidatorJS.MobilePhoneLocale,\n options?: ValidatorJS.IsMobilePhoneOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MOBILE_PHONE,\n constraints: [locale, options],\n validator: {\n validate: (value, args): boolean => isMobilePhone(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a phone number', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMongoId.js b/views/node_modules/class-validator/esm2015/decorator/string/IsMongoId.js deleted file mode 100644 index 134b8be..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMongoId.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMongoIdValidator from 'validator/lib/isMongoId'; -export const IS_MONGO_ID = 'isMongoId'; -/** - * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. - * If given value is not a string, then it returns false. - */ -export function isMongoId(value) { - return typeof value === 'string' && isMongoIdValidator(value); -} -/** - * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. - * If given value is not a string, then it returns false. - */ -export function IsMongoId(validationOptions) { - return ValidateBy({ - name: IS_MONGO_ID, - validator: { - validate: (value, args) => isMongoId(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a mongodb id', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMongoId.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMongoId.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsMongoId.js.map deleted file mode 100644 index 49092a7..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMongoId.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMongoId.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMongoId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACpD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,gCAAgC,EAAE,iBAAiB,CAAC;SAC7G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMongoIdValidator from 'validator/lib/isMongoId';\n\nexport const IS_MONGO_ID = 'isMongoId';\n\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function isMongoId(value: unknown): boolean {\n return typeof value === 'string' && isMongoIdValidator(value);\n}\n\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function IsMongoId(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MONGO_ID,\n validator: {\n validate: (value, args): boolean => isMongoId(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a mongodb id', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMultibyte.js b/views/node_modules/class-validator/esm2015/decorator/string/IsMultibyte.js deleted file mode 100644 index 370f0da..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMultibyte.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMultibyteValidator from 'validator/lib/isMultibyte'; -export const IS_MULTIBYTE = 'isMultibyte'; -/** - * Checks if the string contains one or more multibyte chars. - * If given value is not a string, then it returns false. - */ -export function isMultibyte(value) { - return typeof value === 'string' && isMultibyteValidator(value); -} -/** - * Checks if the string contains one or more multibyte chars. - * If given value is not a string, then it returns false. - */ -export function IsMultibyte(validationOptions) { - return ValidateBy({ - name: IS_MULTIBYTE, - validator: { - validate: (value, args) => isMultibyte(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain one or more multibyte chars', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMultibyte.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsMultibyte.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsMultibyte.js.map deleted file mode 100644 index 48ef482..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsMultibyte.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMultibyte.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMultibyte.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oDAAoD,EAC/E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMultibyteValidator from 'validator/lib/isMultibyte';\n\nexport const IS_MULTIBYTE = 'isMultibyte';\n\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function isMultibyte(value: unknown): boolean {\n return typeof value === 'string' && isMultibyteValidator(value);\n}\n\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsMultibyte(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MULTIBYTE,\n validator: {\n validate: (value, args): boolean => isMultibyte(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain one or more multibyte chars',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsNumberString.js b/views/node_modules/class-validator/esm2015/decorator/string/IsNumberString.js deleted file mode 100644 index 5f11c3c..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsNumberString.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isNumericValidator from 'validator/lib/isNumeric'; -export const IS_NUMBER_STRING = 'isNumberString'; -/** - * Checks if the string is numeric. - * If given value is not a string, then it returns false. - */ -export function isNumberString(value, options) { - return typeof value === 'string' && isNumericValidator(value, options); -} -/** - * Checks if the string is numeric. - * If given value is not a string, then it returns false. - */ -export function IsNumberString(options, validationOptions) { - return ValidateBy({ - name: IS_NUMBER_STRING, - constraints: [options], - validator: { - validate: (value, args) => isNumberString(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a number string', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNumberString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsNumberString.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsNumberString.js.map deleted file mode 100644 index 471ea9b..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsNumberString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNumberString.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsNumberString.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAGzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,OAAsC;IACnF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAsC,EACtC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC9E,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,mCAAmC,EAAE,iBAAiB,CAAC;SAChH;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isNumericValidator from 'validator/lib/isNumeric';\nimport ValidatorJS from 'validator';\n\nexport const IS_NUMBER_STRING = 'isNumberString';\n\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function isNumberString(value: unknown, options?: ValidatorJS.IsNumericOptions): boolean {\n return typeof value === 'string' && isNumericValidator(value, options);\n}\n\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function IsNumberString(\n options?: ValidatorJS.IsNumericOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NUMBER_STRING,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isNumberString(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a number string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsOctal.js b/views/node_modules/class-validator/esm2015/decorator/string/IsOctal.js deleted file mode 100644 index 0cd552a..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsOctal.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isOctalValidator from 'validator/lib/isOctal'; -export const IS_OCTAL = 'isOctal'; -/** - * Check if the string is a valid octal number. - * If given value is not a string, then it returns false. - */ -export function isOctal(value) { - return typeof value === 'string' && isOctalValidator(value); -} -/** - * Check if the string is a valid octal number. - * If given value is not a string, then it returns false. - */ -export function IsOctal(validationOptions) { - return ValidateBy({ - name: IS_OCTAL, - validator: { - validate: (value, args) => isOctal(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be valid octal number', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsOctal.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsOctal.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsOctal.js.map deleted file mode 100644 index 4a39b81..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsOctal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsOctal.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsOctal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,iBAAqC;IAC3D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAClD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,sCAAsC,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isOctalValidator from 'validator/lib/isOctal';\n\nexport const IS_OCTAL = 'isOctal';\n\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function isOctal(value: unknown): boolean {\n return typeof value === 'string' && isOctalValidator(value);\n}\n\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsOctal(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_OCTAL,\n validator: {\n validate: (value, args): boolean => isOctal(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be valid octal number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsPassportNumber.js b/views/node_modules/class-validator/esm2015/decorator/string/IsPassportNumber.js deleted file mode 100644 index 4a42678..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsPassportNumber.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isPassportNumberValidator from 'validator/lib/isPassportNumber'; -export const IS_PASSPORT_NUMBER = 'isPassportNumber'; -/** - * Check if the string is a valid passport number relative to a specific country code. - * If given value is not a string, then it returns false. - */ -export function isPassportNumber(value, countryCode) { - return typeof value === 'string' && isPassportNumberValidator(value, countryCode); -} -/** - * Check if the string is a valid passport number relative to a specific country code. - * If given value is not a string, then it returns false. - */ -export function IsPassportNumber(countryCode, validationOptions) { - return ValidateBy({ - name: IS_PASSPORT_NUMBER, - constraints: [countryCode], - validator: { - validate: (value, args) => isPassportNumber(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be valid passport number', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsPassportNumber.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsPassportNumber.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsPassportNumber.js.map deleted file mode 100644 index cc57b19..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsPassportNumber.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPassportNumber.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPassportNumber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AAEvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,WAAmB;IAClE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACpF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,iBAAqC;IACzF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,CAAC,WAAW,CAAC;QAC1B,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAChF,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,yCAAyC,EACpE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPassportNumberValidator from 'validator/lib/isPassportNumber';\n\nexport const IS_PASSPORT_NUMBER = 'isPassportNumber';\n\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function isPassportNumber(value: unknown, countryCode: string): boolean {\n return typeof value === 'string' && isPassportNumberValidator(value, countryCode);\n}\n\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function IsPassportNumber(countryCode: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_PASSPORT_NUMBER,\n constraints: [countryCode],\n validator: {\n validate: (value, args): boolean => isPassportNumber(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be valid passport number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsPhoneNumber.js b/views/node_modules/class-validator/esm2015/decorator/string/IsPhoneNumber.js deleted file mode 100644 index a424e8b..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsPhoneNumber.js +++ /dev/null @@ -1,40 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import { parsePhoneNumberFromString } from 'libphonenumber-js'; -export const IS_PHONE_NUMBER = 'isPhoneNumber'; -/** - * Checks if the string is a valid phone number. To successfully validate any phone number the text must include - * the intl. calling code, if the calling code wont be provided then the region must be set. - * - * @param value the potential phone number string to test - * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation. - * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter. - */ -export function isPhoneNumber(value, region) { - try { - const phoneNum = parsePhoneNumberFromString(value, region); - const result = phoneNum === null || phoneNum === void 0 ? void 0 : phoneNum.isValid(); - return !!result; - } - catch (error) { - // logging? - return false; - } -} -/** - * Checks if the string is a valid phone number. To successfully validate any phone number the text must include - * the intl. calling code, if the calling code wont be provided then the region must be set. - * - * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation. - * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter. - */ -export function IsPhoneNumber(region, validationOptions) { - return ValidateBy({ - name: IS_PHONE_NUMBER, - constraints: [region], - validator: { - validate: (value, args) => isPhoneNumber(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid phone number', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsPhoneNumber.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsPhoneNumber.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsPhoneNumber.js.map deleted file mode 100644 index 221baf0..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsPhoneNumber.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPhoneNumber.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPhoneNumber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAe,MAAM,mBAAmB,CAAC;AAE5E,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAoB;IAC/D,IAAI;QACF,MAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC,MAAM,CAAC;KACjB;IAAC,OAAO,KAAK,EAAE;QACd,WAAW;QACX,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB,EAAE,iBAAqC;IACvF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7E,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,wCAAwC,EACnE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { parsePhoneNumberFromString, CountryCode } from 'libphonenumber-js';\n\nexport const IS_PHONE_NUMBER = 'isPhoneNumber';\n\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param value the potential phone number string to test\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function isPhoneNumber(value: string, region?: CountryCode): boolean {\n try {\n const phoneNum = parsePhoneNumberFromString(value, region);\n const result = phoneNum?.isValid();\n return !!result;\n } catch (error) {\n // logging?\n return false;\n }\n}\n\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function IsPhoneNumber(region?: CountryCode, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_PHONE_NUMBER,\n constraints: [region],\n validator: {\n validate: (value, args): boolean => isPhoneNumber(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid phone number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsPort.js b/views/node_modules/class-validator/esm2015/decorator/string/IsPort.js deleted file mode 100644 index 5eb623b..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsPort.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isPortValidator from 'validator/lib/isPort'; -export const IS_PORT = 'isPort'; -/** - * Check if the string is a valid port number. - */ -export function isPort(value) { - return typeof value === 'string' && isPortValidator(value); -} -/** - * Check if the string is a valid port number. - */ -export function IsPort(validationOptions) { - return ValidateBy({ - name: IS_PORT, - validator: { - validate: (value, args) => isPort(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a port', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsPort.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsPort.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsPort.js.map deleted file mode 100644 index edd1452..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsPort.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPort.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPort.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0BAA0B,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPortValidator from 'validator/lib/isPort';\n\nexport const IS_PORT = 'isPort';\n\n/**\n * Check if the string is a valid port number.\n */\nexport function isPort(value: unknown): boolean {\n return typeof value === 'string' && isPortValidator(value);\n}\n\n/**\n * Check if the string is a valid port number.\n */\nexport function IsPort(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_PORT,\n validator: {\n validate: (value, args): boolean => isPort(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a port', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsPostalCode.js b/views/node_modules/class-validator/esm2015/decorator/string/IsPostalCode.js deleted file mode 100644 index fca2f7a..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsPostalCode.js +++ /dev/null @@ -1,27 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isPostalCodeValidator from 'validator/lib/isPostalCode'; -export const IS_POSTAL_CODE = 'isPostalCode'; -/** - * Check if the string is a postal code, - * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.). - * If given value is not a string, then it returns false. - */ -export function isPostalCode(value, locale) { - return typeof value === 'string' && isPostalCodeValidator(value, locale); -} -/** - * Check if the string is a postal code, - * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.). - * If given value is not a string, then it returns false. - */ -export function IsPostalCode(locale, validationOptions) { - return ValidateBy({ - name: IS_POSTAL_CODE, - constraints: [locale], - validator: { - validate: (value, args) => isPostalCode(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a postal code', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsPostalCode.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsPostalCode.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsPostalCode.js.map deleted file mode 100644 index d25494d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsPostalCode.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPostalCode.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPostalCode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAG/D,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,MAA4C;IACvF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA6C,EAC7C,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5E,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPostalCodeValidator from 'validator/lib/isPostalCode';\nimport ValidatorJS from 'validator';\n\nexport const IS_POSTAL_CODE = 'isPostalCode';\n\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function isPostalCode(value: unknown, locale: 'any' | ValidatorJS.PostalCodeLocale): boolean {\n return typeof value === 'string' && isPostalCodeValidator(value, locale);\n}\n\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function IsPostalCode(\n locale?: 'any' | ValidatorJS.PostalCodeLocale,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_POSTAL_CODE,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isPostalCode(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a postal code', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsRFC3339.js b/views/node_modules/class-validator/esm2015/decorator/string/IsRFC3339.js deleted file mode 100644 index dcf6fbd..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsRFC3339.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isRFC3339Validator from 'validator/lib/isRFC3339'; -export const IS_RFC_3339 = 'isRFC3339'; -/** - * Check if the string is a valid RFC 3339 date. - * If given value is not a string, then it returns false. - */ -export function isRFC3339(value) { - return typeof value === 'string' && isRFC3339Validator(value); -} -/** - * Check if the string is a valid RFC 3339 date. - * If given value is not a string, then it returns false. - */ -export function IsRFC3339(validationOptions) { - return ValidateBy({ - name: IS_RFC_3339, - validator: { - validate: (value, args) => isRFC3339(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be RFC 3339 date', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsRFC3339.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsRFC3339.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsRFC3339.js.map deleted file mode 100644 index d1108c3..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsRFC3339.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsRFC3339.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsRFC3339.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACpD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,iCAAiC,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRFC3339Validator from 'validator/lib/isRFC3339';\n\nexport const IS_RFC_3339 = 'isRFC3339';\n\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function isRFC3339(value: unknown): boolean {\n return typeof value === 'string' && isRFC3339Validator(value);\n}\n\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function IsRFC3339(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_RFC_3339,\n validator: {\n validate: (value, args): boolean => isRFC3339(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be RFC 3339 date', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsRgbColor.js b/views/node_modules/class-validator/esm2015/decorator/string/IsRgbColor.js deleted file mode 100644 index 959d085..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsRgbColor.js +++ /dev/null @@ -1,27 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isRgbColorValidator from 'validator/lib/isRgbColor'; -export const IS_RGB_COLOR = 'isRgbColor'; -/** - * Check if the string is a rgb or rgba color. - * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false. - * If given value is not a string, then it returns false. - */ -export function isRgbColor(value, includePercentValues) { - return typeof value === 'string' && isRgbColorValidator(value, includePercentValues); -} -/** - * Check if the string is a rgb or rgba color. - * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false. - * If given value is not a string, then it returns false. - */ -export function IsRgbColor(includePercentValues, validationOptions) { - return ValidateBy({ - name: IS_RGB_COLOR, - constraints: [includePercentValues], - validator: { - validate: (value, args) => isRgbColor(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be RGB color', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsRgbColor.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsRgbColor.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsRgbColor.js.map deleted file mode 100644 index 78068a1..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsRgbColor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsRgbColor.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsRgbColor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,oBAA8B;IACvE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;AACvF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,oBAA8B,EAAE,iBAAqC;IAC9F,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,CAAC,oBAAoB,CAAC;QACnC,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC1E,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,6BAA6B,EAAE,iBAAiB,CAAC;SAC1G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRgbColorValidator from 'validator/lib/isRgbColor';\n\nexport const IS_RGB_COLOR = 'isRgbColor';\n\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function isRgbColor(value: unknown, includePercentValues?: boolean): boolean {\n return typeof value === 'string' && isRgbColorValidator(value, includePercentValues);\n}\n\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function IsRgbColor(includePercentValues?: boolean, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_RGB_COLOR,\n constraints: [includePercentValues],\n validator: {\n validate: (value, args): boolean => isRgbColor(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be RGB color', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsSemVer.js b/views/node_modules/class-validator/esm2015/decorator/string/IsSemVer.js deleted file mode 100644 index d306785..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsSemVer.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isSemVerValidator from 'validator/lib/isSemVer'; -export const IS_SEM_VER = 'isSemVer'; -/** - * Check if the string is a Semantic Versioning Specification (SemVer). - * If given value is not a string, then it returns false. - */ -export function isSemVer(value) { - return typeof value === 'string' && isSemVerValidator(value); -} -/** - * Check if the string is a Semantic Versioning Specification (SemVer). - * If given value is not a string, then it returns false. - */ -export function IsSemVer(validationOptions) { - return ValidateBy({ - name: IS_SEM_VER, - validator: { - validate: (value, args) => isSemVer(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a Semantic Versioning Specification', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsSemVer.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsSemVer.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsSemVer.js.map deleted file mode 100644 index 4a76ab5..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsSemVer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsSemVer.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsSemVer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,uDAAuD,EAClF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSemVerValidator from 'validator/lib/isSemVer';\n\nexport const IS_SEM_VER = 'isSemVer';\n\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function isSemVer(value: unknown): boolean {\n return typeof value === 'string' && isSemVerValidator(value);\n}\n\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function IsSemVer(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_SEM_VER,\n validator: {\n validate: (value, args): boolean => isSemVer(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a Semantic Versioning Specification',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsSurrogatePair.js b/views/node_modules/class-validator/esm2015/decorator/string/IsSurrogatePair.js deleted file mode 100644 index 0c44e00..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsSurrogatePair.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isSurrogatePairValidator from 'validator/lib/isSurrogatePair'; -export const IS_SURROGATE_PAIR = 'isSurrogatePair'; -/** - * Checks if the string contains any surrogate pairs chars. - * If given value is not a string, then it returns false. - */ -export function isSurrogatePair(value) { - return typeof value === 'string' && isSurrogatePairValidator(value); -} -/** - * Checks if the string contains any surrogate pairs chars. - * If given value is not a string, then it returns false. - */ -export function IsSurrogatePair(validationOptions) { - return ValidateBy({ - name: IS_SURROGATE_PAIR, - validator: { - validate: (value, args) => isSurrogatePair(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain any surrogate pairs chars', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsSurrogatePair.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsSurrogatePair.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsSurrogatePair.js.map deleted file mode 100644 index bbe318a..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsSurrogatePair.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsSurrogatePair.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsSurrogatePair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,iBAAqC;IACnE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;YAC1D,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kDAAkD,EAC7E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSurrogatePairValidator from 'validator/lib/isSurrogatePair';\n\nexport const IS_SURROGATE_PAIR = 'isSurrogatePair';\n\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function isSurrogatePair(value: unknown): boolean {\n return typeof value === 'string' && isSurrogatePairValidator(value);\n}\n\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsSurrogatePair(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_SURROGATE_PAIR,\n validator: {\n validate: (value, args): boolean => isSurrogatePair(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain any surrogate pairs chars',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsUUID.js b/views/node_modules/class-validator/esm2015/decorator/string/IsUUID.js deleted file mode 100644 index 070ee8d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsUUID.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isUuidValidator from 'validator/lib/isUUID'; -export const IS_UUID = 'isUuid'; -/** - * Checks if the string is a UUID (version 3, 4 or 5). - * If given value is not a string, then it returns false. - */ -export function isUUID(value, version) { - return typeof value === 'string' && isUuidValidator(value, version); -} -/** - * Checks if the string is a UUID (version 3, 4 or 5). - * If given value is not a string, then it returns false. - */ -export function IsUUID(version, validationOptions) { - return ValidateBy({ - name: IS_UUID, - constraints: [version], - validator: { - validate: (value, args) => isUUID(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a UUID', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsUUID.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsUUID.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsUUID.js.map deleted file mode 100644 index e1ca7d3..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsUUID.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsUUID.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsUUID.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAInD,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,OAAqB;IAC1D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,OAAqB,EAAE,iBAAqC;IACjF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,0BAA0B,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUuidValidator from 'validator/lib/isUUID';\n\nexport type UUIDVersion = '3' | '4' | '5' | 'all' | 3 | 4 | 5;\n\nexport const IS_UUID = 'isUuid';\n\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function isUUID(value: unknown, version?: UUIDVersion): boolean {\n return typeof value === 'string' && isUuidValidator(value, version);\n}\n\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function IsUUID(version?: UUIDVersion, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_UUID,\n constraints: [version],\n validator: {\n validate: (value, args): boolean => isUUID(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a UUID', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsUppercase.js b/views/node_modules/class-validator/esm2015/decorator/string/IsUppercase.js deleted file mode 100644 index 07b130f..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsUppercase.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isUppercaseValidator from 'validator/lib/isUppercase'; -export const IS_UPPERCASE = 'isUppercase'; -/** - * Checks if the string is uppercase. - * If given value is not a string, then it returns false. - */ -export function isUppercase(value) { - return typeof value === 'string' && isUppercaseValidator(value); -} -/** - * Checks if the string is uppercase. - * If given value is not a string, then it returns false. - */ -export function IsUppercase(validationOptions) { - return ValidateBy({ - name: IS_UPPERCASE, - validator: { - validate: (value, args) => isUppercase(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be uppercase', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsUppercase.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsUppercase.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsUppercase.js.map deleted file mode 100644 index 2b1a583..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsUppercase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsUppercase.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsUppercase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;YACtD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,6BAA6B,EAAE,iBAAiB,CAAC;SAC1G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUppercaseValidator from 'validator/lib/isUppercase';\n\nexport const IS_UPPERCASE = 'isUppercase';\n\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function isUppercase(value: unknown): boolean {\n return typeof value === 'string' && isUppercaseValidator(value);\n}\n\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsUppercase(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_UPPERCASE,\n validator: {\n validate: (value, args): boolean => isUppercase(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be uppercase', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsUrl.js b/views/node_modules/class-validator/esm2015/decorator/string/IsUrl.js deleted file mode 100644 index a1e3800..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsUrl.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isUrlValidator from 'validator/lib/isURL'; -export const IS_URL = 'isUrl'; -/** - * Checks if the string is an url. - * If given value is not a string, then it returns false. - */ -export function isURL(value, options) { - return typeof value === 'string' && isUrlValidator(value, options); -} -/** - * Checks if the string is an url. - * If given value is not a string, then it returns false. - */ -export function IsUrl(options, validationOptions) { - return ValidateBy({ - name: IS_URL, - constraints: [options], - validator: { - validate: (value, args) => isURL(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an URL address', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsUrl.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsUrl.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsUrl.js.map deleted file mode 100644 index 76fe3ea..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsUrl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsUrl.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsUrl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAGjD,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,OAAkC;IACrE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,OAAkC,EAAE,iBAAqC;IAC7F,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACrE,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,kCAAkC,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUrlValidator from 'validator/lib/isURL';\nimport ValidatorJS from 'validator';\n\nexport const IS_URL = 'isUrl';\n\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function isURL(value: string, options?: ValidatorJS.IsURLOptions): boolean {\n return typeof value === 'string' && isUrlValidator(value, options);\n}\n\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function IsUrl(options?: ValidatorJS.IsURLOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_URL,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isURL(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an URL address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsVariableWidth.js b/views/node_modules/class-validator/esm2015/decorator/string/IsVariableWidth.js deleted file mode 100644 index a4801d9..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsVariableWidth.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isVariableWidthValidator from 'validator/lib/isVariableWidth'; -export const IS_VARIABLE_WIDTH = 'isVariableWidth'; -/** - * Checks if the string contains variable-width chars. - * If given value is not a string, then it returns false. - */ -export function isVariableWidth(value) { - return typeof value === 'string' && isVariableWidthValidator(value); -} -/** - * Checks if the string contains variable-width chars. - * If given value is not a string, then it returns false. - */ -export function IsVariableWidth(validationOptions) { - return ValidateBy({ - name: IS_VARIABLE_WIDTH, - validator: { - validate: (value, args) => isVariableWidth(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must contain a full-width and half-width characters', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsVariableWidth.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/IsVariableWidth.js.map b/views/node_modules/class-validator/esm2015/decorator/string/IsVariableWidth.js.map deleted file mode 100644 index 7d55bf3..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/IsVariableWidth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsVariableWidth.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsVariableWidth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,iBAAqC;IACnE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC;YAC1D,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,+DAA+D,EAC1F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isVariableWidthValidator from 'validator/lib/isVariableWidth';\n\nexport const IS_VARIABLE_WIDTH = 'isVariableWidth';\n\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isVariableWidth(value: unknown): boolean {\n return typeof value === 'string' && isVariableWidthValidator(value);\n}\n\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsVariableWidth(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_VARIABLE_WIDTH,\n validator: {\n validate: (value, args): boolean => isVariableWidth(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a full-width and half-width characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/Length.js b/views/node_modules/class-validator/esm2015/decorator/string/Length.js deleted file mode 100644 index 3279bdf..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/Length.js +++ /dev/null @@ -1,36 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isLengthValidator from 'validator/lib/isLength'; -export const IS_LENGTH = 'isLength'; -/** - * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function length(value, min, max) { - return typeof value === 'string' && isLengthValidator(value, { min, max }); -} -/** - * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function Length(min, max, validationOptions) { - return ValidateBy({ - name: IS_LENGTH, - constraints: [min, max], - validator: { - validate: (value, args) => length(value, args.constraints[0], args.constraints[1]), - defaultMessage: buildMessage((eachPrefix, args) => { - const isMinLength = args.constraints[0] !== null && args.constraints[0] !== undefined; - const isMaxLength = args.constraints[1] !== null && args.constraints[1] !== undefined; - if (isMinLength && (!args.value || args.value.length < args.constraints[0])) { - return eachPrefix + '$property must be longer than or equal to $constraint1 characters'; - } - else if (isMaxLength && args.value.length > args.constraints[1]) { - return eachPrefix + '$property must be shorter than or equal to $constraint2 characters'; - } - return (eachPrefix + - '$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters'); - }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Length.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/Length.js.map b/views/node_modules/class-validator/esm2015/decorator/string/Length.js.map deleted file mode 100644 index dc1cdea..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/Length.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Length.js","sourceRoot":"","sources":["../../../../src/decorator/string/Length.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,GAAW,EAAE,GAAY;IAC9D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,GAAY,EAAE,iBAAqC;IACrF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3F,cAAc,EAAE,YAAY,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE;gBAChD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;gBACtF,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;gBACtF,IAAI,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC3E,OAAO,UAAU,GAAG,mEAAmE,CAAC;iBACzF;qBAAM,IAAI,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;oBACjE,OAAO,UAAU,GAAG,oEAAoE,CAAC;iBAC1F;gBACD,OAAO,CACL,UAAU;oBACV,6GAA6G,CAC9G,CAAC;YACJ,CAAC,EAAE,iBAAiB,CAAC;SACtB;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\n\nexport const IS_LENGTH = 'isLength';\n\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function length(value: unknown, min: number, max?: number): boolean {\n return typeof value === 'string' && isLengthValidator(value, { min, max });\n}\n\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function Length(min: number, max?: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LENGTH,\n constraints: [min, max],\n validator: {\n validate: (value, args): boolean => length(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage((eachPrefix, args) => {\n const isMinLength = args.constraints[0] !== null && args.constraints[0] !== undefined;\n const isMaxLength = args.constraints[1] !== null && args.constraints[1] !== undefined;\n if (isMinLength && (!args.value || args.value.length < args.constraints[0])) {\n return eachPrefix + '$property must be longer than or equal to $constraint1 characters';\n } else if (isMaxLength && args.value.length > args.constraints[1]) {\n return eachPrefix + '$property must be shorter than or equal to $constraint2 characters';\n }\n return (\n eachPrefix +\n '$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters'\n );\n }, validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/Matches.js b/views/node_modules/class-validator/esm2015/decorator/string/Matches.js deleted file mode 100644 index 13834d0..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/Matches.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import matchesValidator from 'validator/lib/matches'; -export const MATCHES = 'matches'; -export function matches(value, pattern, modifiers) { - return typeof value === 'string' && matchesValidator(value, pattern, modifiers); -} -export function Matches(pattern, modifiersOrAnnotationOptions, validationOptions) { - let modifiers; - if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) { - validationOptions = modifiersOrAnnotationOptions; - } - else { - modifiers = modifiersOrAnnotationOptions; - } - return ValidateBy({ - name: MATCHES, - constraints: [pattern, modifiers], - validator: { - validate: (value, args) => matches(value, args.constraints[0], args.constraints[1]), - defaultMessage: buildMessage((eachPrefix, args) => eachPrefix + '$property must match $constraint1 regular expression', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Matches.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/Matches.js.map b/views/node_modules/class-validator/esm2015/decorator/string/Matches.js.map deleted file mode 100644 index 0a4e3da..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/Matches.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Matches.js","sourceRoot":"","sources":["../../../../src/decorator/string/Matches.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AAQjC,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,OAAwB,EAAE,SAAkB;IACjF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,EAAG,OAA0B,EAAE,SAAS,CAAC,CAAC;AACtG,CAAC;AAQD,MAAM,UAAU,OAAO,CACrB,OAAwB,EACxB,4BAAyD,EACzD,iBAAqC;IAErC,IAAI,SAAiB,CAAC;IACtB,IAAI,4BAA4B,IAAI,4BAA4B,YAAY,MAAM,IAAI,CAAC,iBAAiB,EAAE;QACxG,iBAAiB,GAAG,4BAA4B,CAAC;KAClD;SAAM;QACL,SAAS,GAAG,4BAAsC,CAAC;KACpD;IAED,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;QACjC,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC5F,cAAc,EAAE,YAAY,CAC1B,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,sDAAsD,EACzF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\n\nexport const MATCHES = 'matches';\n\n/**\n * Checks if string matches the pattern. Either matches('foo', /foo/i).\n * If given value is not a string, then it returns false.\n */\nexport function matches(value: string, pattern: RegExp): boolean;\nexport function matches(value: string, pattern: string, modifiers: string): boolean;\nexport function matches(value: string, pattern: RegExp | string, modifiers?: string): boolean {\n return typeof value === 'string' && matchesValidator(value, (pattern as unknown) as any, modifiers);\n}\n\n/**\n * Checks if string matches the pattern. Either matches('foo', /foo/i)\n * If given value is not a string, then it returns false.\n */\nexport function Matches(pattern: RegExp, validationOptions?: ValidationOptions): PropertyDecorator;\nexport function Matches(pattern: string, modifiers?: string, validationOptions?: ValidationOptions): PropertyDecorator;\nexport function Matches(\n pattern: RegExp | string,\n modifiersOrAnnotationOptions?: string | ValidationOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n let modifiers: string;\n if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) {\n validationOptions = modifiersOrAnnotationOptions;\n } else {\n modifiers = modifiersOrAnnotationOptions as string;\n }\n\n return ValidateBy(\n {\n name: MATCHES,\n constraints: [pattern, modifiers],\n validator: {\n validate: (value, args): boolean => matches(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage(\n (eachPrefix, args) => eachPrefix + '$property must match $constraint1 regular expression',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/MaxLength.js b/views/node_modules/class-validator/esm2015/decorator/string/MaxLength.js deleted file mode 100644 index c9964b7..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/MaxLength.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isLengthValidator from 'validator/lib/isLength'; -export const MAX_LENGTH = 'maxLength'; -/** - * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function maxLength(value, max) { - return typeof value === 'string' && isLengthValidator(value, { min: 0, max }); -} -/** - * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function MaxLength(max, validationOptions) { - return ValidateBy({ - name: MAX_LENGTH, - constraints: [max], - validator: { - validate: (value, args) => maxLength(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be shorter than or equal to $constraint1 characters', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=MaxLength.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/MaxLength.js.map b/views/node_modules/class-validator/esm2015/decorator/string/MaxLength.js.map deleted file mode 100644 index 90f1c5a..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/MaxLength.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MaxLength.js","sourceRoot":"","sources":["../../../../src/decorator/string/MaxLength.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,GAAW;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,iBAAqC;IAC1E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACzE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oEAAoE,EAC/F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\n\nexport const MAX_LENGTH = 'maxLength';\n\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function maxLength(value: unknown, max: number): boolean {\n return typeof value === 'string' && isLengthValidator(value, { min: 0, max });\n}\n\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MaxLength(max: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MAX_LENGTH,\n constraints: [max],\n validator: {\n validate: (value, args): boolean => maxLength(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be shorter than or equal to $constraint1 characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/MinLength.js b/views/node_modules/class-validator/esm2015/decorator/string/MinLength.js deleted file mode 100644 index f12b266..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/MinLength.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isLengthValidator from 'validator/lib/isLength'; -export const MIN_LENGTH = 'minLength'; -/** - * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function minLength(value, min) { - return typeof value === 'string' && isLengthValidator(value, { min }); -} -/** - * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function MinLength(min, validationOptions) { - return ValidateBy({ - name: MIN_LENGTH, - constraints: [min], - validator: { - validate: (value, args) => minLength(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be longer than or equal to $constraint1 characters', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=MinLength.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/MinLength.js.map b/views/node_modules/class-validator/esm2015/decorator/string/MinLength.js.map deleted file mode 100644 index 06d0870..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/MinLength.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MinLength.js","sourceRoot":"","sources":["../../../../src/decorator/string/MinLength.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,GAAW;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,iBAAqC;IAC1E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACzE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,mEAAmE,EAC9F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\n\nexport const MIN_LENGTH = 'minLength';\n\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function minLength(value: unknown, min: number): boolean {\n return typeof value === 'string' && isLengthValidator(value, { min });\n}\n\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MinLength(min: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MIN_LENGTH,\n constraints: [min],\n validator: {\n validate: (value, args): boolean => minLength(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be longer than or equal to $constraint1 characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/NotContains.js b/views/node_modules/class-validator/esm2015/decorator/string/NotContains.js deleted file mode 100644 index 8bf9a1f..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/NotContains.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import containsValidator from 'validator/lib/contains'; -export const NOT_CONTAINS = 'notContains'; -/** - * Checks if the string does not contain the seed. - * If given value is not a string, then it returns false. - */ -export function notContains(value, seed) { - return typeof value === 'string' && !containsValidator(value, seed); -} -/** - * Checks if the string does not contain the seed. - * If given value is not a string, then it returns false. - */ -export function NotContains(seed, validationOptions) { - return ValidateBy({ - name: NOT_CONTAINS, - constraints: [seed], - validator: { - validate: (value, args) => notContains(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not contain a $constraint1 string', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=NotContains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/string/NotContains.js.map b/views/node_modules/class-validator/esm2015/decorator/string/NotContains.js.map deleted file mode 100644 index d483f5d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/string/NotContains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NotContains.js","sourceRoot":"","sources":["../../../../src/decorator/string/NotContains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,IAAY;IACtD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,iBAAqC;IAC7E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3E,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oDAAoD,EAC/E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\n\nexport const NOT_CONTAINS = 'notContains';\n\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function notContains(value: unknown, seed: string): boolean {\n return typeof value === 'string' && !containsValidator(value, seed);\n}\n\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function NotContains(seed: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: NOT_CONTAINS,\n constraints: [seed],\n validator: {\n validate: (value, args): boolean => notContains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not contain a $constraint1 string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsArray.js b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsArray.js deleted file mode 100644 index 0b0e441..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsArray.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_ARRAY = 'isArray'; -/** - * Checks if a given value is an array - */ -export function isArray(value) { - return value instanceof Array; -} -/** - * Checks if a given value is an array - */ -export function IsArray(validationOptions) { - return ValidateBy({ - name: IS_ARRAY, - validator: { - validate: (value, args) => isArray(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an array', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsArray.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsArray.js.map b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsArray.js.map deleted file mode 100644 index 9e50eff..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsArray.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsArray.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsArray.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,iBAAqC;IAC3D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;YAClD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,4BAA4B,EAAE,iBAAiB,CAAC;SACzG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_ARRAY = 'isArray';\n\n/**\n * Checks if a given value is an array\n */\nexport function isArray(value: unknown): boolean {\n return value instanceof Array;\n}\n\n/**\n * Checks if a given value is an array\n */\nexport function IsArray(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ARRAY,\n validator: {\n validate: (value, args): boolean => isArray(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an array', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsBoolean.js b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsBoolean.js deleted file mode 100644 index 694eeff..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsBoolean.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_BOOLEAN = 'isBoolean'; -/** - * Checks if a given value is a boolean. - */ -export function isBoolean(value) { - return value instanceof Boolean || typeof value === 'boolean'; -} -/** - * Checks if a value is a boolean. - */ -export function IsBoolean(validationOptions) { - return ValidateBy({ - name: IS_BOOLEAN, - validator: { - validate: (value, args) => isBoolean(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a boolean value', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBoolean.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsBoolean.js.map b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsBoolean.js.map deleted file mode 100644 index 7c0978b..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsBoolean.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBoolean.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsBoolean.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,KAAK,YAAY,OAAO,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;YACpD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,mCAAmC,EAAE,iBAAiB,CAAC;SAChH;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_BOOLEAN = 'isBoolean';\n\n/**\n * Checks if a given value is a boolean.\n */\nexport function isBoolean(value: unknown): boolean {\n return value instanceof Boolean || typeof value === 'boolean';\n}\n\n/**\n * Checks if a value is a boolean.\n */\nexport function IsBoolean(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BOOLEAN,\n validator: {\n validate: (value, args): boolean => isBoolean(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a boolean value', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsDate.js b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsDate.js deleted file mode 100644 index 5912776..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsDate.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_DATE = 'isDate'; -/** - * Checks if a given value is a date. - */ -export function isDate(value) { - return value instanceof Date && !isNaN(value.getTime()); -} -/** - * Checks if a value is a date. - */ -export function IsDate(validationOptions) { - return ValidateBy({ - name: IS_DATE, - validator: { - validate: (value, args) => isDate(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a Date instance', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsDate.js.map b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsDate.js.map deleted file mode 100644 index 4c696c2..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsDate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDate.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsDate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;YACjD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,mCAAmC,EAAE,iBAAiB,CAAC;SAChH;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_DATE = 'isDate';\n\n/**\n * Checks if a given value is a date.\n */\nexport function isDate(value: unknown): boolean {\n return value instanceof Date && !isNaN(value.getTime());\n}\n\n/**\n * Checks if a value is a date.\n */\nexport function IsDate(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DATE,\n validator: {\n validate: (value, args): boolean => isDate(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a Date instance', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsEnum.js b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsEnum.js deleted file mode 100644 index efab942..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsEnum.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_ENUM = 'isEnum'; -/** - * Checks if a given value is an enum - */ -export function isEnum(value, entity) { - const enumValues = Object.keys(entity).map(k => entity[k]); - return enumValues.indexOf(value) >= 0; -} -/** - * Checks if a given value is an enum - */ -export function IsEnum(entity, validationOptions) { - return ValidateBy({ - name: IS_ENUM, - constraints: [entity], - validator: { - validate: (value, args) => isEnum(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a valid enum value', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsEnum.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsEnum.js.map b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsEnum.js.map deleted file mode 100644 index f3db260..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsEnum.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEnum.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsEnum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,MAAW;IAChD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,MAAc,EAAE,iBAAqC;IAC1E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACtE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,sCAAsC,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_ENUM = 'isEnum';\n\n/**\n * Checks if a given value is an enum\n */\nexport function isEnum(value: unknown, entity: any): boolean {\n const enumValues = Object.keys(entity).map(k => entity[k]);\n return enumValues.indexOf(value) >= 0;\n}\n\n/**\n * Checks if a given value is an enum\n */\nexport function IsEnum(entity: object, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ENUM,\n constraints: [entity],\n validator: {\n validate: (value, args): boolean => isEnum(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid enum value',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsInt.js b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsInt.js deleted file mode 100644 index f6d4c41..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsInt.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_INT = 'isInt'; -/** - * Checks if value is an integer. - */ -export function isInt(val) { - return typeof val === 'number' && Number.isInteger(val); -} -/** - * Checks if value is an integer. - */ -export function IsInt(validationOptions) { - return ValidateBy({ - name: IS_INT, - validator: { - validate: (value, args) => isInt(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an integer number', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsInt.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsInt.js.map b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsInt.js.map deleted file mode 100644 index fc158ab..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsInt.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsInt.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsInt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;YAChD,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,qCAAqC,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_INT = 'isInt';\n\n/**\n * Checks if value is an integer.\n */\nexport function isInt(val: unknown): boolean {\n return typeof val === 'number' && Number.isInteger(val);\n}\n\n/**\n * Checks if value is an integer.\n */\nexport function IsInt(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_INT,\n validator: {\n validate: (value, args): boolean => isInt(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an integer number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsNumber.js b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsNumber.js deleted file mode 100644 index d9808f5..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsNumber.js +++ /dev/null @@ -1,40 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_NUMBER = 'isNumber'; -/** - * Checks if a given value is a number. - */ -export function isNumber(value, options = {}) { - if (typeof value !== 'number') { - return false; - } - if (value === Infinity || value === -Infinity) { - return options.allowInfinity; - } - if (Number.isNaN(value)) { - return options.allowNaN; - } - if (options.maxDecimalPlaces !== undefined) { - let decimalPlaces = 0; - if (value % 1 !== 0) { - decimalPlaces = value.toString().split('.')[1].length; - } - if (decimalPlaces > options.maxDecimalPlaces) { - return false; - } - } - return Number.isFinite(value); -} -/** - * Checks if a value is a number. - */ -export function IsNumber(options = {}, validationOptions) { - return ValidateBy({ - name: IS_NUMBER, - constraints: [options], - validator: { - validate: (value, args) => isNumber(value, args.constraints[0]), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a number conforming to the specified constraints', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNumber.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsNumber.js.map b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsNumber.js.map deleted file mode 100644 index 45abc6e..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsNumber.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNumber.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsNumber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAWpC;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc,EAAE,UAA2B,EAAE;IACpE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IAED,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE;QAC7C,OAAO,OAAO,CAAC,aAAa,CAAC;KAC9B;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,OAAO,CAAC,QAAQ,CAAC;KACzB;IAED,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE;QAC1C,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SACvD;QACD,IAAI,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE;YAC5C,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,UAA2B,EAAE,EAAE,iBAAqC;IAC3F,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACxE,cAAc,EAAE,YAAY,CAC1B,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,oEAAoE,EAC/F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NUMBER = 'isNumber';\n\n/**\n * Options to be passed to IsNumber decorator.\n */\nexport interface IsNumberOptions {\n allowNaN?: boolean;\n allowInfinity?: boolean;\n maxDecimalPlaces?: number;\n}\n\n/**\n * Checks if a given value is a number.\n */\nexport function isNumber(value: unknown, options: IsNumberOptions = {}): boolean {\n if (typeof value !== 'number') {\n return false;\n }\n\n if (value === Infinity || value === -Infinity) {\n return options.allowInfinity;\n }\n\n if (Number.isNaN(value)) {\n return options.allowNaN;\n }\n\n if (options.maxDecimalPlaces !== undefined) {\n let decimalPlaces = 0;\n if (value % 1 !== 0) {\n decimalPlaces = value.toString().split('.')[1].length;\n }\n if (decimalPlaces > options.maxDecimalPlaces) {\n return false;\n }\n }\n\n return Number.isFinite(value);\n}\n\n/**\n * Checks if a value is a number.\n */\nexport function IsNumber(options: IsNumberOptions = {}, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NUMBER,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isNumber(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a number conforming to the specified constraints',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsObject.js b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsObject.js deleted file mode 100644 index ac3538d..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsObject.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_OBJECT = 'isObject'; -/** - * Checks if the value is valid Object. - * Returns false if the value is not an object. - */ -export function isObject(value) { - return value != null && (typeof value === 'object' || typeof value === 'function') && !Array.isArray(value); -} -/** - * Checks if the value is valid Object. - * Returns false if the value is not an object. - */ -export function IsObject(validationOptions) { - return ValidateBy({ - name: IS_OBJECT, - validator: { - validate: (value, args) => isObject(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an object', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsObject.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsObject.js.map b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsObject.js.map deleted file mode 100644 index feac845..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsObject.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsObject.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsObject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,6BAA6B,EAAE,iBAAiB,CAAC;SAC1G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_OBJECT = 'isObject';\n\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function isObject(value: unknown): value is object {\n return value != null && (typeof value === 'object' || typeof value === 'function') && !Array.isArray(value);\n}\n\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function IsObject(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_OBJECT,\n validator: {\n validate: (value, args): boolean => isObject(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an object', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsString.js b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsString.js deleted file mode 100644 index 2a4fac2..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsString.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export const IS_STRING = 'isString'; -/** - * Checks if a given value is a real string. - */ -export function isString(value) { - return value instanceof String || typeof value === 'string'; -} -/** - * Checks if a given value is a real string. - */ -export function IsString(validationOptions) { - return ValidateBy({ - name: IS_STRING, - validator: { - validate: (value, args) => isString(value), - defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a string', validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsString.js.map b/views/node_modules/class-validator/esm2015/decorator/typechecker/IsString.js.map deleted file mode 100644 index b1104d2..0000000 --- a/views/node_modules/class-validator/esm2015/decorator/typechecker/IsString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsString.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsString.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,YAAY,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;YACnD,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,GAAG,4BAA4B,EAAE,iBAAiB,CAAC;SACzG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_STRING = 'isString';\n\n/**\n * Checks if a given value is a real string.\n */\nexport function isString(value: unknown): value is string {\n return value instanceof String || typeof value === 'string';\n}\n\n/**\n * Checks if a given value is a real string.\n */\nexport function IsString(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_STRING,\n validator: {\n validate: (value, args): boolean => isString(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/index.js b/views/node_modules/class-validator/esm2015/index.js deleted file mode 100644 index b89ccf3..0000000 --- a/views/node_modules/class-validator/esm2015/index.js +++ /dev/null @@ -1,60 +0,0 @@ -import { getMetadataStorage } from './metadata/MetadataStorage'; -import { Validator } from './validation/Validator'; -import { getFromContainer } from './container'; -// ------------------------------------------------------------------------- -// Export everything api users needs -// ------------------------------------------------------------------------- -export * from './container'; -export * from './decorator/decorators'; -export * from './decorator/ValidationOptions'; -export * from './validation/ValidatorConstraintInterface'; -export * from './validation/ValidationError'; -export * from './validation/ValidatorOptions'; -export * from './validation/ValidationArguments'; -export * from './validation/ValidationTypes'; -export * from './validation/Validator'; -export * from './validation-schema/ValidationSchema'; -export * from './register-decorator'; -export * from './metadata/MetadataStorage'; -/** - * Validates given object by object's decorators or given validation schema. - */ -export function validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions); - } -} -/** - * Validates given object by object's decorators or given validation schema and reject on error. - */ -export function validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions); - } -} -/** - * Validates given object by object's decorators or given validation schema. - * Note that this method completely ignores async validations. - * If you want to properly perform validation you need to call validate method instead. - */ -export function validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions); - } -} -/** - * Registers a new validation schema. - */ -export function registerSchema(schema) { - getMetadataStorage().addValidationSchema(schema); -} -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/index.js.map b/views/node_modules/class-validator/esm2015/index.js.map deleted file mode 100644 index 921c241..0000000 --- a/views/node_modules/class-validator/esm2015/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,4EAA4E;AAC5E,oCAAoC;AACpC,4EAA4E;AAE5E,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAoB3C;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;IAExC,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAC1C,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,QAAQ,CACzC,kBAAkB,EAClB,yBAAmC,EACnC,qBAAqB,CACtB,CAAC;KACH;SAAM;QACL,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,yBAA6C,CAAC,CAAC;KAChH;AACH,CAAC;AAgBD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;IAExC,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAC1C,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,gBAAgB,CACjD,kBAAkB,EAClB,yBAAmC,EACnC,qBAAqB,CACtB,CAAC;KACH;SAAM;QACL,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,gBAAgB,CACjD,kBAAkB,EAClB,yBAA6C,CAC9C,CAAC;KACH;AACH,CAAC;AAoBD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;IAExC,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAC1C,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,CAC7C,kBAAkB,EAClB,yBAAmC,EACnC,qBAAqB,CACtB,CAAC;KACH;SAAM;QACL,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,yBAA6C,CAAC,CAAC;KACpH;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAwB;IACrD,kBAAkB,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC","sourcesContent":["import { ValidationError } from './validation/ValidationError';\nimport { ValidatorOptions } from './validation/ValidatorOptions';\nimport { ValidationSchema } from './validation-schema/ValidationSchema';\nimport { getMetadataStorage } from './metadata/MetadataStorage';\nimport { Validator } from './validation/Validator';\nimport { getFromContainer } from './container';\n\n// -------------------------------------------------------------------------\n// Export everything api users needs\n// -------------------------------------------------------------------------\n\nexport * from './container';\nexport * from './decorator/decorators';\nexport * from './decorator/ValidationOptions';\nexport * from './validation/ValidatorConstraintInterface';\nexport * from './validation/ValidationError';\nexport * from './validation/ValidatorOptions';\nexport * from './validation/ValidationArguments';\nexport * from './validation/ValidationTypes';\nexport * from './validation/Validator';\nexport * from './validation-schema/ValidationSchema';\nexport * from './register-decorator';\nexport * from './metadata/MetadataStorage';\n\n// -------------------------------------------------------------------------\n// Shortcut methods for api users\n// -------------------------------------------------------------------------\n\n/**\n * Validates given object.\n */\nexport function validate(object: object, validatorOptions?: ValidatorOptions): Promise;\n\n/**\n * Validates given object by a given validation schema.\n */\nexport function validate(\n schemaName: string,\n object: object,\n validatorOptions?: ValidatorOptions\n): Promise;\n\n/**\n * Validates given object by object's decorators or given validation schema.\n */\nexport function validate(\n schemaNameOrObject: object | string,\n objectOrValidationOptions?: object | ValidatorOptions,\n maybeValidatorOptions?: ValidatorOptions\n): Promise {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validate(\n schemaNameOrObject,\n objectOrValidationOptions as object,\n maybeValidatorOptions\n );\n } else {\n return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions as ValidatorOptions);\n }\n}\n\n/**\n * Validates given object and reject on error.\n */\nexport function validateOrReject(object: object, validatorOptions?: ValidatorOptions): Promise;\n\n/**\n * Validates given object by a given validation schema and reject on error.\n */\nexport function validateOrReject(\n schemaName: string,\n object: object,\n validatorOptions?: ValidatorOptions\n): Promise;\n\n/**\n * Validates given object by object's decorators or given validation schema and reject on error.\n */\nexport function validateOrReject(\n schemaNameOrObject: object | string,\n objectOrValidationOptions?: object | ValidatorOptions,\n maybeValidatorOptions?: ValidatorOptions\n): Promise {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateOrReject(\n schemaNameOrObject,\n objectOrValidationOptions as object,\n maybeValidatorOptions\n );\n } else {\n return getFromContainer(Validator).validateOrReject(\n schemaNameOrObject,\n objectOrValidationOptions as ValidatorOptions\n );\n }\n}\n\n/**\n * Performs sync validation of the given object.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(object: object, validatorOptions?: ValidatorOptions): ValidationError[];\n\n/**\n * Validates given object by a given validation schema.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(\n schemaName: string,\n object: object,\n validatorOptions?: ValidatorOptions\n): ValidationError[];\n\n/**\n * Validates given object by object's decorators or given validation schema.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(\n schemaNameOrObject: object | string,\n objectOrValidationOptions?: object | ValidatorOptions,\n maybeValidatorOptions?: ValidatorOptions\n): ValidationError[] {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateSync(\n schemaNameOrObject,\n objectOrValidationOptions as object,\n maybeValidatorOptions\n );\n } else {\n return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions as ValidatorOptions);\n }\n}\n\n/**\n * Registers a new validation schema.\n */\nexport function registerSchema(schema: ValidationSchema): void {\n getMetadataStorage().addValidationSchema(schema);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/metadata/ConstraintMetadata.js b/views/node_modules/class-validator/esm2015/metadata/ConstraintMetadata.js deleted file mode 100644 index 099b2a2..0000000 --- a/views/node_modules/class-validator/esm2015/metadata/ConstraintMetadata.js +++ /dev/null @@ -1,24 +0,0 @@ -import { getFromContainer } from '../container'; -/** - * This metadata interface contains information for custom validators. - */ -export class ConstraintMetadata { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - constructor(target, name, async = false) { - this.target = target; - this.name = name; - this.async = async; - } - // ------------------------------------------------------------------------- - // Accessors - // ------------------------------------------------------------------------- - /** - * Instance of the target custom validation class which performs validation. - */ - get instance() { - return getFromContainer(this.target); - } -} -//# sourceMappingURL=ConstraintMetadata.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/metadata/ConstraintMetadata.js.map b/views/node_modules/class-validator/esm2015/metadata/ConstraintMetadata.js.map deleted file mode 100644 index 2cb0edf..0000000 --- a/views/node_modules/class-validator/esm2015/metadata/ConstraintMetadata.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ConstraintMetadata.js","sourceRoot":"","sources":["../../../src/metadata/ConstraintMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAoB7B,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAY,MAAgB,EAAE,IAAa,EAAE,QAAiB,KAAK;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,4EAA4E;IAC5E,YAAY;IACZ,4EAA4E;IAE5E;;OAEG;IACH,IAAI,QAAQ;QACV,OAAO,gBAAgB,CAA+B,IAAI,CAAC,MAAM,CAAC,CAAC;IACrE,CAAC;CACF","sourcesContent":["import { ValidatorConstraintInterface } from '../validation/ValidatorConstraintInterface';\nimport { getFromContainer } from '../container';\n\n/**\n * This metadata interface contains information for custom validators.\n */\nexport class ConstraintMetadata {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n /**\n * Target class which performs validation.\n */\n target: Function;\n\n /**\n * Custom validation's name, that will be used as validation error type.\n */\n name: string;\n\n /**\n * Indicates if this validation is asynchronous or not.\n */\n async: boolean;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(target: Function, name?: string, async: boolean = false) {\n this.target = target;\n this.name = name;\n this.async = async;\n }\n\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n\n /**\n * Instance of the target custom validation class which performs validation.\n */\n get instance(): ValidatorConstraintInterface {\n return getFromContainer(this.target);\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/metadata/MetadataStorage.js b/views/node_modules/class-validator/esm2015/metadata/MetadataStorage.js deleted file mode 100644 index 0c1de2e..0000000 --- a/views/node_modules/class-validator/esm2015/metadata/MetadataStorage.js +++ /dev/null @@ -1,132 +0,0 @@ -import { ValidationSchemaToMetadataTransformer } from '../validation-schema/ValidationSchemaToMetadataTransformer'; -import { getGlobal } from '../utils'; -/** - * Storage all metadatas. - */ -export class MetadataStorage { - constructor() { - // ------------------------------------------------------------------------- - // Private properties - // ------------------------------------------------------------------------- - this.validationMetadatas = []; - this.constraintMetadatas = []; - } - get hasValidationMetaData() { - return !!this.validationMetadatas.length; - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - /** - * Adds a new validation metadata. - */ - addValidationSchema(schema) { - const validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema); - validationMetadatas.forEach(validationMetadata => this.addValidationMetadata(validationMetadata)); - } - /** - * Adds a new validation metadata. - */ - addValidationMetadata(metadata) { - this.validationMetadatas.push(metadata); - } - /** - * Adds a new constraint metadata. - */ - addConstraintMetadata(metadata) { - this.constraintMetadatas.push(metadata); - } - /** - * Groups metadata by their property names. - */ - groupByPropertyName(metadata) { - const grouped = {}; - metadata.forEach(metadata => { - if (!grouped[metadata.propertyName]) - grouped[metadata.propertyName] = []; - grouped[metadata.propertyName].push(metadata); - }); - return grouped; - } - /** - * Gets all validation metadatas for the given object with the given groups. - */ - getTargetValidationMetadatas(targetConstructor, targetSchema, always, strictGroups, groups) { - const includeMetadataBecauseOfAlwaysOption = (metadata) => { - // `metadata.always` overrides global default. - if (typeof metadata.always !== 'undefined') - return metadata.always; - // `metadata.groups` overrides global default. - if (metadata.groups && metadata.groups.length) - return false; - // Use global default. - return always; - }; - const excludeMetadataBecauseOfStrictGroupsOption = (metadata) => { - if (strictGroups) { - // Validation is not using groups. - if (!groups || !groups.length) { - // `metadata.groups` has at least one group. - if (metadata.groups && metadata.groups.length) - return true; - } - } - return false; - }; - // get directly related to a target metadatas - const originalMetadatas = this.validationMetadatas.filter(metadata => { - if (metadata.target !== targetConstructor && metadata.target !== targetSchema) - return false; - if (includeMetadataBecauseOfAlwaysOption(metadata)) - return true; - if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) - return false; - if (groups && groups.length > 0) - return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1); - return true; - }); - // get metadatas for inherited classes - const inheritedMetadatas = this.validationMetadatas.filter(metadata => { - // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas - if (typeof metadata.target === 'string') - return false; - if (metadata.target === targetConstructor) - return false; - if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target)) - return false; - if (includeMetadataBecauseOfAlwaysOption(metadata)) - return true; - if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) - return false; - if (groups && groups.length > 0) - return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1); - return true; - }); - // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas - const uniqueInheritedMetadatas = inheritedMetadatas.filter(inheritedMetadata => { - return !originalMetadatas.find(originalMetadata => { - return (originalMetadata.propertyName === inheritedMetadata.propertyName && - originalMetadata.type === inheritedMetadata.type); - }); - }); - return originalMetadatas.concat(uniqueInheritedMetadatas); - } - /** - * Gets all validator constraints for the given object. - */ - getTargetValidatorConstraints(target) { - return this.constraintMetadatas.filter(metadata => metadata.target === target); - } -} -/** - * Gets metadata storage. - * Metadata storage follows the best practices and stores metadata in a global variable. - */ -export function getMetadataStorage() { - const global = getGlobal(); - if (!global.classValidatorMetadataStorage) { - global.classValidatorMetadataStorage = new MetadataStorage(); - } - return global.classValidatorMetadataStorage; -} -//# sourceMappingURL=MetadataStorage.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/metadata/MetadataStorage.js.map b/views/node_modules/class-validator/esm2015/metadata/MetadataStorage.js.map deleted file mode 100644 index 5e5c60d..0000000 --- a/views/node_modules/class-validator/esm2015/metadata/MetadataStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MetadataStorage.js","sourceRoot":"","sources":["../../../src/metadata/MetadataStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import { ValidationMetadata } from './ValidationMetadata';\nimport { ConstraintMetadata } from './ConstraintMetadata';\nimport { ValidationSchema } from '../validation-schema/ValidationSchema';\nimport { ValidationSchemaToMetadataTransformer } from '../validation-schema/ValidationSchemaToMetadataTransformer';\nimport { getGlobal } from '../utils';\n\n/**\n * Storage all metadatas.\n */\nexport class MetadataStorage {\n // -------------------------------------------------------------------------\n // Private properties\n // -------------------------------------------------------------------------\n\n private validationMetadatas: ValidationMetadata[] = [];\n private constraintMetadatas: ConstraintMetadata[] = [];\n\n get hasValidationMetaData(): boolean {\n return !!this.validationMetadatas.length;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Adds a new validation metadata.\n */\n addValidationSchema(schema: ValidationSchema): void {\n const validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema);\n validationMetadatas.forEach(validationMetadata => this.addValidationMetadata(validationMetadata));\n }\n\n /**\n * Adds a new validation metadata.\n */\n addValidationMetadata(metadata: ValidationMetadata): void {\n this.validationMetadatas.push(metadata);\n }\n\n /**\n * Adds a new constraint metadata.\n */\n addConstraintMetadata(metadata: ConstraintMetadata): void {\n this.constraintMetadatas.push(metadata);\n }\n\n /**\n * Groups metadata by their property names.\n */\n groupByPropertyName(metadata: ValidationMetadata[]): { [propertyName: string]: ValidationMetadata[] } {\n const grouped: { [propertyName: string]: ValidationMetadata[] } = {};\n metadata.forEach(metadata => {\n if (!grouped[metadata.propertyName]) grouped[metadata.propertyName] = [];\n grouped[metadata.propertyName].push(metadata);\n });\n return grouped;\n }\n\n /**\n * Gets all validation metadatas for the given object with the given groups.\n */\n getTargetValidationMetadatas(\n targetConstructor: Function,\n targetSchema: string,\n always: boolean,\n strictGroups: boolean,\n groups?: string[]\n ): ValidationMetadata[] {\n const includeMetadataBecauseOfAlwaysOption = (metadata: ValidationMetadata): boolean => {\n // `metadata.always` overrides global default.\n if (typeof metadata.always !== 'undefined') return metadata.always;\n\n // `metadata.groups` overrides global default.\n if (metadata.groups && metadata.groups.length) return false;\n\n // Use global default.\n return always;\n };\n\n const excludeMetadataBecauseOfStrictGroupsOption = (metadata: ValidationMetadata): boolean => {\n if (strictGroups) {\n // Validation is not using groups.\n if (!groups || !groups.length) {\n // `metadata.groups` has at least one group.\n if (metadata.groups && metadata.groups.length) return true;\n }\n }\n\n return false;\n };\n\n // get directly related to a target metadatas\n const originalMetadatas = this.validationMetadatas.filter(metadata => {\n if (metadata.target !== targetConstructor && metadata.target !== targetSchema) return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1);\n\n return true;\n });\n\n // get metadatas for inherited classes\n const inheritedMetadatas = this.validationMetadatas.filter(metadata => {\n // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas\n if (typeof metadata.target === 'string') return false;\n if (metadata.target === targetConstructor) return false;\n if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target))\n return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1);\n\n return true;\n });\n\n // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas\n const uniqueInheritedMetadatas = inheritedMetadatas.filter(inheritedMetadata => {\n return !originalMetadatas.find(originalMetadata => {\n return (\n originalMetadata.propertyName === inheritedMetadata.propertyName &&\n originalMetadata.type === inheritedMetadata.type\n );\n });\n });\n\n return originalMetadatas.concat(uniqueInheritedMetadatas);\n }\n\n /**\n * Gets all validator constraints for the given object.\n */\n getTargetValidatorConstraints(target: Function): ConstraintMetadata[] {\n return this.constraintMetadatas.filter(metadata => metadata.target === target);\n }\n}\n\n/**\n * Gets metadata storage.\n * Metadata storage follows the best practices and stores metadata in a global variable.\n */\nexport function getMetadataStorage(): MetadataStorage {\n const global = getGlobal();\n\n if (!global.classValidatorMetadataStorage) {\n global.classValidatorMetadataStorage = new MetadataStorage();\n }\n\n return global.classValidatorMetadataStorage;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/metadata/ValidationMetadata.js b/views/node_modules/class-validator/esm2015/metadata/ValidationMetadata.js deleted file mode 100644 index 90198f5..0000000 --- a/views/node_modules/class-validator/esm2015/metadata/ValidationMetadata.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * This metadata contains validation rules. - */ -export class ValidationMetadata { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - constructor(args) { - /** - * Validation groups used for this validation. - */ - this.groups = []; - /** - * Specifies if validated value is an array and each of its item must be validated. - */ - this.each = false; - /* - * A transient set of data passed through to the validation result for response mapping - */ - this.context = undefined; - this.type = args.type; - this.target = args.target; - this.propertyName = args.propertyName; - this.constraints = args.constraints; - this.constraintCls = args.constraintCls; - this.validationTypeOptions = args.validationTypeOptions; - if (args.validationOptions) { - this.message = args.validationOptions.message; - this.groups = args.validationOptions.groups; - this.always = args.validationOptions.always; - this.each = args.validationOptions.each; - this.context = args.validationOptions.context; - } - } -} -//# sourceMappingURL=ValidationMetadata.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/metadata/ValidationMetadata.js.map b/views/node_modules/class-validator/esm2015/metadata/ValidationMetadata.js.map deleted file mode 100644 index ae7fff3..0000000 --- a/views/node_modules/class-validator/esm2015/metadata/ValidationMetadata.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationMetadata.js","sourceRoot":"","sources":["../../../src/metadata/ValidationMetadata.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,OAAO,kBAAkB;IA4D7B,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,YAAY,IAA4B;QA7BxC;;WAEG;QACH,WAAM,GAAa,EAAE,CAAC;QAOtB;;WAEG;QACH,SAAI,GAAY,KAAK,CAAC;QAEtB;;WAEG;QACH,YAAO,GAAS,SAAS,CAAC;QAYxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACxD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;SAC/C;IACH,CAAC;CACF","sourcesContent":["import { ValidationMetadataArgs } from './ValidationMetadataArgs';\nimport { ValidationArguments } from '../validation/ValidationArguments';\n\n/**\n * This metadata contains validation rules.\n */\nexport class ValidationMetadata {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n /**\n * Validation type.\n */\n type: string;\n\n /**\n * Target class to which this validation is applied.\n */\n target: Function | string;\n\n /**\n * Property of the object to be validated.\n */\n propertyName: string;\n\n /**\n * Constraint class that performs validation. Used only for custom validations.\n */\n constraintCls: Function;\n\n /**\n * Array of constraints of this validation.\n */\n constraints: any[];\n\n /**\n * Validation message to be shown in the case of error.\n */\n message: string | ((args: ValidationArguments) => string);\n\n /**\n * Validation groups used for this validation.\n */\n groups: string[] = [];\n\n /**\n * Indicates if validation must be performed always, no matter of validation groups used.\n */\n always?: boolean;\n\n /**\n * Specifies if validated value is an array and each of its item must be validated.\n */\n each: boolean = false;\n\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n context?: any = undefined;\n\n /**\n * Extra options specific to validation type.\n */\n validationTypeOptions: any;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(args: ValidationMetadataArgs) {\n this.type = args.type;\n this.target = args.target;\n this.propertyName = args.propertyName;\n this.constraints = args.constraints;\n this.constraintCls = args.constraintCls;\n this.validationTypeOptions = args.validationTypeOptions;\n if (args.validationOptions) {\n this.message = args.validationOptions.message;\n this.groups = args.validationOptions.groups;\n this.always = args.validationOptions.always;\n this.each = args.validationOptions.each;\n this.context = args.validationOptions.context;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/metadata/ValidationMetadataArgs.js b/views/node_modules/class-validator/esm2015/metadata/ValidationMetadataArgs.js deleted file mode 100644 index 7e916dc..0000000 --- a/views/node_modules/class-validator/esm2015/metadata/ValidationMetadataArgs.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ValidationMetadataArgs.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/metadata/ValidationMetadataArgs.js.map b/views/node_modules/class-validator/esm2015/metadata/ValidationMetadataArgs.js.map deleted file mode 100644 index 3f88114..0000000 --- a/views/node_modules/class-validator/esm2015/metadata/ValidationMetadataArgs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationMetadataArgs.js","sourceRoot":"","sources":["../../../src/metadata/ValidationMetadataArgs.ts"],"names":[],"mappings":"","sourcesContent":["import { ValidationOptions } from '../decorator/ValidationOptions';\n\n/**\n * Constructor arguments for ValidationMetadata class.\n */\nexport interface ValidationMetadataArgs {\n /**\n * Validation type.\n */\n type: string;\n\n /**\n * Object that is used to be validated.\n */\n target: Function | string;\n\n /**\n * Property of the object to be validated.\n */\n propertyName: string;\n\n /**\n * Constraint class that performs validation. Used only for custom validations.\n */\n constraintCls?: Function;\n\n /**\n * Array of constraints of this validation.\n */\n constraints?: any[];\n\n /**\n * Validation options.\n */\n validationOptions?: ValidationOptions;\n\n /**\n * Extra options specific to validation type.\n */\n validationTypeOptions?: any;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/register-decorator.js b/views/node_modules/class-validator/esm2015/register-decorator.js deleted file mode 100644 index f64e03f..0000000 --- a/views/node_modules/class-validator/esm2015/register-decorator.js +++ /dev/null @@ -1,43 +0,0 @@ -import { ConstraintMetadata } from './metadata/ConstraintMetadata'; -import { ValidationMetadata } from './metadata/ValidationMetadata'; -import { ValidationTypes } from './validation/ValidationTypes'; -import { getFromContainer } from './container'; -import { MetadataStorage, getMetadataStorage } from './metadata/MetadataStorage'; -/** - * Registers a custom validation decorator. - */ -export function registerDecorator(options) { - let constraintCls; - if (options.validator instanceof Function) { - constraintCls = options.validator; - const constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator); - if (constraintClasses.length > 1) { - throw `More than one implementation of ValidatorConstraintInterface found for validator on: ${options.target.name}:${options.propertyName}`; - } - } - else { - const validator = options.validator; - constraintCls = class CustomConstraint { - validate(value, validationArguments) { - return validator.validate(value, validationArguments); - } - defaultMessage(validationArguments) { - if (validator.defaultMessage) { - return validator.defaultMessage(validationArguments); - } - return ''; - } - }; - getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async)); - } - const validationMetadataArgs = { - type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION, - target: options.target, - propertyName: options.propertyName, - validationOptions: options.options, - constraintCls: constraintCls, - constraints: options.constraints, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs)); -} -//# sourceMappingURL=register-decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/register-decorator.js.map b/views/node_modules/class-validator/esm2015/register-decorator.js.map deleted file mode 100644 index e01e4fe..0000000 --- a/views/node_modules/class-validator/esm2015/register-decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"register-decorator.js","sourceRoot":"","sources":["../../src/register-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAwCjF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAmC;IACnE,IAAI,aAAuB,CAAC;IAC5B,IAAI,OAAO,CAAC,SAAS,YAAY,QAAQ,EAAE;QACzC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;QAClC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC,6BAA6B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7G,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,MAAM,wFAAwF,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;SAC7I;KACF;SAAM;QACL,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,aAAa,GAAG,MAAM,gBAAgB;YACpC,QAAQ,CAAC,KAAU,EAAE,mBAAyC;gBAC5D,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;YACxD,CAAC;YAED,cAAc,CAAC,mBAAyC;gBACtD,IAAI,SAAS,CAAC,cAAc,EAAE;oBAC5B,OAAO,SAAS,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;iBACtD;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC;SACF,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KAChH;IAED,MAAM,sBAAsB,GAA2B;QACrD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,iBAAiB;QAC9G,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,iBAAiB,EAAE,OAAO,CAAC,OAAO;QAClC,aAAa,EAAE,aAAa;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;IACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAC7F,CAAC","sourcesContent":["import { ConstraintMetadata } from './metadata/ConstraintMetadata';\nimport { ValidatorConstraintInterface } from './validation/ValidatorConstraintInterface';\nimport { ValidationMetadata } from './metadata/ValidationMetadata';\nimport { ValidationMetadataArgs } from './metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from './validation/ValidationTypes';\nimport { ValidationArguments } from './validation/ValidationArguments';\nimport { getFromContainer } from './container';\nimport { MetadataStorage, getMetadataStorage } from './metadata/MetadataStorage';\nimport { ValidationOptions } from './decorator/ValidationOptions';\n\nexport interface ValidationDecoratorOptions {\n /**\n * Target object to be validated.\n */\n target: Function;\n\n /**\n * Target object's property name to be validated.\n */\n propertyName: string;\n\n /**\n * Name of the validation that is being registered.\n */\n name?: string;\n\n /**\n * Indicates if this decorator will perform async validation.\n */\n async?: boolean;\n\n /**\n * Validator options.\n */\n options?: ValidationOptions;\n\n /**\n * Array of validation constraints.\n */\n constraints?: any[];\n\n /**\n * Validator that performs validation.\n */\n validator: ValidatorConstraintInterface | Function;\n}\n\n/**\n * Registers a custom validation decorator.\n */\nexport function registerDecorator(options: ValidationDecoratorOptions): void {\n let constraintCls: Function;\n if (options.validator instanceof Function) {\n constraintCls = options.validator;\n const constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator);\n if (constraintClasses.length > 1) {\n throw `More than one implementation of ValidatorConstraintInterface found for validator on: ${options.target.name}:${options.propertyName}`;\n }\n } else {\n const validator = options.validator;\n constraintCls = class CustomConstraint implements ValidatorConstraintInterface {\n validate(value: any, validationArguments?: ValidationArguments): Promise | boolean {\n return validator.validate(value, validationArguments);\n }\n\n defaultMessage(validationArguments?: ValidationArguments): string {\n if (validator.defaultMessage) {\n return validator.defaultMessage(validationArguments);\n }\n\n return '';\n }\n };\n getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async));\n }\n\n const validationMetadataArgs: ValidationMetadataArgs = {\n type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION,\n target: options.target,\n propertyName: options.propertyName,\n validationOptions: options.options,\n constraintCls: constraintCls,\n constraints: options.constraints,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs));\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/utils/convert-to-array.util.js b/views/node_modules/class-validator/esm2015/utils/convert-to-array.util.js deleted file mode 100644 index 2eea575..0000000 --- a/views/node_modules/class-validator/esm2015/utils/convert-to-array.util.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Convert Map, Set to Array - */ -export function convertToArray(val) { - if (val instanceof Map) { - return Array.from(val.values()); - } - return Array.isArray(val) ? val : Array.from(val); -} -//# sourceMappingURL=convert-to-array.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/utils/convert-to-array.util.js.map b/views/node_modules/class-validator/esm2015/utils/convert-to-array.util.js.map deleted file mode 100644 index 4112846..0000000 --- a/views/node_modules/class-validator/esm2015/utils/convert-to-array.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"convert-to-array.util.js","sourceRoot":"","sources":["../../../src/utils/convert-to-array.util.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAI,GAAoC;IACpE,IAAI,GAAG,YAAY,GAAG,EAAE;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;KACjC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC","sourcesContent":["/**\n * Convert Map, Set to Array\n */\nexport function convertToArray(val: Array | Set | Map): Array {\n if (val instanceof Map) {\n return Array.from(val.values());\n }\n return Array.isArray(val) ? val : Array.from(val);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/utils/get-global.util.js b/views/node_modules/class-validator/esm2015/utils/get-global.util.js deleted file mode 100644 index a8b64cc..0000000 --- a/views/node_modules/class-validator/esm2015/utils/get-global.util.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * This function returns the global object across Node and browsers. - * - * Note: `globalThis` is the standardized approach however it has been added to - * Node.js in version 12. We need to include this snippet until Node 12 EOL. - */ -export function getGlobal() { - if (typeof globalThis !== 'undefined') { - return globalThis; - } - if (typeof global !== 'undefined') { - return global; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - if (typeof window !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - return window; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - if (typeof self !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - return self; - } -} -//# sourceMappingURL=get-global.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/utils/get-global.util.js.map b/views/node_modules/class-validator/esm2015/utils/get-global.util.js.map deleted file mode 100644 index 83b6cf4..0000000 --- a/views/node_modules/class-validator/esm2015/utils/get-global.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-global.util.js","sourceRoot":"","sources":["../../../src/utils/get-global.util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;QACrC,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,yCAAyC;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,6DAA6D;QAC7D,yCAAyC;QACzC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,uCAAuC;IACvC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC/B,6DAA6D;QAC7D,uCAAuC;QACvC,OAAO,IAAI,CAAC;KACb;AACH,CAAC","sourcesContent":["/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/utils/index.js b/views/node_modules/class-validator/esm2015/utils/index.js deleted file mode 100644 index 827eaa7..0000000 --- a/views/node_modules/class-validator/esm2015/utils/index.js +++ /dev/null @@ -1,4 +0,0 @@ -export * from './convert-to-array.util'; -export * from './get-global.util'; -export * from './is-promise.util'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/utils/index.js.map b/views/node_modules/class-validator/esm2015/utils/index.js.map deleted file mode 100644 index 5ae486c..0000000 --- a/views/node_modules/class-validator/esm2015/utils/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC","sourcesContent":["export * from './convert-to-array.util';\nexport * from './get-global.util';\nexport * from './is-promise.util';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/utils/is-promise.util.js b/views/node_modules/class-validator/esm2015/utils/is-promise.util.js deleted file mode 100644 index c669c1b..0000000 --- a/views/node_modules/class-validator/esm2015/utils/is-promise.util.js +++ /dev/null @@ -1,5 +0,0 @@ -// https://github.com/TylorS/typed-is-promise/blob/abf1514e1b6961adfc75765476b0debb96b2c3ae/src/index.ts -export function isPromise(p) { - return p !== null && typeof p === 'object' && typeof p.then === 'function'; -} -//# sourceMappingURL=is-promise.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/utils/is-promise.util.js.map b/views/node_modules/class-validator/esm2015/utils/is-promise.util.js.map deleted file mode 100644 index a06a8c5..0000000 --- a/views/node_modules/class-validator/esm2015/utils/is-promise.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"is-promise.util.js","sourceRoot":"","sources":["../../../src/utils/is-promise.util.ts"],"names":[],"mappings":"AAAA,wGAAwG;AAExG,MAAM,UAAU,SAAS,CAAU,CAAM;IACvC,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AAC7E,CAAC","sourcesContent":["// https://github.com/TylorS/typed-is-promise/blob/abf1514e1b6961adfc75765476b0debb96b2c3ae/src/index.ts\n\nexport function isPromise(p: any): p is Promise {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchema.js b/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchema.js deleted file mode 100644 index bb7c405..0000000 --- a/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchema.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ValidationSchema.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchema.js.map b/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchema.js.map deleted file mode 100644 index 27cc488..0000000 --- a/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchema.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationSchema.js","sourceRoot":"","sources":["../../../src/validation-schema/ValidationSchema.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Validation schema is a decorator-free way of validation of your objects.\n * Also using validation schemas makes this library to be easily used with es6/es5.\n */\nexport interface ValidationSchema {\n /**\n * Schema name. This is required, because we tell validator to validate by this schema using its name.\n */\n name: string;\n\n /**\n * Validated properties.\n */\n properties: {\n /**\n * Name of the object's property to be validated which holds an array of validation constraints.\n */\n [propertyName: string]: {\n /**\n * Validation type. Should be one of the ValidationTypes value.\n */\n type: string;\n\n /**\n * Constraints set by validation type.\n */\n constraints?: any[];\n\n /**\n * Error message used to be used on validation fail.\n * You can use \"$value\" to use value that was failed by validation.\n * You can use \"$constraint1\" and \"$constraint2\" keys in the message string,\n * and they will be replaced with constraint values if they exist.\n * Message can be either string, either a function that returns a string.\n * Second option allows to use values and custom messages depend of them.\n */\n message?: string | ((value?: any, constraint1?: any, constraint2?: any) => string);\n\n /**\n * Specifies if validated value is an array and each of its item must be validated.\n */\n each?: boolean;\n\n /**\n * Indicates if validation must be performed always, no matter of validation groups used.\n */\n always?: boolean;\n\n /**\n * Validation groups used for this validation.\n */\n groups?: string[];\n\n /**\n * Specific validation type options.\n */\n options?: any;\n }[];\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchemaToMetadataTransformer.js b/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchemaToMetadataTransformer.js deleted file mode 100644 index 7ff7b57..0000000 --- a/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchemaToMetadataTransformer.js +++ /dev/null @@ -1,30 +0,0 @@ -import { ValidationMetadata } from '../metadata/ValidationMetadata'; -/** - * Used to transform validation schemas to validation metadatas. - */ -export class ValidationSchemaToMetadataTransformer { - transform(schema) { - const metadatas = []; - Object.keys(schema.properties).forEach(property => { - schema.properties[property].forEach(validation => { - const validationOptions = { - message: validation.message, - groups: validation.groups, - always: validation.always, - each: validation.each, - }; - const args = { - type: validation.type, - target: schema.name, - propertyName: property, - constraints: validation.constraints, - validationTypeOptions: validation.options, - validationOptions: validationOptions, - }; - metadatas.push(new ValidationMetadata(args)); - }); - }); - return metadatas; - } -} -//# sourceMappingURL=ValidationSchemaToMetadataTransformer.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchemaToMetadataTransformer.js.map b/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchemaToMetadataTransformer.js.map deleted file mode 100644 index b7445e3..0000000 --- a/views/node_modules/class-validator/esm2015/validation-schema/ValidationSchemaToMetadataTransformer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationSchemaToMetadataTransformer.js","sourceRoot":"","sources":["../../../src/validation-schema/ValidationSchemaToMetadataTransformer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIpE;;GAEG;AACH,MAAM,OAAO,qCAAqC;IAChD,SAAS,CAAC,MAAwB;QAChC,MAAM,SAAS,GAAyB,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;YAChD,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;gBAC/C,MAAM,iBAAiB,GAAsB;oBAC3C,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,IAAI,EAAE,UAAU,CAAC,IAAI;iBACtB,CAAC;gBACF,MAAM,IAAI,GAA2B;oBACnC,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,YAAY,EAAE,QAAQ;oBACtB,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,qBAAqB,EAAE,UAAU,CAAC,OAAO;oBACzC,iBAAiB,EAAE,iBAAiB;iBACrC,CAAC;gBACF,SAAS,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;CACF","sourcesContent":["import { ValidationSchema } from './ValidationSchema';\nimport { ValidationMetadata } from '../metadata/ValidationMetadata';\nimport { ValidationMetadataArgs } from '../metadata/ValidationMetadataArgs';\nimport { ValidationOptions } from '../decorator/ValidationOptions';\n\n/**\n * Used to transform validation schemas to validation metadatas.\n */\nexport class ValidationSchemaToMetadataTransformer {\n transform(schema: ValidationSchema): ValidationMetadata[] {\n const metadatas: ValidationMetadata[] = [];\n Object.keys(schema.properties).forEach(property => {\n schema.properties[property].forEach(validation => {\n const validationOptions: ValidationOptions = {\n message: validation.message,\n groups: validation.groups,\n always: validation.always,\n each: validation.each,\n };\n const args: ValidationMetadataArgs = {\n type: validation.type,\n target: schema.name,\n propertyName: property,\n constraints: validation.constraints,\n validationTypeOptions: validation.options,\n validationOptions: validationOptions,\n };\n metadatas.push(new ValidationMetadata(args));\n });\n });\n return metadatas;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidationArguments.js b/views/node_modules/class-validator/esm2015/validation/ValidationArguments.js deleted file mode 100644 index e6b559f..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidationArguments.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ValidationArguments.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidationArguments.js.map b/views/node_modules/class-validator/esm2015/validation/ValidationArguments.js.map deleted file mode 100644 index c2b0f6f..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidationArguments.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationArguments.js","sourceRoot":"","sources":["../../../src/validation/ValidationArguments.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Arguments being sent to message builders - user can create message either by simply returning a string,\n * either by returning a function that accepts MessageArguments and returns a message string built based on these arguments.\n */\nexport interface ValidationArguments {\n /**\n * Validating value.\n */\n value: any;\n\n /**\n * Constraints set by this validation type.\n */\n constraints: any[];\n\n /**\n * Name of the target that is being validated.\n */\n targetName: string;\n\n /**\n * Object that is being validated.\n */\n object: object;\n\n /**\n * Name of the object's property being validated.\n */\n property: string;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidationError.js b/views/node_modules/class-validator/esm2015/validation/ValidationError.js deleted file mode 100644 index df889d4..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidationError.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Validation error description. - */ -export class ValidationError { - /** - * - * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability - * @param hasParent true when the error is a child of an another one - * @param parentPath path as string to the parent of this property - */ - toString(shouldDecorate = false, hasParent = false, parentPath = ``) { - const boldStart = shouldDecorate ? `\x1b[1m` : ``; - const boldEnd = shouldDecorate ? `\x1b[22m` : ``; - const propConstraintFailed = (propertyName) => ` - property ${boldStart}${parentPath}${propertyName}${boldEnd} has failed the following constraints: ${boldStart}${Object.keys(this.constraints).join(`, `)}${boldEnd} \n`; - if (!hasParent) { - return (`An instance of ${boldStart}${this.target ? this.target.constructor.name : 'an object'}${boldEnd} has failed the validation:\n` + - (this.constraints ? propConstraintFailed(this.property) : ``) + - (this.children - ? this.children.map(childError => childError.toString(shouldDecorate, true, this.property)).join(``) - : ``)); - } - else { - // we format numbers as array indexes for better readability. - const formattedProperty = Number.isInteger(+this.property) - ? `[${this.property}]` - : `${parentPath ? `.` : ``}${this.property}`; - if (this.constraints) { - return propConstraintFailed(formattedProperty); - } - else { - return this.children - ? this.children - .map(childError => childError.toString(shouldDecorate, true, `${parentPath}${formattedProperty}`)) - .join(``) - : ``; - } - } - } -} -//# sourceMappingURL=ValidationError.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidationError.js.map b/views/node_modules/class-validator/esm2015/validation/ValidationError.js.map deleted file mode 100644 index c83c15a..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidationError.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationError.js","sourceRoot":"","sources":["../../../src/validation/ValidationError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,eAAe;IAuC1B;;;;;OAKG;IACH,QAAQ,CAAC,iBAA0B,KAAK,EAAE,YAAqB,KAAK,EAAE,aAAqB,EAAE;QAC3F,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,oBAAoB,GAAG,CAAC,YAAoB,EAAU,EAAE,CAC5D,eAAe,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,0CAA0C,SAAS,GAAG,MAAM,CAAC,IAAI,CAC7H,IAAI,CAAC,WAAW,CACjB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,KAAK,CAAC;QAE9B,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,CACL,kBAAkB,SAAS,GACzB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAC/C,GAAG,OAAO,+BAA+B;gBACzC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,CAAC,IAAI,CAAC,QAAQ;oBACZ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpG,CAAC,CAAC,EAAE,CAAC,CACR,CAAC;SACH;aAAM;YACL,6DAA6D;YAC7D,MAAM,iBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACxD,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG;gBACtB,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE/C,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,OAAO,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;aAChD;iBAAM;gBACL,OAAO,IAAI,CAAC,QAAQ;oBAClB,CAAC,CAAC,IAAI,CAAC,QAAQ;yBACV,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,GAAG,UAAU,GAAG,iBAAiB,EAAE,CAAC,CAAC;yBACjG,IAAI,CAAC,EAAE,CAAC;oBACb,CAAC,CAAC,EAAE,CAAC;aACR;SACF;IACH,CAAC;CACF","sourcesContent":["/**\n * Validation error description.\n */\nexport class ValidationError {\n /**\n * Object that was validated.\n *\n * OPTIONAL - configurable via the ValidatorOptions.validationError.target option\n */\n target?: object;\n\n /**\n * Object's property that haven't pass validation.\n */\n property: string;\n\n /**\n * Value that haven't pass a validation.\n *\n * OPTIONAL - configurable via the ValidatorOptions.validationError.value option\n */\n value?: any;\n\n /**\n * Constraints that failed validation with error messages.\n */\n constraints?: {\n [type: string]: string;\n };\n\n /**\n * Contains all nested validation errors of the property.\n */\n children?: ValidationError[];\n\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n contexts?: {\n [type: string]: any;\n };\n\n /**\n *\n * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability\n * @param hasParent true when the error is a child of an another one\n * @param parentPath path as string to the parent of this property\n */\n toString(shouldDecorate: boolean = false, hasParent: boolean = false, parentPath: string = ``): string {\n const boldStart = shouldDecorate ? `\\x1b[1m` : ``;\n const boldEnd = shouldDecorate ? `\\x1b[22m` : ``;\n const propConstraintFailed = (propertyName: string): string =>\n ` - property ${boldStart}${parentPath}${propertyName}${boldEnd} has failed the following constraints: ${boldStart}${Object.keys(\n this.constraints\n ).join(`, `)}${boldEnd} \\n`;\n\n if (!hasParent) {\n return (\n `An instance of ${boldStart}${\n this.target ? this.target.constructor.name : 'an object'\n }${boldEnd} has failed the validation:\\n` +\n (this.constraints ? propConstraintFailed(this.property) : ``) +\n (this.children\n ? this.children.map(childError => childError.toString(shouldDecorate, true, this.property)).join(``)\n : ``)\n );\n } else {\n // we format numbers as array indexes for better readability.\n const formattedProperty = Number.isInteger(+this.property)\n ? `[${this.property}]`\n : `${parentPath ? `.` : ``}${this.property}`;\n\n if (this.constraints) {\n return propConstraintFailed(formattedProperty);\n } else {\n return this.children\n ? this.children\n .map(childError => childError.toString(shouldDecorate, true, `${parentPath}${formattedProperty}`))\n .join(``)\n : ``;\n }\n }\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidationExecutor.js b/views/node_modules/class-validator/esm2015/validation/ValidationExecutor.js deleted file mode 100644 index 34bbf84..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidationExecutor.js +++ /dev/null @@ -1,318 +0,0 @@ -import { ValidationError } from './ValidationError'; -import { ValidationTypes } from './ValidationTypes'; -import { ValidationUtils } from './ValidationUtils'; -import { isPromise, convertToArray } from '../utils'; -import { getMetadataStorage } from '../metadata/MetadataStorage'; -/** - * Executes validation over given object. - */ -export class ValidationExecutor { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - constructor(validator, validatorOptions) { - this.validator = validator; - this.validatorOptions = validatorOptions; - // ------------------------------------------------------------------------- - // Properties - // ------------------------------------------------------------------------- - this.awaitingPromises = []; - this.ignoreAsyncValidations = false; - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - this.metadataStorage = getMetadataStorage(); - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - execute(object, targetSchema, validationErrors) { - var _a; - /** - * If there is no metadata registered it means possibly the dependencies are not flatterned and - * more than one instance is used. - * - * TODO: This needs proper handling, forcing to use the same container or some other proper solution. - */ - if (!this.metadataStorage.hasValidationMetaData && ((_a = this.validatorOptions) === null || _a === void 0 ? void 0 : _a.enableDebugMessages) === true) { - console.warn(`No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies.`); - } - const groups = this.validatorOptions ? this.validatorOptions.groups : undefined; - const strictGroups = (this.validatorOptions && this.validatorOptions.strictGroups) || false; - const always = (this.validatorOptions && this.validatorOptions.always) || false; - const targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(object.constructor, targetSchema, always, strictGroups, groups); - const groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas); - if (this.validatorOptions && this.validatorOptions.forbidUnknownValues && !targetMetadatas.length) { - const validationError = new ValidationError(); - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.target === undefined || - this.validatorOptions.validationError.target === true) - validationError.target = object; - validationError.value = undefined; - validationError.property = undefined; - validationError.children = []; - validationError.constraints = { unknownValue: 'an unknown value was passed to the validate function' }; - validationErrors.push(validationError); - return; - } - if (this.validatorOptions && this.validatorOptions.whitelist) - this.whitelist(object, groupedMetadatas, validationErrors); - // General validation - Object.keys(groupedMetadatas).forEach(propertyName => { - const value = object[propertyName]; - const definedMetadatas = groupedMetadatas[propertyName].filter(metadata => metadata.type === ValidationTypes.IS_DEFINED); - const metadatas = groupedMetadatas[propertyName].filter(metadata => metadata.type !== ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes.WHITELIST); - if (value instanceof Promise && - metadatas.find(metadata => metadata.type === ValidationTypes.PROMISE_VALIDATION)) { - this.awaitingPromises.push(value.then(resolvedValue => { - this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors); - })); - } - else { - this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors); - } - }); - } - whitelist(object, groupedMetadatas, validationErrors) { - const notAllowedProperties = []; - Object.keys(object).forEach(propertyName => { - // does this property have no metadata? - if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0) - notAllowedProperties.push(propertyName); - }); - if (notAllowedProperties.length > 0) { - if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) { - // throw errors - notAllowedProperties.forEach(property => { - const validationError = this.generateValidationError(object, object[property], property); - validationError.constraints = { [ValidationTypes.WHITELIST]: `property ${property} should not exist` }; - validationError.children = undefined; - validationErrors.push(validationError); - }); - } - else { - // strip non allowed properties - notAllowedProperties.forEach(property => delete object[property]); - } - } - } - stripEmptyErrors(errors) { - return errors.filter(error => { - if (error.children) { - error.children = this.stripEmptyErrors(error.children); - } - if (Object.keys(error.constraints).length === 0) { - if (error.children.length === 0) { - return false; - } - else { - delete error.constraints; - } - } - return true; - }); - } - // ------------------------------------------------------------------------- - // Private Methods - // ------------------------------------------------------------------------- - performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors) { - const customValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.CUSTOM_VALIDATION); - const nestedValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.NESTED_VALIDATION); - const conditionalValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.CONDITIONAL_VALIDATION); - const validationError = this.generateValidationError(object, value, propertyName); - validationErrors.push(validationError); - const canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas); - if (!canValidate) { - return; - } - // handle IS_DEFINED validation type the special way - it should work no matter skipUndefinedProperties/skipMissingProperties is set or not - this.customValidations(object, value, definedMetadatas, validationError); - this.mapContexts(object, value, definedMetadatas, validationError); - if (value === undefined && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) { - return; - } - if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) { - return; - } - if ((value === null || value === undefined) && - this.validatorOptions && - this.validatorOptions.skipMissingProperties === true) { - return; - } - this.customValidations(object, value, customValidationMetadatas, validationError); - this.nestedValidations(value, nestedValidationMetadatas, validationError.children); - this.mapContexts(object, value, metadatas, validationError); - this.mapContexts(object, value, customValidationMetadatas, validationError); - } - generateValidationError(object, value, propertyName) { - const validationError = new ValidationError(); - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.target === undefined || - this.validatorOptions.validationError.target === true) - validationError.target = object; - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.value === undefined || - this.validatorOptions.validationError.value === true) - validationError.value = value; - validationError.property = propertyName; - validationError.children = []; - validationError.constraints = {}; - return validationError; - } - conditionalValidations(object, value, metadatas) { - return metadatas - .map(metadata => metadata.constraints[0](object, value)) - .reduce((resultA, resultB) => resultA && resultB, true); - } - customValidations(object, value, metadatas, error) { - metadatas.forEach(metadata => { - this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls).forEach(customConstraintMetadata => { - if (customConstraintMetadata.async && this.ignoreAsyncValidations) - return; - if (this.validatorOptions && - this.validatorOptions.stopAtFirstError && - Object.keys(error.constraints || {}).length > 0) - return; - const validationArguments = { - targetName: object.constructor ? object.constructor.name : undefined, - property: metadata.propertyName, - object: object, - value: value, - constraints: metadata.constraints, - }; - if (!metadata.each || !(value instanceof Array || value instanceof Set || value instanceof Map)) { - const validatedValue = customConstraintMetadata.instance.validate(value, validationArguments); - if (isPromise(validatedValue)) { - const promise = validatedValue.then(isValid => { - if (!isValid) { - const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); - error.constraints[type] = message; - if (metadata.context) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - this.awaitingPromises.push(promise); - } - else { - if (!validatedValue) { - const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); - error.constraints[type] = message; - } - } - return; - } - // convert set and map into array - const arrayValue = convertToArray(value); - // Validation needs to be applied to each array item - const validatedSubValues = arrayValue.map((subValue) => customConstraintMetadata.instance.validate(subValue, validationArguments)); - const validationIsAsync = validatedSubValues.some((validatedSubValue) => isPromise(validatedSubValue)); - if (validationIsAsync) { - // Wrap plain values (if any) in promises, so that all are async - const asyncValidatedSubValues = validatedSubValues.map((validatedSubValue) => isPromise(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue)); - const asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues).then((flatValidatedValues) => { - const validationResult = flatValidatedValues.every((isValid) => isValid); - if (!validationResult) { - const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); - error.constraints[type] = message; - if (metadata.context) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - this.awaitingPromises.push(asyncValidationIsFinishedPromise); - return; - } - const validationResult = validatedSubValues.every((isValid) => isValid); - if (!validationResult) { - const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata); - error.constraints[type] = message; - } - }); - }); - } - nestedValidations(value, metadatas, errors) { - if (value === void 0) { - return; - } - metadatas.forEach(metadata => { - if (metadata.type !== ValidationTypes.NESTED_VALIDATION && metadata.type !== ValidationTypes.PROMISE_VALIDATION) { - return; - } - if (value instanceof Array || value instanceof Set || value instanceof Map) { - // Treats Set as an array - as index of Set value is value itself and it is common case to have Object as value - const arrayLikeValue = value instanceof Set ? Array.from(value) : value; - arrayLikeValue.forEach((subValue, index) => { - this.performValidations(value, subValue, index.toString(), [], metadatas, errors); - }); - } - else if (value instanceof Object) { - const targetSchema = typeof metadata.target === 'string' ? metadata.target : metadata.target.name; - this.execute(value, targetSchema, errors); - } - else { - const error = new ValidationError(); - error.value = value; - error.property = metadata.propertyName; - error.target = metadata.target; - const [type, message] = this.createValidationError(metadata.target, value, metadata); - error.constraints = { - [type]: message, - }; - errors.push(error); - } - }); - } - mapContexts(object, value, metadatas, error) { - return metadatas.forEach(metadata => { - if (metadata.context) { - let customConstraint; - if (metadata.type === ValidationTypes.CUSTOM_VALIDATION) { - const customConstraints = this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls); - customConstraint = customConstraints[0]; - } - const type = this.getConstraintType(metadata, customConstraint); - if (error.constraints[type]) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - } - createValidationError(object, value, metadata, customValidatorMetadata) { - const targetName = object.constructor ? object.constructor.name : undefined; - const type = this.getConstraintType(metadata, customValidatorMetadata); - const validationArguments = { - targetName: targetName, - property: metadata.propertyName, - object: object, - value: value, - constraints: metadata.constraints, - }; - let message = metadata.message || ''; - if (!metadata.message && - (!this.validatorOptions || (this.validatorOptions && !this.validatorOptions.dismissDefaultMessages))) { - if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) { - message = customValidatorMetadata.instance.defaultMessage(validationArguments); - } - } - const messageString = ValidationUtils.replaceMessageSpecialTokens(message, validationArguments); - return [type, messageString]; - } - getConstraintType(metadata, customValidatorMetadata) { - const type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type; - return type; - } -} -//# sourceMappingURL=ValidationExecutor.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidationExecutor.js.map b/views/node_modules/class-validator/esm2015/validation/ValidationExecutor.js.map deleted file mode 100644 index 642ed31..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidationExecutor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationExecutor.js","sourceRoot":"","sources":["../../../src/validation/ValidationExecutor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Validator } from './Validator';\nimport { ValidationError } from './ValidationError';\nimport { ValidationMetadata } from '../metadata/ValidationMetadata';\nimport { ValidatorOptions } from './ValidatorOptions';\nimport { ValidationTypes } from './ValidationTypes';\nimport { ConstraintMetadata } from '../metadata/ConstraintMetadata';\nimport { ValidationArguments } from './ValidationArguments';\nimport { ValidationUtils } from './ValidationUtils';\nimport { isPromise, convertToArray } from '../utils';\nimport { getMetadataStorage } from '../metadata/MetadataStorage';\n\n/**\n * Executes validation over given object.\n */\nexport class ValidationExecutor {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n awaitingPromises: Promise[] = [];\n ignoreAsyncValidations: boolean = false;\n\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n\n private metadataStorage = getMetadataStorage();\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private validator: Validator, private validatorOptions?: ValidatorOptions) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n execute(object: object, targetSchema: string, validationErrors: ValidationError[]): void {\n /**\n * If there is no metadata registered it means possibly the dependencies are not flatterned and\n * more than one instance is used.\n *\n * TODO: This needs proper handling, forcing to use the same container or some other proper solution.\n */\n if (!this.metadataStorage.hasValidationMetaData && this.validatorOptions?.enableDebugMessages === true) {\n console.warn(\n `No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies.`\n );\n }\n\n const groups = this.validatorOptions ? this.validatorOptions.groups : undefined;\n const strictGroups = (this.validatorOptions && this.validatorOptions.strictGroups) || false;\n const always = (this.validatorOptions && this.validatorOptions.always) || false;\n\n const targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(\n object.constructor,\n targetSchema,\n always,\n strictGroups,\n groups\n );\n const groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas);\n\n if (this.validatorOptions && this.validatorOptions.forbidUnknownValues && !targetMetadatas.length) {\n const validationError = new ValidationError();\n\n if (\n !this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true\n )\n validationError.target = object;\n\n validationError.value = undefined;\n validationError.property = undefined;\n validationError.children = [];\n validationError.constraints = { unknownValue: 'an unknown value was passed to the validate function' };\n\n validationErrors.push(validationError);\n\n return;\n }\n\n if (this.validatorOptions && this.validatorOptions.whitelist)\n this.whitelist(object, groupedMetadatas, validationErrors);\n\n // General validation\n Object.keys(groupedMetadatas).forEach(propertyName => {\n const value = (object as any)[propertyName];\n const definedMetadatas = groupedMetadatas[propertyName].filter(\n metadata => metadata.type === ValidationTypes.IS_DEFINED\n );\n const metadatas = groupedMetadatas[propertyName].filter(\n metadata => metadata.type !== ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes.WHITELIST\n );\n\n if (\n value instanceof Promise &&\n metadatas.find(metadata => metadata.type === ValidationTypes.PROMISE_VALIDATION)\n ) {\n this.awaitingPromises.push(\n value.then(resolvedValue => {\n this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors);\n })\n );\n } else {\n this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors);\n }\n });\n }\n\n whitelist(\n object: any,\n groupedMetadatas: { [propertyName: string]: ValidationMetadata[] },\n validationErrors: ValidationError[]\n ): void {\n const notAllowedProperties: string[] = [];\n\n Object.keys(object).forEach(propertyName => {\n // does this property have no metadata?\n if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0)\n notAllowedProperties.push(propertyName);\n });\n\n if (notAllowedProperties.length > 0) {\n if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) {\n // throw errors\n notAllowedProperties.forEach(property => {\n const validationError: ValidationError = this.generateValidationError(object, object[property], property);\n validationError.constraints = { [ValidationTypes.WHITELIST]: `property ${property} should not exist` };\n validationError.children = undefined;\n validationErrors.push(validationError);\n });\n } else {\n // strip non allowed properties\n notAllowedProperties.forEach(property => delete object[property]);\n }\n }\n }\n\n stripEmptyErrors(errors: ValidationError[]): ValidationError[] {\n return errors.filter(error => {\n if (error.children) {\n error.children = this.stripEmptyErrors(error.children);\n }\n\n if (Object.keys(error.constraints).length === 0) {\n if (error.children.length === 0) {\n return false;\n } else {\n delete error.constraints;\n }\n }\n\n return true;\n });\n }\n\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n\n private performValidations(\n object: any,\n value: any,\n propertyName: string,\n definedMetadatas: ValidationMetadata[],\n metadatas: ValidationMetadata[],\n validationErrors: ValidationError[]\n ): void {\n const customValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.CUSTOM_VALIDATION);\n const nestedValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.NESTED_VALIDATION);\n const conditionalValidationMetadatas = metadatas.filter(\n metadata => metadata.type === ValidationTypes.CONDITIONAL_VALIDATION\n );\n\n const validationError = this.generateValidationError(object, value, propertyName);\n validationErrors.push(validationError);\n\n const canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas);\n if (!canValidate) {\n return;\n }\n\n // handle IS_DEFINED validation type the special way - it should work no matter skipUndefinedProperties/skipMissingProperties is set or not\n this.customValidations(object, value, definedMetadatas, validationError);\n this.mapContexts(object, value, definedMetadatas, validationError);\n\n if (value === undefined && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) {\n return;\n }\n\n if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) {\n return;\n }\n\n if (\n (value === null || value === undefined) &&\n this.validatorOptions &&\n this.validatorOptions.skipMissingProperties === true\n ) {\n return;\n }\n\n this.customValidations(object, value, customValidationMetadatas, validationError);\n this.nestedValidations(value, nestedValidationMetadatas, validationError.children);\n\n this.mapContexts(object, value, metadatas, validationError);\n this.mapContexts(object, value, customValidationMetadatas, validationError);\n }\n\n private generateValidationError(object: object, value: any, propertyName: string): ValidationError {\n const validationError = new ValidationError();\n\n if (\n !this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true\n )\n validationError.target = object;\n\n if (\n !this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.value === undefined ||\n this.validatorOptions.validationError.value === true\n )\n validationError.value = value;\n\n validationError.property = propertyName;\n validationError.children = [];\n validationError.constraints = {};\n\n return validationError;\n }\n\n private conditionalValidations(object: object, value: any, metadatas: ValidationMetadata[]): ValidationMetadata[] {\n return metadatas\n .map(metadata => metadata.constraints[0](object, value))\n .reduce((resultA, resultB) => resultA && resultB, true);\n }\n\n private customValidations(object: object, value: any, metadatas: ValidationMetadata[], error: ValidationError): void {\n metadatas.forEach(metadata => {\n this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls).forEach(customConstraintMetadata => {\n if (customConstraintMetadata.async && this.ignoreAsyncValidations) return;\n if (\n this.validatorOptions &&\n this.validatorOptions.stopAtFirstError &&\n Object.keys(error.constraints || {}).length > 0\n )\n return;\n\n const validationArguments: ValidationArguments = {\n targetName: object.constructor ? (object.constructor as any).name : undefined,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n\n if (!metadata.each || !(value instanceof Array || value instanceof Set || value instanceof Map)) {\n const validatedValue = customConstraintMetadata.instance.validate(value, validationArguments);\n if (isPromise(validatedValue)) {\n const promise = validatedValue.then(isValid => {\n if (!isValid) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n this.awaitingPromises.push(promise);\n } else {\n if (!validatedValue) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n }\n }\n\n return;\n }\n\n // convert set and map into array\n const arrayValue = convertToArray(value);\n // Validation needs to be applied to each array item\n const validatedSubValues = arrayValue.map((subValue: any) =>\n customConstraintMetadata.instance.validate(subValue, validationArguments)\n );\n const validationIsAsync = validatedSubValues.some((validatedSubValue: boolean | Promise) =>\n isPromise(validatedSubValue)\n );\n\n if (validationIsAsync) {\n // Wrap plain values (if any) in promises, so that all are async\n const asyncValidatedSubValues = validatedSubValues.map((validatedSubValue: boolean | Promise) =>\n isPromise(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue)\n );\n const asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues).then(\n (flatValidatedValues: boolean[]) => {\n const validationResult = flatValidatedValues.every((isValid: boolean) => isValid);\n if (!validationResult) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n }\n );\n\n this.awaitingPromises.push(asyncValidationIsFinishedPromise);\n\n return;\n }\n\n const validationResult = validatedSubValues.every((isValid: boolean) => isValid);\n if (!validationResult) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n }\n });\n });\n }\n\n private nestedValidations(value: any, metadatas: ValidationMetadata[], errors: ValidationError[]): void {\n if (value === void 0) {\n return;\n }\n\n metadatas.forEach(metadata => {\n if (metadata.type !== ValidationTypes.NESTED_VALIDATION && metadata.type !== ValidationTypes.PROMISE_VALIDATION) {\n return;\n }\n\n if (value instanceof Array || value instanceof Set || value instanceof Map) {\n // Treats Set as an array - as index of Set value is value itself and it is common case to have Object as value\n const arrayLikeValue = value instanceof Set ? Array.from(value) : value;\n arrayLikeValue.forEach((subValue: any, index: any) => {\n this.performValidations(value, subValue, index.toString(), [], metadatas, errors);\n });\n } else if (value instanceof Object) {\n const targetSchema = typeof metadata.target === 'string' ? metadata.target : metadata.target.name;\n this.execute(value, targetSchema, errors);\n } else {\n const error = new ValidationError();\n error.value = value;\n error.property = metadata.propertyName;\n error.target = metadata.target as object;\n const [type, message] = this.createValidationError(metadata.target as object, value, metadata);\n error.constraints = {\n [type]: message,\n };\n errors.push(error);\n }\n });\n }\n\n private mapContexts(object: object, value: any, metadatas: ValidationMetadata[], error: ValidationError): void {\n return metadatas.forEach(metadata => {\n if (metadata.context) {\n let customConstraint;\n if (metadata.type === ValidationTypes.CUSTOM_VALIDATION) {\n const customConstraints = this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls);\n customConstraint = customConstraints[0];\n }\n\n const type = this.getConstraintType(metadata, customConstraint);\n\n if (error.constraints[type]) {\n if (!error.contexts) {\n error.contexts = {};\n }\n\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n }\n\n private createValidationError(\n object: object,\n value: any,\n metadata: ValidationMetadata,\n customValidatorMetadata?: ConstraintMetadata\n ): [string, string] {\n const targetName = object.constructor ? (object.constructor as any).name : undefined;\n const type = this.getConstraintType(metadata, customValidatorMetadata);\n const validationArguments: ValidationArguments = {\n targetName: targetName,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n\n let message = metadata.message || '';\n if (\n !metadata.message &&\n (!this.validatorOptions || (this.validatorOptions && !this.validatorOptions.dismissDefaultMessages))\n ) {\n if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) {\n message = customValidatorMetadata.instance.defaultMessage(validationArguments);\n }\n }\n\n const messageString = ValidationUtils.replaceMessageSpecialTokens(message, validationArguments);\n return [type, messageString];\n }\n\n private getConstraintType(metadata: ValidationMetadata, customValidatorMetadata?: ConstraintMetadata): string {\n const type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type;\n return type;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidationTypes.js b/views/node_modules/class-validator/esm2015/validation/ValidationTypes.js deleted file mode 100644 index 1b48086..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidationTypes.js +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Validation types. - */ -export class ValidationTypes { - /** - * Checks if validation type is valid. - */ - static isValid(type) { - return (type !== 'isValid' && - type !== 'getMessage' && - Object.keys(this) - .map(key => this[key]) - .indexOf(type) !== -1); - } -} -/* system */ -ValidationTypes.CUSTOM_VALIDATION = 'customValidation'; // done -ValidationTypes.NESTED_VALIDATION = 'nestedValidation'; // done -ValidationTypes.PROMISE_VALIDATION = 'promiseValidation'; // done -ValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation'; // done -ValidationTypes.WHITELIST = 'whitelistValidation'; // done -ValidationTypes.IS_DEFINED = 'isDefined'; // done -//# sourceMappingURL=ValidationTypes.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidationTypes.js.map b/views/node_modules/class-validator/esm2015/validation/ValidationTypes.js.map deleted file mode 100644 index 9defa40..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidationTypes.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationTypes.js","sourceRoot":"","sources":["../../../src/validation/ValidationTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,eAAe;IAS1B;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAY;QACzB,OAAO,CACL,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,YAAY;YACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;iBACd,GAAG,CAAC,GAAG,CAAC,EAAE,CAAE,IAAY,CAAC,GAAG,CAAC,CAAC;iBAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;IACJ,CAAC;;AAnBD,YAAY;AACL,iCAAiB,GAAG,kBAAkB,CAAC,CAAC,OAAO;AAC/C,iCAAiB,GAAG,kBAAkB,CAAC,CAAC,OAAO;AAC/C,kCAAkB,GAAG,mBAAmB,CAAC,CAAC,OAAO;AACjD,sCAAsB,GAAG,uBAAuB,CAAC,CAAC,OAAO;AACzD,yBAAS,GAAG,qBAAqB,CAAC,CAAC,OAAO;AAC1C,0BAAU,GAAG,WAAW,CAAC,CAAC,OAAO","sourcesContent":["/**\n * Validation types.\n */\nexport class ValidationTypes {\n /* system */\n static CUSTOM_VALIDATION = 'customValidation'; // done\n static NESTED_VALIDATION = 'nestedValidation'; // done\n static PROMISE_VALIDATION = 'promiseValidation'; // done\n static CONDITIONAL_VALIDATION = 'conditionalValidation'; // done\n static WHITELIST = 'whitelistValidation'; // done\n static IS_DEFINED = 'isDefined'; // done\n\n /**\n * Checks if validation type is valid.\n */\n static isValid(type: string): boolean {\n return (\n type !== 'isValid' &&\n type !== 'getMessage' &&\n Object.keys(this)\n .map(key => (this as any)[key])\n .indexOf(type) !== -1\n );\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidationUtils.js b/views/node_modules/class-validator/esm2015/validation/ValidationUtils.js deleted file mode 100644 index 87599c0..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidationUtils.js +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Convert the constraint to a string to be shown in an error - */ -export function constraintToString(constraint) { - if (Array.isArray(constraint)) { - return constraint.join(', '); - } - return `${constraint}`; -} -export class ValidationUtils { - static replaceMessageSpecialTokens(message, validationArguments) { - let messageString; - if (message instanceof Function) { - messageString = message(validationArguments); - } - else if (typeof message === 'string') { - messageString = message; - } - if (messageString && validationArguments.constraints instanceof Array) { - validationArguments.constraints.forEach((constraint, index) => { - messageString = messageString.replace(new RegExp(`\\$constraint${index + 1}`, 'g'), constraintToString(constraint)); - }); - } - if (messageString && - validationArguments.value !== undefined && - validationArguments.value !== null && - typeof validationArguments.value === 'string') - messageString = messageString.replace(/\$value/g, validationArguments.value); - if (messageString) - messageString = messageString.replace(/\$property/g, validationArguments.property); - if (messageString) - messageString = messageString.replace(/\$target/g, validationArguments.targetName); - return messageString; - } -} -//# sourceMappingURL=ValidationUtils.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidationUtils.js.map b/views/node_modules/class-validator/esm2015/validation/ValidationUtils.js.map deleted file mode 100644 index 3fffb80..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidationUtils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationUtils.js","sourceRoot":"","sources":["../../../src/validation/ValidationUtils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAmB;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC7B,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,OAAO,GAAG,UAAU,EAAE,CAAC;AACzB,CAAC;AAED,MAAM,OAAO,eAAe;IAC1B,MAAM,CAAC,2BAA2B,CAChC,OAAyD,EACzD,mBAAwC;QAExC,IAAI,aAAqB,CAAC;QAC1B,IAAI,OAAO,YAAY,QAAQ,EAAE;YAC/B,aAAa,GAAI,OAAiD,CAAC,mBAAmB,CAAC,CAAC;SACzF;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YACtC,aAAa,GAAG,OAAO,CAAC;SACzB;QAED,IAAI,aAAa,IAAI,mBAAmB,CAAC,WAAW,YAAY,KAAK,EAAE;YACrE,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;gBAC5D,aAAa,GAAG,aAAa,CAAC,OAAO,CACnC,IAAI,MAAM,CAAC,gBAAgB,KAAK,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAC5C,kBAAkB,CAAC,UAAU,CAAC,CAC/B,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QAED,IACE,aAAa;YACb,mBAAmB,CAAC,KAAK,KAAK,SAAS;YACvC,mBAAmB,CAAC,KAAK,KAAK,IAAI;YAClC,OAAO,mBAAmB,CAAC,KAAK,KAAK,QAAQ;YAE7C,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAI,aAAa;YAAE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACtG,IAAI,aAAa;YAAE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEtG,OAAO,aAAa,CAAC;IACvB,CAAC;CACF","sourcesContent":["import { ValidationArguments } from './ValidationArguments';\n\n/**\n * Convert the constraint to a string to be shown in an error\n */\nexport function constraintToString(constraint: unknown): string {\n if (Array.isArray(constraint)) {\n return constraint.join(', ');\n }\n\n return `${constraint}`;\n}\n\nexport class ValidationUtils {\n static replaceMessageSpecialTokens(\n message: string | ((args: ValidationArguments) => string),\n validationArguments: ValidationArguments\n ): string {\n let messageString: string;\n if (message instanceof Function) {\n messageString = (message as (args: ValidationArguments) => string)(validationArguments);\n } else if (typeof message === 'string') {\n messageString = message;\n }\n\n if (messageString && validationArguments.constraints instanceof Array) {\n validationArguments.constraints.forEach((constraint, index) => {\n messageString = messageString.replace(\n new RegExp(`\\\\$constraint${index + 1}`, 'g'),\n constraintToString(constraint)\n );\n });\n }\n\n if (\n messageString &&\n validationArguments.value !== undefined &&\n validationArguments.value !== null &&\n typeof validationArguments.value === 'string'\n )\n messageString = messageString.replace(/\\$value/g, validationArguments.value);\n if (messageString) messageString = messageString.replace(/\\$property/g, validationArguments.property);\n if (messageString) messageString = messageString.replace(/\\$target/g, validationArguments.targetName);\n\n return messageString;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/Validator.js b/views/node_modules/class-validator/esm2015/validation/Validator.js deleted file mode 100644 index 70d87e0..0000000 --- a/views/node_modules/class-validator/esm2015/validation/Validator.js +++ /dev/null @@ -1,52 +0,0 @@ -import { ValidationExecutor } from './ValidationExecutor'; -/** - * Validator performs validation of the given object based on its metadata. - */ -export class Validator { - /** - * Performs validation of the given object based on decorators or validation schema. - */ - validate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions); - } - /** - * Performs validation of the given object based on decorators or validation schema and reject on error. - */ - async validateOrReject(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - const errors = await this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions); - if (errors.length) - return Promise.reject(errors); - } - /** - * Performs validation of the given object based on decorators or validation schema. - */ - validateSync(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - const object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName; - const options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions; - const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined; - const executor = new ValidationExecutor(this, options); - executor.ignoreAsyncValidations = true; - const validationErrors = []; - executor.execute(object, schema, validationErrors); - return executor.stripEmptyErrors(validationErrors); - } - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - /** - * Performs validation of the given object based on decorators or validation schema. - * Common method for `validateOrReject` and `validate` methods. - */ - coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - const object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName; - const options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions; - const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined; - const executor = new ValidationExecutor(this, options); - const validationErrors = []; - executor.execute(object, schema, validationErrors); - return Promise.all(executor.awaitingPromises).then(() => { - return executor.stripEmptyErrors(validationErrors); - }); - } -} -//# sourceMappingURL=Validator.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/Validator.js.map b/views/node_modules/class-validator/esm2015/validation/Validator.js.map deleted file mode 100644 index 4670367..0000000 --- a/views/node_modules/class-validator/esm2015/validation/Validator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../../src/validation/Validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;GAEG;AACH,MAAM,OAAO,SAAS;IAepB;;OAEG;IACH,QAAQ,CACN,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;QAExC,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,qBAAqB,CAAC,CAAC;IACjG,CAAC;IAYD;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;QAExC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,qBAAqB,CAAC,CAAC;QAC7G,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAaD;;OAEG;IACH,YAAY,CACV,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;QAExC,MAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAE,yBAAoC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACnH,MAAM,OAAO,GACX,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAE,yBAA+C,CAAC;QACpH,MAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvF,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACvC,MAAM,gBAAgB,GAAsB,EAAE,CAAC;QAC/C,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,4EAA4E;IAC5E,qBAAqB;IACrB,4EAA4E;IAC5E;;;OAGG;IACK,YAAY,CAClB,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;QAExC,MAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAE,yBAAoC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACnH,MAAM,OAAO,GACX,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAE,yBAA+C,CAAC;QACpH,MAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvF,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,gBAAgB,GAAsB,EAAE,CAAC;QAC/C,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;YACtD,OAAO,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import { ValidationError } from './ValidationError';\nimport { ValidatorOptions } from './ValidatorOptions';\nimport { ValidationExecutor } from './ValidationExecutor';\nimport { ValidationOptions } from '../decorator/ValidationOptions';\n\n/**\n * Validator performs validation of the given object based on its metadata.\n */\nexport class Validator {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Performs validation of the given object based on decorators used in given object class.\n */\n validate(object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on validation schema.\n */\n validate(schemaName: string, object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n validate(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): Promise {\n return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions);\n }\n\n /**\n * Performs validation of the given object based on decorators used in given object class and reject on error.\n */\n validateOrReject(object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on validation schema and reject on error.\n */\n validateOrReject(schemaName: string, object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on decorators or validation schema and reject on error.\n */\n async validateOrReject(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): Promise {\n const errors = await this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions);\n if (errors.length) return Promise.reject(errors);\n }\n\n /**\n * Performs validation of the given object based on decorators used in given object class.\n * NOTE: This method completely ignores all async validations.\n */\n validateSync(object: object, options?: ValidatorOptions): ValidationError[];\n\n /**\n * Performs validation of the given object based on validation schema.\n */\n validateSync(schemaName: string, object: object, options?: ValidatorOptions): ValidationError[];\n\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n validateSync(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): ValidationError[] {\n const object = typeof objectOrSchemaName === 'string' ? (objectOrValidationOptions as object) : objectOrSchemaName;\n const options =\n typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : (objectOrValidationOptions as ValidationOptions);\n const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n\n const executor = new ValidationExecutor(this, options);\n executor.ignoreAsyncValidations = true;\n const validationErrors: ValidationError[] = [];\n executor.execute(object, schema, validationErrors);\n return executor.stripEmptyErrors(validationErrors);\n }\n\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n /**\n * Performs validation of the given object based on decorators or validation schema.\n * Common method for `validateOrReject` and `validate` methods.\n */\n private coreValidate(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): Promise {\n const object = typeof objectOrSchemaName === 'string' ? (objectOrValidationOptions as object) : objectOrSchemaName;\n const options =\n typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : (objectOrValidationOptions as ValidationOptions);\n const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n\n const executor = new ValidationExecutor(this, options);\n const validationErrors: ValidationError[] = [];\n executor.execute(object, schema, validationErrors);\n\n return Promise.all(executor.awaitingPromises).then(() => {\n return executor.stripEmptyErrors(validationErrors);\n });\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidatorConstraintInterface.js b/views/node_modules/class-validator/esm2015/validation/ValidatorConstraintInterface.js deleted file mode 100644 index d053f5d..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidatorConstraintInterface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ValidatorConstraintInterface.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidatorConstraintInterface.js.map b/views/node_modules/class-validator/esm2015/validation/ValidatorConstraintInterface.js.map deleted file mode 100644 index acc4adf..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidatorConstraintInterface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidatorConstraintInterface.js","sourceRoot":"","sources":["../../../src/validation/ValidatorConstraintInterface.ts"],"names":[],"mappings":"","sourcesContent":["import { ValidationArguments } from './ValidationArguments';\n/**\n * Custom validators must implement this interface to provide custom validation logic.\n */\nexport interface ValidatorConstraintInterface {\n /**\n * Method to be called to perform custom validation over given value.\n */\n validate(value: any, validationArguments?: ValidationArguments): Promise | boolean;\n\n /**\n * Gets default message when validation for this constraint fail.\n */\n defaultMessage?(validationArguments?: ValidationArguments): string;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidatorOptions.js b/views/node_modules/class-validator/esm2015/validation/ValidatorOptions.js deleted file mode 100644 index 4dfdf01..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidatorOptions.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ValidatorOptions.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm2015/validation/ValidatorOptions.js.map b/views/node_modules/class-validator/esm2015/validation/ValidatorOptions.js.map deleted file mode 100644 index 40e2172..0000000 --- a/views/node_modules/class-validator/esm2015/validation/ValidatorOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidatorOptions.js","sourceRoot":"","sources":["../../../src/validation/ValidatorOptions.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Options passed to validator during validation.\n */\nexport interface ValidatorOptions {\n /**\n * If set to true then class-validator will print extra warning messages to the console when something is not right.\n */\n enableDebugMessages?: boolean;\n\n /**\n * If set to true then validator will skip validation of all properties that are undefined in the validating object.\n */\n skipUndefinedProperties?: boolean;\n\n /**\n * If set to true then validator will skip validation of all properties that are null in the validating object.\n */\n skipNullProperties?: boolean;\n\n /**\n * If set to true then validator will skip validation of all properties that are null or undefined in the validating object.\n */\n skipMissingProperties?: boolean;\n\n /**\n * If set to true validator will strip validated object of any properties that do not have any decorators.\n *\n * Tip: if no other decorator is suitable for your property use @Allow decorator.\n */\n whitelist?: boolean;\n\n /**\n * If set to true, instead of stripping non-whitelisted properties validator will throw an error\n */\n forbidNonWhitelisted?: boolean;\n\n /**\n * Groups to be used during validation of the object.\n */\n groups?: string[];\n\n /**\n * Set default for `always` option of decorators. Default can be overridden in decorator options.\n */\n always?: boolean;\n\n /**\n * If [groups]{@link ValidatorOptions#groups} is not given or is empty,\n * ignore decorators with at least one group.\n */\n strictGroups?: boolean;\n\n /**\n * If set to true, the validation will not use default messages.\n * Error message always will be undefined if its not explicitly set.\n */\n dismissDefaultMessages?: boolean;\n\n /**\n * ValidationError special options.\n */\n validationError?: {\n /**\n * Indicates if target should be exposed in ValidationError.\n */\n target?: boolean;\n\n /**\n * Indicates if validated value should be exposed in ValidationError.\n */\n value?: boolean;\n };\n\n /**\n * Settings true will cause fail validation of unknown objects.\n */\n forbidUnknownValues?: boolean;\n\n /**\n * When set to true, validation of the given property will stop after encountering the first error. Defaults to false.\n */\n stopAtFirstError?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/container.js b/views/node_modules/class-validator/esm5/container.js deleted file mode 100644 index db513fd..0000000 --- a/views/node_modules/class-validator/esm5/container.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * Container to be used by this library for inversion control. If container was not implicitly set then by default - * container simply creates a new instance of the given class. - */ -var defaultContainer = new (/** @class */ (function () { - function class_1() { - this.instances = []; - } - class_1.prototype.get = function (someClass) { - var instance = this.instances.find(function (instance) { return instance.type === someClass; }); - if (!instance) { - instance = { type: someClass, object: new someClass() }; - this.instances.push(instance); - } - return instance.object; - }; - return class_1; -}()))(); -var userContainer; -var userContainerOptions; -/** - * Sets container to be used by this library. - */ -export function useContainer(iocContainer, options) { - userContainer = iocContainer; - userContainerOptions = options; -} -/** - * Gets the IOC container used by this library. - */ -export function getFromContainer(someClass) { - if (userContainer) { - try { - var instance = userContainer.get(someClass); - if (instance) - return instance; - if (!userContainerOptions || !userContainerOptions.fallback) - return instance; - } - catch (error) { - if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) - throw error; - } - } - return defaultContainer.get(someClass); -} -//# sourceMappingURL=container.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/container.js.map b/views/node_modules/class-validator/esm5/container.js.map deleted file mode 100644 index f012abc..0000000 --- a/views/node_modules/class-validator/esm5/container.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/container.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,IAAM,gBAAgB,GAAqE,IAAI;IAAC;QACtF,cAAS,GAAsC,EAAE,CAAC;IAU5D,CAAC;IATC,qBAAG,GAAH,UAAO,SAAsC;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAA,QAAQ,IAAI,OAAA,QAAQ,CAAC,IAAI,KAAK,SAAS,EAA3B,CAA2B,CAAC,CAAC;QAC5E,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE,EAAE,CAAC;YACxD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC/B;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC;IACzB,CAAC;IACH,cAAC;AAAD,CAAC,AAX+F,IAW9F,EAAE,CAAC;AAEL,IAAI,aAA+E,CAAC;AACpF,IAAI,oBAAyC,CAAC;AAE9C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,YAA0C,EAAE,OAA6B;IACpG,aAAa,GAAG,YAAY,CAAC;IAC7B,oBAAoB,GAAG,OAAO,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAI,SAAiD;IACnF,IAAI,aAAa,EAAE;QACjB,IAAI;YACF,IAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;YAE9B,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,QAAQ;gBAAE,OAAO,QAAQ,CAAC;SAC9E;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,CAAC,gBAAgB;gBAAE,MAAM,KAAK,CAAC;SAClF;KACF;IACD,OAAO,gBAAgB,CAAC,GAAG,CAAI,SAAS,CAAC,CAAC;AAC5C,CAAC","sourcesContent":["/**\n * Container options.\n */\nexport interface UseContainerOptions {\n /**\n * If set to true, then default container will be used in the case if given container haven't returned anything.\n */\n fallback?: boolean;\n\n /**\n * If set to true, then default container will be used in the case if given container thrown an exception.\n */\n fallbackOnErrors?: boolean;\n}\n\n/**\n * Container to be used by this library for inversion control. If container was not implicitly set then by default\n * container simply creates a new instance of the given class.\n */\nconst defaultContainer: { get(someClass: { new (...args: any[]): T } | Function): T } = new (class {\n private instances: { type: Function; object: any }[] = [];\n get(someClass: { new (...args: any[]): T }): T {\n let instance = this.instances.find(instance => instance.type === someClass);\n if (!instance) {\n instance = { type: someClass, object: new someClass() };\n this.instances.push(instance);\n }\n\n return instance.object;\n }\n})();\n\nlet userContainer: { get(someClass: { new (...args: any[]): T } | Function): T };\nlet userContainerOptions: UseContainerOptions;\n\n/**\n * Sets container to be used by this library.\n */\nexport function useContainer(iocContainer: { get(someClass: any): any }, options?: UseContainerOptions): void {\n userContainer = iocContainer;\n userContainerOptions = options;\n}\n\n/**\n * Gets the IOC container used by this library.\n */\nexport function getFromContainer(someClass: { new (...args: any[]): T } | Function): T {\n if (userContainer) {\n try {\n const instance = userContainer.get(someClass);\n if (instance) return instance;\n\n if (!userContainerOptions || !userContainerOptions.fallback) return instance;\n } catch (error) {\n if (!userContainerOptions || !userContainerOptions.fallbackOnErrors) throw error;\n }\n }\n return defaultContainer.get(someClass);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/ValidationOptions.js b/views/node_modules/class-validator/esm5/decorator/ValidationOptions.js deleted file mode 100644 index cfe207a..0000000 --- a/views/node_modules/class-validator/esm5/decorator/ValidationOptions.js +++ /dev/null @@ -1,7 +0,0 @@ -export function isValidationOptions(val) { - if (!val) { - return false; - } - return 'each' in val || 'message' in val || 'groups' in val || 'always' in val || 'context' in val; -} -//# sourceMappingURL=ValidationOptions.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/ValidationOptions.js.map b/views/node_modules/class-validator/esm5/decorator/ValidationOptions.js.map deleted file mode 100644 index 6238604..0000000 --- a/views/node_modules/class-validator/esm5/decorator/ValidationOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationOptions.js","sourceRoot":"","sources":["../../../src/decorator/ValidationOptions.ts"],"names":[],"mappings":"AAiCA,MAAM,UAAU,mBAAmB,CAAC,GAAQ;IAC1C,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,KAAK,CAAC;KACd;IACD,OAAO,MAAM,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,CAAC;AACrG,CAAC","sourcesContent":["import { ValidationArguments } from '../validation/ValidationArguments';\n\n/**\n * Options used to pass to validation decorators.\n */\nexport interface ValidationOptions {\n /**\n * Specifies if validated value is an array and each of its items must be validated.\n */\n each?: boolean;\n\n /**\n * Error message to be used on validation fail.\n * Message can be either string or a function that returns a string.\n */\n message?: string | ((validationArguments: ValidationArguments) => string);\n\n /**\n * Validation groups used for this validation.\n */\n groups?: string[];\n\n /**\n * Indicates if validation must be performed always, no matter of validation groups used.\n */\n always?: boolean;\n\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n context?: any;\n}\n\nexport function isValidationOptions(val: any): val is ValidationOptions {\n if (!val) {\n return false;\n }\n return 'each' in val || 'message' in val || 'groups' in val || 'always' in val || 'context' in val;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayContains.js b/views/node_modules/class-validator/esm5/decorator/array/ArrayContains.js deleted file mode 100644 index d2077b8..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayContains.js +++ /dev/null @@ -1,26 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var ARRAY_CONTAINS = 'arrayContains'; -/** - * Checks if array contains all values from the given array of values. - * If null or undefined is given then this function returns false. - */ -export function arrayContains(array, values) { - if (!(array instanceof Array)) - return false; - return values.every(function (value) { return array.indexOf(value) !== -1; }); -} -/** - * Checks if array contains all values from the given array of values. - * If null or undefined is given then this function returns false. - */ -export function ArrayContains(values, validationOptions) { - return ValidateBy({ - name: ARRAY_CONTAINS, - constraints: [values], - validator: { - validate: function (value, args) { return arrayContains(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain $constraint1 values'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=ArrayContains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayContains.js.map b/views/node_modules/class-validator/esm5/decorator/array/ArrayContains.js.map deleted file mode 100644 index ea3e83a..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayContains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayContains.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayContains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,cAAc,GAAG,eAAe,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,MAAa;IACzD,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,OAAO,MAAM,CAAC,KAAK,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAA3B,CAA2B,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAa,EAAE,iBAAqC;IAChF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAzC,CAAyC;YAC7E,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,4CAA4C,EAAzD,CAAyD,EACvE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_CONTAINS = 'arrayContains';\n\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayContains(array: unknown, values: any[]): boolean {\n if (!(array instanceof Array)) return false;\n\n return values.every(value => array.indexOf(value) !== -1);\n}\n\n/**\n * Checks if array contains all values from the given array of values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayContains(values: any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_CONTAINS,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => arrayContains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain $constraint1 values',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayMaxSize.js b/views/node_modules/class-validator/esm5/decorator/array/ArrayMaxSize.js deleted file mode 100644 index ee1c20b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayMaxSize.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var ARRAY_MAX_SIZE = 'arrayMaxSize'; -/** - * Checks if the array's length is less or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export function arrayMaxSize(array, max) { - return array instanceof Array && array.length <= max; -} -/** - * Checks if the array's length is less or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export function ArrayMaxSize(max, validationOptions) { - return ValidateBy({ - name: ARRAY_MAX_SIZE, - constraints: [max], - validator: { - validate: function (value, args) { return arrayMaxSize(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain not more than $constraint1 elements'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=ArrayMaxSize.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayMaxSize.js.map b/views/node_modules/class-validator/esm5/decorator/array/ArrayMaxSize.js.map deleted file mode 100644 index 1635feb..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayMaxSize.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayMaxSize.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayMaxSize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,GAAW;IACtD,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,iBAAqC;IAC7E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAxC,CAAwC;YAC5E,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,4DAA4D,EAAzE,CAAyE,EACvF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_MAX_SIZE = 'arrayMaxSize';\n\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMaxSize(array: unknown, max: number): boolean {\n return array instanceof Array && array.length <= max;\n}\n\n/**\n * Checks if the array's length is less or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMaxSize(max: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_MAX_SIZE,\n constraints: [max],\n validator: {\n validate: (value, args): boolean => arrayMaxSize(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain not more than $constraint1 elements',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayMinSize.js b/views/node_modules/class-validator/esm5/decorator/array/ArrayMinSize.js deleted file mode 100644 index a2a511c..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayMinSize.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var ARRAY_MIN_SIZE = 'arrayMinSize'; -/** - * Checks if the array's length is greater than or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export function arrayMinSize(array, min) { - return array instanceof Array && array.length >= min; -} -/** - * Checks if the array's length is greater than or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export function ArrayMinSize(min, validationOptions) { - return ValidateBy({ - name: ARRAY_MIN_SIZE, - constraints: [min], - validator: { - validate: function (value, args) { return arrayMinSize(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain at least $constraint1 elements'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=ArrayMinSize.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayMinSize.js.map b/views/node_modules/class-validator/esm5/decorator/array/ArrayMinSize.js.map deleted file mode 100644 index 33547a4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayMinSize.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayMinSize.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayMinSize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,GAAW;IACtD,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,iBAAqC;IAC7E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAxC,CAAwC;YAC5E,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,uDAAuD,EAApE,CAAoE,EAClF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_MIN_SIZE = 'arrayMinSize';\n\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayMinSize(array: unknown, min: number): boolean {\n return array instanceof Array && array.length >= min;\n}\n\n/**\n * Checks if the array's length is greater than or equal to the specified number.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayMinSize(min: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_MIN_SIZE,\n constraints: [min],\n validator: {\n validate: (value, args): boolean => arrayMinSize(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain at least $constraint1 elements',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayNotContains.js b/views/node_modules/class-validator/esm5/decorator/array/ArrayNotContains.js deleted file mode 100644 index 5abb24d..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayNotContains.js +++ /dev/null @@ -1,26 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var ARRAY_NOT_CONTAINS = 'arrayNotContains'; -/** - * Checks if array does not contain any of the given values. - * If null or undefined is given then this function returns false. - */ -export function arrayNotContains(array, values) { - if (!(array instanceof Array)) - return false; - return values.every(function (value) { return array.indexOf(value) === -1; }); -} -/** - * Checks if array does not contain any of the given values. - * If null or undefined is given then this function returns false. - */ -export function ArrayNotContains(values, validationOptions) { - return ValidateBy({ - name: ARRAY_NOT_CONTAINS, - constraints: [values], - validator: { - validate: function (value, args) { return arrayNotContains(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not contain $constraint1 values'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=ArrayNotContains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayNotContains.js.map b/views/node_modules/class-validator/esm5/decorator/array/ArrayNotContains.js.map deleted file mode 100644 index 6818b9f..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayNotContains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayNotContains.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayNotContains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,MAAa;IAC5D,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,OAAO,MAAM,CAAC,KAAK,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAA3B,CAA2B,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAa,EAAE,iBAAqC;IACnF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAA5C,CAA4C;YAChF,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,kDAAkD,EAA/D,CAA+D,EAC7E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_NOT_CONTAINS = 'arrayNotContains';\n\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotContains(array: unknown, values: any[]): boolean {\n if (!(array instanceof Array)) return false;\n\n return values.every(value => array.indexOf(value) === -1);\n}\n\n/**\n * Checks if array does not contain any of the given values.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotContains(values: any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_NOT_CONTAINS,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => arrayNotContains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not contain $constraint1 values',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayNotEmpty.js b/views/node_modules/class-validator/esm5/decorator/array/ArrayNotEmpty.js deleted file mode 100644 index 917785f..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayNotEmpty.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var ARRAY_NOT_EMPTY = 'arrayNotEmpty'; -/** - * Checks if given array is not empty. - * If null or undefined is given then this function returns false. - */ -export function arrayNotEmpty(array) { - return array instanceof Array && array.length > 0; -} -/** - * Checks if given array is not empty. - * If null or undefined is given then this function returns false. - */ -export function ArrayNotEmpty(validationOptions) { - return ValidateBy({ - name: ARRAY_NOT_EMPTY, - validator: { - validate: function (value, args) { return arrayNotEmpty(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be empty'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=ArrayNotEmpty.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayNotEmpty.js.map b/views/node_modules/class-validator/esm5/decorator/array/ArrayNotEmpty.js.map deleted file mode 100644 index 43f2537..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayNotEmpty.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayNotEmpty.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayNotEmpty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,eAAe,GAAG,eAAe,CAAC;AAE/C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,iBAAqC;IACjE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,aAAa,CAAC,KAAK,CAAC,EAApB,CAAoB;YACxD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,+BAA+B,EAA5C,CAA4C,EAAE,iBAAiB,CAAC;SAC5G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_NOT_EMPTY = 'arrayNotEmpty';\n\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayNotEmpty(array: unknown): boolean {\n return array instanceof Array && array.length > 0;\n}\n\n/**\n * Checks if given array is not empty.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayNotEmpty(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: ARRAY_NOT_EMPTY,\n validator: {\n validate: (value, args): boolean => arrayNotEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayUnique.js b/views/node_modules/class-validator/esm5/decorator/array/ArrayUnique.js deleted file mode 100644 index 88896ce..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayUnique.js +++ /dev/null @@ -1,31 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var ARRAY_UNIQUE = 'arrayUnique'; -/** - * Checks if all array's values are unique. Comparison for objects is reference-based. - * If null or undefined is given then this function returns false. - */ -export function arrayUnique(array, identifier) { - if (!(array instanceof Array)) - return false; - if (identifier) { - array = array.map(function (o) { return (o != null ? identifier(o) : o); }); - } - var uniqueItems = array.filter(function (a, b, c) { return c.indexOf(a) === b; }); - return array.length === uniqueItems.length; -} -/** - * Checks if all array's values are unique. Comparison for objects is reference-based. - * If null or undefined is given then this function returns false. - */ -export function ArrayUnique(identifierOrOptions, validationOptions) { - var identifier = typeof identifierOrOptions === 'function' ? identifierOrOptions : undefined; - var options = typeof identifierOrOptions !== 'function' ? identifierOrOptions : validationOptions; - return ValidateBy({ - name: ARRAY_UNIQUE, - validator: { - validate: function (value, args) { return arrayUnique(value, identifier); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + "All $property's elements must be unique"; }, options), - }, - }, options); -} -//# sourceMappingURL=ArrayUnique.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/array/ArrayUnique.js.map b/views/node_modules/class-validator/esm5/decorator/array/ArrayUnique.js.map deleted file mode 100644 index 8b89783..0000000 --- a/views/node_modules/class-validator/esm5/decorator/array/ArrayUnique.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ArrayUnique.js","sourceRoot":"","sources":["../../../../src/decorator/array/ArrayUnique.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,YAAY,GAAG,aAAa,CAAC;AAG1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAgB,EAAE,UAAkC;IAC9E,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAE5C,IAAI,UAAU,EAAE;QACd,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAA/B,CAA+B,CAAC,CAAC;KACzD;IAED,IAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,UAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAlB,CAAkB,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,mBAAkE,EAClE,iBAAqC;IAErC,IAAM,UAAU,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,IAAM,OAAO,GAAG,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEpG,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,WAAW,CAAC,KAAK,EAAE,UAAU,CAAC,EAA9B,CAA8B;YAClE,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,yCAAyC,EAAtD,CAAsD,EAAE,OAAO,CAAC;SAC5G;KACF,EACD,OAAO,CACR,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const ARRAY_UNIQUE = 'arrayUnique';\nexport type ArrayUniqueIdentifier = (o: T) => any;\n\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function arrayUnique(array: unknown[], identifier?: ArrayUniqueIdentifier): boolean {\n if (!(array instanceof Array)) return false;\n\n if (identifier) {\n array = array.map(o => (o != null ? identifier(o) : o));\n }\n\n const uniqueItems = array.filter((a, b, c) => c.indexOf(a) === b);\n return array.length === uniqueItems.length;\n}\n\n/**\n * Checks if all array's values are unique. Comparison for objects is reference-based.\n * If null or undefined is given then this function returns false.\n */\nexport function ArrayUnique(\n identifierOrOptions?: ArrayUniqueIdentifier | ValidationOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n const identifier = typeof identifierOrOptions === 'function' ? identifierOrOptions : undefined;\n const options = typeof identifierOrOptions !== 'function' ? identifierOrOptions : validationOptions;\n\n return ValidateBy(\n {\n name: ARRAY_UNIQUE,\n validator: {\n validate: (value, args): boolean => arrayUnique(value, identifier),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + \"All $property's elements must be unique\", options),\n },\n },\n options\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/Allow.js b/views/node_modules/class-validator/esm5/decorator/common/Allow.js deleted file mode 100644 index bd4b543..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/Allow.js +++ /dev/null @@ -1,18 +0,0 @@ -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -/** - * If object has both allowed and not allowed properties a validation error will be thrown. - */ -export function Allow(validationOptions) { - return function (object, propertyName) { - var args = { - type: ValidationTypes.WHITELIST, - target: object.constructor, - propertyName: propertyName, - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=Allow.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/Allow.js.map b/views/node_modules/class-validator/esm5/decorator/common/Allow.js.map deleted file mode 100644 index 22f20d6..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/Allow.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Allow.js","sourceRoot":"","sources":["../../../../src/decorator/common/Allow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,SAAS;YAC/B,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * If object has both allowed and not allowed properties a validation error will be thrown.\n */\nexport function Allow(validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.WHITELIST,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/Equals.js b/views/node_modules/class-validator/esm5/decorator/common/Equals.js deleted file mode 100644 index 43cb3e9..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/Equals.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var EQUALS = 'equals'; -/** - * Checks if value matches ("===") the comparison. - */ -export function equals(value, comparison) { - return value === comparison; -} -/** - * Checks if value matches ("===") the comparison. - */ -export function Equals(comparison, validationOptions) { - return ValidateBy({ - name: EQUALS, - constraints: [comparison], - validator: { - validate: function (value, args) { return equals(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be equal to $constraint1'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Equals.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/Equals.js.map b/views/node_modules/class-validator/esm5/decorator/common/Equals.js.map deleted file mode 100644 index 566dfd7..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/Equals.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Equals.js","sourceRoot":"","sources":["../../../../src/decorator/common/Equals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,MAAM,GAAG,QAAQ,CAAC;AAE/B;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,UAAmB;IACxD,OAAO,KAAK,KAAK,UAAU,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,UAAe,EAAE,iBAAqC;IAC3E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC;YACtE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,yCAAyC,EAAtD,CAAsD,EACpE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const EQUALS = 'equals';\n\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function equals(value: unknown, comparison: unknown): boolean {\n return value === comparison;\n}\n\n/**\n * Checks if value matches (\"===\") the comparison.\n */\nexport function Equals(comparison: any, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: EQUALS,\n constraints: [comparison],\n validator: {\n validate: (value, args): boolean => equals(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be equal to $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsDefined.js b/views/node_modules/class-validator/esm5/decorator/common/IsDefined.js deleted file mode 100644 index 4cd4ad6..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsDefined.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from './ValidateBy'; -import { ValidationTypes } from '../../validation/ValidationTypes'; -// isDefined is (yet) a special case -export var IS_DEFINED = ValidationTypes.IS_DEFINED; -/** - * Checks if value is defined (!== undefined, !== null). - */ -export function isDefined(value) { - return value !== undefined && value !== null; -} -/** - * Checks if value is defined (!== undefined, !== null). - */ -export function IsDefined(validationOptions) { - return ValidateBy({ - name: IS_DEFINED, - validator: { - validate: function (value) { return isDefined(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be null or undefined'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDefined.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsDefined.js.map b/views/node_modules/class-validator/esm5/decorator/common/IsDefined.js.map deleted file mode 100644 index 8f00d8b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsDefined.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDefined.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsDefined.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAEnE,oCAAoC;AACpC,MAAM,CAAC,IAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAU;IAClC,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,IAAc,OAAA,SAAS,CAAC,KAAK,CAAC,EAAhB,CAAgB;YAC9C,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,2CAA2C,EAAxD,CAAwD,EACtE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\n\n// isDefined is (yet) a special case\nexport const IS_DEFINED = ValidationTypes.IS_DEFINED;\n\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function isDefined(value: any): boolean {\n return value !== undefined && value !== null;\n}\n\n/**\n * Checks if value is defined (!== undefined, !== null).\n */\nexport function IsDefined(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DEFINED,\n validator: {\n validate: (value): boolean => isDefined(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not be null or undefined',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsEmpty.js b/views/node_modules/class-validator/esm5/decorator/common/IsEmpty.js deleted file mode 100644 index 5cdc96e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsEmpty.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_EMPTY = 'isEmpty'; -/** - * Checks if given value is empty (=== '', === null, === undefined). - */ -export function isEmpty(value) { - return value === '' || value === null || value === undefined; -} -/** - * Checks if given value is empty (=== '', === null, === undefined). - */ -export function IsEmpty(validationOptions) { - return ValidateBy({ - name: IS_EMPTY, - validator: { - validate: function (value, args) { return isEmpty(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be empty'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsEmpty.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsEmpty.js.map b/views/node_modules/class-validator/esm5/decorator/common/IsEmpty.js.map deleted file mode 100644 index c448f33..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsEmpty.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEmpty.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsEmpty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,iBAAqC;IAC3D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc;YAClD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,yBAAyB,EAAtC,CAAsC,EAAE,iBAAiB,CAAC;SACtG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_EMPTY = 'isEmpty';\n\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function isEmpty(value: unknown): boolean {\n return value === '' || value === null || value === undefined;\n}\n\n/**\n * Checks if given value is empty (=== '', === null, === undefined).\n */\nexport function IsEmpty(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_EMPTY,\n validator: {\n validate: (value, args): boolean => isEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be empty', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsIn.js b/views/node_modules/class-validator/esm5/decorator/common/IsIn.js deleted file mode 100644 index f9e907e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsIn.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_IN = 'isIn'; -/** - * Checks if given value is in a array of allowed values. - */ -export function isIn(value, possibleValues) { - return !(possibleValues instanceof Array) || possibleValues.some(function (possibleValue) { return possibleValue === value; }); -} -/** - * Checks if given value is in a array of allowed values. - */ -export function IsIn(values, validationOptions) { - return ValidateBy({ - name: IS_IN, - constraints: [values], - validator: { - validate: function (value, args) { return isIn(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be one of the following values: $constraint1'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsIn.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsIn.js.map b/views/node_modules/class-validator/esm5/decorator/common/IsIn.js.map deleted file mode 100644 index f1d32f3..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsIn.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIn.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsIn.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,KAAK,GAAG,MAAM,CAAC;AAE5B;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,KAAc,EAAE,cAAkC;IACrE,OAAO,CAAC,CAAC,cAAc,YAAY,KAAK,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,UAAA,aAAa,IAAI,OAAA,aAAa,KAAK,KAAK,EAAvB,CAAuB,CAAC,CAAC;AAC7G,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,MAAsB,EAAE,iBAAqC;IAChF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAhC,CAAgC;YACpE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,6DAA6D,EAA1E,CAA0E,EACxF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_IN = 'isIn';\n\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function isIn(value: unknown, possibleValues: readonly unknown[]): boolean {\n return !(possibleValues instanceof Array) || possibleValues.some(possibleValue => possibleValue === value);\n}\n\n/**\n * Checks if given value is in a array of allowed values.\n */\nexport function IsIn(values: readonly any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IN,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => isIn(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be one of the following values: $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsLatLong.js b/views/node_modules/class-validator/esm5/decorator/common/IsLatLong.js deleted file mode 100644 index 8ca90b5..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsLatLong.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from './ValidateBy'; -import isLatLongValidator from 'validator/lib/isLatLong'; -export var IS_LATLONG = 'isLatLong'; -/** - * Checks if a value is string in format a "latitude,longitude". - */ -export function isLatLong(value) { - return typeof value === 'string' && isLatLongValidator(value); -} -/** - * Checks if a value is string in format a "latitude,longitude". - */ -export function IsLatLong(validationOptions) { - return ValidateBy({ - name: IS_LATLONG, - validator: { - validate: function (value, args) { return isLatLong(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a latitude,longitude string'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsLatLong.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsLatLong.js.map b/views/node_modules/class-validator/esm5/decorator/common/IsLatLong.js.map deleted file mode 100644 index 1aee579..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsLatLong.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLatLong.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsLatLong.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,IAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,SAAS,CAAC,KAAK,CAAC,EAAhB,CAAgB;YACpD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,+CAA+C,EAA5D,CAA4D,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport isLatLongValidator from 'validator/lib/isLatLong';\n\nexport const IS_LATLONG = 'isLatLong';\n\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function isLatLong(value: string): boolean {\n return typeof value === 'string' && isLatLongValidator(value);\n}\n\n/**\n * Checks if a value is string in format a \"latitude,longitude\".\n */\nexport function IsLatLong(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LATLONG,\n validator: {\n validate: (value, args): boolean => isLatLong(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a latitude,longitude string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsLatitude.js b/views/node_modules/class-validator/esm5/decorator/common/IsLatitude.js deleted file mode 100644 index 49d0987..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsLatitude.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from './ValidateBy'; -import { isLatLong } from './IsLatLong'; -export var IS_LATITUDE = 'isLatitude'; -/** - * Checks if a given value is a latitude. - */ -export function isLatitude(value) { - return (typeof value === 'number' || typeof value === 'string') && isLatLong(value + ",0"); -} -/** - * Checks if a given value is a latitude. - */ -export function IsLatitude(validationOptions) { - return ValidateBy({ - name: IS_LATITUDE, - validator: { - validate: function (value, args) { return isLatitude(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a latitude string or number'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsLatitude.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsLatitude.js.map b/views/node_modules/class-validator/esm5/decorator/common/IsLatitude.js.map deleted file mode 100644 index 24d07b5..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsLatitude.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLatitude.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsLatitude.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,IAAM,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa;IACtC,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,SAAS,CAAI,KAAK,OAAI,CAAC,CAAC;AAC7F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,UAAU,CAAC,KAAK,CAAC,EAAjB,CAAiB;YACrD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,+CAA+C,EAA5D,CAA4D,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\n\nexport const IS_LATITUDE = 'isLatitude';\n\n/**\n * Checks if a given value is a latitude.\n */\nexport function isLatitude(value: string): boolean {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(`${value},0`);\n}\n\n/**\n * Checks if a given value is a latitude.\n */\nexport function IsLatitude(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LATITUDE,\n validator: {\n validate: (value, args): boolean => isLatitude(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a latitude string or number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsLongitude.js b/views/node_modules/class-validator/esm5/decorator/common/IsLongitude.js deleted file mode 100644 index 6b5588b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsLongitude.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from './ValidateBy'; -import { isLatLong } from './IsLatLong'; -export var IS_LONGITUDE = 'isLongitude'; -/** - * Checks if a given value is a longitude. - */ -export function isLongitude(value) { - return (typeof value === 'number' || typeof value === 'string') && isLatLong("0," + value); -} -/** - * Checks if a given value is a longitude. - */ -export function IsLongitude(validationOptions) { - return ValidateBy({ - name: IS_LONGITUDE, - validator: { - validate: function (value, args) { return isLongitude(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a longitude string or number'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsLongitude.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsLongitude.js.map b/views/node_modules/class-validator/esm5/decorator/common/IsLongitude.js.map deleted file mode 100644 index 8a36fff..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsLongitude.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLongitude.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsLongitude.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,IAAM,YAAY,GAAG,aAAa,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAK,KAAO,CAAC,CAAC;AAC7F,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,WAAW,CAAC,KAAK,CAAC,EAAlB,CAAkB;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,gDAAgD,EAA7D,CAA6D,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from './ValidateBy';\nimport { isLatLong } from './IsLatLong';\n\nexport const IS_LONGITUDE = 'isLongitude';\n\n/**\n * Checks if a given value is a longitude.\n */\nexport function isLongitude(value: string): boolean {\n return (typeof value === 'number' || typeof value === 'string') && isLatLong(`0,${value}`);\n}\n\n/**\n * Checks if a given value is a longitude.\n */\nexport function IsLongitude(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LONGITUDE,\n validator: {\n validate: (value, args): boolean => isLongitude(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a longitude string or number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsNotEmpty.js b/views/node_modules/class-validator/esm5/decorator/common/IsNotEmpty.js deleted file mode 100644 index 2437c63..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsNotEmpty.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_NOT_EMPTY = 'isNotEmpty'; -/** - * Checks if given value is not empty (!== '', !== null, !== undefined). - */ -export function isNotEmpty(value) { - return value !== '' && value !== null && value !== undefined; -} -/** - * Checks if given value is not empty (!== '', !== null, !== undefined). - */ -export function IsNotEmpty(validationOptions) { - return ValidateBy({ - name: IS_NOT_EMPTY, - validator: { - validate: function (value, args) { return isNotEmpty(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be empty'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNotEmpty.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsNotEmpty.js.map b/views/node_modules/class-validator/esm5/decorator/common/IsNotEmpty.js.map deleted file mode 100644 index 506aa6c..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsNotEmpty.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNotEmpty.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsNotEmpty.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,YAAY,GAAG,YAAY,CAAC;AAEzC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,UAAU,CAAC,KAAK,CAAC,EAAjB,CAAiB;YACrD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,+BAA+B,EAA5C,CAA4C,EAAE,iBAAiB,CAAC;SAC5G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NOT_EMPTY = 'isNotEmpty';\n\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function isNotEmpty(value: unknown): boolean {\n return value !== '' && value !== null && value !== undefined;\n}\n\n/**\n * Checks if given value is not empty (!== '', !== null, !== undefined).\n */\nexport function IsNotEmpty(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NOT_EMPTY,\n validator: {\n validate: (value, args): boolean => isNotEmpty(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property should not be empty', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsNotIn.js b/views/node_modules/class-validator/esm5/decorator/common/IsNotIn.js deleted file mode 100644 index d558a35..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsNotIn.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_NOT_IN = 'isNotIn'; -/** - * Checks if given value not in a array of allowed values. - */ -export function isNotIn(value, possibleValues) { - return !(possibleValues instanceof Array) || !possibleValues.some(function (possibleValue) { return possibleValue === value; }); -} -/** - * Checks if given value not in a array of allowed values. - */ -export function IsNotIn(values, validationOptions) { - return ValidateBy({ - name: IS_NOT_IN, - constraints: [values], - validator: { - validate: function (value, args) { return isNotIn(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be one of the following values: $constraint1'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNotIn.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsNotIn.js.map b/views/node_modules/class-validator/esm5/decorator/common/IsNotIn.js.map deleted file mode 100644 index 5c52880..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsNotIn.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNotIn.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsNotIn.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,SAAS,GAAG,SAAS,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,cAAkC;IACxE,OAAO,CAAC,CAAC,cAAc,YAAY,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAA,aAAa,IAAI,OAAA,aAAa,KAAK,KAAK,EAAvB,CAAuB,CAAC,CAAC;AAC9G,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,MAAsB,EAAE,iBAAqC;IACnF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAnC,CAAmC;YACvE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,mEAAmE,EAAhF,CAAgF,EAC9F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NOT_IN = 'isNotIn';\n\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function isNotIn(value: unknown, possibleValues: readonly unknown[]): boolean {\n return !(possibleValues instanceof Array) || !possibleValues.some(possibleValue => possibleValue === value);\n}\n\n/**\n * Checks if given value not in a array of allowed values.\n */\nexport function IsNotIn(values: readonly any[], validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NOT_IN,\n constraints: [values],\n validator: {\n validate: (value, args): boolean => isNotIn(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not be one of the following values: $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsOptional.js b/views/node_modules/class-validator/esm5/decorator/common/IsOptional.js deleted file mode 100644 index c10abe4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsOptional.js +++ /dev/null @@ -1,23 +0,0 @@ -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -/** - * Checks if value is missing and if so, ignores all validators. - */ -export function IsOptional(validationOptions) { - return function (object, propertyName) { - var args = { - type: ValidationTypes.CONDITIONAL_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraints: [ - function (object, value) { - return object[propertyName] !== null && object[propertyName] !== undefined; - }, - ], - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=IsOptional.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/IsOptional.js.map b/views/node_modules/class-validator/esm5/decorator/common/IsOptional.js.map deleted file mode 100644 index 82aa894..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/IsOptional.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsOptional.js","sourceRoot":"","sources":["../../../../src/decorator/common/IsOptional.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,sBAAsB;YAC5C,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE;gBACX,UAAC,MAAW,EAAE,KAAU;oBACtB,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC;gBAC7E,CAAC;aACF;YACD,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Checks if value is missing and if so, ignores all validators.\n */\nexport function IsOptional(validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [\n (object: any, value: any): boolean => {\n return object[propertyName] !== null && object[propertyName] !== undefined;\n },\n ],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/NotEquals.js b/views/node_modules/class-validator/esm5/decorator/common/NotEquals.js deleted file mode 100644 index 7f2d88c..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/NotEquals.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var NOT_EQUALS = 'notEquals'; -/** - * Checks if value does not match ("!==") the comparison. - */ -export function notEquals(value, comparison) { - return value !== comparison; -} -/** - * Checks if value does not match ("!==") the comparison. - */ -export function NotEquals(comparison, validationOptions) { - return ValidateBy({ - name: NOT_EQUALS, - constraints: [comparison], - validator: { - validate: function (value, args) { return notEquals(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not be equal to $constraint1'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=NotEquals.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/NotEquals.js.map b/views/node_modules/class-validator/esm5/decorator/common/NotEquals.js.map deleted file mode 100644 index cd75311..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/NotEquals.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NotEquals.js","sourceRoot":"","sources":["../../../../src/decorator/common/NotEquals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,UAAmB;IAC3D,OAAO,KAAK,KAAK,UAAU,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,UAAe,EAAE,iBAAqC;IAC9E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAArC,CAAqC;YACzE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,+CAA+C,EAA5D,CAA4D,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const NOT_EQUALS = 'notEquals';\n\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function notEquals(value: unknown, comparison: unknown): boolean {\n return value !== comparison;\n}\n\n/**\n * Checks if value does not match (\"!==\") the comparison.\n */\nexport function NotEquals(comparison: any, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: NOT_EQUALS,\n constraints: [comparison],\n validator: {\n validate: (value, args): boolean => notEquals(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not be equal to $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/Validate.js b/views/node_modules/class-validator/esm5/decorator/common/Validate.js deleted file mode 100644 index 67ef81e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/Validate.js +++ /dev/null @@ -1,37 +0,0 @@ -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ConstraintMetadata } from '../../metadata/ConstraintMetadata'; -/** - * Registers custom validator class. - */ -export function ValidatorConstraint(options) { - return function (target) { - var isAsync = options && options.async; - var name = options && options.name ? options.name : ''; - if (!name) { - name = target.name; - if (!name) - // generate name if it was not given - name = name.replace(/\.?([A-Z]+)/g, function (x, y) { return '_' + y.toLowerCase(); }).replace(/^_/, ''); - } - var metadata = new ConstraintMetadata(target, name, isAsync); - getMetadataStorage().addConstraintMetadata(metadata); - }; -} -export function Validate(constraintClass, constraintsOrValidationOptions, maybeValidationOptions) { - return function (object, propertyName) { - var args = { - type: ValidationTypes.CUSTOM_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraintCls: constraintClass, - constraints: constraintsOrValidationOptions instanceof Array ? constraintsOrValidationOptions : undefined, - validationOptions: !(constraintsOrValidationOptions instanceof Array) - ? constraintsOrValidationOptions - : maybeValidationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=Validate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/Validate.js.map b/views/node_modules/class-validator/esm5/decorator/common/Validate.js.map deleted file mode 100644 index 1a90521..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/Validate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Validate.js","sourceRoot":"","sources":["../../../../src/decorator/common/Validate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA4C;IAC9E,OAAO,UAAU,MAAgB;QAC/B,IAAM,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;QACzC,IAAI,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAI,MAAc,CAAC,IAAI,CAAC;YAC5B,IAAI,CAAC,IAAI;gBACP,oCAAoC;gBACpC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,GAAG,GAAI,CAAY,CAAC,WAAW,EAAE,EAAjC,CAAiC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACtG;QACD,IAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/D,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AAYD,MAAM,UAAU,QAAQ,CACtB,eAAyB,EACzB,8BAA0D,EAC1D,sBAA0C;IAE1C,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,iBAAiB;YACvC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,aAAa,EAAE,eAAe;YAC9B,WAAW,EAAE,8BAA8B,YAAY,KAAK,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,SAAS;YACzG,iBAAiB,EAAE,CAAC,CAAC,8BAA8B,YAAY,KAAK,CAAC;gBACnE,CAAC,CAAC,8BAA8B;gBAChC,CAAC,CAAC,sBAAsB;SAC3B,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ConstraintMetadata } from '../../metadata/ConstraintMetadata';\n\n/**\n * Registers custom validator class.\n */\nexport function ValidatorConstraint(options?: { name?: string; async?: boolean }) {\n return function (target: Function): void {\n const isAsync = options && options.async;\n let name = options && options.name ? options.name : '';\n if (!name) {\n name = (target as any).name;\n if (!name)\n // generate name if it was not given\n name = name.replace(/\\.?([A-Z]+)/g, (x, y) => '_' + (y as string).toLowerCase()).replace(/^_/, '');\n }\n const metadata = new ConstraintMetadata(target, name, isAsync);\n getMetadataStorage().addConstraintMetadata(metadata);\n };\n}\n\n/**\n * Performs validation based on the given custom validation class.\n * Validation class must be decorated with ValidatorConstraint decorator.\n */\nexport function Validate(constraintClass: Function, validationOptions?: ValidationOptions): PropertyDecorator;\nexport function Validate(\n constraintClass: Function,\n constraints?: any[],\n validationOptions?: ValidationOptions\n): PropertyDecorator;\nexport function Validate(\n constraintClass: Function,\n constraintsOrValidationOptions?: any[] | ValidationOptions,\n maybeValidationOptions?: ValidationOptions\n): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.CUSTOM_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraintCls: constraintClass,\n constraints: constraintsOrValidationOptions instanceof Array ? constraintsOrValidationOptions : undefined,\n validationOptions: !(constraintsOrValidationOptions instanceof Array)\n ? constraintsOrValidationOptions\n : maybeValidationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/ValidateBy.js b/views/node_modules/class-validator/esm5/decorator/common/ValidateBy.js deleted file mode 100644 index a179095..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/ValidateBy.js +++ /dev/null @@ -1,20 +0,0 @@ -import { registerDecorator } from '../../register-decorator'; -export function buildMessage(impl, validationOptions) { - return function (validationArguments) { - var eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : ''; - return impl(eachPrefix, validationArguments); - }; -} -export function ValidateBy(options, validationOptions) { - return function (object, propertyName) { - registerDecorator({ - name: options.name, - target: object.constructor, - propertyName: propertyName, - options: validationOptions, - constraints: options.constraints, - validator: options.validator, - }); - }; -} -//# sourceMappingURL=ValidateBy.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/ValidateBy.js.map b/views/node_modules/class-validator/esm5/decorator/common/ValidateBy.js.map deleted file mode 100644 index 75fb90d..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/ValidateBy.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidateBy.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidateBy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAW7D,MAAM,UAAU,YAAY,CAC1B,IAAgE,EAChE,iBAAqC;IAErC,OAAO,UAAC,mBAAyC;QAC/C,IAAM,UAAU,GAAG,iBAAiB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;QACvF,OAAO,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAC/C,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAA0B,EAAE,iBAAqC;IAC1F,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,iBAAiB,CAAC;YAChB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { registerDecorator } from '../../register-decorator';\nimport { ValidationArguments } from '../../validation/ValidationArguments';\nimport { ValidatorConstraintInterface } from '../../validation/ValidatorConstraintInterface';\n\nexport interface ValidateByOptions {\n name: string;\n constraints?: any[];\n validator: ValidatorConstraintInterface | Function;\n async?: boolean;\n}\n\nexport function buildMessage(\n impl: (eachPrefix: string, args?: ValidationArguments) => string,\n validationOptions?: ValidationOptions\n): (validationArguments?: ValidationArguments) => string {\n return (validationArguments?: ValidationArguments): string => {\n const eachPrefix = validationOptions && validationOptions.each ? 'each value in ' : '';\n return impl(eachPrefix, validationArguments);\n };\n}\n\nexport function ValidateBy(options: ValidateByOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n registerDecorator({\n name: options.name,\n target: object.constructor,\n propertyName: propertyName,\n options: validationOptions,\n constraints: options.constraints,\n validator: options.validator,\n });\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/ValidateIf.js b/views/node_modules/class-validator/esm5/decorator/common/ValidateIf.js deleted file mode 100644 index 0a70d5b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/ValidateIf.js +++ /dev/null @@ -1,19 +0,0 @@ -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -/** - * Ignores the other validators on a property when the provided condition function returns false. - */ -export function ValidateIf(condition, validationOptions) { - return function (object, propertyName) { - var args = { - type: ValidationTypes.CONDITIONAL_VALIDATION, - target: object.constructor, - propertyName: propertyName, - constraints: [condition], - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=ValidateIf.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/ValidateIf.js.map b/views/node_modules/class-validator/esm5/decorator/common/ValidateIf.js.map deleted file mode 100644 index d8e53f4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/ValidateIf.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidateIf.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidateIf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,SAA+C,EAC/C,iBAAqC;IAErC,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,sBAAsB;YAC5C,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,WAAW,EAAE,CAAC,SAAS,CAAC;YACxB,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Ignores the other validators on a property when the provided condition function returns false.\n */\nexport function ValidateIf(\n condition: (object: any, value: any) => boolean,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.CONDITIONAL_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n constraints: [condition],\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/ValidateNested.js b/views/node_modules/class-validator/esm5/decorator/common/ValidateNested.js deleted file mode 100644 index 14e7e5a..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/ValidateNested.js +++ /dev/null @@ -1,32 +0,0 @@ -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); -}; -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -/** - * Objects / object arrays marked with this decorator will also be validated. - */ -export function ValidateNested(validationOptions) { - var opts = __assign({}, validationOptions); - var eachPrefix = opts.each ? 'each value in ' : ''; - opts.message = opts.message || eachPrefix + 'nested property $property must be either object or array'; - return function (object, propertyName) { - var args = { - type: ValidationTypes.NESTED_VALIDATION, - target: object.constructor, - propertyName: propertyName, - validationOptions: opts, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=ValidateNested.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/ValidateNested.js.map b/views/node_modules/class-validator/esm5/decorator/common/ValidateNested.js.map deleted file mode 100644 index 400e60d..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/ValidateNested.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidateNested.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidateNested.ts"],"names":[],"mappings":";;;;;;;;;;;AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,iBAAqC;IAClE,IAAM,IAAI,gBAA2B,iBAAiB,CAAE,CAAC;IACzD,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,UAAU,GAAG,0DAA0D,CAAC;IAEvG,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,iBAAiB;YACvC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,iBAAiB,EAAE,IAAI;SACxB,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Objects / object arrays marked with this decorator will also be validated.\n */\nexport function ValidateNested(validationOptions?: ValidationOptions): PropertyDecorator {\n const opts: ValidationOptions = { ...validationOptions };\n const eachPrefix = opts.each ? 'each value in ' : '';\n opts.message = opts.message || eachPrefix + 'nested property $property must be either object or array';\n\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.NESTED_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: opts,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/ValidatePromise.js b/views/node_modules/class-validator/esm5/decorator/common/ValidatePromise.js deleted file mode 100644 index 9c26936..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/ValidatePromise.js +++ /dev/null @@ -1,18 +0,0 @@ -import { ValidationTypes } from '../../validation/ValidationTypes'; -import { ValidationMetadata } from '../../metadata/ValidationMetadata'; -import { getMetadataStorage } from '../../metadata/MetadataStorage'; -/** - * Resolve promise before validation - */ -export function ValidatePromise(validationOptions) { - return function (object, propertyName) { - var args = { - type: ValidationTypes.PROMISE_VALIDATION, - target: object.constructor, - propertyName: propertyName, - validationOptions: validationOptions, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(args)); - }; -} -//# sourceMappingURL=ValidatePromise.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/common/ValidatePromise.js.map b/views/node_modules/class-validator/esm5/decorator/common/ValidatePromise.js.map deleted file mode 100644 index a7949ad..0000000 --- a/views/node_modules/class-validator/esm5/decorator/common/ValidatePromise.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidatePromise.js","sourceRoot":"","sources":["../../../../src/decorator/common/ValidatePromise.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,iBAAqC;IACnE,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAM,IAAI,GAA2B;YACnC,IAAI,EAAE,eAAe,CAAC,kBAAkB;YACxC,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,iBAAiB,EAAE,iBAAiB;SACrC,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { ValidationMetadataArgs } from '../../metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from '../../validation/ValidationTypes';\nimport { ValidationMetadata } from '../../metadata/ValidationMetadata';\nimport { getMetadataStorage } from '../../metadata/MetadataStorage';\n\n/**\n * Resolve promise before validation\n */\nexport function ValidatePromise(validationOptions?: ValidationOptions): PropertyDecorator {\n return function (object: object, propertyName: string): void {\n const args: ValidationMetadataArgs = {\n type: ValidationTypes.PROMISE_VALIDATION,\n target: object.constructor,\n propertyName: propertyName,\n validationOptions: validationOptions,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(args));\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/date/MaxDate.js b/views/node_modules/class-validator/esm5/decorator/date/MaxDate.js deleted file mode 100644 index e19978f..0000000 --- a/views/node_modules/class-validator/esm5/decorator/date/MaxDate.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var MAX_DATE = 'maxDate'; -/** - * Checks if the value is a date that's before the specified date. - */ -export function maxDate(date, maxDate) { - return date instanceof Date && date.getTime() <= maxDate.getTime(); -} -/** - * Checks if the value is a date that's after the specified date. - */ -export function MaxDate(date, validationOptions) { - return ValidateBy({ - name: MAX_DATE, - constraints: [date], - validator: { - validate: function (value, args) { return maxDate(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return 'maximal allowed date for ' + eachPrefix + '$property is $constraint1'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=MaxDate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/date/MaxDate.js.map b/views/node_modules/class-validator/esm5/decorator/date/MaxDate.js.map deleted file mode 100644 index bf44063..0000000 --- a/views/node_modules/class-validator/esm5/decorator/date/MaxDate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MaxDate.js","sourceRoot":"","sources":["../../../../src/decorator/date/MaxDate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAa,EAAE,OAAa;IAClD,OAAO,IAAI,YAAY,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAU,EAAE,iBAAqC;IACvE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAnC,CAAmC;YACvE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,2BAA2B,GAAG,UAAU,GAAG,2BAA2B,EAAtE,CAAsE,EACpF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MAX_DATE = 'maxDate';\n\n/**\n * Checks if the value is a date that's before the specified date.\n */\nexport function maxDate(date: unknown, maxDate: Date): boolean {\n return date instanceof Date && date.getTime() <= maxDate.getTime();\n}\n\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MaxDate(date: Date, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MAX_DATE,\n constraints: [date],\n validator: {\n validate: (value, args): boolean => maxDate(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => 'maximal allowed date for ' + eachPrefix + '$property is $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/date/MinDate.js b/views/node_modules/class-validator/esm5/decorator/date/MinDate.js deleted file mode 100644 index 48a5c53..0000000 --- a/views/node_modules/class-validator/esm5/decorator/date/MinDate.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var MIN_DATE = 'minDate'; -/** - * Checks if the value is a date that's after the specified date. - */ -export function minDate(date, minDate) { - return date instanceof Date && date.getTime() >= minDate.getTime(); -} -/** - * Checks if the value is a date that's after the specified date. - */ -export function MinDate(date, validationOptions) { - return ValidateBy({ - name: MIN_DATE, - constraints: [date], - validator: { - validate: function (value, args) { return minDate(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return 'minimal allowed date for ' + eachPrefix + '$property is $constraint1'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=MinDate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/date/MinDate.js.map b/views/node_modules/class-validator/esm5/decorator/date/MinDate.js.map deleted file mode 100644 index 64fb87e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/date/MinDate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MinDate.js","sourceRoot":"","sources":["../../../../src/decorator/date/MinDate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAa,EAAE,OAAa;IAClD,OAAO,IAAI,YAAY,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAU,EAAE,iBAAqC;IACvE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAnC,CAAmC;YACvE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,2BAA2B,GAAG,UAAU,GAAG,2BAA2B,EAAtE,CAAsE,EACpF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MIN_DATE = 'minDate';\n\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function minDate(date: unknown, minDate: Date): boolean {\n return date instanceof Date && date.getTime() >= minDate.getTime();\n}\n\n/**\n * Checks if the value is a date that's after the specified date.\n */\nexport function MinDate(date: Date, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MIN_DATE,\n constraints: [date],\n validator: {\n validate: (value, args): boolean => minDate(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => 'minimal allowed date for ' + eachPrefix + '$property is $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/decorators.js b/views/node_modules/class-validator/esm5/decorator/decorators.js deleted file mode 100644 index 8e32354..0000000 --- a/views/node_modules/class-validator/esm5/decorator/decorators.js +++ /dev/null @@ -1,131 +0,0 @@ -// ------------------------------------------------------------------------- -// System -// ------------------------------------------------------------------------- -// ------------------------------------------------------------------------- -// Common checkers -// ------------------------------------------------------------------------- -export * from './common/Allow'; -export * from './common/IsDefined'; -export * from './common/IsOptional'; -export * from './common/Validate'; -export * from './common/ValidateBy'; -export * from './common/ValidateIf'; -export * from './common/ValidateNested'; -export * from './common/ValidatePromise'; -export * from './common/IsLatLong'; -export * from './common/IsLatitude'; -export * from './common/IsLongitude'; -export * from './common/Equals'; -export * from './common/NotEquals'; -export * from './common/IsEmpty'; -export * from './common/IsNotEmpty'; -export * from './common/IsIn'; -export * from './common/IsNotIn'; -// ------------------------------------------------------------------------- -// Number checkers -// ------------------------------------------------------------------------- -export * from './number/IsDivisibleBy'; -export * from './number/IsPositive'; -export * from './number/IsNegative'; -export * from './number/Max'; -export * from './number/Min'; -// ------------------------------------------------------------------------- -// Date checkers -// ------------------------------------------------------------------------- -export * from './date/MinDate'; -export * from './date/MaxDate'; -// ------------------------------------------------------------------------- -// String checkers -// ------------------------------------------------------------------------- -export * from './string/Contains'; -export * from './string/NotContains'; -export * from './string/IsAlpha'; -export * from './string/IsAlphanumeric'; -export * from './string/IsDecimal'; -export * from './string/IsAscii'; -export * from './string/IsBase64'; -export * from './string/IsByteLength'; -export * from './string/IsCreditCard'; -export * from './string/IsCurrency'; -export * from './string/IsEmail'; -export * from './string/IsFQDN'; -export * from './string/IsFullWidth'; -export * from './string/IsHalfWidth'; -export * from './string/IsVariableWidth'; -export * from './string/IsHexColor'; -export * from './string/IsHexadecimal'; -export * from './string/IsMacAddress'; -export * from './string/IsIP'; -export * from './string/IsPort'; -export * from './string/IsISBN'; -export * from './string/IsISIN'; -export * from './string/IsISO8601'; -export * from './string/IsJSON'; -export * from './string/IsJWT'; -export * from './string/IsLowercase'; -export * from './string/IsMobilePhone'; -export * from './string/IsISO31661Alpha2'; -export * from './string/IsISO31661Alpha3'; -export * from './string/IsMongoId'; -export * from './string/IsMultibyte'; -export * from './string/IsSurrogatePair'; -export * from './string/IsUrl'; -export * from './string/IsUUID'; -export * from './string/IsFirebasePushId'; -export * from './string/IsUppercase'; -export * from './string/Length'; -export * from './string/MaxLength'; -export * from './string/MinLength'; -export * from './string/Matches'; -export * from './string/IsPhoneNumber'; -export * from './string/IsMilitaryTime'; -export * from './string/IsHash'; -export * from './string/IsISSN'; -export * from './string/IsDateString'; -export * from './string/IsBooleanString'; -export * from './string/IsNumberString'; -export * from './string/IsBase32'; -export * from './string/IsBIC'; -export * from './string/IsBtcAddress'; -export * from './string/IsDataURI'; -export * from './string/IsEAN'; -export * from './string/IsEthereumAddress'; -export * from './string/IsHSL'; -export * from './string/IsIBAN'; -export * from './string/IsIdentityCard'; -export * from './string/IsISRC'; -export * from './string/IsLocale'; -export * from './string/IsMagnetURI'; -export * from './string/IsMimeType'; -export * from './string/IsOctal'; -export * from './string/IsPassportNumber'; -export * from './string/IsPostalCode'; -export * from './string/IsRFC3339'; -export * from './string/IsRgbColor'; -export * from './string/IsSemVer'; -// ------------------------------------------------------------------------- -// Type checkers -// ------------------------------------------------------------------------- -export * from './typechecker/IsBoolean'; -export * from './typechecker/IsDate'; -export * from './typechecker/IsNumber'; -export * from './typechecker/IsEnum'; -export * from './typechecker/IsInt'; -export * from './typechecker/IsString'; -export * from './typechecker/IsArray'; -export * from './typechecker/IsObject'; -// ------------------------------------------------------------------------- -// Array checkers -// ------------------------------------------------------------------------- -export * from './array/ArrayContains'; -export * from './array/ArrayNotContains'; -export * from './array/ArrayNotEmpty'; -export * from './array/ArrayMinSize'; -export * from './array/ArrayMaxSize'; -export * from './array/ArrayUnique'; -// ------------------------------------------------------------------------- -// Object checkers -// ------------------------------------------------------------------------- -export * from './object/IsNotEmptyObject'; -export * from './object/IsInstance'; -//# sourceMappingURL=decorators.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/decorators.js.map b/views/node_modules/class-validator/esm5/decorator/decorators.js.map deleted file mode 100644 index 4409bf0..0000000 --- a/views/node_modules/class-validator/esm5/decorator/decorators.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../../src/decorator/decorators.ts"],"names":[],"mappings":"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","sourcesContent":["// -------------------------------------------------------------------------\n// System\n// -------------------------------------------------------------------------\n\n// -------------------------------------------------------------------------\n// Common checkers\n// -------------------------------------------------------------------------\n\nexport * from './common/Allow';\nexport * from './common/IsDefined';\nexport * from './common/IsOptional';\nexport * from './common/Validate';\nexport * from './common/ValidateBy';\nexport * from './common/ValidateIf';\nexport * from './common/ValidateNested';\nexport * from './common/ValidatePromise';\nexport * from './common/IsLatLong';\nexport * from './common/IsLatitude';\nexport * from './common/IsLongitude';\nexport * from './common/Equals';\nexport * from './common/NotEquals';\nexport * from './common/IsEmpty';\nexport * from './common/IsNotEmpty';\nexport * from './common/IsIn';\nexport * from './common/IsNotIn';\n\n// -------------------------------------------------------------------------\n// Number checkers\n// -------------------------------------------------------------------------\n\nexport * from './number/IsDivisibleBy';\nexport * from './number/IsPositive';\nexport * from './number/IsNegative';\nexport * from './number/Max';\nexport * from './number/Min';\n\n// -------------------------------------------------------------------------\n// Date checkers\n// -------------------------------------------------------------------------\n\nexport * from './date/MinDate';\nexport * from './date/MaxDate';\n\n// -------------------------------------------------------------------------\n// String checkers\n// -------------------------------------------------------------------------\n\nexport * from './string/Contains';\nexport * from './string/NotContains';\nexport * from './string/IsAlpha';\nexport * from './string/IsAlphanumeric';\nexport * from './string/IsDecimal';\nexport * from './string/IsAscii';\nexport * from './string/IsBase64';\nexport * from './string/IsByteLength';\nexport * from './string/IsCreditCard';\nexport * from './string/IsCurrency';\nexport * from './string/IsEmail';\nexport * from './string/IsFQDN';\nexport * from './string/IsFullWidth';\nexport * from './string/IsHalfWidth';\nexport * from './string/IsVariableWidth';\nexport * from './string/IsHexColor';\nexport * from './string/IsHexadecimal';\nexport * from './string/IsMacAddress';\nexport * from './string/IsIP';\nexport * from './string/IsPort';\nexport * from './string/IsISBN';\nexport * from './string/IsISIN';\nexport * from './string/IsISO8601';\nexport * from './string/IsJSON';\nexport * from './string/IsJWT';\nexport * from './string/IsLowercase';\nexport * from './string/IsMobilePhone';\nexport * from './string/IsISO31661Alpha2';\nexport * from './string/IsISO31661Alpha3';\nexport * from './string/IsMongoId';\nexport * from './string/IsMultibyte';\nexport * from './string/IsSurrogatePair';\nexport * from './string/IsUrl';\nexport * from './string/IsUUID';\nexport * from './string/IsFirebasePushId';\nexport * from './string/IsUppercase';\nexport * from './string/Length';\nexport * from './string/MaxLength';\nexport * from './string/MinLength';\nexport * from './string/Matches';\nexport * from './string/IsPhoneNumber';\nexport * from './string/IsMilitaryTime';\nexport * from './string/IsHash';\nexport * from './string/IsISSN';\nexport * from './string/IsDateString';\nexport * from './string/IsBooleanString';\nexport * from './string/IsNumberString';\nexport * from './string/IsBase32';\nexport * from './string/IsBIC';\nexport * from './string/IsBtcAddress';\nexport * from './string/IsDataURI';\nexport * from './string/IsEAN';\nexport * from './string/IsEthereumAddress';\nexport * from './string/IsHSL';\nexport * from './string/IsIBAN';\nexport * from './string/IsIdentityCard';\nexport * from './string/IsISRC';\nexport * from './string/IsLocale';\nexport * from './string/IsMagnetURI';\nexport * from './string/IsMimeType';\nexport * from './string/IsOctal';\nexport * from './string/IsPassportNumber';\nexport * from './string/IsPostalCode';\nexport * from './string/IsRFC3339';\nexport * from './string/IsRgbColor';\nexport * from './string/IsSemVer';\n\n// -------------------------------------------------------------------------\n// Type checkers\n// -------------------------------------------------------------------------\n\nexport * from './typechecker/IsBoolean';\nexport * from './typechecker/IsDate';\nexport * from './typechecker/IsNumber';\nexport * from './typechecker/IsEnum';\nexport * from './typechecker/IsInt';\nexport * from './typechecker/IsString';\nexport * from './typechecker/IsArray';\nexport * from './typechecker/IsObject';\n\n// -------------------------------------------------------------------------\n// Array checkers\n// -------------------------------------------------------------------------\n\nexport * from './array/ArrayContains';\nexport * from './array/ArrayNotContains';\nexport * from './array/ArrayNotEmpty';\nexport * from './array/ArrayMinSize';\nexport * from './array/ArrayMaxSize';\nexport * from './array/ArrayUnique';\n\n// -------------------------------------------------------------------------\n// Object checkers\n// -------------------------------------------------------------------------\n\nexport * from './object/IsNotEmptyObject';\nexport * from './object/IsInstance';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/number/IsDivisibleBy.js b/views/node_modules/class-validator/esm5/decorator/number/IsDivisibleBy.js deleted file mode 100644 index 3c84d18..0000000 --- a/views/node_modules/class-validator/esm5/decorator/number/IsDivisibleBy.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isDivisibleByValidator from 'validator/lib/isDivisibleBy'; -export var IS_DIVISIBLE_BY = 'isDivisibleBy'; -/** - * Checks if value is a number that's divisible by another. - */ -export function isDivisibleBy(value, num) { - return typeof value === 'number' && typeof num === 'number' && isDivisibleByValidator(String(value), num); -} -/** - * Checks if value is a number that's divisible by another. - */ -export function IsDivisibleBy(num, validationOptions) { - return ValidateBy({ - name: IS_DIVISIBLE_BY, - constraints: [num], - validator: { - validate: function (value, args) { return isDivisibleBy(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be divisible by $constraint1'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDivisibleBy.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/number/IsDivisibleBy.js.map b/views/node_modules/class-validator/esm5/decorator/number/IsDivisibleBy.js.map deleted file mode 100644 index 4386d60..0000000 --- a/views/node_modules/class-validator/esm5/decorator/number/IsDivisibleBy.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDivisibleBy.js","sourceRoot":"","sources":["../../../../src/decorator/number/IsDivisibleBy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AAEjE,MAAM,CAAC,IAAM,eAAe,GAAG,eAAe,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc,EAAE,GAAW;IACvD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,sBAAsB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5G,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW,EAAE,iBAAqC;IAC9E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAzC,CAAyC;YAC7E,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,6CAA6C,EAA1D,CAA0D,EACxE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDivisibleByValidator from 'validator/lib/isDivisibleBy';\n\nexport const IS_DIVISIBLE_BY = 'isDivisibleBy';\n\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function isDivisibleBy(value: unknown, num: number): boolean {\n return typeof value === 'number' && typeof num === 'number' && isDivisibleByValidator(String(value), num);\n}\n\n/**\n * Checks if value is a number that's divisible by another.\n */\nexport function IsDivisibleBy(num: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DIVISIBLE_BY,\n constraints: [num],\n validator: {\n validate: (value, args): boolean => isDivisibleBy(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be divisible by $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/number/IsNegative.js b/views/node_modules/class-validator/esm5/decorator/number/IsNegative.js deleted file mode 100644 index 2e307bb..0000000 --- a/views/node_modules/class-validator/esm5/decorator/number/IsNegative.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_NEGATIVE = 'isNegative'; -/** - * Checks if the value is a negative number smaller than zero. - */ -export function isNegative(value) { - return typeof value === 'number' && value < 0; -} -/** - * Checks if the value is a negative number smaller than zero. - */ -export function IsNegative(validationOptions) { - return ValidateBy({ - name: IS_NEGATIVE, - validator: { - validate: function (value, args) { return isNegative(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a negative number'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNegative.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/number/IsNegative.js.map b/views/node_modules/class-validator/esm5/decorator/number/IsNegative.js.map deleted file mode 100644 index a701100..0000000 --- a/views/node_modules/class-validator/esm5/decorator/number/IsNegative.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNegative.js","sourceRoot":"","sources":["../../../../src/decorator/number/IsNegative.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,UAAU,CAAC,KAAK,CAAC,EAAjB,CAAiB;YACrD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,qCAAqC,EAAlD,CAAkD,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NEGATIVE = 'isNegative';\n\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function isNegative(value: unknown): boolean {\n return typeof value === 'number' && value < 0;\n}\n\n/**\n * Checks if the value is a negative number smaller than zero.\n */\nexport function IsNegative(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NEGATIVE,\n validator: {\n validate: (value, args): boolean => isNegative(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a negative number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/number/IsPositive.js b/views/node_modules/class-validator/esm5/decorator/number/IsPositive.js deleted file mode 100644 index e76e840..0000000 --- a/views/node_modules/class-validator/esm5/decorator/number/IsPositive.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_POSITIVE = 'isPositive'; -/** - * Checks if the value is a positive number greater than zero. - */ -export function isPositive(value) { - return typeof value === 'number' && value > 0; -} -/** - * Checks if the value is a positive number greater than zero. - */ -export function IsPositive(validationOptions) { - return ValidateBy({ - name: IS_POSITIVE, - validator: { - validate: function (value, args) { return isPositive(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a positive number'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsPositive.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/number/IsPositive.js.map b/views/node_modules/class-validator/esm5/decorator/number/IsPositive.js.map deleted file mode 100644 index b79fd5d..0000000 --- a/views/node_modules/class-validator/esm5/decorator/number/IsPositive.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPositive.js","sourceRoot":"","sources":["../../../../src/decorator/number/IsPositive.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,UAAU,CAAC,KAAK,CAAC,EAAjB,CAAiB;YACrD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,qCAAqC,EAAlD,CAAkD,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_POSITIVE = 'isPositive';\n\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function isPositive(value: unknown): boolean {\n return typeof value === 'number' && value > 0;\n}\n\n/**\n * Checks if the value is a positive number greater than zero.\n */\nexport function IsPositive(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_POSITIVE,\n validator: {\n validate: (value, args): boolean => isPositive(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a positive number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/number/Max.js b/views/node_modules/class-validator/esm5/decorator/number/Max.js deleted file mode 100644 index b356b8c..0000000 --- a/views/node_modules/class-validator/esm5/decorator/number/Max.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var MAX = 'max'; -/** - * Checks if the first number is less than or equal to the second. - */ -export function max(num, max) { - return typeof num === 'number' && typeof max === 'number' && num <= max; -} -/** - * Checks if the first number is less than or equal to the second. - */ -export function Max(maxValue, validationOptions) { - return ValidateBy({ - name: MAX, - constraints: [maxValue], - validator: { - validate: function (value, args) { return max(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must not be greater than $constraint1'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Max.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/number/Max.js.map b/views/node_modules/class-validator/esm5/decorator/number/Max.js.map deleted file mode 100644 index ef7bc43..0000000 --- a/views/node_modules/class-validator/esm5/decorator/number/Max.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Max.js","sourceRoot":"","sources":["../../../../src/decorator/number/Max.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,GAAG,GAAG,KAAK,CAAC;AAEzB;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,GAAY,EAAE,GAAW;IAC3C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,iBAAqC;IACzE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,CAAC,QAAQ,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAA/B,CAA+B;YACnE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,iDAAiD,EAA9D,CAA8D,EAC5E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MAX = 'max';\n\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function max(num: unknown, max: number): boolean {\n return typeof num === 'number' && typeof max === 'number' && num <= max;\n}\n\n/**\n * Checks if the first number is less than or equal to the second.\n */\nexport function Max(maxValue: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MAX,\n constraints: [maxValue],\n validator: {\n validate: (value, args): boolean => max(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must not be greater than $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/number/Min.js b/views/node_modules/class-validator/esm5/decorator/number/Min.js deleted file mode 100644 index 77a4587..0000000 --- a/views/node_modules/class-validator/esm5/decorator/number/Min.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var MIN = 'min'; -/** - * Checks if the first number is greater than or equal to the second. - */ -export function min(num, min) { - return typeof num === 'number' && typeof min === 'number' && num >= min; -} -/** - * Checks if the first number is greater than or equal to the second. - */ -export function Min(minValue, validationOptions) { - return ValidateBy({ - name: MIN, - constraints: [minValue], - validator: { - validate: function (value, args) { return min(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must not be less than $constraint1'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Min.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/number/Min.js.map b/views/node_modules/class-validator/esm5/decorator/number/Min.js.map deleted file mode 100644 index 64b2c0d..0000000 --- a/views/node_modules/class-validator/esm5/decorator/number/Min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Min.js","sourceRoot":"","sources":["../../../../src/decorator/number/Min.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,GAAG,GAAG,KAAK,CAAC;AAEzB;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,GAAY,EAAE,GAAW;IAC3C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,IAAI,GAAG,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,iBAAqC;IACzE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,GAAG;QACT,WAAW,EAAE,CAAC,QAAQ,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAA/B,CAA+B;YACnE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,8CAA8C,EAA3D,CAA2D,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const MIN = 'min';\n\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function min(num: unknown, min: number): boolean {\n return typeof num === 'number' && typeof min === 'number' && num >= min;\n}\n\n/**\n * Checks if the first number is greater than or equal to the second.\n */\nexport function Min(minValue: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MIN,\n constraints: [minValue],\n validator: {\n validate: (value, args): boolean => min(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must not be less than $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/object/IsInstance.js b/views/node_modules/class-validator/esm5/decorator/object/IsInstance.js deleted file mode 100644 index fa090b6..0000000 --- a/views/node_modules/class-validator/esm5/decorator/object/IsInstance.js +++ /dev/null @@ -1,29 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_INSTANCE = 'isInstance'; -/** - * Checks if the value is an instance of the specified object. - */ -export function isInstance(object, targetTypeConstructor) { - return (targetTypeConstructor && typeof targetTypeConstructor === 'function' && object instanceof targetTypeConstructor); -} -/** - * Checks if the value is an instance of the specified object. - */ -export function IsInstance(targetType, validationOptions) { - return ValidateBy({ - name: IS_INSTANCE, - constraints: [targetType], - validator: { - validate: function (value, args) { return isInstance(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix, args) { - if (args.constraints[0]) { - return eachPrefix + ("$property must be an instance of " + args.constraints[0].name); - } - else { - return eachPrefix + (IS_INSTANCE + " decorator expects and object as value, but got falsy value."); - } - }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsInstance.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/object/IsInstance.js.map b/views/node_modules/class-validator/esm5/decorator/object/IsInstance.js.map deleted file mode 100644 index 3268fdf..0000000 --- a/views/node_modules/class-validator/esm5/decorator/object/IsInstance.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsInstance.js","sourceRoot":"","sources":["../../../../src/decorator/object/IsInstance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,WAAW,GAAG,YAAY,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAe,EAAE,qBAAkD;IAC5F,OAAO,CACL,qBAAqB,IAAI,OAAO,qBAAqB,KAAK,UAAU,IAAI,MAAM,YAAY,qBAAqB,CAChH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,UAAuC,EACvC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,CAAC,UAAU,CAAC;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAtC,CAAsC;YAC1E,cAAc,EAAE,YAAY,CAAC,UAAC,UAAU,EAAE,IAAI;gBAC5C,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;oBACvB,OAAO,UAAU,IAAG,sCAAoC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAgB,CAAA,CAAC;iBAC9F;qBAAM;oBACL,OAAO,UAAU,IAAM,WAAW,iEAA8D,CAAA,CAAC;iBAClG;YACH,CAAC,EAAE,iBAAiB,CAAC;SACtB;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_INSTANCE = 'isInstance';\n\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function isInstance(object: unknown, targetTypeConstructor: new (...args: any[]) => any): boolean {\n return (\n targetTypeConstructor && typeof targetTypeConstructor === 'function' && object instanceof targetTypeConstructor\n );\n}\n\n/**\n * Checks if the value is an instance of the specified object.\n */\nexport function IsInstance(\n targetType: new (...args: any[]) => any,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_INSTANCE,\n constraints: [targetType],\n validator: {\n validate: (value, args): boolean => isInstance(value, args.constraints[0]),\n defaultMessage: buildMessage((eachPrefix, args) => {\n if (args.constraints[0]) {\n return eachPrefix + `$property must be an instance of ${args.constraints[0].name as string}`;\n } else {\n return eachPrefix + `${IS_INSTANCE} decorator expects and object as value, but got falsy value.`;\n }\n }, validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/object/IsNotEmptyObject.js b/views/node_modules/class-validator/esm5/decorator/object/IsNotEmptyObject.js deleted file mode 100644 index d0d428b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/object/IsNotEmptyObject.js +++ /dev/null @@ -1,36 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import { isObject } from '../typechecker/IsObject'; -export var IS_NOT_EMPTY_OBJECT = 'isNotEmptyObject'; -/** - * Checks if the value is valid Object & not empty. - * Returns false if the value is not an object or an empty valid object. - */ -export function isNotEmptyObject(value, options) { - if (!isObject(value)) { - return false; - } - if ((options === null || options === void 0 ? void 0 : options.nullable) === true) { - return !Object.values(value).every(function (propertyValue) { return propertyValue === null || propertyValue === undefined; }); - } - for (var key in value) { - if (value.hasOwnProperty(key)) { - return true; - } - } - return false; -} -/** - * Checks if the value is valid Object & not empty. - * Returns false if the value is not an object or an empty valid object. - */ -export function IsNotEmptyObject(options, validationOptions) { - return ValidateBy({ - name: IS_NOT_EMPTY_OBJECT, - constraints: [options], - validator: { - validate: function (value, args) { return isNotEmptyObject(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a non-empty object'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNotEmptyObject.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/object/IsNotEmptyObject.js.map b/views/node_modules/class-validator/esm5/decorator/object/IsNotEmptyObject.js.map deleted file mode 100644 index 0a56921..0000000 --- a/views/node_modules/class-validator/esm5/decorator/object/IsNotEmptyObject.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNotEmptyObject.js","sourceRoot":"","sources":["../../../../src/decorator/object/IsNotEmptyObject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,MAAM,CAAC,IAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,OAAgC;IAC/E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACpB,OAAO,KAAK,CAAC;KACd;IAED,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,MAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAA,aAAa,IAAI,OAAA,aAAa,KAAK,IAAI,IAAI,aAAa,KAAK,SAAS,EAArD,CAAqD,CAAC,CAAC;KAC5G;IAED,KAAK,IAAM,GAAG,IAAI,KAAK,EAAE;QACvB,IAAI,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC;SACb;KACF;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAgC,EAChC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAA5C,CAA4C;YAChF,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,sCAAsC,EAAnD,CAAmD,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { isObject } from '../typechecker/IsObject';\n\nexport const IS_NOT_EMPTY_OBJECT = 'isNotEmptyObject';\n\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function isNotEmptyObject(value: unknown, options?: { nullable?: boolean }): boolean {\n if (!isObject(value)) {\n return false;\n }\n\n if (options?.nullable === true) {\n return !Object.values(value).every(propertyValue => propertyValue === null || propertyValue === undefined);\n }\n\n for (const key in value) {\n if (value.hasOwnProperty(key)) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Checks if the value is valid Object & not empty.\n * Returns false if the value is not an object or an empty valid object.\n */\nexport function IsNotEmptyObject(\n options?: { nullable?: boolean },\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NOT_EMPTY_OBJECT,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isNotEmptyObject(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a non-empty object',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/Contains.js b/views/node_modules/class-validator/esm5/decorator/string/Contains.js deleted file mode 100644 index 0a02141..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/Contains.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import containsValidator from 'validator/lib/contains'; -export var CONTAINS = 'contains'; -/** - * Checks if the string contains the seed. - * If given value is not a string, then it returns false. - */ -export function contains(value, seed) { - return typeof value === 'string' && containsValidator(value, seed); -} -/** - * Checks if the string contains the seed. - * If given value is not a string, then it returns false. - */ -export function Contains(seed, validationOptions) { - return ValidateBy({ - name: CONTAINS, - constraints: [seed], - validator: { - validate: function (value, args) { return contains(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a $constraint1 string'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Contains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/Contains.js.map b/views/node_modules/class-validator/esm5/decorator/string/Contains.js.map deleted file mode 100644 index 06111cb..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/Contains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Contains.js","sourceRoot":"","sources":["../../../../src/decorator/string/Contains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,IAAM,QAAQ,GAAG,UAAU,CAAC;AAEnC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc,EAAE,IAAY;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,iBAAqC;IAC1E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAApC,CAAoC;YACxE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,8CAA8C,EAA3D,CAA2D,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\n\nexport const CONTAINS = 'contains';\n\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function contains(value: unknown, seed: string): boolean {\n return typeof value === 'string' && containsValidator(value, seed);\n}\n\n/**\n * Checks if the string contains the seed.\n * If given value is not a string, then it returns false.\n */\nexport function Contains(seed: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: CONTAINS,\n constraints: [seed],\n validator: {\n validate: (value, args): boolean => contains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a $constraint1 string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsAlpha.js b/views/node_modules/class-validator/esm5/decorator/string/IsAlpha.js deleted file mode 100644 index 5d59d7d..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsAlpha.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isAlphaValidator from 'validator/lib/isAlpha'; -export var IS_ALPHA = 'isAlpha'; -/** - * Checks if the string contains only letters (a-zA-Z). - * If given value is not a string, then it returns false. - */ -export function isAlpha(value, locale) { - return typeof value === 'string' && isAlphaValidator(value, locale); -} -/** - * Checks if the string contains only letters (a-zA-Z). - * If given value is not a string, then it returns false. - */ -export function IsAlpha(locale, validationOptions) { - return ValidateBy({ - name: IS_ALPHA, - constraints: [locale], - validator: { - validate: function (value, args) { return isAlpha(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only letters (a-zA-Z)'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsAlpha.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsAlpha.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsAlpha.js.map deleted file mode 100644 index 03d49da..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsAlpha.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsAlpha.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsAlpha.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAGrD,MAAM,CAAC,IAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,MAAgC;IACtE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,MAAe,EAAE,iBAAqC;IAC5E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAnC,CAAmC;YACvE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,8CAA8C,EAA3D,CAA2D,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphaValidator from 'validator/lib/isAlpha';\nimport ValidatorJS from 'validator';\n\nexport const IS_ALPHA = 'isAlpha';\n\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function isAlpha(value: unknown, locale?: ValidatorJS.AlphaLocale): boolean {\n return typeof value === 'string' && isAlphaValidator(value, locale);\n}\n\n/**\n * Checks if the string contains only letters (a-zA-Z).\n * If given value is not a string, then it returns false.\n */\nexport function IsAlpha(locale?: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ALPHA,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isAlpha(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain only letters (a-zA-Z)',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsAlphanumeric.js b/views/node_modules/class-validator/esm5/decorator/string/IsAlphanumeric.js deleted file mode 100644 index 7ff57a7..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsAlphanumeric.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isAlphanumericValidator from 'validator/lib/isAlphanumeric'; -export var IS_ALPHANUMERIC = 'isAlphanumeric'; -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -export function isAlphanumeric(value, locale) { - return typeof value === 'string' && isAlphanumericValidator(value, locale); -} -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -export function IsAlphanumeric(locale, validationOptions) { - return ValidateBy({ - name: IS_ALPHANUMERIC, - constraints: [locale], - validator: { - validate: function (value, args) { return isAlphanumeric(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only letters and numbers'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsAlphanumeric.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsAlphanumeric.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsAlphanumeric.js.map deleted file mode 100644 index 51b89e4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsAlphanumeric.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsAlphanumeric.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsAlphanumeric.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAGnE,MAAM,CAAC,IAAM,eAAe,GAAG,gBAAgB,CAAC;AAEhD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,MAAuC;IACpF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAe,EAAE,iBAAqC;IACnF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAA1C,CAA0C;YAC9E,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,iDAAiD,EAA9D,CAA8D,EAC5E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAlphanumericValidator from 'validator/lib/isAlphanumeric';\nimport ValidatorJS from 'validator';\n\nexport const IS_ALPHANUMERIC = 'isAlphanumeric';\n\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function isAlphanumeric(value: unknown, locale?: ValidatorJS.AlphanumericLocale): boolean {\n return typeof value === 'string' && isAlphanumericValidator(value, locale);\n}\n\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsAlphanumeric(locale?: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ALPHANUMERIC,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isAlphanumeric(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain only letters and numbers',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsAscii.js b/views/node_modules/class-validator/esm5/decorator/string/IsAscii.js deleted file mode 100644 index 35856d5..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsAscii.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isAsciiValidator from 'validator/lib/isAscii'; -export var IS_ASCII = 'isAscii'; -/** - * Checks if the string contains ASCII chars only. - * If given value is not a string, then it returns false. - */ -export function isAscii(value) { - return typeof value === 'string' && isAsciiValidator(value); -} -/** - * Checks if the string contains ASCII chars only. - * If given value is not a string, then it returns false. - */ -export function IsAscii(validationOptions) { - return ValidateBy({ - name: IS_ASCII, - validator: { - validate: function (value, args) { return isAscii(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain only ASCII characters'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsAscii.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsAscii.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsAscii.js.map deleted file mode 100644 index 2c68772..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsAscii.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsAscii.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsAscii.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,IAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,iBAAqC;IAC3D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc;YAClD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,8CAA8C,EAA3D,CAA2D,EACzE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isAsciiValidator from 'validator/lib/isAscii';\n\nexport const IS_ASCII = 'isAscii';\n\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function isAscii(value: unknown): boolean {\n return typeof value === 'string' && isAsciiValidator(value);\n}\n\n/**\n * Checks if the string contains ASCII chars only.\n * If given value is not a string, then it returns false.\n */\nexport function IsAscii(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ASCII,\n validator: {\n validate: (value, args): boolean => isAscii(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain only ASCII characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsBIC.js b/views/node_modules/class-validator/esm5/decorator/string/IsBIC.js deleted file mode 100644 index 53c4c5e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsBIC.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isBICValidator from 'validator/lib/isBIC'; -export var IS_BIC = 'isBIC'; -/** - * Check if a string is a BIC (Bank Identification Code) or SWIFT code. - * If given value is not a string, then it returns false. - */ -export function isBIC(value) { - return typeof value === 'string' && isBICValidator(value); -} -/** - * Check if a string is a BIC (Bank Identification Code) or SWIFT code. - * If given value is not a string, then it returns false. - */ -export function IsBIC(validationOptions) { - return ValidateBy({ - name: IS_BIC, - validator: { - validate: function (value, args) { return isBIC(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a BIC or SWIFT code'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBIC.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsBIC.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsBIC.js.map deleted file mode 100644 index 37cd90d..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsBIC.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBIC.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBIC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,IAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,KAAK,CAAC,KAAK,CAAC,EAAZ,CAAY;YAChD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,uCAAuC,EAApD,CAAoD,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBICValidator from 'validator/lib/isBIC';\n\nexport const IS_BIC = 'isBIC';\n\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function isBIC(value: unknown): boolean {\n return typeof value === 'string' && isBICValidator(value);\n}\n\n/**\n * Check if a string is a BIC (Bank Identification Code) or SWIFT code.\n * If given value is not a string, then it returns false.\n */\nexport function IsBIC(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BIC,\n validator: {\n validate: (value, args): boolean => isBIC(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a BIC or SWIFT code',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsBase32.js b/views/node_modules/class-validator/esm5/decorator/string/IsBase32.js deleted file mode 100644 index 7932d92..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsBase32.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isBase32Validator from 'validator/lib/isBase32'; -export var IS_BASE32 = 'isBase32'; -/** - * Checks if a string is base32 encoded. - * If given value is not a string, then it returns false. - */ -export function isBase32(value) { - return typeof value === 'string' && isBase32Validator(value); -} -/** - * Check if a string is base32 encoded. - * If given value is not a string, then it returns false. - */ -export function IsBase32(validationOptions) { - return ValidateBy({ - name: IS_BASE32, - validator: { - validate: function (value, args) { return isBase32(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be base32 encoded'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBase32.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsBase32.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsBase32.js.map deleted file mode 100644 index 49e63b8..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsBase32.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBase32.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBase32.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,IAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAf,CAAe;YACnD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,kCAAkC,EAA/C,CAA+C,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase32Validator from 'validator/lib/isBase32';\n\nexport const IS_BASE32 = 'isBase32';\n\n/**\n * Checks if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase32(value: unknown): boolean {\n return typeof value === 'string' && isBase32Validator(value);\n}\n\n/**\n * Check if a string is base32 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase32(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BASE32,\n validator: {\n validate: (value, args): boolean => isBase32(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be base32 encoded', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsBase64.js b/views/node_modules/class-validator/esm5/decorator/string/IsBase64.js deleted file mode 100644 index bf69fc4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsBase64.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isBase64Validator from 'validator/lib/isBase64'; -export var IS_BASE64 = 'isBase64'; -/** - * Checks if a string is base64 encoded. - * If given value is not a string, then it returns false. - */ -export function isBase64(value) { - return typeof value === 'string' && isBase64Validator(value); -} -/** - * Checks if a string is base64 encoded. - * If given value is not a string, then it returns false. - */ -export function IsBase64(validationOptions) { - return ValidateBy({ - name: IS_BASE64, - validator: { - validate: function (value, args) { return isBase64(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be base64 encoded'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBase64.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsBase64.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsBase64.js.map deleted file mode 100644 index c9417f4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsBase64.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBase64.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBase64.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,IAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAf,CAAe;YACnD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,kCAAkC,EAA/C,CAA+C,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBase64Validator from 'validator/lib/isBase64';\n\nexport const IS_BASE64 = 'isBase64';\n\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function isBase64(value: unknown): boolean {\n return typeof value === 'string' && isBase64Validator(value);\n}\n\n/**\n * Checks if a string is base64 encoded.\n * If given value is not a string, then it returns false.\n */\nexport function IsBase64(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BASE64,\n validator: {\n validate: (value, args): boolean => isBase64(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be base64 encoded', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsBooleanString.js b/views/node_modules/class-validator/esm5/decorator/string/IsBooleanString.js deleted file mode 100644 index ca65ec3..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsBooleanString.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isBooleanValidator from 'validator/lib/isBoolean'; -export var IS_BOOLEAN_STRING = 'isBooleanString'; -/** - * Checks if a string is a boolean. - * If given value is not a string, then it returns false. - */ -export function isBooleanString(value) { - return typeof value === 'string' && isBooleanValidator(value); -} -/** - * Checks if a string is a boolean. - * If given value is not a string, then it returns false. - */ -export function IsBooleanString(validationOptions) { - return ValidateBy({ - name: IS_BOOLEAN_STRING, - validator: { - validate: function (value, args) { return isBooleanString(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a boolean string'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBooleanString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsBooleanString.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsBooleanString.js.map deleted file mode 100644 index 6ae9891..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsBooleanString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBooleanString.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBooleanString.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,IAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,iBAAqC;IACnE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,eAAe,CAAC,KAAK,CAAC,EAAtB,CAAsB;YAC1D,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,oCAAoC,EAAjD,CAAiD,EAC/D,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBooleanValidator from 'validator/lib/isBoolean';\n\nexport const IS_BOOLEAN_STRING = 'isBooleanString';\n\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function isBooleanString(value: unknown): boolean {\n return typeof value === 'string' && isBooleanValidator(value);\n}\n\n/**\n * Checks if a string is a boolean.\n * If given value is not a string, then it returns false.\n */\nexport function IsBooleanString(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BOOLEAN_STRING,\n validator: {\n validate: (value, args): boolean => isBooleanString(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a boolean string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsBtcAddress.js b/views/node_modules/class-validator/esm5/decorator/string/IsBtcAddress.js deleted file mode 100644 index 68cc69c..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsBtcAddress.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isBtcAddressValidator from 'validator/lib/isBtcAddress'; -export var IS_BTC_ADDRESS = 'isBtcAddress'; -/** - * Check if the string is a valid BTC address. - * If given value is not a string, then it returns false. - */ -export function isBtcAddress(value) { - return typeof value === 'string' && isBtcAddressValidator(value); -} -/** - * Check if the string is a valid BTC address. - * If given value is not a string, then it returns false. - */ -export function IsBtcAddress(validationOptions) { - return ValidateBy({ - name: IS_BTC_ADDRESS, - validator: { - validate: function (value, args) { return isBtcAddress(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a BTC address'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBtcAddress.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsBtcAddress.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsBtcAddress.js.map deleted file mode 100644 index 9816011..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsBtcAddress.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBtcAddress.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsBtcAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,MAAM,CAAC,IAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,iBAAqC;IAChE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB;YACvD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,iCAAiC,EAA9C,CAA8C,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isBtcAddressValidator from 'validator/lib/isBtcAddress';\n\nexport const IS_BTC_ADDRESS = 'isBtcAddress';\n\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function isBtcAddress(value: unknown): boolean {\n return typeof value === 'string' && isBtcAddressValidator(value);\n}\n\n/**\n * Check if the string is a valid BTC address.\n * If given value is not a string, then it returns false.\n */\nexport function IsBtcAddress(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BTC_ADDRESS,\n validator: {\n validate: (value, args): boolean => isBtcAddress(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a BTC address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsByteLength.js b/views/node_modules/class-validator/esm5/decorator/string/IsByteLength.js deleted file mode 100644 index 1d662c9..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsByteLength.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isByteLengthValidator from 'validator/lib/isByteLength'; -export var IS_BYTE_LENGTH = 'isByteLength'; -/** - * Checks if the string's length (in bytes) falls in a range. - * If given value is not a string, then it returns false. - */ -export function isByteLength(value, min, max) { - return typeof value === 'string' && isByteLengthValidator(value, { min: min, max: max }); -} -/** - * Checks if the string's length (in bytes) falls in a range. - * If given value is not a string, then it returns false. - */ -export function IsByteLength(min, max, validationOptions) { - return ValidateBy({ - name: IS_BYTE_LENGTH, - constraints: [min, max], - validator: { - validate: function (value, args) { return isByteLength(value, args.constraints[0], args.constraints[1]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + "$property's byte length must fall into ($constraint1, $constraint2) range"; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsByteLength.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsByteLength.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsByteLength.js.map deleted file mode 100644 index d5952f8..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsByteLength.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsByteLength.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsByteLength.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,MAAM,CAAC,IAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,GAAW,EAAE,GAAY;IACpE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,KAAK,EAAE,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;AACjF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW,EAAE,GAAY,EAAE,iBAAqC;IAC3F,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAA7D,CAA6D;YACjG,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,2EAA2E,EAAxF,CAAwF,EACtG,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isByteLengthValidator from 'validator/lib/isByteLength';\n\nexport const IS_BYTE_LENGTH = 'isByteLength';\n\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function isByteLength(value: unknown, min: number, max?: number): boolean {\n return typeof value === 'string' && isByteLengthValidator(value, { min, max });\n}\n\n/**\n * Checks if the string's length (in bytes) falls in a range.\n * If given value is not a string, then it returns false.\n */\nexport function IsByteLength(min: number, max?: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BYTE_LENGTH,\n constraints: [min, max],\n validator: {\n validate: (value, args): boolean => isByteLength(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + \"$property's byte length must fall into ($constraint1, $constraint2) range\",\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsCreditCard.js b/views/node_modules/class-validator/esm5/decorator/string/IsCreditCard.js deleted file mode 100644 index 3756eb8..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsCreditCard.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isCreditCardValidator from 'validator/lib/isCreditCard'; -export var IS_CREDIT_CARD = 'isCreditCard'; -/** - * Checks if the string is a credit card. - * If given value is not a string, then it returns false. - */ -export function isCreditCard(value) { - return typeof value === 'string' && isCreditCardValidator(value); -} -/** - * Checks if the string is a credit card. - * If given value is not a string, then it returns false. - */ -export function IsCreditCard(validationOptions) { - return ValidateBy({ - name: IS_CREDIT_CARD, - validator: { - validate: function (value, args) { return isCreditCard(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a credit card'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsCreditCard.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsCreditCard.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsCreditCard.js.map deleted file mode 100644 index fb2c3d8..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsCreditCard.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsCreditCard.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsCreditCard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAE/D,MAAM,CAAC,IAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,iBAAqC;IAChE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB;YACvD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,iCAAiC,EAA9C,CAA8C,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCreditCardValidator from 'validator/lib/isCreditCard';\n\nexport const IS_CREDIT_CARD = 'isCreditCard';\n\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function isCreditCard(value: unknown): boolean {\n return typeof value === 'string' && isCreditCardValidator(value);\n}\n\n/**\n * Checks if the string is a credit card.\n * If given value is not a string, then it returns false.\n */\nexport function IsCreditCard(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_CREDIT_CARD,\n validator: {\n validate: (value, args): boolean => isCreditCard(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a credit card', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsCurrency.js b/views/node_modules/class-validator/esm5/decorator/string/IsCurrency.js deleted file mode 100644 index f893d2f..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsCurrency.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isCurrencyValidator from 'validator/lib/isCurrency'; -export var IS_CURRENCY = 'isCurrency'; -/** - * Checks if the string is a valid currency amount. - * If given value is not a string, then it returns false. - */ -export function isCurrency(value, options) { - return typeof value === 'string' && isCurrencyValidator(value, options); -} -/** - * Checks if the string is a valid currency amount. - * If given value is not a string, then it returns false. - */ -export function IsCurrency(options, validationOptions) { - return ValidateBy({ - name: IS_CURRENCY, - constraints: [options], - validator: { - validate: function (value, args) { return isCurrency(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a currency'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsCurrency.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsCurrency.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsCurrency.js.map deleted file mode 100644 index f715d6d..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsCurrency.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsCurrency.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsCurrency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAG3D,MAAM,CAAC,IAAM,WAAW,GAAG,YAAY,CAAC;AAExC;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,OAAuC;IAChF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,OAAuC,EACvC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAtC,CAAsC;YAC1E,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,8BAA8B,EAA3C,CAA2C,EAAE,iBAAiB,CAAC;SAC3G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isCurrencyValidator from 'validator/lib/isCurrency';\nimport ValidatorJS from 'validator';\n\nexport const IS_CURRENCY = 'isCurrency';\n\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function isCurrency(value: unknown, options?: ValidatorJS.IsCurrencyOptions): boolean {\n return typeof value === 'string' && isCurrencyValidator(value, options);\n}\n\n/**\n * Checks if the string is a valid currency amount.\n * If given value is not a string, then it returns false.\n */\nexport function IsCurrency(\n options?: ValidatorJS.IsCurrencyOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_CURRENCY,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isCurrency(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a currency', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsDataURI.js b/views/node_modules/class-validator/esm5/decorator/string/IsDataURI.js deleted file mode 100644 index ff709b9..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsDataURI.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isDataURIValidator from 'validator/lib/isDataURI'; -export var IS_DATA_URI = 'isDataURI'; -/** - * Check if the string is a data uri format. - * If given value is not a string, then it returns false. - */ -export function isDataURI(value) { - return typeof value === 'string' && isDataURIValidator(value); -} -/** - * Check if the string is a data uri format. - * If given value is not a string, then it returns false. - */ -export function IsDataURI(validationOptions) { - return ValidateBy({ - name: IS_DATA_URI, - validator: { - validate: function (value, args) { return isDataURI(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a data uri format'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDataURI.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsDataURI.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsDataURI.js.map deleted file mode 100644 index 6a246ae..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsDataURI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDataURI.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsDataURI.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,IAAM,WAAW,GAAG,WAAW,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,SAAS,CAAC,KAAK,CAAC,EAAhB,CAAgB;YACpD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,qCAAqC,EAAlD,CAAkD,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDataURIValidator from 'validator/lib/isDataURI';\n\nexport const IS_DATA_URI = 'isDataURI';\n\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isDataURI(value: unknown): boolean {\n return typeof value === 'string' && isDataURIValidator(value);\n}\n\n/**\n * Check if the string is a data uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsDataURI(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DATA_URI,\n validator: {\n validate: (value, args): boolean => isDataURI(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a data uri format',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsDateString.js b/views/node_modules/class-validator/esm5/decorator/string/IsDateString.js deleted file mode 100644 index 26a4981..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsDateString.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import { isISO8601 } from './IsISO8601'; -export var IS_DATE_STRING = 'isDateString'; -/** - * Alias for IsISO8601 validator - */ -export function isDateString(value, options) { - return isISO8601(value, options); -} -/** - * Alias for IsISO8601 validator - */ -export function IsDateString(options, validationOptions) { - return ValidateBy({ - name: IS_DATE_STRING, - constraints: [options], - validator: { - validate: function (value, args) { return isDateString(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO 8601 date string'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDateString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsDateString.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsDateString.js.map deleted file mode 100644 index f8df5d1..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsDateString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDateString.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsDateString.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,CAAC,IAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,OAAsC;IACjF,OAAO,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,OAAsC,EACtC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,YAAY,CAAC,KAAK,CAAC,EAAnB,CAAmB;YACvD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,gDAAgD,EAA7D,CAA6D,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport ValidatorJS from 'validator';\nimport { isISO8601 } from './IsISO8601';\n\nexport const IS_DATE_STRING = 'isDateString';\n\n/**\n * Alias for IsISO8601 validator\n */\nexport function isDateString(value: unknown, options?: ValidatorJS.IsISO8601Options): boolean {\n return isISO8601(value, options);\n}\n\n/**\n * Alias for IsISO8601 validator\n */\nexport function IsDateString(\n options?: ValidatorJS.IsISO8601Options,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DATE_STRING,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isDateString(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsDecimal.js b/views/node_modules/class-validator/esm5/decorator/string/IsDecimal.js deleted file mode 100644 index 2a40401..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsDecimal.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isDecimalValidator from 'validator/lib/isDecimal'; -export var IS_DECIMAL = 'isDecimal'; -/** - * Checks if the string is a valid decimal. - * If given value is not a string, then it returns false. - */ -export function isDecimal(value, options) { - return typeof value === 'string' && isDecimalValidator(value, options); -} -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -export function IsDecimal(options, validationOptions) { - return ValidateBy({ - name: IS_DECIMAL, - constraints: [options], - validator: { - validate: function (value, args) { return isDecimal(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property is not a valid decimal number.'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDecimal.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsDecimal.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsDecimal.js.map deleted file mode 100644 index 352e953..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsDecimal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDecimal.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsDecimal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAGzD,MAAM,CAAC,IAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,OAAsC;IAC9E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CACvB,OAAsC,EACtC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAArC,CAAqC;YACzE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,0CAA0C,EAAvD,CAAuD,EACrE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isDecimalValidator from 'validator/lib/isDecimal';\nimport ValidatorJS from 'validator';\n\nexport const IS_DECIMAL = 'isDecimal';\n\n/**\n * Checks if the string is a valid decimal.\n * If given value is not a string, then it returns false.\n */\nexport function isDecimal(value: unknown, options?: ValidatorJS.IsDecimalOptions): boolean {\n return typeof value === 'string' && isDecimalValidator(value, options);\n}\n\n/**\n * Checks if the string contains only letters and numbers.\n * If given value is not a string, then it returns false.\n */\nexport function IsDecimal(\n options?: ValidatorJS.IsDecimalOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DECIMAL,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isDecimal(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property is not a valid decimal number.',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsEAN.js b/views/node_modules/class-validator/esm5/decorator/string/IsEAN.js deleted file mode 100644 index c612245..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsEAN.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isEANValidator from 'validator/lib/isEAN'; -export var IS_EAN = 'isEAN'; -/** - * Check if the string is an EAN (European Article Number). - * If given value is not a string, then it returns false. - */ -export function isEAN(value) { - return typeof value === 'string' && isEANValidator(value); -} -/** - * Check if the string is an EAN (European Article Number). - * If given value is not a string, then it returns false. - */ -export function IsEAN(validationOptions) { - return ValidateBy({ - name: IS_EAN, - validator: { - validate: function (value, args) { return isEAN(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an EAN (European Article Number)'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsEAN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsEAN.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsEAN.js.map deleted file mode 100644 index 72d3aad..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsEAN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEAN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsEAN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,IAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,KAAK,CAAC,KAAK,CAAC,EAAZ,CAAY;YAChD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,oDAAoD,EAAjE,CAAiE,EAC/E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEANValidator from 'validator/lib/isEAN';\n\nexport const IS_EAN = 'isEAN';\n\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function isEAN(value: unknown): boolean {\n return typeof value === 'string' && isEANValidator(value);\n}\n\n/**\n * Check if the string is an EAN (European Article Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsEAN(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_EAN,\n validator: {\n validate: (value, args): boolean => isEAN(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an EAN (European Article Number)',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsEmail.js b/views/node_modules/class-validator/esm5/decorator/string/IsEmail.js deleted file mode 100644 index cdc4813..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsEmail.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isEmailValidator from 'validator/lib/isEmail'; -export var IS_EMAIL = 'isEmail'; -/** - * Checks if the string is an email. - * If given value is not a string, then it returns false. - */ -export function isEmail(value, options) { - return typeof value === 'string' && isEmailValidator(value, options); -} -/** - * Checks if the string is an email. - * If given value is not a string, then it returns false. - */ -export function IsEmail(options, validationOptions) { - return ValidateBy({ - name: IS_EMAIL, - constraints: [options], - validator: { - validate: function (value, args) { return isEmail(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an email'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsEmail.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsEmail.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsEmail.js.map deleted file mode 100644 index 3aeab6c..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsEmail.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEmail.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsEmail.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAGrD,MAAM,CAAC,IAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,OAAoC;IAC1E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CACrB,OAAoC,EACpC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAnC,CAAmC;YACvE,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,4BAA4B,EAAzC,CAAyC,EAAE,iBAAiB,CAAC;SACzG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEmailValidator from 'validator/lib/isEmail';\nimport ValidatorJS from 'validator';\n\nexport const IS_EMAIL = 'isEmail';\n\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function isEmail(value: unknown, options?: ValidatorJS.IsEmailOptions): boolean {\n return typeof value === 'string' && isEmailValidator(value, options);\n}\n\n/**\n * Checks if the string is an email.\n * If given value is not a string, then it returns false.\n */\nexport function IsEmail(\n options?: ValidatorJS.IsEmailOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_EMAIL,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isEmail(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an email', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsEthereumAddress.js b/views/node_modules/class-validator/esm5/decorator/string/IsEthereumAddress.js deleted file mode 100644 index 57a2dd7..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsEthereumAddress.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isEthereumAddressValidator from 'validator/lib/isEthereumAddress'; -export var IS_ETHEREUM_ADDRESS = 'isEthereumAddress'; -/** - * Check if the string is an Ethereum address using basic regex. Does not validate address checksums. - * If given value is not a string, then it returns false. - */ -export function isEthereumAddress(value) { - return typeof value === 'string' && isEthereumAddressValidator(value); -} -/** - * Check if the string is an Ethereum address using basic regex. Does not validate address checksums. - * If given value is not a string, then it returns false. - */ -export function IsEthereumAddress(validationOptions) { - return ValidateBy({ - name: IS_ETHEREUM_ADDRESS, - validator: { - validate: function (value, args) { return isEthereumAddress(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an Ethereum address'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsEthereumAddress.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsEthereumAddress.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsEthereumAddress.js.map deleted file mode 100644 index a38ec53..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsEthereumAddress.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEthereumAddress.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsEthereumAddress.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,0BAA0B,MAAM,iCAAiC,CAAC;AAEzE,MAAM,CAAC,IAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEvD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,0BAA0B,CAAC,KAAK,CAAC,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,iBAAqC;IACrE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,iBAAiB,CAAC,KAAK,CAAC,EAAxB,CAAwB;YAC5D,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,uCAAuC,EAApD,CAAoD,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isEthereumAddressValidator from 'validator/lib/isEthereumAddress';\n\nexport const IS_ETHEREUM_ADDRESS = 'isEthereumAddress';\n\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function isEthereumAddress(value: unknown): boolean {\n return typeof value === 'string' && isEthereumAddressValidator(value);\n}\n\n/**\n * Check if the string is an Ethereum address using basic regex. Does not validate address checksums.\n * If given value is not a string, then it returns false.\n */\nexport function IsEthereumAddress(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ETHEREUM_ADDRESS,\n validator: {\n validate: (value, args): boolean => isEthereumAddress(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an Ethereum address',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsFQDN.js b/views/node_modules/class-validator/esm5/decorator/string/IsFQDN.js deleted file mode 100644 index 0a21a8e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsFQDN.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isFqdnValidator from 'validator/lib/isFQDN'; -export var IS_FQDN = 'isFqdn'; -/** - * Checks if the string is a fully qualified domain name (e.g. domain.com). - * If given value is not a string, then it returns false. - */ -export function isFQDN(value, options) { - return typeof value === 'string' && isFqdnValidator(value, options); -} -/** - * Checks if the string is a fully qualified domain name (e.g. domain.com). - * If given value is not a string, then it returns false. - */ -export function IsFQDN(options, validationOptions) { - return ValidateBy({ - name: IS_FQDN, - constraints: [options], - validator: { - validate: function (value, args) { return isFQDN(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid domain name'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsFQDN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsFQDN.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsFQDN.js.map deleted file mode 100644 index 8736b8a..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsFQDN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsFQDN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsFQDN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAGnD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,OAAmC;IACxE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,OAAmC,EAAE,iBAAqC;IAC/F,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC;YACtE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,uCAAuC,EAApD,CAAoD,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFqdnValidator from 'validator/lib/isFQDN';\nimport ValidatorJS from 'validator';\n\nexport const IS_FQDN = 'isFqdn';\n\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function isFQDN(value: unknown, options?: ValidatorJS.IsFQDNOptions): boolean {\n return typeof value === 'string' && isFqdnValidator(value, options);\n}\n\n/**\n * Checks if the string is a fully qualified domain name (e.g. domain.com).\n * If given value is not a string, then it returns false.\n */\nexport function IsFQDN(options?: ValidatorJS.IsFQDNOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_FQDN,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isFQDN(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid domain name',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsFirebasePushId.js b/views/node_modules/class-validator/esm5/decorator/string/IsFirebasePushId.js deleted file mode 100644 index db4cc2e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsFirebasePushId.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_FIREBASE_PUSH_ID = 'IsFirebasePushId'; -/** - * Checks if the string is a Firebase Push Id - * If given value is not a Firebase Push Id, it returns false - */ -export function isFirebasePushId(value) { - var webSafeRegex = /^[a-zA-Z0-9_-]*$/; - return typeof value === 'string' && value.length === 20 && webSafeRegex.test(value); -} -/** - * Checks if the string is a Firebase Push Id - * If given value is not a Firebase Push Id, it returns false - */ -export function IsFirebasePushId(validationOptions) { - return ValidateBy({ - name: IS_FIREBASE_PUSH_ID, - validator: { - validate: function (value, args) { return isFirebasePushId(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Firebase Push Id'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsFirebasePushId.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsFirebasePushId.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsFirebasePushId.js.map deleted file mode 100644 index 536a214..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsFirebasePushId.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsFirebasePushId.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsFirebasePushId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAM,YAAY,GAAG,kBAAkB,CAAC;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,EAAE,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,gBAAgB,CAAC,KAAK,CAAC,EAAvB,CAAuB;YAC3D,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,sCAAsC,EAAnD,CAAmD,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_FIREBASE_PUSH_ID = 'IsFirebasePushId';\n\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function isFirebasePushId(value: unknown): boolean {\n const webSafeRegex = /^[a-zA-Z0-9_-]*$/;\n return typeof value === 'string' && value.length === 20 && webSafeRegex.test(value);\n}\n\n/**\n * Checks if the string is a Firebase Push Id\n * If given value is not a Firebase Push Id, it returns false\n */\nexport function IsFirebasePushId(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_FIREBASE_PUSH_ID,\n validator: {\n validate: (value, args): boolean => isFirebasePushId(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a Firebase Push Id',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsFullWidth.js b/views/node_modules/class-validator/esm5/decorator/string/IsFullWidth.js deleted file mode 100644 index 3728aae..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsFullWidth.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isFullWidthValidator from 'validator/lib/isFullWidth'; -export var IS_FULL_WIDTH = 'isFullWidth'; -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -export function isFullWidth(value) { - return typeof value === 'string' && isFullWidthValidator(value); -} -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -export function IsFullWidth(validationOptions) { - return ValidateBy({ - name: IS_FULL_WIDTH, - validator: { - validate: function (value, args) { return isFullWidth(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a full-width characters'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsFullWidth.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsFullWidth.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsFullWidth.js.map deleted file mode 100644 index 7323983..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsFullWidth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsFullWidth.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsFullWidth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,IAAM,aAAa,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,WAAW,CAAC,KAAK,CAAC,EAAlB,CAAkB;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,gDAAgD,EAA7D,CAA6D,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isFullWidthValidator from 'validator/lib/isFullWidth';\n\nexport const IS_FULL_WIDTH = 'isFullWidth';\n\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isFullWidth(value: unknown): boolean {\n return typeof value === 'string' && isFullWidthValidator(value);\n}\n\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsFullWidth(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_FULL_WIDTH,\n validator: {\n validate: (value, args): boolean => isFullWidth(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a full-width characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsHSL.js b/views/node_modules/class-validator/esm5/decorator/string/IsHSL.js deleted file mode 100644 index 0f86b81..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsHSL.js +++ /dev/null @@ -1,26 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isHSLValidator from 'validator/lib/isHSL'; -export var IS_HSL = 'isHSL'; -/** - * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification. - * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)). - * If given value is not a string, then it returns false. - */ -export function isHSL(value) { - return typeof value === 'string' && isHSLValidator(value); -} -/** - * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification. - * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)). - * If given value is not a string, then it returns false. - */ -export function IsHSL(validationOptions) { - return ValidateBy({ - name: IS_HSL, - validator: { - validate: function (value, args) { return isHSL(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a HSL color'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsHSL.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsHSL.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsHSL.js.map deleted file mode 100644 index f9df9fe..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsHSL.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHSL.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHSL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,IAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,KAAK,CAAC,KAAK,CAAC,EAAZ,CAAY;YAChD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,+BAA+B,EAA5C,CAA4C,EAAE,iBAAiB,CAAC;SAC5G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHSLValidator from 'validator/lib/isHSL';\n\nexport const IS_HSL = 'isHSL';\n\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function isHSL(value: unknown): boolean {\n return typeof value === 'string' && isHSLValidator(value);\n}\n\n/**\n * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification.\n * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)).\n * If given value is not a string, then it returns false.\n */\nexport function IsHSL(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HSL,\n validator: {\n validate: (value, args): boolean => isHSL(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a HSL color', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsHalfWidth.js b/views/node_modules/class-validator/esm5/decorator/string/IsHalfWidth.js deleted file mode 100644 index 095ed72..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsHalfWidth.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isHalfWidthValidator from 'validator/lib/isHalfWidth'; -export var IS_HALF_WIDTH = 'isHalfWidth'; -/** - * Checks if the string contains any half-width chars. - * If given value is not a string, then it returns false. - */ -export function isHalfWidth(value) { - return typeof value === 'string' && isHalfWidthValidator(value); -} -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -export function IsHalfWidth(validationOptions) { - return ValidateBy({ - name: IS_HALF_WIDTH, - validator: { - validate: function (value, args) { return isHalfWidth(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a half-width characters'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsHalfWidth.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsHalfWidth.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsHalfWidth.js.map deleted file mode 100644 index e91393b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsHalfWidth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHalfWidth.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHalfWidth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,IAAM,aAAa,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,WAAW,CAAC,KAAK,CAAC,EAAlB,CAAkB;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,gDAAgD,EAA7D,CAA6D,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHalfWidthValidator from 'validator/lib/isHalfWidth';\n\nexport const IS_HALF_WIDTH = 'isHalfWidth';\n\n/**\n * Checks if the string contains any half-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isHalfWidth(value: unknown): boolean {\n return typeof value === 'string' && isHalfWidthValidator(value);\n}\n\n/**\n * Checks if the string contains any full-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsHalfWidth(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HALF_WIDTH,\n validator: {\n validate: (value, args): boolean => isHalfWidth(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a half-width characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsHash.js b/views/node_modules/class-validator/esm5/decorator/string/IsHash.js deleted file mode 100644 index 804b13c..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsHash.js +++ /dev/null @@ -1,27 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isHashValidator from 'validator/lib/isHash'; -export var IS_HASH = 'isHash'; -/** - * Check if the string is a hash of type algorithm. - * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', - * 'tiger160', 'tiger192', 'crc32', 'crc32b'] - */ -export function isHash(value, algorithm) { - return typeof value === 'string' && isHashValidator(value, algorithm); -} -/** - * Check if the string is a hash of type algorithm. - * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', - * 'tiger160', 'tiger192', 'crc32', 'crc32b'] - */ -export function IsHash(algorithm, validationOptions) { - return ValidateBy({ - name: IS_HASH, - constraints: [algorithm], - validator: { - validate: function (value, args) { return isHash(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hash of type $constraint1'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsHash.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsHash.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsHash.js.map deleted file mode 100644 index fd9b90e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsHash.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHash.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHash.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAGnD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,SAAoC;IACzE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,SAAiB,EAAE,iBAAqC;IAC7E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC;YACtE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,+CAA+C,EAA5D,CAA4D,EAC1E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHashValidator from 'validator/lib/isHash';\nimport ValidatorJS from 'validator';\n\nexport const IS_HASH = 'isHash';\n\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function isHash(value: unknown, algorithm: ValidatorJS.HashAlgorithm): boolean {\n return typeof value === 'string' && isHashValidator(value, algorithm);\n}\n\n/**\n * Check if the string is a hash of type algorithm.\n * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128',\n * 'tiger160', 'tiger192', 'crc32', 'crc32b']\n */\nexport function IsHash(algorithm: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HASH,\n constraints: [algorithm],\n validator: {\n validate: (value, args): boolean => isHash(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a hash of type $constraint1',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsHexColor.js b/views/node_modules/class-validator/esm5/decorator/string/IsHexColor.js deleted file mode 100644 index 6e396cb..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsHexColor.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isHexColorValidator from 'validator/lib/isHexColor'; -export var IS_HEX_COLOR = 'isHexColor'; -/** - * Checks if the string is a hexadecimal color. - * If given value is not a string, then it returns false. - */ -export function isHexColor(value) { - return typeof value === 'string' && isHexColorValidator(value); -} -/** - * Checks if the string is a hexadecimal color. - * If given value is not a string, then it returns false. - */ -export function IsHexColor(validationOptions) { - return ValidateBy({ - name: IS_HEX_COLOR, - validator: { - validate: function (value, args) { return isHexColor(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hexadecimal color'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsHexColor.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsHexColor.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsHexColor.js.map deleted file mode 100644 index 2d8c556..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsHexColor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHexColor.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHexColor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,CAAC,IAAM,YAAY,GAAG,YAAY,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,UAAU,CAAC,KAAK,CAAC,EAAjB,CAAiB;YACrD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,uCAAuC,EAApD,CAAoD,EAClE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexColorValidator from 'validator/lib/isHexColor';\n\nexport const IS_HEX_COLOR = 'isHexColor';\n\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function isHexColor(value: unknown): boolean {\n return typeof value === 'string' && isHexColorValidator(value);\n}\n\n/**\n * Checks if the string is a hexadecimal color.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexColor(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HEX_COLOR,\n validator: {\n validate: (value, args): boolean => isHexColor(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a hexadecimal color',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsHexadecimal.js b/views/node_modules/class-validator/esm5/decorator/string/IsHexadecimal.js deleted file mode 100644 index 5159dd1..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsHexadecimal.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isHexadecimalValidator from 'validator/lib/isHexadecimal'; -export var IS_HEXADECIMAL = 'isHexadecimal'; -/** - * Checks if the string is a hexadecimal number. - * If given value is not a string, then it returns false. - */ -export function isHexadecimal(value) { - return typeof value === 'string' && isHexadecimalValidator(value); -} -/** - * Checks if the string is a hexadecimal number. - * If given value is not a string, then it returns false. - */ -export function IsHexadecimal(validationOptions) { - return ValidateBy({ - name: IS_HEXADECIMAL, - validator: { - validate: function (value, args) { return isHexadecimal(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a hexadecimal number'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsHexadecimal.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsHexadecimal.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsHexadecimal.js.map deleted file mode 100644 index 0f27f0b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsHexadecimal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsHexadecimal.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsHexadecimal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AAEjE,MAAM,CAAC,IAAM,cAAc,GAAG,eAAe,CAAC;AAE9C;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,iBAAqC;IACjE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,aAAa,CAAC,KAAK,CAAC,EAApB,CAAoB;YACxD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,wCAAwC,EAArD,CAAqD,EACnE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isHexadecimalValidator from 'validator/lib/isHexadecimal';\n\nexport const IS_HEXADECIMAL = 'isHexadecimal';\n\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function isHexadecimal(value: unknown): boolean {\n return typeof value === 'string' && isHexadecimalValidator(value);\n}\n\n/**\n * Checks if the string is a hexadecimal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsHexadecimal(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_HEXADECIMAL,\n validator: {\n validate: (value, args): boolean => isHexadecimal(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a hexadecimal number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsIBAN.js b/views/node_modules/class-validator/esm5/decorator/string/IsIBAN.js deleted file mode 100644 index 1124e5b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsIBAN.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIBANValidator from 'validator/lib/isIBAN'; -export var IS_IBAN = 'isIBAN'; -/** - * Check if a string is a IBAN (International Bank Account Number). - * If given value is not a string, then it returns false. - */ -export function isIBAN(value) { - return typeof value === 'string' && isIBANValidator(value); -} -/** - * Check if a string is a IBAN (International Bank Account Number). - * If given value is not a string, then it returns false. - */ -export function IsIBAN(validationOptions) { - return ValidateBy({ - name: IS_IBAN, - validator: { - validate: function (value, args) { return isIBAN(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an IBAN'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsIBAN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsIBAN.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsIBAN.js.map deleted file mode 100644 index 65595de..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsIBAN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIBAN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsIBAN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,CAAC,EAAb,CAAa;YACjD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,2BAA2B,EAAxC,CAAwC,EAAE,iBAAiB,CAAC;SACxG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIBANValidator from 'validator/lib/isIBAN';\n\nexport const IS_IBAN = 'isIBAN';\n\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function isIBAN(value: unknown): boolean {\n return typeof value === 'string' && isIBANValidator(value);\n}\n\n/**\n * Check if a string is a IBAN (International Bank Account Number).\n * If given value is not a string, then it returns false.\n */\nexport function IsIBAN(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IBAN,\n validator: {\n validate: (value, args): boolean => isIBAN(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an IBAN', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsIP.js b/views/node_modules/class-validator/esm5/decorator/string/IsIP.js deleted file mode 100644 index 7262b86..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsIP.js +++ /dev/null @@ -1,26 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIPValidator from 'validator/lib/isIP'; -export var IS_IP = 'isIp'; -/** - * Checks if the string is an IP (version 4 or 6). - * If given value is not a string, then it returns false. - */ -export function isIP(value, version) { - var versionStr = version ? "" + version : undefined; - return typeof value === 'string' && isIPValidator(value, versionStr); -} -/** - * Checks if the string is an IP (version 4 or 6). - * If given value is not a string, then it returns false. - */ -export function IsIP(version, validationOptions) { - return ValidateBy({ - name: IS_IP, - constraints: [version], - validator: { - validate: function (value, args) { return isIP(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ip address'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsIP.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsIP.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsIP.js.map deleted file mode 100644 index 65c84a2..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsIP.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIP.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsIP.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAI/C,MAAM,CAAC,IAAM,KAAK,GAAG,MAAM,CAAC;AAE5B;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,KAAc,EAAE,OAAqB;IACxD,IAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAE,KAAG,OAAuB,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,OAAqB,EAAE,iBAAqC;IAC/E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAhC,CAAgC;YACpE,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,iCAAiC,EAA9C,CAA8C,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIPValidator from 'validator/lib/isIP';\n\nexport type IsIpVersion = '4' | '6' | 4 | 6;\n\nexport const IS_IP = 'isIp';\n\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function isIP(value: unknown, version?: IsIpVersion): boolean {\n const versionStr = version ? (`${version}` as '4' | '6') : undefined;\n return typeof value === 'string' && isIPValidator(value, versionStr);\n}\n\n/**\n * Checks if the string is an IP (version 4 or 6).\n * If given value is not a string, then it returns false.\n */\nexport function IsIP(version?: IsIpVersion, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IP,\n constraints: [version],\n validator: {\n validate: (value, args): boolean => isIP(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ip address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISBN.js b/views/node_modules/class-validator/esm5/decorator/string/IsISBN.js deleted file mode 100644 index 32a0d46..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISBN.js +++ /dev/null @@ -1,26 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIsbnValidator from 'validator/lib/isISBN'; -export var IS_ISBN = 'isIsbn'; -/** - * Checks if the string is an ISBN (version 10 or 13). - * If given value is not a string, then it returns false. - */ -export function isISBN(value, version) { - var versionStr = version ? "" + version : undefined; - return typeof value === 'string' && isIsbnValidator(value, versionStr); -} -/** - * Checks if the string is an ISBN (version 10 or 13). - * If given value is not a string, then it returns false. - */ -export function IsISBN(version, validationOptions) { - return ValidateBy({ - name: IS_ISBN, - constraints: [version], - validator: { - validate: function (value, args) { return isISBN(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISBN'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISBN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISBN.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsISBN.js.map deleted file mode 100644 index f8fe774..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISBN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISBN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISBN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAInD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,OAAuB;IAC5D,IAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAE,KAAG,OAAyB,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,OAAuB,EAAE,iBAAqC;IACnF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC;YACtE,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,2BAA2B,EAAxC,CAAwC,EAAE,iBAAiB,CAAC;SACxG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsbnValidator from 'validator/lib/isISBN';\n\nexport type IsISBNVersion = '10' | '13' | 10 | 13;\n\nexport const IS_ISBN = 'isIsbn';\n\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function isISBN(value: unknown, version?: IsISBNVersion): boolean {\n const versionStr = version ? (`${version}` as '10' | '13') : undefined;\n return typeof value === 'string' && isIsbnValidator(value, versionStr);\n}\n\n/**\n * Checks if the string is an ISBN (version 10 or 13).\n * If given value is not a string, then it returns false.\n */\nexport function IsISBN(version?: IsISBNVersion, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISBN,\n constraints: [version],\n validator: {\n validate: (value, args): boolean => isISBN(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISBN', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISIN.js b/views/node_modules/class-validator/esm5/decorator/string/IsISIN.js deleted file mode 100644 index b011f41..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISIN.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIsinValidator from 'validator/lib/isISIN'; -export var IS_ISIN = 'isIsin'; -/** - * Checks if the string is an ISIN (stock/security identifier). - * If given value is not a string, then it returns false. - */ -export function isISIN(value) { - return typeof value === 'string' && isIsinValidator(value); -} -/** - * Checks if the string is an ISIN (stock/security identifier). - * If given value is not a string, then it returns false. - */ -export function IsISIN(validationOptions) { - return ValidateBy({ - name: IS_ISIN, - validator: { - validate: function (value, args) { return isISIN(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISIN (stock/security identifier)'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISIN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISIN.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsISIN.js.map deleted file mode 100644 index e45d9e2..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISIN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISIN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISIN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,CAAC,EAAb,CAAa;YACjD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,uDAAuD,EAApE,CAAoE,EAClF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIsinValidator from 'validator/lib/isISIN';\n\nexport const IS_ISIN = 'isIsin';\n\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function isISIN(value: unknown): boolean {\n return typeof value === 'string' && isIsinValidator(value);\n}\n\n/**\n * Checks if the string is an ISIN (stock/security identifier).\n * If given value is not a string, then it returns false.\n */\nexport function IsISIN(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISIN,\n validator: {\n validate: (value, args): boolean => isISIN(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an ISIN (stock/security identifier)',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha2.js b/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha2.js deleted file mode 100644 index 7c5d5b9..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha2.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isISO31661Alpha2Validator from 'validator/lib/isISO31661Alpha2'; -export var IS_ISO31661_ALPHA_2 = 'isISO31661Alpha2'; -/** - * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code. - */ -export function isISO31661Alpha2(value) { - return typeof value === 'string' && isISO31661Alpha2Validator(value); -} -/** - * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code. - */ -export function IsISO31661Alpha2(validationOptions) { - return ValidateBy({ - name: IS_ISO31661_ALPHA_2, - validator: { - validate: function (value, args) { return isISO31661Alpha2(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO31661 Alpha2 code'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISO31661Alpha2.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha2.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha2.js.map deleted file mode 100644 index be499f6..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha2.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISO31661Alpha2.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISO31661Alpha2.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AAEvE,MAAM,CAAC,IAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,gBAAgB,CAAC,KAAK,CAAC,EAAvB,CAAuB;YAC3D,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,gDAAgD,EAA7D,CAA6D,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha2Validator from 'validator/lib/isISO31661Alpha2';\n\nexport const IS_ISO31661_ALPHA_2 = 'isISO31661Alpha2';\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function isISO31661Alpha2(value: unknown): boolean {\n return typeof value === 'string' && isISO31661Alpha2Validator(value);\n}\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code.\n */\nexport function IsISO31661Alpha2(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISO31661_ALPHA_2,\n validator: {\n validate: (value, args): boolean => isISO31661Alpha2(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha2 code',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha3.js b/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha3.js deleted file mode 100644 index 55c7be4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha3.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isISO31661Alpha3Validator from 'validator/lib/isISO31661Alpha3'; -export var IS_ISO31661_ALPHA_3 = 'isISO31661Alpha3'; -/** - * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code. - */ -export function isISO31661Alpha3(value) { - return typeof value === 'string' && isISO31661Alpha3Validator(value); -} -/** - * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code. - */ -export function IsISO31661Alpha3(validationOptions) { - return ValidateBy({ - name: IS_ISO31661_ALPHA_3, - validator: { - validate: function (value, args) { return isISO31661Alpha3(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO31661 Alpha3 code'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISO31661Alpha3.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha3.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha3.js.map deleted file mode 100644 index 4647d7d..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISO31661Alpha3.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISO31661Alpha3.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISO31661Alpha3.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AAEvE,MAAM,CAAC,IAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACvE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,mBAAmB;QACzB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,gBAAgB,CAAC,KAAK,CAAC,EAAvB,CAAuB;YAC3D,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,gDAAgD,EAA7D,CAA6D,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISO31661Alpha3Validator from 'validator/lib/isISO31661Alpha3';\n\nexport const IS_ISO31661_ALPHA_3 = 'isISO31661Alpha3';\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function isISO31661Alpha3(value: unknown): boolean {\n return typeof value === 'string' && isISO31661Alpha3Validator(value);\n}\n\n/**\n * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code.\n */\nexport function IsISO31661Alpha3(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISO31661_ALPHA_3,\n validator: {\n validate: (value, args): boolean => isISO31661Alpha3(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO31661 Alpha3 code',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISO8601.js b/views/node_modules/class-validator/esm5/decorator/string/IsISO8601.js deleted file mode 100644 index c42967a..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISO8601.js +++ /dev/null @@ -1,27 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIso8601Validator from 'validator/lib/isISO8601'; -export var IS_ISO8601 = 'isIso8601'; -/** - * Checks if the string is a valid ISO 8601 date. - * If given value is not a string, then it returns false. - * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29. - */ -export function isISO8601(value, options) { - return typeof value === 'string' && isIso8601Validator(value, options); -} -/** - * Checks if the string is a valid ISO 8601 date. - * If given value is not a string, then it returns false. - * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29. - */ -export function IsISO8601(options, validationOptions) { - return ValidateBy({ - name: IS_ISO8601, - constraints: [options], - validator: { - validate: function (value, args) { return isISO8601(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid ISO 8601 date string'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISO8601.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISO8601.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsISO8601.js.map deleted file mode 100644 index 8f436e0..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISO8601.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISO8601.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISO8601.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAGzD,MAAM,CAAC,IAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,OAAsC;IAC9E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CACvB,OAAsC,EACtC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAArC,CAAqC;YACzE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,gDAAgD,EAA7D,CAA6D,EAC3E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIso8601Validator from 'validator/lib/isISO8601';\nimport ValidatorJS from 'validator';\n\nexport const IS_ISO8601 = 'isIso8601';\n\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function isISO8601(value: unknown, options?: ValidatorJS.IsISO8601Options): boolean {\n return typeof value === 'string' && isIso8601Validator(value, options);\n}\n\n/**\n * Checks if the string is a valid ISO 8601 date.\n * If given value is not a string, then it returns false.\n * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29.\n */\nexport function IsISO8601(\n options?: ValidatorJS.IsISO8601Options,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISO8601,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isISO8601(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid ISO 8601 date string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISRC.js b/views/node_modules/class-validator/esm5/decorator/string/IsISRC.js deleted file mode 100644 index ffe2c8c..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISRC.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isISRCValidator from 'validator/lib/isISRC'; -export var IS_ISRC = 'isISRC'; -/** - * Check if the string is a ISRC. - * If given value is not a string, then it returns false. - */ -export function isISRC(value) { - return typeof value === 'string' && isISRCValidator(value); -} -/** - * Check if the string is a ISRC. - * If given value is not a string, then it returns false. - */ -export function IsISRC(validationOptions) { - return ValidateBy({ - name: IS_ISRC, - validator: { - validate: function (value, args) { return isISRC(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an ISRC'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISRC.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISRC.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsISRC.js.map deleted file mode 100644 index 39a5b38..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISRC.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISRC.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISRC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,CAAC,EAAb,CAAa;YACjD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,2BAA2B,EAAxC,CAAwC,EAAE,iBAAiB,CAAC;SACxG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISRCValidator from 'validator/lib/isISRC';\n\nexport const IS_ISRC = 'isISRC';\n\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function isISRC(value: unknown): boolean {\n return typeof value === 'string' && isISRCValidator(value);\n}\n\n/**\n * Check if the string is a ISRC.\n * If given value is not a string, then it returns false.\n */\nexport function IsISRC(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISRC,\n validator: {\n validate: (value, args): boolean => isISRC(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an ISRC', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISSN.js b/views/node_modules/class-validator/esm5/decorator/string/IsISSN.js deleted file mode 100644 index 82e4c68..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISSN.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isISSNValidator from 'validator/lib/isISSN'; -export var IS_ISSN = 'isISSN'; -/** - * Checks if the string is a ISSN. - * If given value is not a string, then it returns false. - */ -export function isISSN(value, options) { - return typeof value === 'string' && isISSNValidator(value, options); -} -/** - * Checks if the string is a ISSN. - * If given value is not a string, then it returns false. - */ -export function IsISSN(options, validationOptions) { - return ValidateBy({ - name: IS_ISSN, - constraints: [options], - validator: { - validate: function (value, args) { return isISSN(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a ISSN'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsISSN.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsISSN.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsISSN.js.map deleted file mode 100644 index fb315db..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsISSN.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsISSN.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsISSN.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAGnD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,OAAmC;IACxE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,OAAmC,EAAE,iBAAqC;IAC/F,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC;YACtE,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,0BAA0B,EAAvC,CAAuC,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isISSNValidator from 'validator/lib/isISSN';\nimport ValidatorJS from 'validator';\n\nexport const IS_ISSN = 'isISSN';\n\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function isISSN(value: unknown, options?: ValidatorJS.IsISSNOptions): boolean {\n return typeof value === 'string' && isISSNValidator(value, options);\n}\n\n/**\n * Checks if the string is a ISSN.\n * If given value is not a string, then it returns false.\n */\nexport function IsISSN(options?: ValidatorJS.IsISSNOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ISSN,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isISSN(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a ISSN', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsIdentityCard.js b/views/node_modules/class-validator/esm5/decorator/string/IsIdentityCard.js deleted file mode 100644 index e4cb3db..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsIdentityCard.js +++ /dev/null @@ -1,29 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isIdentityCardValidator from 'validator/lib/isIdentityCard'; -export var IS_IDENTITY_CARD = 'isIdentityCard'; -/** - * Check if the string is a valid identity card code. - * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match. - * Defaults to 'any'. - * If given value is not a string, then it returns false. - */ -export function isIdentityCard(value, locale) { - return typeof value === 'string' && isIdentityCardValidator(value, locale); -} -/** - * Check if the string is a valid identity card code. - * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match. - * Defaults to 'any'. - * If given value is not a string, then it returns false. - */ -export function IsIdentityCard(locale, validationOptions) { - return ValidateBy({ - name: IS_IDENTITY_CARD, - constraints: [locale], - validator: { - validate: function (value, args) { return isIdentityCard(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a identity card number'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsIdentityCard.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsIdentityCard.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsIdentityCard.js.map deleted file mode 100644 index 35ae790..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsIdentityCard.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsIdentityCard.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsIdentityCard.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAGnE,MAAM,CAAC,IAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,MAAsC;IACnF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAuC,EACvC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAA1C,CAA0C;YAC9E,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,0CAA0C,EAAvD,CAAuD,EACrE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isIdentityCardValidator from 'validator/lib/isIdentityCard';\nimport ValidatorJS from 'validator';\n\nexport const IS_IDENTITY_CARD = 'isIdentityCard';\n\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function isIdentityCard(value: unknown, locale: ValidatorJS.IdentityCardLocale): boolean {\n return typeof value === 'string' && isIdentityCardValidator(value, locale);\n}\n\n/**\n * Check if the string is a valid identity card code.\n * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match.\n * Defaults to 'any'.\n * If given value is not a string, then it returns false.\n */\nexport function IsIdentityCard(\n locale?: ValidatorJS.IdentityCardLocale,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_IDENTITY_CARD,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isIdentityCard(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a identity card number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsJSON.js b/views/node_modules/class-validator/esm5/decorator/string/IsJSON.js deleted file mode 100644 index 01dafe4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsJSON.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isJSONValidator from 'validator/lib/isJSON'; -export var IS_JSON = 'isJson'; -/** - * Checks if the string is valid JSON (note: uses JSON.parse). - * If given value is not a string, then it returns false. - */ -export function isJSON(value) { - return typeof value === 'string' && isJSONValidator(value); -} -/** - * Checks if the string is valid JSON (note: uses JSON.parse). - * If given value is not a string, then it returns false. - */ -export function IsJSON(validationOptions) { - return ValidateBy({ - name: IS_JSON, - validator: { - validate: function (value, args) { return isJSON(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a json string'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsJSON.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsJSON.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsJSON.js.map deleted file mode 100644 index 377fa3e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsJSON.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsJSON.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsJSON.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,CAAC,EAAb,CAAa;YACjD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,iCAAiC,EAA9C,CAA8C,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJSONValidator from 'validator/lib/isJSON';\n\nexport const IS_JSON = 'isJson';\n\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function isJSON(value: unknown): boolean {\n return typeof value === 'string' && isJSONValidator(value);\n}\n\n/**\n * Checks if the string is valid JSON (note: uses JSON.parse).\n * If given value is not a string, then it returns false.\n */\nexport function IsJSON(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_JSON,\n validator: {\n validate: (value, args): boolean => isJSON(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a json string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsJWT.js b/views/node_modules/class-validator/esm5/decorator/string/IsJWT.js deleted file mode 100644 index 19b3039..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsJWT.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isJwtValidator from 'validator/lib/isJWT'; -export var IS_JWT = 'isJwt'; -/** - * Checks if the string is valid JWT token. - * If given value is not a string, then it returns false. - */ -export function isJWT(value) { - return typeof value === 'string' && isJwtValidator(value); -} -/** - * Checks if the string is valid JWT token. - * If given value is not a string, then it returns false. - */ -export function IsJWT(validationOptions) { - return ValidateBy({ - name: IS_JWT, - validator: { - validate: function (value, args) { return isJWT(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a jwt string'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsJWT.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsJWT.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsJWT.js.map deleted file mode 100644 index d5ed6bd..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsJWT.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsJWT.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsJWT.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,IAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,KAAc;IAClC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,KAAK,CAAC,KAAK,CAAC,EAAZ,CAAY;YAChD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,gCAAgC,EAA7C,CAA6C,EAAE,iBAAiB,CAAC;SAC7G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isJwtValidator from 'validator/lib/isJWT';\n\nexport const IS_JWT = 'isJwt';\n\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function isJWT(value: unknown): boolean {\n return typeof value === 'string' && isJwtValidator(value);\n}\n\n/**\n * Checks if the string is valid JWT token.\n * If given value is not a string, then it returns false.\n */\nexport function IsJWT(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_JWT,\n validator: {\n validate: (value, args): boolean => isJWT(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a jwt string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsLocale.js b/views/node_modules/class-validator/esm5/decorator/string/IsLocale.js deleted file mode 100644 index a2b3ab5..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsLocale.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isLocaleValidator from 'validator/lib/isLocale'; -export var IS_LOCALE = 'isLocale'; -/** - * Check if the string is a locale. - * If given value is not a string, then it returns false. - */ -export function isLocale(value) { - return typeof value === 'string' && isLocaleValidator(value); -} -/** - * Check if the string is a locale. - * If given value is not a string, then it returns false. - */ -export function IsLocale(validationOptions) { - return ValidateBy({ - name: IS_LOCALE, - validator: { - validate: function (value, args) { return isLocale(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be locale'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsLocale.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsLocale.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsLocale.js.map deleted file mode 100644 index 6c6c323..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsLocale.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLocale.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsLocale.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,IAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAf,CAAe;YACnD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,0BAA0B,EAAvC,CAAuC,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLocaleValidator from 'validator/lib/isLocale';\n\nexport const IS_LOCALE = 'isLocale';\n\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function isLocale(value: unknown): boolean {\n return typeof value === 'string' && isLocaleValidator(value);\n}\n\n/**\n * Check if the string is a locale.\n * If given value is not a string, then it returns false.\n */\nexport function IsLocale(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LOCALE,\n validator: {\n validate: (value, args): boolean => isLocale(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be locale', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsLowercase.js b/views/node_modules/class-validator/esm5/decorator/string/IsLowercase.js deleted file mode 100644 index 1fd5c5c..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsLowercase.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isLowercaseValidator from 'validator/lib/isLowercase'; -export var IS_LOWERCASE = 'isLowercase'; -/** - * Checks if the string is lowercase. - * If given value is not a string, then it returns false. - */ -export function isLowercase(value) { - return typeof value === 'string' && isLowercaseValidator(value); -} -/** - * Checks if the string is lowercase. - * If given value is not a string, then it returns false. - */ -export function IsLowercase(validationOptions) { - return ValidateBy({ - name: IS_LOWERCASE, - validator: { - validate: function (value, args) { return isLowercase(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a lowercase string'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsLowercase.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsLowercase.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsLowercase.js.map deleted file mode 100644 index ccd838e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsLowercase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsLowercase.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsLowercase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,IAAM,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,WAAW,CAAC,KAAK,CAAC,EAAlB,CAAkB;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,sCAAsC,EAAnD,CAAmD,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLowercaseValidator from 'validator/lib/isLowercase';\n\nexport const IS_LOWERCASE = 'isLowercase';\n\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function isLowercase(value: unknown): boolean {\n return typeof value === 'string' && isLowercaseValidator(value);\n}\n\n/**\n * Checks if the string is lowercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsLowercase(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LOWERCASE,\n validator: {\n validate: (value, args): boolean => isLowercase(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a lowercase string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMacAddress.js b/views/node_modules/class-validator/esm5/decorator/string/IsMacAddress.js deleted file mode 100644 index c6b7d80..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMacAddress.js +++ /dev/null @@ -1,26 +0,0 @@ -import { isValidationOptions } from '../ValidationOptions'; -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMacAddressValidator from 'validator/lib/isMACAddress'; -export var IS_MAC_ADDRESS = 'isMacAddress'; -/** - * Check if the string is a MAC address. - * If given value is not a string, then it returns false. - */ -export function isMACAddress(value, options) { - return typeof value === 'string' && isMacAddressValidator(value, options); -} -export function IsMACAddress(optionsOrValidationOptionsArg, validationOptionsArg) { - var options = !isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : undefined; - var validationOptions = isValidationOptions(optionsOrValidationOptionsArg) - ? optionsOrValidationOptionsArg - : validationOptionsArg; - return ValidateBy({ - name: IS_MAC_ADDRESS, - constraints: [options], - validator: { - validate: function (value, args) { return isMACAddress(value, options); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a MAC Address'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMacAddress.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMacAddress.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsMacAddress.js.map deleted file mode 100644 index b6aafc4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMacAddress.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMacAddress.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMacAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAG/D,MAAM,CAAC,IAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,OAAyC;IACpF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAC5E,CAAC;AAWD,MAAM,UAAU,YAAY,CAC1B,6BAAmF,EACnF,oBAAwC;IAExC,IAAM,OAAO,GAAG,CAAC,mBAAmB,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS,CAAC;IAChH,IAAM,iBAAiB,GAAG,mBAAmB,CAAC,6BAA6B,CAAC;QAC1E,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,oBAAoB,CAAC;IAEzB,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAA5B,CAA4B;YAChE,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,iCAAiC,EAA9C,CAA8C,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions, isValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMacAddressValidator from 'validator/lib/isMACAddress';\nimport ValidatorJS from 'validator';\n\nexport const IS_MAC_ADDRESS = 'isMacAddress';\n\n/**\n * Check if the string is a MAC address.\n * If given value is not a string, then it returns false.\n */\nexport function isMACAddress(value: unknown, options?: ValidatorJS.IsMACAddressOptions): boolean {\n return typeof value === 'string' && isMacAddressValidator(value, options);\n}\n\n/**\n * Check if the string is a MAC address.\n * If given value is not a string, then it returns false.\n */\nexport function IsMACAddress(\n optionsArg?: ValidatorJS.IsMACAddressOptions,\n validationOptionsArg?: ValidationOptions\n): PropertyDecorator;\nexport function IsMACAddress(validationOptionsArg?: ValidationOptions): PropertyDecorator;\nexport function IsMACAddress(\n optionsOrValidationOptionsArg?: ValidatorJS.IsMACAddressOptions | ValidationOptions,\n validationOptionsArg?: ValidationOptions\n): PropertyDecorator {\n const options = !isValidationOptions(optionsOrValidationOptionsArg) ? optionsOrValidationOptionsArg : undefined;\n const validationOptions = isValidationOptions(optionsOrValidationOptionsArg)\n ? optionsOrValidationOptionsArg\n : validationOptionsArg;\n\n return ValidateBy(\n {\n name: IS_MAC_ADDRESS,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isMACAddress(value, options),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a MAC Address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMagnetURI.js b/views/node_modules/class-validator/esm5/decorator/string/IsMagnetURI.js deleted file mode 100644 index 6e23df4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMagnetURI.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMagnetURIValidator from 'validator/lib/isMagnetURI'; -export var IS_MAGNET_URI = 'isMagnetURI'; -/** - * Check if the string is a magnet uri format. - * If given value is not a string, then it returns false. - */ -export function isMagnetURI(value) { - return typeof value === 'string' && isMagnetURIValidator(value); -} -/** - * Check if the string is a magnet uri format. - * If given value is not a string, then it returns false. - */ -export function IsMagnetURI(validationOptions) { - return ValidateBy({ - name: IS_MAGNET_URI, - validator: { - validate: function (value, args) { return isMagnetURI(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be magnet uri format'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMagnetURI.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMagnetURI.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsMagnetURI.js.map deleted file mode 100644 index a406d0a..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMagnetURI.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMagnetURI.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMagnetURI.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,IAAM,aAAa,GAAG,aAAa,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,aAAa;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,WAAW,CAAC,KAAK,CAAC,EAAlB,CAAkB;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,qCAAqC,EAAlD,CAAkD,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMagnetURIValidator from 'validator/lib/isMagnetURI';\n\nexport const IS_MAGNET_URI = 'isMagnetURI';\n\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function isMagnetURI(value: unknown): boolean {\n return typeof value === 'string' && isMagnetURIValidator(value);\n}\n\n/**\n * Check if the string is a magnet uri format.\n * If given value is not a string, then it returns false.\n */\nexport function IsMagnetURI(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MAGNET_URI,\n validator: {\n validate: (value, args): boolean => isMagnetURI(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be magnet uri format',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMilitaryTime.js b/views/node_modules/class-validator/esm5/decorator/string/IsMilitaryTime.js deleted file mode 100644 index fe2ec23..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMilitaryTime.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import matchesValidator from 'validator/lib/matches'; -export var IS_MILITARY_TIME = 'isMilitaryTime'; -/** - * Checks if the string represents a time without a given timezone in the format HH:MM (military) - * If the given value does not match the pattern HH:MM, then it returns false. - */ -export function isMilitaryTime(value) { - var militaryTimeRegex = /^([01]\d|2[0-3]):?([0-5]\d)$/; - return typeof value === 'string' && matchesValidator(value, militaryTimeRegex); -} -/** - * Checks if the string represents a time without a given timezone in the format HH:MM (military) - * If the given value does not match the pattern HH:MM, then it returns false. - */ -export function IsMilitaryTime(validationOptions) { - return ValidateBy({ - name: IS_MILITARY_TIME, - validator: { - validate: function (value, args) { return isMilitaryTime(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid representation of military time in the format HH:MM'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMilitaryTime.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMilitaryTime.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsMilitaryTime.js.map deleted file mode 100644 index e124609..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMilitaryTime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMilitaryTime.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMilitaryTime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,IAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAM,iBAAiB,GAAG,8BAA8B,CAAC;IACzD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AACjF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,iBAAqC;IAClE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,gBAAgB;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,cAAc,CAAC,KAAK,CAAC,EAArB,CAAqB;YACzD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,+EAA+E,EAA5F,CAA4F,EAC1G,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\n\nexport const IS_MILITARY_TIME = 'isMilitaryTime';\n\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function isMilitaryTime(value: unknown): boolean {\n const militaryTimeRegex = /^([01]\\d|2[0-3]):?([0-5]\\d)$/;\n return typeof value === 'string' && matchesValidator(value, militaryTimeRegex);\n}\n\n/**\n * Checks if the string represents a time without a given timezone in the format HH:MM (military)\n * If the given value does not match the pattern HH:MM, then it returns false.\n */\nexport function IsMilitaryTime(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MILITARY_TIME,\n validator: {\n validate: (value, args): boolean => isMilitaryTime(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid representation of military time in the format HH:MM',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMimeType.js b/views/node_modules/class-validator/esm5/decorator/string/IsMimeType.js deleted file mode 100644 index e2814f1..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMimeType.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMimeTypeValidator from 'validator/lib/isMimeType'; -export var IS_MIME_TYPE = 'isMimeType'; -/** - * Check if the string matches to a valid MIME type format - * If given value is not a string, then it returns false. - */ -export function isMimeType(value) { - return typeof value === 'string' && isMimeTypeValidator(value); -} -/** - * Check if the string matches to a valid MIME type format - * If given value is not a string, then it returns false. - */ -export function IsMimeType(validationOptions) { - return ValidateBy({ - name: IS_MIME_TYPE, - validator: { - validate: function (value, args) { return isMimeType(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be MIME type format'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMimeType.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMimeType.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsMimeType.js.map deleted file mode 100644 index e7a41dc..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMimeType.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMimeType.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMimeType.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,CAAC,IAAM,YAAY,GAAG,YAAY,CAAC;AAEzC;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,iBAAqC;IAC9D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,UAAU,CAAC,KAAK,CAAC,EAAjB,CAAiB;YACrD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,oCAAoC,EAAjD,CAAiD,EAC/D,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMimeTypeValidator from 'validator/lib/isMimeType';\n\nexport const IS_MIME_TYPE = 'isMimeType';\n\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function isMimeType(value: unknown): boolean {\n return typeof value === 'string' && isMimeTypeValidator(value);\n}\n\n/**\n * Check if the string matches to a valid MIME type format\n * If given value is not a string, then it returns false.\n */\nexport function IsMimeType(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MIME_TYPE,\n validator: {\n validate: (value, args): boolean => isMimeType(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be MIME type format',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMobilePhone.js b/views/node_modules/class-validator/esm5/decorator/string/IsMobilePhone.js deleted file mode 100644 index 7c5fffa..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMobilePhone.js +++ /dev/null @@ -1,41 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMobilePhoneValidator from 'validator/lib/isMobilePhone'; -export var IS_MOBILE_PHONE = 'isMobilePhone'; -/** - * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS']) - * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY', - * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK', - * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG', - * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE', - * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID', - * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL', - * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN', - * 'zh-HK', 'zh-MO', 'zh-TW'] - * If given value is not a string, then it returns false. - */ -export function isMobilePhone(value, locale, options) { - return typeof value === 'string' && isMobilePhoneValidator(value, locale, options); -} -/** - * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS']) - * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY', - * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK', - * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG', - * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE', - * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID', - * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL', - * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN', - * 'zh-HK', 'zh-MO', 'zh-TW'] - * If given value is not a string, then it returns false. - */ -export function IsMobilePhone(locale, options, validationOptions) { - return ValidateBy({ - name: IS_MOBILE_PHONE, - constraints: [locale, options], - validator: { - validate: function (value, args) { return isMobilePhone(value, args.constraints[0], args.constraints[1]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a phone number'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMobilePhone.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMobilePhone.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsMobilePhone.js.map deleted file mode 100644 index 00c975e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMobilePhone.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMobilePhone.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMobilePhone.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,sBAAsB,MAAM,6BAA6B,CAAC;AAGjE,MAAM,CAAC,IAAM,eAAe,GAAG,eAAe,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAc,EACd,MAAsC,EACtC,OAA0C;IAE1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAsC,EACtC,OAA0C,EAC1C,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QAC9B,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAA9D,CAA8D;YAClG,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,kCAAkC,EAA/C,CAA+C,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMobilePhoneValidator from 'validator/lib/isMobilePhone';\nimport ValidatorJS from 'validator';\n\nexport const IS_MOBILE_PHONE = 'isMobilePhone';\n\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function isMobilePhone(\n value: unknown,\n locale?: ValidatorJS.MobilePhoneLocale,\n options?: ValidatorJS.IsMobilePhoneOptions\n): boolean {\n return typeof value === 'string' && isMobilePhoneValidator(value, locale, options);\n}\n\n/**\n * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS'])\n * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY',\n * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK',\n * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG',\n * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE',\n * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID',\n * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL',\n * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN',\n * 'zh-HK', 'zh-MO', 'zh-TW']\n * If given value is not a string, then it returns false.\n */\nexport function IsMobilePhone(\n locale?: ValidatorJS.MobilePhoneLocale,\n options?: ValidatorJS.IsMobilePhoneOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MOBILE_PHONE,\n constraints: [locale, options],\n validator: {\n validate: (value, args): boolean => isMobilePhone(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a phone number', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMongoId.js b/views/node_modules/class-validator/esm5/decorator/string/IsMongoId.js deleted file mode 100644 index a42a0b0..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMongoId.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMongoIdValidator from 'validator/lib/isMongoId'; -export var IS_MONGO_ID = 'isMongoId'; -/** - * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. - * If given value is not a string, then it returns false. - */ -export function isMongoId(value) { - return typeof value === 'string' && isMongoIdValidator(value); -} -/** - * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. - * If given value is not a string, then it returns false. - */ -export function IsMongoId(validationOptions) { - return ValidateBy({ - name: IS_MONGO_ID, - validator: { - validate: function (value, args) { return isMongoId(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a mongodb id'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMongoId.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMongoId.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsMongoId.js.map deleted file mode 100644 index 379d187..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMongoId.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMongoId.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMongoId.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,IAAM,WAAW,GAAG,WAAW,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,SAAS,CAAC,KAAK,CAAC,EAAhB,CAAgB;YACpD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,gCAAgC,EAA7C,CAA6C,EAAE,iBAAiB,CAAC;SAC7G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMongoIdValidator from 'validator/lib/isMongoId';\n\nexport const IS_MONGO_ID = 'isMongoId';\n\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function isMongoId(value: unknown): boolean {\n return typeof value === 'string' && isMongoIdValidator(value);\n}\n\n/**\n * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId.\n * If given value is not a string, then it returns false.\n */\nexport function IsMongoId(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MONGO_ID,\n validator: {\n validate: (value, args): boolean => isMongoId(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a mongodb id', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMultibyte.js b/views/node_modules/class-validator/esm5/decorator/string/IsMultibyte.js deleted file mode 100644 index 509d60c..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMultibyte.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isMultibyteValidator from 'validator/lib/isMultibyte'; -export var IS_MULTIBYTE = 'isMultibyte'; -/** - * Checks if the string contains one or more multibyte chars. - * If given value is not a string, then it returns false. - */ -export function isMultibyte(value) { - return typeof value === 'string' && isMultibyteValidator(value); -} -/** - * Checks if the string contains one or more multibyte chars. - * If given value is not a string, then it returns false. - */ -export function IsMultibyte(validationOptions) { - return ValidateBy({ - name: IS_MULTIBYTE, - validator: { - validate: function (value, args) { return isMultibyte(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain one or more multibyte chars'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsMultibyte.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsMultibyte.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsMultibyte.js.map deleted file mode 100644 index ea9b39b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsMultibyte.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsMultibyte.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsMultibyte.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,IAAM,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,WAAW,CAAC,KAAK,CAAC,EAAlB,CAAkB;YACtD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,oDAAoD,EAAjE,CAAiE,EAC/E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isMultibyteValidator from 'validator/lib/isMultibyte';\n\nexport const IS_MULTIBYTE = 'isMultibyte';\n\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function isMultibyte(value: unknown): boolean {\n return typeof value === 'string' && isMultibyteValidator(value);\n}\n\n/**\n * Checks if the string contains one or more multibyte chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsMultibyte(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_MULTIBYTE,\n validator: {\n validate: (value, args): boolean => isMultibyte(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain one or more multibyte chars',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsNumberString.js b/views/node_modules/class-validator/esm5/decorator/string/IsNumberString.js deleted file mode 100644 index 1233910..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsNumberString.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isNumericValidator from 'validator/lib/isNumeric'; -export var IS_NUMBER_STRING = 'isNumberString'; -/** - * Checks if the string is numeric. - * If given value is not a string, then it returns false. - */ -export function isNumberString(value, options) { - return typeof value === 'string' && isNumericValidator(value, options); -} -/** - * Checks if the string is numeric. - * If given value is not a string, then it returns false. - */ -export function IsNumberString(options, validationOptions) { - return ValidateBy({ - name: IS_NUMBER_STRING, - constraints: [options], - validator: { - validate: function (value, args) { return isNumberString(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a number string'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNumberString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsNumberString.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsNumberString.js.map deleted file mode 100644 index fb0a02f..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsNumberString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNumberString.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsNumberString.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAGzD,MAAM,CAAC,IAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc,EAAE,OAAsC;IACnF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,OAAsC,EACtC,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAA1C,CAA0C;YAC9E,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,mCAAmC,EAAhD,CAAgD,EAAE,iBAAiB,CAAC;SAChH;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isNumericValidator from 'validator/lib/isNumeric';\nimport ValidatorJS from 'validator';\n\nexport const IS_NUMBER_STRING = 'isNumberString';\n\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function isNumberString(value: unknown, options?: ValidatorJS.IsNumericOptions): boolean {\n return typeof value === 'string' && isNumericValidator(value, options);\n}\n\n/**\n * Checks if the string is numeric.\n * If given value is not a string, then it returns false.\n */\nexport function IsNumberString(\n options?: ValidatorJS.IsNumericOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NUMBER_STRING,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isNumberString(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a number string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsOctal.js b/views/node_modules/class-validator/esm5/decorator/string/IsOctal.js deleted file mode 100644 index b85d99b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsOctal.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isOctalValidator from 'validator/lib/isOctal'; -export var IS_OCTAL = 'isOctal'; -/** - * Check if the string is a valid octal number. - * If given value is not a string, then it returns false. - */ -export function isOctal(value) { - return typeof value === 'string' && isOctalValidator(value); -} -/** - * Check if the string is a valid octal number. - * If given value is not a string, then it returns false. - */ -export function IsOctal(validationOptions) { - return ValidateBy({ - name: IS_OCTAL, - validator: { - validate: function (value, args) { return isOctal(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be valid octal number'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsOctal.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsOctal.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsOctal.js.map deleted file mode 100644 index 8106103..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsOctal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsOctal.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsOctal.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,IAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,iBAAqC;IAC3D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc;YAClD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,sCAAsC,EAAnD,CAAmD,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isOctalValidator from 'validator/lib/isOctal';\n\nexport const IS_OCTAL = 'isOctal';\n\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function isOctal(value: unknown): boolean {\n return typeof value === 'string' && isOctalValidator(value);\n}\n\n/**\n * Check if the string is a valid octal number.\n * If given value is not a string, then it returns false.\n */\nexport function IsOctal(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_OCTAL,\n validator: {\n validate: (value, args): boolean => isOctal(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be valid octal number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsPassportNumber.js b/views/node_modules/class-validator/esm5/decorator/string/IsPassportNumber.js deleted file mode 100644 index d21d434..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsPassportNumber.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isPassportNumberValidator from 'validator/lib/isPassportNumber'; -export var IS_PASSPORT_NUMBER = 'isPassportNumber'; -/** - * Check if the string is a valid passport number relative to a specific country code. - * If given value is not a string, then it returns false. - */ -export function isPassportNumber(value, countryCode) { - return typeof value === 'string' && isPassportNumberValidator(value, countryCode); -} -/** - * Check if the string is a valid passport number relative to a specific country code. - * If given value is not a string, then it returns false. - */ -export function IsPassportNumber(countryCode, validationOptions) { - return ValidateBy({ - name: IS_PASSPORT_NUMBER, - constraints: [countryCode], - validator: { - validate: function (value, args) { return isPassportNumber(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be valid passport number'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsPassportNumber.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsPassportNumber.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsPassportNumber.js.map deleted file mode 100644 index 247d256..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsPassportNumber.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPassportNumber.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPassportNumber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,yBAAyB,MAAM,gCAAgC,CAAC;AAEvE,MAAM,CAAC,IAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAErD;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,WAAmB;IAClE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACpF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB,EAAE,iBAAqC;IACzF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,CAAC,WAAW,CAAC;QAC1B,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAA5C,CAA4C;YAChF,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,yCAAyC,EAAtD,CAAsD,EACpE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPassportNumberValidator from 'validator/lib/isPassportNumber';\n\nexport const IS_PASSPORT_NUMBER = 'isPassportNumber';\n\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function isPassportNumber(value: unknown, countryCode: string): boolean {\n return typeof value === 'string' && isPassportNumberValidator(value, countryCode);\n}\n\n/**\n * Check if the string is a valid passport number relative to a specific country code.\n * If given value is not a string, then it returns false.\n */\nexport function IsPassportNumber(countryCode: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_PASSPORT_NUMBER,\n constraints: [countryCode],\n validator: {\n validate: (value, args): boolean => isPassportNumber(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be valid passport number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsPhoneNumber.js b/views/node_modules/class-validator/esm5/decorator/string/IsPhoneNumber.js deleted file mode 100644 index 6d0d9b1..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsPhoneNumber.js +++ /dev/null @@ -1,40 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import { parsePhoneNumberFromString } from 'libphonenumber-js'; -export var IS_PHONE_NUMBER = 'isPhoneNumber'; -/** - * Checks if the string is a valid phone number. To successfully validate any phone number the text must include - * the intl. calling code, if the calling code wont be provided then the region must be set. - * - * @param value the potential phone number string to test - * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation. - * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter. - */ -export function isPhoneNumber(value, region) { - try { - var phoneNum = parsePhoneNumberFromString(value, region); - var result = phoneNum === null || phoneNum === void 0 ? void 0 : phoneNum.isValid(); - return !!result; - } - catch (error) { - // logging? - return false; - } -} -/** - * Checks if the string is a valid phone number. To successfully validate any phone number the text must include - * the intl. calling code, if the calling code wont be provided then the region must be set. - * - * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation. - * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter. - */ -export function IsPhoneNumber(region, validationOptions) { - return ValidateBy({ - name: IS_PHONE_NUMBER, - constraints: [region], - validator: { - validate: function (value, args) { return isPhoneNumber(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid phone number'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsPhoneNumber.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsPhoneNumber.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsPhoneNumber.js.map deleted file mode 100644 index 2287289..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsPhoneNumber.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPhoneNumber.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPhoneNumber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAe,MAAM,mBAAmB,CAAC;AAE5E,MAAM,CAAC,IAAM,eAAe,GAAG,eAAe,CAAC;AAE/C;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAoB;IAC/D,IAAI;QACF,IAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC3D,IAAM,MAAM,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,EAAE,CAAC;QACnC,OAAO,CAAC,CAAC,MAAM,CAAC;KACjB;IAAC,OAAO,KAAK,EAAE;QACd,WAAW;QACX,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB,EAAE,iBAAqC;IACvF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAzC,CAAyC;YAC7E,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,wCAAwC,EAArD,CAAqD,EACnE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport { parsePhoneNumberFromString, CountryCode } from 'libphonenumber-js';\n\nexport const IS_PHONE_NUMBER = 'isPhoneNumber';\n\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param value the potential phone number string to test\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function isPhoneNumber(value: string, region?: CountryCode): boolean {\n try {\n const phoneNum = parsePhoneNumberFromString(value, region);\n const result = phoneNum?.isValid();\n return !!result;\n } catch (error) {\n // logging?\n return false;\n }\n}\n\n/**\n * Checks if the string is a valid phone number. To successfully validate any phone number the text must include\n * the intl. calling code, if the calling code wont be provided then the region must be set.\n *\n * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation.\n * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter.\n */\nexport function IsPhoneNumber(region?: CountryCode, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_PHONE_NUMBER,\n constraints: [region],\n validator: {\n validate: (value, args): boolean => isPhoneNumber(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid phone number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsPort.js b/views/node_modules/class-validator/esm5/decorator/string/IsPort.js deleted file mode 100644 index fed37aa..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsPort.js +++ /dev/null @@ -1,22 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isPortValidator from 'validator/lib/isPort'; -export var IS_PORT = 'isPort'; -/** - * Check if the string is a valid port number. - */ -export function isPort(value) { - return typeof value === 'string' && isPortValidator(value); -} -/** - * Check if the string is a valid port number. - */ -export function IsPort(validationOptions) { - return ValidateBy({ - name: IS_PORT, - validator: { - validate: function (value, args) { return isPort(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a port'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsPort.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsPort.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsPort.js.map deleted file mode 100644 index bd233d3..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsPort.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPort.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPort.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAEnD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,CAAC,EAAb,CAAa;YACjD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,0BAA0B,EAAvC,CAAuC,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPortValidator from 'validator/lib/isPort';\n\nexport const IS_PORT = 'isPort';\n\n/**\n * Check if the string is a valid port number.\n */\nexport function isPort(value: unknown): boolean {\n return typeof value === 'string' && isPortValidator(value);\n}\n\n/**\n * Check if the string is a valid port number.\n */\nexport function IsPort(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_PORT,\n validator: {\n validate: (value, args): boolean => isPort(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a port', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsPostalCode.js b/views/node_modules/class-validator/esm5/decorator/string/IsPostalCode.js deleted file mode 100644 index d4656e3..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsPostalCode.js +++ /dev/null @@ -1,27 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isPostalCodeValidator from 'validator/lib/isPostalCode'; -export var IS_POSTAL_CODE = 'isPostalCode'; -/** - * Check if the string is a postal code, - * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.). - * If given value is not a string, then it returns false. - */ -export function isPostalCode(value, locale) { - return typeof value === 'string' && isPostalCodeValidator(value, locale); -} -/** - * Check if the string is a postal code, - * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.). - * If given value is not a string, then it returns false. - */ -export function IsPostalCode(locale, validationOptions) { - return ValidateBy({ - name: IS_POSTAL_CODE, - constraints: [locale], - validator: { - validate: function (value, args) { return isPostalCode(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a postal code'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsPostalCode.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsPostalCode.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsPostalCode.js.map deleted file mode 100644 index 9546aa7..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsPostalCode.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsPostalCode.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsPostalCode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAG/D,MAAM,CAAC,IAAM,cAAc,GAAG,cAAc,CAAC;AAE7C;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,MAA4C;IACvF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,MAA6C,EAC7C,iBAAqC;IAErC,OAAO,UAAU,CACf;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAxC,CAAwC;YAC5E,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,iCAAiC,EAA9C,CAA8C,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isPostalCodeValidator from 'validator/lib/isPostalCode';\nimport ValidatorJS from 'validator';\n\nexport const IS_POSTAL_CODE = 'isPostalCode';\n\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function isPostalCode(value: unknown, locale: 'any' | ValidatorJS.PostalCodeLocale): boolean {\n return typeof value === 'string' && isPostalCodeValidator(value, locale);\n}\n\n/**\n * Check if the string is a postal code,\n * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.).\n * If given value is not a string, then it returns false.\n */\nexport function IsPostalCode(\n locale?: 'any' | ValidatorJS.PostalCodeLocale,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_POSTAL_CODE,\n constraints: [locale],\n validator: {\n validate: (value, args): boolean => isPostalCode(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a postal code', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsRFC3339.js b/views/node_modules/class-validator/esm5/decorator/string/IsRFC3339.js deleted file mode 100644 index e21fe0a..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsRFC3339.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isRFC3339Validator from 'validator/lib/isRFC3339'; -export var IS_RFC_3339 = 'isRFC3339'; -/** - * Check if the string is a valid RFC 3339 date. - * If given value is not a string, then it returns false. - */ -export function isRFC3339(value) { - return typeof value === 'string' && isRFC3339Validator(value); -} -/** - * Check if the string is a valid RFC 3339 date. - * If given value is not a string, then it returns false. - */ -export function IsRFC3339(validationOptions) { - return ValidateBy({ - name: IS_RFC_3339, - validator: { - validate: function (value, args) { return isRFC3339(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be RFC 3339 date'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsRFC3339.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsRFC3339.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsRFC3339.js.map deleted file mode 100644 index 0fe0a45..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsRFC3339.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsRFC3339.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsRFC3339.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD,MAAM,CAAC,IAAM,WAAW,GAAG,WAAW,CAAC;AAEvC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,kBAAkB,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,SAAS,CAAC,KAAK,CAAC,EAAhB,CAAgB;YACpD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,iCAAiC,EAA9C,CAA8C,EAAE,iBAAiB,CAAC;SAC9G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRFC3339Validator from 'validator/lib/isRFC3339';\n\nexport const IS_RFC_3339 = 'isRFC3339';\n\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function isRFC3339(value: unknown): boolean {\n return typeof value === 'string' && isRFC3339Validator(value);\n}\n\n/**\n * Check if the string is a valid RFC 3339 date.\n * If given value is not a string, then it returns false.\n */\nexport function IsRFC3339(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_RFC_3339,\n validator: {\n validate: (value, args): boolean => isRFC3339(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be RFC 3339 date', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsRgbColor.js b/views/node_modules/class-validator/esm5/decorator/string/IsRgbColor.js deleted file mode 100644 index 9bc3d60..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsRgbColor.js +++ /dev/null @@ -1,27 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isRgbColorValidator from 'validator/lib/isRgbColor'; -export var IS_RGB_COLOR = 'isRgbColor'; -/** - * Check if the string is a rgb or rgba color. - * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false. - * If given value is not a string, then it returns false. - */ -export function isRgbColor(value, includePercentValues) { - return typeof value === 'string' && isRgbColorValidator(value, includePercentValues); -} -/** - * Check if the string is a rgb or rgba color. - * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false. - * If given value is not a string, then it returns false. - */ -export function IsRgbColor(includePercentValues, validationOptions) { - return ValidateBy({ - name: IS_RGB_COLOR, - constraints: [includePercentValues], - validator: { - validate: function (value, args) { return isRgbColor(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be RGB color'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsRgbColor.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsRgbColor.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsRgbColor.js.map deleted file mode 100644 index e4849ab..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsRgbColor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsRgbColor.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsRgbColor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D,MAAM,CAAC,IAAM,YAAY,GAAG,YAAY,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,KAAc,EAAE,oBAA8B;IACvE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;AACvF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,oBAA8B,EAAE,iBAAqC;IAC9F,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,CAAC,oBAAoB,CAAC;QACnC,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAtC,CAAsC;YAC1E,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,6BAA6B,EAA1C,CAA0C,EAAE,iBAAiB,CAAC;SAC1G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isRgbColorValidator from 'validator/lib/isRgbColor';\n\nexport const IS_RGB_COLOR = 'isRgbColor';\n\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function isRgbColor(value: unknown, includePercentValues?: boolean): boolean {\n return typeof value === 'string' && isRgbColorValidator(value, includePercentValues);\n}\n\n/**\n * Check if the string is a rgb or rgba color.\n * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false.\n * If given value is not a string, then it returns false.\n */\nexport function IsRgbColor(includePercentValues?: boolean, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_RGB_COLOR,\n constraints: [includePercentValues],\n validator: {\n validate: (value, args): boolean => isRgbColor(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be RGB color', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsSemVer.js b/views/node_modules/class-validator/esm5/decorator/string/IsSemVer.js deleted file mode 100644 index 982c580..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsSemVer.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isSemVerValidator from 'validator/lib/isSemVer'; -export var IS_SEM_VER = 'isSemVer'; -/** - * Check if the string is a Semantic Versioning Specification (SemVer). - * If given value is not a string, then it returns false. - */ -export function isSemVer(value) { - return typeof value === 'string' && isSemVerValidator(value); -} -/** - * Check if the string is a Semantic Versioning Specification (SemVer). - * If given value is not a string, then it returns false. - */ -export function IsSemVer(validationOptions) { - return ValidateBy({ - name: IS_SEM_VER, - validator: { - validate: function (value, args) { return isSemVer(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Semantic Versioning Specification'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsSemVer.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsSemVer.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsSemVer.js.map deleted file mode 100644 index df8f993..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsSemVer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsSemVer.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsSemVer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,IAAM,UAAU,GAAG,UAAU,CAAC;AAErC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAf,CAAe;YACnD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,uDAAuD,EAApE,CAAoE,EAClF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSemVerValidator from 'validator/lib/isSemVer';\n\nexport const IS_SEM_VER = 'isSemVer';\n\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function isSemVer(value: unknown): boolean {\n return typeof value === 'string' && isSemVerValidator(value);\n}\n\n/**\n * Check if the string is a Semantic Versioning Specification (SemVer).\n * If given value is not a string, then it returns false.\n */\nexport function IsSemVer(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_SEM_VER,\n validator: {\n validate: (value, args): boolean => isSemVer(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a Semantic Versioning Specification',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsSurrogatePair.js b/views/node_modules/class-validator/esm5/decorator/string/IsSurrogatePair.js deleted file mode 100644 index 7d6d7e4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsSurrogatePair.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isSurrogatePairValidator from 'validator/lib/isSurrogatePair'; -export var IS_SURROGATE_PAIR = 'isSurrogatePair'; -/** - * Checks if the string contains any surrogate pairs chars. - * If given value is not a string, then it returns false. - */ -export function isSurrogatePair(value) { - return typeof value === 'string' && isSurrogatePairValidator(value); -} -/** - * Checks if the string contains any surrogate pairs chars. - * If given value is not a string, then it returns false. - */ -export function IsSurrogatePair(validationOptions) { - return ValidateBy({ - name: IS_SURROGATE_PAIR, - validator: { - validate: function (value, args) { return isSurrogatePair(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain any surrogate pairs chars'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsSurrogatePair.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsSurrogatePair.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsSurrogatePair.js.map deleted file mode 100644 index 795f8d5..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsSurrogatePair.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsSurrogatePair.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsSurrogatePair.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,IAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,iBAAqC;IACnE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,eAAe,CAAC,KAAK,CAAC,EAAtB,CAAsB;YAC1D,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,kDAAkD,EAA/D,CAA+D,EAC7E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isSurrogatePairValidator from 'validator/lib/isSurrogatePair';\n\nexport const IS_SURROGATE_PAIR = 'isSurrogatePair';\n\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function isSurrogatePair(value: unknown): boolean {\n return typeof value === 'string' && isSurrogatePairValidator(value);\n}\n\n/**\n * Checks if the string contains any surrogate pairs chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsSurrogatePair(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_SURROGATE_PAIR,\n validator: {\n validate: (value, args): boolean => isSurrogatePair(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain any surrogate pairs chars',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsUUID.js b/views/node_modules/class-validator/esm5/decorator/string/IsUUID.js deleted file mode 100644 index 50ea664..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsUUID.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isUuidValidator from 'validator/lib/isUUID'; -export var IS_UUID = 'isUuid'; -/** - * Checks if the string is a UUID (version 3, 4 or 5). - * If given value is not a string, then it returns false. - */ -export function isUUID(value, version) { - return typeof value === 'string' && isUuidValidator(value, version); -} -/** - * Checks if the string is a UUID (version 3, 4 or 5). - * If given value is not a string, then it returns false. - */ -export function IsUUID(version, validationOptions) { - return ValidateBy({ - name: IS_UUID, - constraints: [version], - validator: { - validate: function (value, args) { return isUUID(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a UUID'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsUUID.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsUUID.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsUUID.js.map deleted file mode 100644 index e2cd1b5..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsUUID.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsUUID.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsUUID.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,eAAe,MAAM,sBAAsB,CAAC;AAInD,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,OAAqB;IAC1D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,OAAqB,EAAE,iBAAqC;IACjF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC;YACtE,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,0BAA0B,EAAvC,CAAuC,EAAE,iBAAiB,CAAC;SACvG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUuidValidator from 'validator/lib/isUUID';\n\nexport type UUIDVersion = '3' | '4' | '5' | 'all' | 3 | 4 | 5;\n\nexport const IS_UUID = 'isUuid';\n\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function isUUID(value: unknown, version?: UUIDVersion): boolean {\n return typeof value === 'string' && isUuidValidator(value, version);\n}\n\n/**\n * Checks if the string is a UUID (version 3, 4 or 5).\n * If given value is not a string, then it returns false.\n */\nexport function IsUUID(version?: UUIDVersion, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_UUID,\n constraints: [version],\n validator: {\n validate: (value, args): boolean => isUUID(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a UUID', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsUppercase.js b/views/node_modules/class-validator/esm5/decorator/string/IsUppercase.js deleted file mode 100644 index 7d5e652..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsUppercase.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isUppercaseValidator from 'validator/lib/isUppercase'; -export var IS_UPPERCASE = 'isUppercase'; -/** - * Checks if the string is uppercase. - * If given value is not a string, then it returns false. - */ -export function isUppercase(value) { - return typeof value === 'string' && isUppercaseValidator(value); -} -/** - * Checks if the string is uppercase. - * If given value is not a string, then it returns false. - */ -export function IsUppercase(validationOptions) { - return ValidateBy({ - name: IS_UPPERCASE, - validator: { - validate: function (value, args) { return isUppercase(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be uppercase'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsUppercase.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsUppercase.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsUppercase.js.map deleted file mode 100644 index 7a88664..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsUppercase.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsUppercase.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsUppercase.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,oBAAoB,MAAM,2BAA2B,CAAC;AAE7D,MAAM,CAAC,IAAM,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,iBAAqC;IAC/D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,WAAW,CAAC,KAAK,CAAC,EAAlB,CAAkB;YACtD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,6BAA6B,EAA1C,CAA0C,EAAE,iBAAiB,CAAC;SAC1G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUppercaseValidator from 'validator/lib/isUppercase';\n\nexport const IS_UPPERCASE = 'isUppercase';\n\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function isUppercase(value: unknown): boolean {\n return typeof value === 'string' && isUppercaseValidator(value);\n}\n\n/**\n * Checks if the string is uppercase.\n * If given value is not a string, then it returns false.\n */\nexport function IsUppercase(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_UPPERCASE,\n validator: {\n validate: (value, args): boolean => isUppercase(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be uppercase', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsUrl.js b/views/node_modules/class-validator/esm5/decorator/string/IsUrl.js deleted file mode 100644 index 97940c5..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsUrl.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isUrlValidator from 'validator/lib/isURL'; -export var IS_URL = 'isUrl'; -/** - * Checks if the string is an url. - * If given value is not a string, then it returns false. - */ -export function isURL(value, options) { - return typeof value === 'string' && isUrlValidator(value, options); -} -/** - * Checks if the string is an url. - * If given value is not a string, then it returns false. - */ -export function IsUrl(options, validationOptions) { - return ValidateBy({ - name: IS_URL, - constraints: [options], - validator: { - validate: function (value, args) { return isURL(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an URL address'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsUrl.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsUrl.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsUrl.js.map deleted file mode 100644 index 39a51ff..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsUrl.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsUrl.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsUrl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,cAAc,MAAM,qBAAqB,CAAC;AAGjD,MAAM,CAAC,IAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,KAAa,EAAE,OAAkC;IACrE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,KAAK,CAAC,OAAkC,EAAE,iBAAqC;IAC7F,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAjC,CAAiC;YACrE,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,kCAAkC,EAA/C,CAA+C,EAAE,iBAAiB,CAAC;SAC/G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isUrlValidator from 'validator/lib/isURL';\nimport ValidatorJS from 'validator';\n\nexport const IS_URL = 'isUrl';\n\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function isURL(value: string, options?: ValidatorJS.IsURLOptions): boolean {\n return typeof value === 'string' && isUrlValidator(value, options);\n}\n\n/**\n * Checks if the string is an url.\n * If given value is not a string, then it returns false.\n */\nexport function IsUrl(options?: ValidatorJS.IsURLOptions, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_URL,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isURL(value, args.constraints[0]),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an URL address', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsVariableWidth.js b/views/node_modules/class-validator/esm5/decorator/string/IsVariableWidth.js deleted file mode 100644 index 9c6c235..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsVariableWidth.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isVariableWidthValidator from 'validator/lib/isVariableWidth'; -export var IS_VARIABLE_WIDTH = 'isVariableWidth'; -/** - * Checks if the string contains variable-width chars. - * If given value is not a string, then it returns false. - */ -export function isVariableWidth(value) { - return typeof value === 'string' && isVariableWidthValidator(value); -} -/** - * Checks if the string contains variable-width chars. - * If given value is not a string, then it returns false. - */ -export function IsVariableWidth(validationOptions) { - return ValidateBy({ - name: IS_VARIABLE_WIDTH, - validator: { - validate: function (value, args) { return isVariableWidth(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must contain a full-width and half-width characters'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsVariableWidth.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/IsVariableWidth.js.map b/views/node_modules/class-validator/esm5/decorator/string/IsVariableWidth.js.map deleted file mode 100644 index f2c6502..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/IsVariableWidth.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsVariableWidth.js","sourceRoot":"","sources":["../../../../src/decorator/string/IsVariableWidth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,IAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAEnD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,iBAAqC;IACnE,OAAO,UAAU,CACf;QACE,IAAI,EAAE,iBAAiB;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,eAAe,CAAC,KAAK,CAAC,EAAtB,CAAsB;YAC1D,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,+DAA+D,EAA5E,CAA4E,EAC1F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isVariableWidthValidator from 'validator/lib/isVariableWidth';\n\nexport const IS_VARIABLE_WIDTH = 'isVariableWidth';\n\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function isVariableWidth(value: unknown): boolean {\n return typeof value === 'string' && isVariableWidthValidator(value);\n}\n\n/**\n * Checks if the string contains variable-width chars.\n * If given value is not a string, then it returns false.\n */\nexport function IsVariableWidth(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_VARIABLE_WIDTH,\n validator: {\n validate: (value, args): boolean => isVariableWidth(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must contain a full-width and half-width characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/Length.js b/views/node_modules/class-validator/esm5/decorator/string/Length.js deleted file mode 100644 index 9cfba33..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/Length.js +++ /dev/null @@ -1,36 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isLengthValidator from 'validator/lib/isLength'; -export var IS_LENGTH = 'isLength'; -/** - * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function length(value, min, max) { - return typeof value === 'string' && isLengthValidator(value, { min: min, max: max }); -} -/** - * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function Length(min, max, validationOptions) { - return ValidateBy({ - name: IS_LENGTH, - constraints: [min, max], - validator: { - validate: function (value, args) { return length(value, args.constraints[0], args.constraints[1]); }, - defaultMessage: buildMessage(function (eachPrefix, args) { - var isMinLength = args.constraints[0] !== null && args.constraints[0] !== undefined; - var isMaxLength = args.constraints[1] !== null && args.constraints[1] !== undefined; - if (isMinLength && (!args.value || args.value.length < args.constraints[0])) { - return eachPrefix + '$property must be longer than or equal to $constraint1 characters'; - } - else if (isMaxLength && args.value.length > args.constraints[1]) { - return eachPrefix + '$property must be shorter than or equal to $constraint2 characters'; - } - return (eachPrefix + - '$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters'); - }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Length.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/Length.js.map b/views/node_modules/class-validator/esm5/decorator/string/Length.js.map deleted file mode 100644 index c18913b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/Length.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Length.js","sourceRoot":"","sources":["../../../../src/decorator/string/Length.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,IAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,GAAW,EAAE,GAAY;IAC9D,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,GAAY,EAAE,iBAAqC;IACrF,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAvD,CAAuD;YAC3F,cAAc,EAAE,YAAY,CAAC,UAAC,UAAU,EAAE,IAAI;gBAC5C,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;gBACtF,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;gBACtF,IAAI,WAAW,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE;oBAC3E,OAAO,UAAU,GAAG,mEAAmE,CAAC;iBACzF;qBAAM,IAAI,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;oBACjE,OAAO,UAAU,GAAG,oEAAoE,CAAC;iBAC1F;gBACD,OAAO,CACL,UAAU;oBACV,6GAA6G,CAC9G,CAAC;YACJ,CAAC,EAAE,iBAAiB,CAAC;SACtB;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\n\nexport const IS_LENGTH = 'isLength';\n\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function length(value: unknown, min: number, max?: number): boolean {\n return typeof value === 'string' && isLengthValidator(value, { min, max });\n}\n\n/**\n * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function Length(min: number, max?: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_LENGTH,\n constraints: [min, max],\n validator: {\n validate: (value, args): boolean => length(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage((eachPrefix, args) => {\n const isMinLength = args.constraints[0] !== null && args.constraints[0] !== undefined;\n const isMaxLength = args.constraints[1] !== null && args.constraints[1] !== undefined;\n if (isMinLength && (!args.value || args.value.length < args.constraints[0])) {\n return eachPrefix + '$property must be longer than or equal to $constraint1 characters';\n } else if (isMaxLength && args.value.length > args.constraints[1]) {\n return eachPrefix + '$property must be shorter than or equal to $constraint2 characters';\n }\n return (\n eachPrefix +\n '$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters'\n );\n }, validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/Matches.js b/views/node_modules/class-validator/esm5/decorator/string/Matches.js deleted file mode 100644 index d61f402..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/Matches.js +++ /dev/null @@ -1,24 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import matchesValidator from 'validator/lib/matches'; -export var MATCHES = 'matches'; -export function matches(value, pattern, modifiers) { - return typeof value === 'string' && matchesValidator(value, pattern, modifiers); -} -export function Matches(pattern, modifiersOrAnnotationOptions, validationOptions) { - var modifiers; - if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) { - validationOptions = modifiersOrAnnotationOptions; - } - else { - modifiers = modifiersOrAnnotationOptions; - } - return ValidateBy({ - name: MATCHES, - constraints: [pattern, modifiers], - validator: { - validate: function (value, args) { return matches(value, args.constraints[0], args.constraints[1]); }, - defaultMessage: buildMessage(function (eachPrefix, args) { return eachPrefix + '$property must match $constraint1 regular expression'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=Matches.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/Matches.js.map b/views/node_modules/class-validator/esm5/decorator/string/Matches.js.map deleted file mode 100644 index 1274112..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/Matches.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Matches.js","sourceRoot":"","sources":["../../../../src/decorator/string/Matches.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD,MAAM,CAAC,IAAM,OAAO,GAAG,SAAS,CAAC;AAQjC,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,OAAwB,EAAE,SAAkB;IACjF,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,gBAAgB,CAAC,KAAK,EAAG,OAA0B,EAAE,SAAS,CAAC,CAAC;AACtG,CAAC;AAQD,MAAM,UAAU,OAAO,CACrB,OAAwB,EACxB,4BAAyD,EACzD,iBAAqC;IAErC,IAAI,SAAiB,CAAC;IACtB,IAAI,4BAA4B,IAAI,4BAA4B,YAAY,MAAM,IAAI,CAAC,iBAAiB,EAAE;QACxG,iBAAiB,GAAG,4BAA4B,CAAC;KAClD;SAAM;QACL,SAAS,GAAG,4BAAsC,CAAC;KACpD;IAED,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;QACjC,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAxD,CAAwD;YAC5F,cAAc,EAAE,YAAY,CAC1B,UAAC,UAAU,EAAE,IAAI,IAAK,OAAA,UAAU,GAAG,sDAAsD,EAAnE,CAAmE,EACzF,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport matchesValidator from 'validator/lib/matches';\n\nexport const MATCHES = 'matches';\n\n/**\n * Checks if string matches the pattern. Either matches('foo', /foo/i).\n * If given value is not a string, then it returns false.\n */\nexport function matches(value: string, pattern: RegExp): boolean;\nexport function matches(value: string, pattern: string, modifiers: string): boolean;\nexport function matches(value: string, pattern: RegExp | string, modifiers?: string): boolean {\n return typeof value === 'string' && matchesValidator(value, (pattern as unknown) as any, modifiers);\n}\n\n/**\n * Checks if string matches the pattern. Either matches('foo', /foo/i)\n * If given value is not a string, then it returns false.\n */\nexport function Matches(pattern: RegExp, validationOptions?: ValidationOptions): PropertyDecorator;\nexport function Matches(pattern: string, modifiers?: string, validationOptions?: ValidationOptions): PropertyDecorator;\nexport function Matches(\n pattern: RegExp | string,\n modifiersOrAnnotationOptions?: string | ValidationOptions,\n validationOptions?: ValidationOptions\n): PropertyDecorator {\n let modifiers: string;\n if (modifiersOrAnnotationOptions && modifiersOrAnnotationOptions instanceof Object && !validationOptions) {\n validationOptions = modifiersOrAnnotationOptions;\n } else {\n modifiers = modifiersOrAnnotationOptions as string;\n }\n\n return ValidateBy(\n {\n name: MATCHES,\n constraints: [pattern, modifiers],\n validator: {\n validate: (value, args): boolean => matches(value, args.constraints[0], args.constraints[1]),\n defaultMessage: buildMessage(\n (eachPrefix, args) => eachPrefix + '$property must match $constraint1 regular expression',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/MaxLength.js b/views/node_modules/class-validator/esm5/decorator/string/MaxLength.js deleted file mode 100644 index 363f408..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/MaxLength.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isLengthValidator from 'validator/lib/isLength'; -export var MAX_LENGTH = 'maxLength'; -/** - * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function maxLength(value, max) { - return typeof value === 'string' && isLengthValidator(value, { min: 0, max: max }); -} -/** - * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function MaxLength(max, validationOptions) { - return ValidateBy({ - name: MAX_LENGTH, - constraints: [max], - validator: { - validate: function (value, args) { return maxLength(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be shorter than or equal to $constraint1 characters'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=MaxLength.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/MaxLength.js.map b/views/node_modules/class-validator/esm5/decorator/string/MaxLength.js.map deleted file mode 100644 index 26ecaf0..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/MaxLength.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MaxLength.js","sourceRoot":"","sources":["../../../../src/decorator/string/MaxLength.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,IAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,GAAW;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,iBAAqC;IAC1E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAArC,CAAqC;YACzE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,oEAAoE,EAAjF,CAAiF,EAC/F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\n\nexport const MAX_LENGTH = 'maxLength';\n\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function maxLength(value: unknown, max: number): boolean {\n return typeof value === 'string' && isLengthValidator(value, { min: 0, max });\n}\n\n/**\n * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MaxLength(max: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MAX_LENGTH,\n constraints: [max],\n validator: {\n validate: (value, args): boolean => maxLength(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be shorter than or equal to $constraint1 characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/MinLength.js b/views/node_modules/class-validator/esm5/decorator/string/MinLength.js deleted file mode 100644 index 4e0f7c1..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/MinLength.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import isLengthValidator from 'validator/lib/isLength'; -export var MIN_LENGTH = 'minLength'; -/** - * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function minLength(value, min) { - return typeof value === 'string' && isLengthValidator(value, { min: min }); -} -/** - * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export function MinLength(min, validationOptions) { - return ValidateBy({ - name: MIN_LENGTH, - constraints: [min], - validator: { - validate: function (value, args) { return minLength(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be longer than or equal to $constraint1 characters'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=MinLength.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/MinLength.js.map b/views/node_modules/class-validator/esm5/decorator/string/MinLength.js.map deleted file mode 100644 index 9189e0d..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/MinLength.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MinLength.js","sourceRoot":"","sources":["../../../../src/decorator/string/MinLength.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,IAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,GAAW;IACnD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,KAAK,EAAE,EAAE,GAAG,KAAA,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,iBAAqC;IAC1E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,CAAC,GAAG,CAAC;QAClB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAArC,CAAqC;YACzE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,mEAAmE,EAAhF,CAAgF,EAC9F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport isLengthValidator from 'validator/lib/isLength';\n\nexport const MIN_LENGTH = 'minLength';\n\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function minLength(value: unknown, min: number): boolean {\n return typeof value === 'string' && isLengthValidator(value, { min });\n}\n\n/**\n * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs.\n * If given value is not a string, then it returns false.\n */\nexport function MinLength(min: number, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: MIN_LENGTH,\n constraints: [min],\n validator: {\n validate: (value, args): boolean => minLength(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be longer than or equal to $constraint1 characters',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/NotContains.js b/views/node_modules/class-validator/esm5/decorator/string/NotContains.js deleted file mode 100644 index 48ebac7..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/NotContains.js +++ /dev/null @@ -1,25 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -import containsValidator from 'validator/lib/contains'; -export var NOT_CONTAINS = 'notContains'; -/** - * Checks if the string does not contain the seed. - * If given value is not a string, then it returns false. - */ -export function notContains(value, seed) { - return typeof value === 'string' && !containsValidator(value, seed); -} -/** - * Checks if the string does not contain the seed. - * If given value is not a string, then it returns false. - */ -export function NotContains(seed, validationOptions) { - return ValidateBy({ - name: NOT_CONTAINS, - constraints: [seed], - validator: { - validate: function (value, args) { return notContains(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property should not contain a $constraint1 string'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=NotContains.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/string/NotContains.js.map b/views/node_modules/class-validator/esm5/decorator/string/NotContains.js.map deleted file mode 100644 index 18aa789..0000000 --- a/views/node_modules/class-validator/esm5/decorator/string/NotContains.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NotContains.js","sourceRoot":"","sources":["../../../../src/decorator/string/NotContains.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AAEvD,MAAM,CAAC,IAAM,YAAY,GAAG,aAAa,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc,EAAE,IAAY;IACtD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACtE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,iBAAqC;IAC7E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,CAAC,IAAI,CAAC;QACnB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAvC,CAAuC;YAC3E,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,oDAAoD,EAAjE,CAAiE,EAC/E,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\nimport containsValidator from 'validator/lib/contains';\n\nexport const NOT_CONTAINS = 'notContains';\n\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function notContains(value: unknown, seed: string): boolean {\n return typeof value === 'string' && !containsValidator(value, seed);\n}\n\n/**\n * Checks if the string does not contain the seed.\n * If given value is not a string, then it returns false.\n */\nexport function NotContains(seed: string, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: NOT_CONTAINS,\n constraints: [seed],\n validator: {\n validate: (value, args): boolean => notContains(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property should not contain a $constraint1 string',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsArray.js b/views/node_modules/class-validator/esm5/decorator/typechecker/IsArray.js deleted file mode 100644 index 3df852f..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsArray.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_ARRAY = 'isArray'; -/** - * Checks if a given value is an array - */ -export function isArray(value) { - return value instanceof Array; -} -/** - * Checks if a given value is an array - */ -export function IsArray(validationOptions) { - return ValidateBy({ - name: IS_ARRAY, - validator: { - validate: function (value, args) { return isArray(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an array'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsArray.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsArray.js.map b/views/node_modules/class-validator/esm5/decorator/typechecker/IsArray.js.map deleted file mode 100644 index 19237e6..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsArray.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsArray.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsArray.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,QAAQ,GAAG,SAAS,CAAC;AAElC;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc;IACpC,OAAO,KAAK,YAAY,KAAK,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,iBAAqC;IAC3D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc;YAClD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,4BAA4B,EAAzC,CAAyC,EAAE,iBAAiB,CAAC;SACzG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_ARRAY = 'isArray';\n\n/**\n * Checks if a given value is an array\n */\nexport function isArray(value: unknown): boolean {\n return value instanceof Array;\n}\n\n/**\n * Checks if a given value is an array\n */\nexport function IsArray(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ARRAY,\n validator: {\n validate: (value, args): boolean => isArray(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an array', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsBoolean.js b/views/node_modules/class-validator/esm5/decorator/typechecker/IsBoolean.js deleted file mode 100644 index 73602f6..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsBoolean.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_BOOLEAN = 'isBoolean'; -/** - * Checks if a given value is a boolean. - */ -export function isBoolean(value) { - return value instanceof Boolean || typeof value === 'boolean'; -} -/** - * Checks if a value is a boolean. - */ -export function IsBoolean(validationOptions) { - return ValidateBy({ - name: IS_BOOLEAN, - validator: { - validate: function (value, args) { return isBoolean(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a boolean value'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsBoolean.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsBoolean.js.map b/views/node_modules/class-validator/esm5/decorator/typechecker/IsBoolean.js.map deleted file mode 100644 index 741a2a1..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsBoolean.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsBoolean.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsBoolean.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,UAAU,GAAG,WAAW,CAAC;AAEtC;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,KAAK,YAAY,OAAO,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AAChE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,iBAAqC;IAC7D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,SAAS,CAAC,KAAK,CAAC,EAAhB,CAAgB;YACpD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,mCAAmC,EAAhD,CAAgD,EAAE,iBAAiB,CAAC;SAChH;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_BOOLEAN = 'isBoolean';\n\n/**\n * Checks if a given value is a boolean.\n */\nexport function isBoolean(value: unknown): boolean {\n return value instanceof Boolean || typeof value === 'boolean';\n}\n\n/**\n * Checks if a value is a boolean.\n */\nexport function IsBoolean(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_BOOLEAN,\n validator: {\n validate: (value, args): boolean => isBoolean(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a boolean value', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsDate.js b/views/node_modules/class-validator/esm5/decorator/typechecker/IsDate.js deleted file mode 100644 index 25a4d5b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsDate.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_DATE = 'isDate'; -/** - * Checks if a given value is a date. - */ -export function isDate(value) { - return value instanceof Date && !isNaN(value.getTime()); -} -/** - * Checks if a value is a date. - */ -export function IsDate(validationOptions) { - return ValidateBy({ - name: IS_DATE, - validator: { - validate: function (value, args) { return isDate(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a Date instance'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsDate.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsDate.js.map b/views/node_modules/class-validator/esm5/decorator/typechecker/IsDate.js.map deleted file mode 100644 index c3500fd..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsDate.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsDate.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsDate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,iBAAqC;IAC1D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,CAAC,EAAb,CAAa;YACjD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,mCAAmC,EAAhD,CAAgD,EAAE,iBAAiB,CAAC;SAChH;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_DATE = 'isDate';\n\n/**\n * Checks if a given value is a date.\n */\nexport function isDate(value: unknown): boolean {\n return value instanceof Date && !isNaN(value.getTime());\n}\n\n/**\n * Checks if a value is a date.\n */\nexport function IsDate(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_DATE,\n validator: {\n validate: (value, args): boolean => isDate(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a Date instance', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsEnum.js b/views/node_modules/class-validator/esm5/decorator/typechecker/IsEnum.js deleted file mode 100644 index 48cfe49..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsEnum.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_ENUM = 'isEnum'; -/** - * Checks if a given value is an enum - */ -export function isEnum(value, entity) { - var enumValues = Object.keys(entity).map(function (k) { return entity[k]; }); - return enumValues.indexOf(value) >= 0; -} -/** - * Checks if a given value is an enum - */ -export function IsEnum(entity, validationOptions) { - return ValidateBy({ - name: IS_ENUM, - constraints: [entity], - validator: { - validate: function (value, args) { return isEnum(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a valid enum value'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsEnum.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsEnum.js.map b/views/node_modules/class-validator/esm5/decorator/typechecker/IsEnum.js.map deleted file mode 100644 index f36a789..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsEnum.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsEnum.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsEnum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,MAAW;IAChD,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,MAAM,CAAC,CAAC,CAAC,EAAT,CAAS,CAAC,CAAC;IAC3D,OAAO,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,MAAM,CAAC,MAAc,EAAE,iBAAqC;IAC1E,OAAO,UAAU,CACf;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC;YACtE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,sCAAsC,EAAnD,CAAmD,EACjE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_ENUM = 'isEnum';\n\n/**\n * Checks if a given value is an enum\n */\nexport function isEnum(value: unknown, entity: any): boolean {\n const enumValues = Object.keys(entity).map(k => entity[k]);\n return enumValues.indexOf(value) >= 0;\n}\n\n/**\n * Checks if a given value is an enum\n */\nexport function IsEnum(entity: object, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_ENUM,\n constraints: [entity],\n validator: {\n validate: (value, args): boolean => isEnum(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a valid enum value',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsInt.js b/views/node_modules/class-validator/esm5/decorator/typechecker/IsInt.js deleted file mode 100644 index 7b1e7b9..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsInt.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_INT = 'isInt'; -/** - * Checks if value is an integer. - */ -export function isInt(val) { - return typeof val === 'number' && Number.isInteger(val); -} -/** - * Checks if value is an integer. - */ -export function IsInt(validationOptions) { - return ValidateBy({ - name: IS_INT, - validator: { - validate: function (value, args) { return isInt(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an integer number'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsInt.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsInt.js.map b/views/node_modules/class-validator/esm5/decorator/typechecker/IsInt.js.map deleted file mode 100644 index cb3246b..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsInt.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsInt.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsInt.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,MAAM,GAAG,OAAO,CAAC;AAE9B;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,GAAY;IAChC,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,iBAAqC;IACzD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,KAAK,CAAC,KAAK,CAAC,EAAZ,CAAY;YAChD,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,qCAAqC,EAAlD,CAAkD,EAChE,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_INT = 'isInt';\n\n/**\n * Checks if value is an integer.\n */\nexport function isInt(val: unknown): boolean {\n return typeof val === 'number' && Number.isInteger(val);\n}\n\n/**\n * Checks if value is an integer.\n */\nexport function IsInt(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_INT,\n validator: {\n validate: (value, args): boolean => isInt(value),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be an integer number',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsNumber.js b/views/node_modules/class-validator/esm5/decorator/typechecker/IsNumber.js deleted file mode 100644 index 95d4576..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsNumber.js +++ /dev/null @@ -1,42 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_NUMBER = 'isNumber'; -/** - * Checks if a given value is a number. - */ -export function isNumber(value, options) { - if (options === void 0) { options = {}; } - if (typeof value !== 'number') { - return false; - } - if (value === Infinity || value === -Infinity) { - return options.allowInfinity; - } - if (Number.isNaN(value)) { - return options.allowNaN; - } - if (options.maxDecimalPlaces !== undefined) { - var decimalPlaces = 0; - if (value % 1 !== 0) { - decimalPlaces = value.toString().split('.')[1].length; - } - if (decimalPlaces > options.maxDecimalPlaces) { - return false; - } - } - return Number.isFinite(value); -} -/** - * Checks if a value is a number. - */ -export function IsNumber(options, validationOptions) { - if (options === void 0) { options = {}; } - return ValidateBy({ - name: IS_NUMBER, - constraints: [options], - validator: { - validate: function (value, args) { return isNumber(value, args.constraints[0]); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a number conforming to the specified constraints'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsNumber.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsNumber.js.map b/views/node_modules/class-validator/esm5/decorator/typechecker/IsNumber.js.map deleted file mode 100644 index 0b31c2e..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsNumber.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsNumber.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsNumber.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,SAAS,GAAG,UAAU,CAAC;AAWpC;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc,EAAE,OAA6B;IAA7B,wBAAA,EAAA,YAA6B;IACpE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IAED,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,CAAC,QAAQ,EAAE;QAC7C,OAAO,OAAO,CAAC,aAAa,CAAC;KAC9B;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,OAAO,CAAC,QAAQ,CAAC;KACzB;IAED,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE;QAC1C,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;YACnB,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;SACvD;QACD,IAAI,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE;YAC5C,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAA6B,EAAE,iBAAqC;IAApE,wBAAA,EAAA,YAA6B;IACpD,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,CAAC,OAAO,CAAC;QACtB,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAApC,CAAoC;YACxE,cAAc,EAAE,YAAY,CAC1B,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,oEAAoE,EAAjF,CAAiF,EAC/F,iBAAiB,CAClB;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_NUMBER = 'isNumber';\n\n/**\n * Options to be passed to IsNumber decorator.\n */\nexport interface IsNumberOptions {\n allowNaN?: boolean;\n allowInfinity?: boolean;\n maxDecimalPlaces?: number;\n}\n\n/**\n * Checks if a given value is a number.\n */\nexport function isNumber(value: unknown, options: IsNumberOptions = {}): boolean {\n if (typeof value !== 'number') {\n return false;\n }\n\n if (value === Infinity || value === -Infinity) {\n return options.allowInfinity;\n }\n\n if (Number.isNaN(value)) {\n return options.allowNaN;\n }\n\n if (options.maxDecimalPlaces !== undefined) {\n let decimalPlaces = 0;\n if (value % 1 !== 0) {\n decimalPlaces = value.toString().split('.')[1].length;\n }\n if (decimalPlaces > options.maxDecimalPlaces) {\n return false;\n }\n }\n\n return Number.isFinite(value);\n}\n\n/**\n * Checks if a value is a number.\n */\nexport function IsNumber(options: IsNumberOptions = {}, validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_NUMBER,\n constraints: [options],\n validator: {\n validate: (value, args): boolean => isNumber(value, args.constraints[0]),\n defaultMessage: buildMessage(\n eachPrefix => eachPrefix + '$property must be a number conforming to the specified constraints',\n validationOptions\n ),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsObject.js b/views/node_modules/class-validator/esm5/decorator/typechecker/IsObject.js deleted file mode 100644 index 1f705e4..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsObject.js +++ /dev/null @@ -1,23 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_OBJECT = 'isObject'; -/** - * Checks if the value is valid Object. - * Returns false if the value is not an object. - */ -export function isObject(value) { - return value != null && (typeof value === 'object' || typeof value === 'function') && !Array.isArray(value); -} -/** - * Checks if the value is valid Object. - * Returns false if the value is not an object. - */ -export function IsObject(validationOptions) { - return ValidateBy({ - name: IS_OBJECT, - validator: { - validate: function (value, args) { return isObject(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be an object'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsObject.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsObject.js.map b/views/node_modules/class-validator/esm5/decorator/typechecker/IsObject.js.map deleted file mode 100644 index a8c9f5c..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsObject.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsObject.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsObject.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAf,CAAe;YACnD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,6BAA6B,EAA1C,CAA0C,EAAE,iBAAiB,CAAC;SAC1G;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_OBJECT = 'isObject';\n\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function isObject(value: unknown): value is object {\n return value != null && (typeof value === 'object' || typeof value === 'function') && !Array.isArray(value);\n}\n\n/**\n * Checks if the value is valid Object.\n * Returns false if the value is not an object.\n */\nexport function IsObject(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_OBJECT,\n validator: {\n validate: (value, args): boolean => isObject(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be an object', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsString.js b/views/node_modules/class-validator/esm5/decorator/typechecker/IsString.js deleted file mode 100644 index 819caca..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsString.js +++ /dev/null @@ -1,21 +0,0 @@ -import { buildMessage, ValidateBy } from '../common/ValidateBy'; -export var IS_STRING = 'isString'; -/** - * Checks if a given value is a real string. - */ -export function isString(value) { - return value instanceof String || typeof value === 'string'; -} -/** - * Checks if a given value is a real string. - */ -export function IsString(validationOptions) { - return ValidateBy({ - name: IS_STRING, - validator: { - validate: function (value, args) { return isString(value); }, - defaultMessage: buildMessage(function (eachPrefix) { return eachPrefix + '$property must be a string'; }, validationOptions), - }, - }, validationOptions); -} -//# sourceMappingURL=IsString.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/decorator/typechecker/IsString.js.map b/views/node_modules/class-validator/esm5/decorator/typechecker/IsString.js.map deleted file mode 100644 index 1da3983..0000000 --- a/views/node_modules/class-validator/esm5/decorator/typechecker/IsString.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsString.js","sourceRoot":"","sources":["../../../../src/decorator/typechecker/IsString.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,CAAC,IAAM,SAAS,GAAG,UAAU,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,KAAK,YAAY,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,iBAAqC;IAC5D,OAAO,UAAU,CACf;QACE,IAAI,EAAE,SAAS;QACf,SAAS,EAAE;YACT,QAAQ,EAAE,UAAC,KAAK,EAAE,IAAI,IAAc,OAAA,QAAQ,CAAC,KAAK,CAAC,EAAf,CAAe;YACnD,cAAc,EAAE,YAAY,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,GAAG,4BAA4B,EAAzC,CAAyC,EAAE,iBAAiB,CAAC;SACzG;KACF,EACD,iBAAiB,CAClB,CAAC;AACJ,CAAC","sourcesContent":["import { ValidationOptions } from '../ValidationOptions';\nimport { buildMessage, ValidateBy } from '../common/ValidateBy';\n\nexport const IS_STRING = 'isString';\n\n/**\n * Checks if a given value is a real string.\n */\nexport function isString(value: unknown): value is string {\n return value instanceof String || typeof value === 'string';\n}\n\n/**\n * Checks if a given value is a real string.\n */\nexport function IsString(validationOptions?: ValidationOptions): PropertyDecorator {\n return ValidateBy(\n {\n name: IS_STRING,\n validator: {\n validate: (value, args): boolean => isString(value),\n defaultMessage: buildMessage(eachPrefix => eachPrefix + '$property must be a string', validationOptions),\n },\n },\n validationOptions\n );\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/index.js b/views/node_modules/class-validator/esm5/index.js deleted file mode 100644 index b89ccf3..0000000 --- a/views/node_modules/class-validator/esm5/index.js +++ /dev/null @@ -1,60 +0,0 @@ -import { getMetadataStorage } from './metadata/MetadataStorage'; -import { Validator } from './validation/Validator'; -import { getFromContainer } from './container'; -// ------------------------------------------------------------------------- -// Export everything api users needs -// ------------------------------------------------------------------------- -export * from './container'; -export * from './decorator/decorators'; -export * from './decorator/ValidationOptions'; -export * from './validation/ValidatorConstraintInterface'; -export * from './validation/ValidationError'; -export * from './validation/ValidatorOptions'; -export * from './validation/ValidationArguments'; -export * from './validation/ValidationTypes'; -export * from './validation/Validator'; -export * from './validation-schema/ValidationSchema'; -export * from './register-decorator'; -export * from './metadata/MetadataStorage'; -/** - * Validates given object by object's decorators or given validation schema. - */ -export function validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions); - } -} -/** - * Validates given object by object's decorators or given validation schema and reject on error. - */ -export function validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return getFromContainer(Validator).validateOrReject(schemaNameOrObject, objectOrValidationOptions); - } -} -/** - * Validates given object by object's decorators or given validation schema. - * Note that this method completely ignores async validations. - * If you want to properly perform validation you need to call validate method instead. - */ -export function validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions) { - if (typeof schemaNameOrObject === 'string') { - return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions, maybeValidatorOptions); - } - else { - return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions); - } -} -/** - * Registers a new validation schema. - */ -export function registerSchema(schema) { - getMetadataStorage().addValidationSchema(schema); -} -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/index.js.map b/views/node_modules/class-validator/esm5/index.js.map deleted file mode 100644 index 921c241..0000000 --- a/views/node_modules/class-validator/esm5/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,4EAA4E;AAC5E,oCAAoC;AACpC,4EAA4E;AAE5E,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,sCAAsC,CAAC;AACrD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAoB3C;;GAEG;AACH,MAAM,UAAU,QAAQ,CACtB,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;IAExC,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAC1C,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,QAAQ,CACzC,kBAAkB,EAClB,yBAAmC,EACnC,qBAAqB,CACtB,CAAC;KACH;SAAM;QACL,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,yBAA6C,CAAC,CAAC;KAChH;AACH,CAAC;AAgBD;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;IAExC,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAC1C,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,gBAAgB,CACjD,kBAAkB,EAClB,yBAAmC,EACnC,qBAAqB,CACtB,CAAC;KACH;SAAM;QACL,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,gBAAgB,CACjD,kBAAkB,EAClB,yBAA6C,CAC9C,CAAC;KACH;AACH,CAAC;AAoBD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;IAExC,IAAI,OAAO,kBAAkB,KAAK,QAAQ,EAAE;QAC1C,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,CAC7C,kBAAkB,EAClB,yBAAmC,EACnC,qBAAqB,CACtB,CAAC;KACH;SAAM;QACL,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,kBAAkB,EAAE,yBAA6C,CAAC,CAAC;KACpH;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAwB;IACrD,kBAAkB,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC","sourcesContent":["import { ValidationError } from './validation/ValidationError';\nimport { ValidatorOptions } from './validation/ValidatorOptions';\nimport { ValidationSchema } from './validation-schema/ValidationSchema';\nimport { getMetadataStorage } from './metadata/MetadataStorage';\nimport { Validator } from './validation/Validator';\nimport { getFromContainer } from './container';\n\n// -------------------------------------------------------------------------\n// Export everything api users needs\n// -------------------------------------------------------------------------\n\nexport * from './container';\nexport * from './decorator/decorators';\nexport * from './decorator/ValidationOptions';\nexport * from './validation/ValidatorConstraintInterface';\nexport * from './validation/ValidationError';\nexport * from './validation/ValidatorOptions';\nexport * from './validation/ValidationArguments';\nexport * from './validation/ValidationTypes';\nexport * from './validation/Validator';\nexport * from './validation-schema/ValidationSchema';\nexport * from './register-decorator';\nexport * from './metadata/MetadataStorage';\n\n// -------------------------------------------------------------------------\n// Shortcut methods for api users\n// -------------------------------------------------------------------------\n\n/**\n * Validates given object.\n */\nexport function validate(object: object, validatorOptions?: ValidatorOptions): Promise;\n\n/**\n * Validates given object by a given validation schema.\n */\nexport function validate(\n schemaName: string,\n object: object,\n validatorOptions?: ValidatorOptions\n): Promise;\n\n/**\n * Validates given object by object's decorators or given validation schema.\n */\nexport function validate(\n schemaNameOrObject: object | string,\n objectOrValidationOptions?: object | ValidatorOptions,\n maybeValidatorOptions?: ValidatorOptions\n): Promise {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validate(\n schemaNameOrObject,\n objectOrValidationOptions as object,\n maybeValidatorOptions\n );\n } else {\n return getFromContainer(Validator).validate(schemaNameOrObject, objectOrValidationOptions as ValidatorOptions);\n }\n}\n\n/**\n * Validates given object and reject on error.\n */\nexport function validateOrReject(object: object, validatorOptions?: ValidatorOptions): Promise;\n\n/**\n * Validates given object by a given validation schema and reject on error.\n */\nexport function validateOrReject(\n schemaName: string,\n object: object,\n validatorOptions?: ValidatorOptions\n): Promise;\n\n/**\n * Validates given object by object's decorators or given validation schema and reject on error.\n */\nexport function validateOrReject(\n schemaNameOrObject: object | string,\n objectOrValidationOptions?: object | ValidatorOptions,\n maybeValidatorOptions?: ValidatorOptions\n): Promise {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateOrReject(\n schemaNameOrObject,\n objectOrValidationOptions as object,\n maybeValidatorOptions\n );\n } else {\n return getFromContainer(Validator).validateOrReject(\n schemaNameOrObject,\n objectOrValidationOptions as ValidatorOptions\n );\n }\n}\n\n/**\n * Performs sync validation of the given object.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(object: object, validatorOptions?: ValidatorOptions): ValidationError[];\n\n/**\n * Validates given object by a given validation schema.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(\n schemaName: string,\n object: object,\n validatorOptions?: ValidatorOptions\n): ValidationError[];\n\n/**\n * Validates given object by object's decorators or given validation schema.\n * Note that this method completely ignores async validations.\n * If you want to properly perform validation you need to call validate method instead.\n */\nexport function validateSync(\n schemaNameOrObject: object | string,\n objectOrValidationOptions?: object | ValidatorOptions,\n maybeValidatorOptions?: ValidatorOptions\n): ValidationError[] {\n if (typeof schemaNameOrObject === 'string') {\n return getFromContainer(Validator).validateSync(\n schemaNameOrObject,\n objectOrValidationOptions as object,\n maybeValidatorOptions\n );\n } else {\n return getFromContainer(Validator).validateSync(schemaNameOrObject, objectOrValidationOptions as ValidatorOptions);\n }\n}\n\n/**\n * Registers a new validation schema.\n */\nexport function registerSchema(schema: ValidationSchema): void {\n getMetadataStorage().addValidationSchema(schema);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/metadata/ConstraintMetadata.js b/views/node_modules/class-validator/esm5/metadata/ConstraintMetadata.js deleted file mode 100644 index e14859e..0000000 --- a/views/node_modules/class-validator/esm5/metadata/ConstraintMetadata.js +++ /dev/null @@ -1,31 +0,0 @@ -import { getFromContainer } from '../container'; -/** - * This metadata interface contains information for custom validators. - */ -var ConstraintMetadata = /** @class */ (function () { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - function ConstraintMetadata(target, name, async) { - if (async === void 0) { async = false; } - this.target = target; - this.name = name; - this.async = async; - } - Object.defineProperty(ConstraintMetadata.prototype, "instance", { - // ------------------------------------------------------------------------- - // Accessors - // ------------------------------------------------------------------------- - /** - * Instance of the target custom validation class which performs validation. - */ - get: function () { - return getFromContainer(this.target); - }, - enumerable: false, - configurable: true - }); - return ConstraintMetadata; -}()); -export { ConstraintMetadata }; -//# sourceMappingURL=ConstraintMetadata.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/metadata/ConstraintMetadata.js.map b/views/node_modules/class-validator/esm5/metadata/ConstraintMetadata.js.map deleted file mode 100644 index a3d70c5..0000000 --- a/views/node_modules/class-validator/esm5/metadata/ConstraintMetadata.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ConstraintMetadata.js","sourceRoot":"","sources":["../../../src/metadata/ConstraintMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD;;GAEG;AACH;IAoBE,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,4BAAY,MAAgB,EAAE,IAAa,EAAE,KAAsB;QAAtB,sBAAA,EAAA,aAAsB;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IASD,sBAAI,wCAAQ;QAPZ,4EAA4E;QAC5E,YAAY;QACZ,4EAA4E;QAE5E;;WAEG;aACH;YACE,OAAO,gBAAgB,CAA+B,IAAI,CAAC,MAAM,CAAC,CAAC;QACrE,CAAC;;;OAAA;IACH,yBAAC;AAAD,CAAC,AAxCD,IAwCC","sourcesContent":["import { ValidatorConstraintInterface } from '../validation/ValidatorConstraintInterface';\nimport { getFromContainer } from '../container';\n\n/**\n * This metadata interface contains information for custom validators.\n */\nexport class ConstraintMetadata {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n /**\n * Target class which performs validation.\n */\n target: Function;\n\n /**\n * Custom validation's name, that will be used as validation error type.\n */\n name: string;\n\n /**\n * Indicates if this validation is asynchronous or not.\n */\n async: boolean;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(target: Function, name?: string, async: boolean = false) {\n this.target = target;\n this.name = name;\n this.async = async;\n }\n\n // -------------------------------------------------------------------------\n // Accessors\n // -------------------------------------------------------------------------\n\n /**\n * Instance of the target custom validation class which performs validation.\n */\n get instance(): ValidatorConstraintInterface {\n return getFromContainer(this.target);\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/metadata/MetadataStorage.js b/views/node_modules/class-validator/esm5/metadata/MetadataStorage.js deleted file mode 100644 index e4f7999..0000000 --- a/views/node_modules/class-validator/esm5/metadata/MetadataStorage.js +++ /dev/null @@ -1,139 +0,0 @@ -import { ValidationSchemaToMetadataTransformer } from '../validation-schema/ValidationSchemaToMetadataTransformer'; -import { getGlobal } from '../utils'; -/** - * Storage all metadatas. - */ -var MetadataStorage = /** @class */ (function () { - function MetadataStorage() { - // ------------------------------------------------------------------------- - // Private properties - // ------------------------------------------------------------------------- - this.validationMetadatas = []; - this.constraintMetadatas = []; - } - Object.defineProperty(MetadataStorage.prototype, "hasValidationMetaData", { - get: function () { - return !!this.validationMetadatas.length; - }, - enumerable: false, - configurable: true - }); - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - /** - * Adds a new validation metadata. - */ - MetadataStorage.prototype.addValidationSchema = function (schema) { - var _this = this; - var validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema); - validationMetadatas.forEach(function (validationMetadata) { return _this.addValidationMetadata(validationMetadata); }); - }; - /** - * Adds a new validation metadata. - */ - MetadataStorage.prototype.addValidationMetadata = function (metadata) { - this.validationMetadatas.push(metadata); - }; - /** - * Adds a new constraint metadata. - */ - MetadataStorage.prototype.addConstraintMetadata = function (metadata) { - this.constraintMetadatas.push(metadata); - }; - /** - * Groups metadata by their property names. - */ - MetadataStorage.prototype.groupByPropertyName = function (metadata) { - var grouped = {}; - metadata.forEach(function (metadata) { - if (!grouped[metadata.propertyName]) - grouped[metadata.propertyName] = []; - grouped[metadata.propertyName].push(metadata); - }); - return grouped; - }; - /** - * Gets all validation metadatas for the given object with the given groups. - */ - MetadataStorage.prototype.getTargetValidationMetadatas = function (targetConstructor, targetSchema, always, strictGroups, groups) { - var includeMetadataBecauseOfAlwaysOption = function (metadata) { - // `metadata.always` overrides global default. - if (typeof metadata.always !== 'undefined') - return metadata.always; - // `metadata.groups` overrides global default. - if (metadata.groups && metadata.groups.length) - return false; - // Use global default. - return always; - }; - var excludeMetadataBecauseOfStrictGroupsOption = function (metadata) { - if (strictGroups) { - // Validation is not using groups. - if (!groups || !groups.length) { - // `metadata.groups` has at least one group. - if (metadata.groups && metadata.groups.length) - return true; - } - } - return false; - }; - // get directly related to a target metadatas - var originalMetadatas = this.validationMetadatas.filter(function (metadata) { - if (metadata.target !== targetConstructor && metadata.target !== targetSchema) - return false; - if (includeMetadataBecauseOfAlwaysOption(metadata)) - return true; - if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) - return false; - if (groups && groups.length > 0) - return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; }); - return true; - }); - // get metadatas for inherited classes - var inheritedMetadatas = this.validationMetadatas.filter(function (metadata) { - // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas - if (typeof metadata.target === 'string') - return false; - if (metadata.target === targetConstructor) - return false; - if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target)) - return false; - if (includeMetadataBecauseOfAlwaysOption(metadata)) - return true; - if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) - return false; - if (groups && groups.length > 0) - return metadata.groups && !!metadata.groups.find(function (group) { return groups.indexOf(group) !== -1; }); - return true; - }); - // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas - var uniqueInheritedMetadatas = inheritedMetadatas.filter(function (inheritedMetadata) { - return !originalMetadatas.find(function (originalMetadata) { - return (originalMetadata.propertyName === inheritedMetadata.propertyName && - originalMetadata.type === inheritedMetadata.type); - }); - }); - return originalMetadatas.concat(uniqueInheritedMetadatas); - }; - /** - * Gets all validator constraints for the given object. - */ - MetadataStorage.prototype.getTargetValidatorConstraints = function (target) { - return this.constraintMetadatas.filter(function (metadata) { return metadata.target === target; }); - }; - return MetadataStorage; -}()); -export { MetadataStorage }; -/** - * Gets metadata storage. - * Metadata storage follows the best practices and stores metadata in a global variable. - */ -export function getMetadataStorage() { - var global = getGlobal(); - if (!global.classValidatorMetadataStorage) { - global.classValidatorMetadataStorage = new MetadataStorage(); - } - return global.classValidatorMetadataStorage; -} -//# sourceMappingURL=MetadataStorage.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/metadata/MetadataStorage.js.map b/views/node_modules/class-validator/esm5/metadata/MetadataStorage.js.map deleted file mode 100644 index af5e4c2..0000000 --- a/views/node_modules/class-validator/esm5/metadata/MetadataStorage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"MetadataStorage.js","sourceRoot":"","sources":["../../../src/metadata/MetadataStorage.ts"],"names":[],"mappings":"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","sourcesContent":["import { ValidationMetadata } from './ValidationMetadata';\nimport { ConstraintMetadata } from './ConstraintMetadata';\nimport { ValidationSchema } from '../validation-schema/ValidationSchema';\nimport { ValidationSchemaToMetadataTransformer } from '../validation-schema/ValidationSchemaToMetadataTransformer';\nimport { getGlobal } from '../utils';\n\n/**\n * Storage all metadatas.\n */\nexport class MetadataStorage {\n // -------------------------------------------------------------------------\n // Private properties\n // -------------------------------------------------------------------------\n\n private validationMetadatas: ValidationMetadata[] = [];\n private constraintMetadatas: ConstraintMetadata[] = [];\n\n get hasValidationMetaData(): boolean {\n return !!this.validationMetadatas.length;\n }\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Adds a new validation metadata.\n */\n addValidationSchema(schema: ValidationSchema): void {\n const validationMetadatas = new ValidationSchemaToMetadataTransformer().transform(schema);\n validationMetadatas.forEach(validationMetadata => this.addValidationMetadata(validationMetadata));\n }\n\n /**\n * Adds a new validation metadata.\n */\n addValidationMetadata(metadata: ValidationMetadata): void {\n this.validationMetadatas.push(metadata);\n }\n\n /**\n * Adds a new constraint metadata.\n */\n addConstraintMetadata(metadata: ConstraintMetadata): void {\n this.constraintMetadatas.push(metadata);\n }\n\n /**\n * Groups metadata by their property names.\n */\n groupByPropertyName(metadata: ValidationMetadata[]): { [propertyName: string]: ValidationMetadata[] } {\n const grouped: { [propertyName: string]: ValidationMetadata[] } = {};\n metadata.forEach(metadata => {\n if (!grouped[metadata.propertyName]) grouped[metadata.propertyName] = [];\n grouped[metadata.propertyName].push(metadata);\n });\n return grouped;\n }\n\n /**\n * Gets all validation metadatas for the given object with the given groups.\n */\n getTargetValidationMetadatas(\n targetConstructor: Function,\n targetSchema: string,\n always: boolean,\n strictGroups: boolean,\n groups?: string[]\n ): ValidationMetadata[] {\n const includeMetadataBecauseOfAlwaysOption = (metadata: ValidationMetadata): boolean => {\n // `metadata.always` overrides global default.\n if (typeof metadata.always !== 'undefined') return metadata.always;\n\n // `metadata.groups` overrides global default.\n if (metadata.groups && metadata.groups.length) return false;\n\n // Use global default.\n return always;\n };\n\n const excludeMetadataBecauseOfStrictGroupsOption = (metadata: ValidationMetadata): boolean => {\n if (strictGroups) {\n // Validation is not using groups.\n if (!groups || !groups.length) {\n // `metadata.groups` has at least one group.\n if (metadata.groups && metadata.groups.length) return true;\n }\n }\n\n return false;\n };\n\n // get directly related to a target metadatas\n const originalMetadatas = this.validationMetadatas.filter(metadata => {\n if (metadata.target !== targetConstructor && metadata.target !== targetSchema) return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1);\n\n return true;\n });\n\n // get metadatas for inherited classes\n const inheritedMetadatas = this.validationMetadatas.filter(metadata => {\n // if target is a string it's means we validate against a schema, and there is no inheritance support for schemas\n if (typeof metadata.target === 'string') return false;\n if (metadata.target === targetConstructor) return false;\n if (metadata.target instanceof Function && !(targetConstructor.prototype instanceof metadata.target))\n return false;\n if (includeMetadataBecauseOfAlwaysOption(metadata)) return true;\n if (excludeMetadataBecauseOfStrictGroupsOption(metadata)) return false;\n if (groups && groups.length > 0)\n return metadata.groups && !!metadata.groups.find(group => groups.indexOf(group) !== -1);\n\n return true;\n });\n\n // filter out duplicate metadatas, prefer original metadatas instead of inherited metadatas\n const uniqueInheritedMetadatas = inheritedMetadatas.filter(inheritedMetadata => {\n return !originalMetadatas.find(originalMetadata => {\n return (\n originalMetadata.propertyName === inheritedMetadata.propertyName &&\n originalMetadata.type === inheritedMetadata.type\n );\n });\n });\n\n return originalMetadatas.concat(uniqueInheritedMetadatas);\n }\n\n /**\n * Gets all validator constraints for the given object.\n */\n getTargetValidatorConstraints(target: Function): ConstraintMetadata[] {\n return this.constraintMetadatas.filter(metadata => metadata.target === target);\n }\n}\n\n/**\n * Gets metadata storage.\n * Metadata storage follows the best practices and stores metadata in a global variable.\n */\nexport function getMetadataStorage(): MetadataStorage {\n const global = getGlobal();\n\n if (!global.classValidatorMetadataStorage) {\n global.classValidatorMetadataStorage = new MetadataStorage();\n }\n\n return global.classValidatorMetadataStorage;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/metadata/ValidationMetadata.js b/views/node_modules/class-validator/esm5/metadata/ValidationMetadata.js deleted file mode 100644 index bf340cc..0000000 --- a/views/node_modules/class-validator/esm5/metadata/ValidationMetadata.js +++ /dev/null @@ -1,38 +0,0 @@ -/** - * This metadata contains validation rules. - */ -var ValidationMetadata = /** @class */ (function () { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - function ValidationMetadata(args) { - /** - * Validation groups used for this validation. - */ - this.groups = []; - /** - * Specifies if validated value is an array and each of its item must be validated. - */ - this.each = false; - /* - * A transient set of data passed through to the validation result for response mapping - */ - this.context = undefined; - this.type = args.type; - this.target = args.target; - this.propertyName = args.propertyName; - this.constraints = args.constraints; - this.constraintCls = args.constraintCls; - this.validationTypeOptions = args.validationTypeOptions; - if (args.validationOptions) { - this.message = args.validationOptions.message; - this.groups = args.validationOptions.groups; - this.always = args.validationOptions.always; - this.each = args.validationOptions.each; - this.context = args.validationOptions.context; - } - } - return ValidationMetadata; -}()); -export { ValidationMetadata }; -//# sourceMappingURL=ValidationMetadata.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/metadata/ValidationMetadata.js.map b/views/node_modules/class-validator/esm5/metadata/ValidationMetadata.js.map deleted file mode 100644 index 61f0f4f..0000000 --- a/views/node_modules/class-validator/esm5/metadata/ValidationMetadata.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationMetadata.js","sourceRoot":"","sources":["../../../src/metadata/ValidationMetadata.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH;IA4DE,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,4BAAY,IAA4B;QA7BxC;;WAEG;QACH,WAAM,GAAa,EAAE,CAAC;QAOtB;;WAEG;QACH,SAAI,GAAY,KAAK,CAAC;QAEtB;;WAEG;QACH,YAAO,GAAS,SAAS,CAAC;QAYxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACxD,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;YACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;SAC/C;IACH,CAAC;IACH,yBAAC;AAAD,CAAC,AA/ED,IA+EC","sourcesContent":["import { ValidationMetadataArgs } from './ValidationMetadataArgs';\nimport { ValidationArguments } from '../validation/ValidationArguments';\n\n/**\n * This metadata contains validation rules.\n */\nexport class ValidationMetadata {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n /**\n * Validation type.\n */\n type: string;\n\n /**\n * Target class to which this validation is applied.\n */\n target: Function | string;\n\n /**\n * Property of the object to be validated.\n */\n propertyName: string;\n\n /**\n * Constraint class that performs validation. Used only for custom validations.\n */\n constraintCls: Function;\n\n /**\n * Array of constraints of this validation.\n */\n constraints: any[];\n\n /**\n * Validation message to be shown in the case of error.\n */\n message: string | ((args: ValidationArguments) => string);\n\n /**\n * Validation groups used for this validation.\n */\n groups: string[] = [];\n\n /**\n * Indicates if validation must be performed always, no matter of validation groups used.\n */\n always?: boolean;\n\n /**\n * Specifies if validated value is an array and each of its item must be validated.\n */\n each: boolean = false;\n\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n context?: any = undefined;\n\n /**\n * Extra options specific to validation type.\n */\n validationTypeOptions: any;\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(args: ValidationMetadataArgs) {\n this.type = args.type;\n this.target = args.target;\n this.propertyName = args.propertyName;\n this.constraints = args.constraints;\n this.constraintCls = args.constraintCls;\n this.validationTypeOptions = args.validationTypeOptions;\n if (args.validationOptions) {\n this.message = args.validationOptions.message;\n this.groups = args.validationOptions.groups;\n this.always = args.validationOptions.always;\n this.each = args.validationOptions.each;\n this.context = args.validationOptions.context;\n }\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/metadata/ValidationMetadataArgs.js b/views/node_modules/class-validator/esm5/metadata/ValidationMetadataArgs.js deleted file mode 100644 index 7e916dc..0000000 --- a/views/node_modules/class-validator/esm5/metadata/ValidationMetadataArgs.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ValidationMetadataArgs.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/metadata/ValidationMetadataArgs.js.map b/views/node_modules/class-validator/esm5/metadata/ValidationMetadataArgs.js.map deleted file mode 100644 index 3f88114..0000000 --- a/views/node_modules/class-validator/esm5/metadata/ValidationMetadataArgs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationMetadataArgs.js","sourceRoot":"","sources":["../../../src/metadata/ValidationMetadataArgs.ts"],"names":[],"mappings":"","sourcesContent":["import { ValidationOptions } from '../decorator/ValidationOptions';\n\n/**\n * Constructor arguments for ValidationMetadata class.\n */\nexport interface ValidationMetadataArgs {\n /**\n * Validation type.\n */\n type: string;\n\n /**\n * Object that is used to be validated.\n */\n target: Function | string;\n\n /**\n * Property of the object to be validated.\n */\n propertyName: string;\n\n /**\n * Constraint class that performs validation. Used only for custom validations.\n */\n constraintCls?: Function;\n\n /**\n * Array of constraints of this validation.\n */\n constraints?: any[];\n\n /**\n * Validation options.\n */\n validationOptions?: ValidationOptions;\n\n /**\n * Extra options specific to validation type.\n */\n validationTypeOptions?: any;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/register-decorator.js b/views/node_modules/class-validator/esm5/register-decorator.js deleted file mode 100644 index 5807f0e..0000000 --- a/views/node_modules/class-validator/esm5/register-decorator.js +++ /dev/null @@ -1,46 +0,0 @@ -import { ConstraintMetadata } from './metadata/ConstraintMetadata'; -import { ValidationMetadata } from './metadata/ValidationMetadata'; -import { ValidationTypes } from './validation/ValidationTypes'; -import { getFromContainer } from './container'; -import { MetadataStorage, getMetadataStorage } from './metadata/MetadataStorage'; -/** - * Registers a custom validation decorator. - */ -export function registerDecorator(options) { - var constraintCls; - if (options.validator instanceof Function) { - constraintCls = options.validator; - var constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator); - if (constraintClasses.length > 1) { - throw "More than one implementation of ValidatorConstraintInterface found for validator on: " + options.target.name + ":" + options.propertyName; - } - } - else { - var validator_1 = options.validator; - constraintCls = /** @class */ (function () { - function CustomConstraint() { - } - CustomConstraint.prototype.validate = function (value, validationArguments) { - return validator_1.validate(value, validationArguments); - }; - CustomConstraint.prototype.defaultMessage = function (validationArguments) { - if (validator_1.defaultMessage) { - return validator_1.defaultMessage(validationArguments); - } - return ''; - }; - return CustomConstraint; - }()); - getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async)); - } - var validationMetadataArgs = { - type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION, - target: options.target, - propertyName: options.propertyName, - validationOptions: options.options, - constraintCls: constraintCls, - constraints: options.constraints, - }; - getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs)); -} -//# sourceMappingURL=register-decorator.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/register-decorator.js.map b/views/node_modules/class-validator/esm5/register-decorator.js.map deleted file mode 100644 index ce6c4e3..0000000 --- a/views/node_modules/class-validator/esm5/register-decorator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"register-decorator.js","sourceRoot":"","sources":["../../src/register-decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAwCjF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAmC;IACnE,IAAI,aAAuB,CAAC;IAC5B,IAAI,OAAO,CAAC,SAAS,YAAY,QAAQ,EAAE;QACzC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;QAClC,IAAM,iBAAiB,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC,6BAA6B,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7G,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,MAAM,0FAAwF,OAAO,CAAC,MAAM,CAAC,IAAI,SAAI,OAAO,CAAC,YAAc,CAAC;SAC7I;KACF;SAAM;QACL,IAAM,WAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACpC,aAAa;YAAG;YAYhB,CAAC;YAXC,mCAAQ,GAAR,UAAS,KAAU,EAAE,mBAAyC;gBAC5D,OAAO,WAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;YACxD,CAAC;YAED,yCAAc,GAAd,UAAe,mBAAyC;gBACtD,IAAI,WAAS,CAAC,cAAc,EAAE;oBAC5B,OAAO,WAAS,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;iBACtD;gBAED,OAAO,EAAE,CAAC;YACZ,CAAC;YACH,uBAAC;QAAD,CAAC,AAZe,GAYf,CAAC;QACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;KAChH;IAED,IAAM,sBAAsB,GAA2B;QACrD,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,iBAAiB;QAC9G,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,iBAAiB,EAAE,OAAO,CAAC,OAAO;QAClC,aAAa,EAAE,aAAa;QAC5B,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;IACF,kBAAkB,EAAE,CAAC,qBAAqB,CAAC,IAAI,kBAAkB,CAAC,sBAAsB,CAAC,CAAC,CAAC;AAC7F,CAAC","sourcesContent":["import { ConstraintMetadata } from './metadata/ConstraintMetadata';\nimport { ValidatorConstraintInterface } from './validation/ValidatorConstraintInterface';\nimport { ValidationMetadata } from './metadata/ValidationMetadata';\nimport { ValidationMetadataArgs } from './metadata/ValidationMetadataArgs';\nimport { ValidationTypes } from './validation/ValidationTypes';\nimport { ValidationArguments } from './validation/ValidationArguments';\nimport { getFromContainer } from './container';\nimport { MetadataStorage, getMetadataStorage } from './metadata/MetadataStorage';\nimport { ValidationOptions } from './decorator/ValidationOptions';\n\nexport interface ValidationDecoratorOptions {\n /**\n * Target object to be validated.\n */\n target: Function;\n\n /**\n * Target object's property name to be validated.\n */\n propertyName: string;\n\n /**\n * Name of the validation that is being registered.\n */\n name?: string;\n\n /**\n * Indicates if this decorator will perform async validation.\n */\n async?: boolean;\n\n /**\n * Validator options.\n */\n options?: ValidationOptions;\n\n /**\n * Array of validation constraints.\n */\n constraints?: any[];\n\n /**\n * Validator that performs validation.\n */\n validator: ValidatorConstraintInterface | Function;\n}\n\n/**\n * Registers a custom validation decorator.\n */\nexport function registerDecorator(options: ValidationDecoratorOptions): void {\n let constraintCls: Function;\n if (options.validator instanceof Function) {\n constraintCls = options.validator;\n const constraintClasses = getFromContainer(MetadataStorage).getTargetValidatorConstraints(options.validator);\n if (constraintClasses.length > 1) {\n throw `More than one implementation of ValidatorConstraintInterface found for validator on: ${options.target.name}:${options.propertyName}`;\n }\n } else {\n const validator = options.validator;\n constraintCls = class CustomConstraint implements ValidatorConstraintInterface {\n validate(value: any, validationArguments?: ValidationArguments): Promise | boolean {\n return validator.validate(value, validationArguments);\n }\n\n defaultMessage(validationArguments?: ValidationArguments): string {\n if (validator.defaultMessage) {\n return validator.defaultMessage(validationArguments);\n }\n\n return '';\n }\n };\n getMetadataStorage().addConstraintMetadata(new ConstraintMetadata(constraintCls, options.name, options.async));\n }\n\n const validationMetadataArgs: ValidationMetadataArgs = {\n type: options.name && ValidationTypes.isValid(options.name) ? options.name : ValidationTypes.CUSTOM_VALIDATION,\n target: options.target,\n propertyName: options.propertyName,\n validationOptions: options.options,\n constraintCls: constraintCls,\n constraints: options.constraints,\n };\n getMetadataStorage().addValidationMetadata(new ValidationMetadata(validationMetadataArgs));\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/utils/convert-to-array.util.js b/views/node_modules/class-validator/esm5/utils/convert-to-array.util.js deleted file mode 100644 index 2eea575..0000000 --- a/views/node_modules/class-validator/esm5/utils/convert-to-array.util.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Convert Map, Set to Array - */ -export function convertToArray(val) { - if (val instanceof Map) { - return Array.from(val.values()); - } - return Array.isArray(val) ? val : Array.from(val); -} -//# sourceMappingURL=convert-to-array.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/utils/convert-to-array.util.js.map b/views/node_modules/class-validator/esm5/utils/convert-to-array.util.js.map deleted file mode 100644 index 4112846..0000000 --- a/views/node_modules/class-validator/esm5/utils/convert-to-array.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"convert-to-array.util.js","sourceRoot":"","sources":["../../../src/utils/convert-to-array.util.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAI,GAAoC;IACpE,IAAI,GAAG,YAAY,GAAG,EAAE;QACtB,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;KACjC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC","sourcesContent":["/**\n * Convert Map, Set to Array\n */\nexport function convertToArray(val: Array | Set | Map): Array {\n if (val instanceof Map) {\n return Array.from(val.values());\n }\n return Array.isArray(val) ? val : Array.from(val);\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/utils/get-global.util.js b/views/node_modules/class-validator/esm5/utils/get-global.util.js deleted file mode 100644 index a8b64cc..0000000 --- a/views/node_modules/class-validator/esm5/utils/get-global.util.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * This function returns the global object across Node and browsers. - * - * Note: `globalThis` is the standardized approach however it has been added to - * Node.js in version 12. We need to include this snippet until Node 12 EOL. - */ -export function getGlobal() { - if (typeof globalThis !== 'undefined') { - return globalThis; - } - if (typeof global !== 'undefined') { - return global; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - if (typeof window !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'window'. - return window; - } - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - if (typeof self !== 'undefined') { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: Cannot find name 'self'. - return self; - } -} -//# sourceMappingURL=get-global.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/utils/get-global.util.js.map b/views/node_modules/class-validator/esm5/utils/get-global.util.js.map deleted file mode 100644 index 83b6cf4..0000000 --- a/views/node_modules/class-validator/esm5/utils/get-global.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"get-global.util.js","sourceRoot":"","sources":["../../../src/utils/get-global.util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,SAAS;IACvB,IAAI,OAAO,UAAU,KAAK,WAAW,EAAE;QACrC,OAAO,UAAU,CAAC;KACnB;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,yCAAyC;IACzC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,6DAA6D;QAC7D,yCAAyC;QACzC,OAAO,MAAM,CAAC;KACf;IAED,6DAA6D;IAC7D,uCAAuC;IACvC,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;QAC/B,6DAA6D;QAC7D,uCAAuC;QACvC,OAAO,IAAI,CAAC;KACb;AACH,CAAC","sourcesContent":["/**\n * This function returns the global object across Node and browsers.\n *\n * Note: `globalThis` is the standardized approach however it has been added to\n * Node.js in version 12. We need to include this snippet until Node 12 EOL.\n */\nexport function getGlobal() {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n\n if (typeof global !== 'undefined') {\n return global;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'window'.\n return window;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n if (typeof self !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Cannot find name 'self'.\n return self;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/utils/index.js b/views/node_modules/class-validator/esm5/utils/index.js deleted file mode 100644 index 827eaa7..0000000 --- a/views/node_modules/class-validator/esm5/utils/index.js +++ /dev/null @@ -1,4 +0,0 @@ -export * from './convert-to-array.util'; -export * from './get-global.util'; -export * from './is-promise.util'; -//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/utils/index.js.map b/views/node_modules/class-validator/esm5/utils/index.js.map deleted file mode 100644 index 5ae486c..0000000 --- a/views/node_modules/class-validator/esm5/utils/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC","sourcesContent":["export * from './convert-to-array.util';\nexport * from './get-global.util';\nexport * from './is-promise.util';\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/utils/is-promise.util.js b/views/node_modules/class-validator/esm5/utils/is-promise.util.js deleted file mode 100644 index c669c1b..0000000 --- a/views/node_modules/class-validator/esm5/utils/is-promise.util.js +++ /dev/null @@ -1,5 +0,0 @@ -// https://github.com/TylorS/typed-is-promise/blob/abf1514e1b6961adfc75765476b0debb96b2c3ae/src/index.ts -export function isPromise(p) { - return p !== null && typeof p === 'object' && typeof p.then === 'function'; -} -//# sourceMappingURL=is-promise.util.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/utils/is-promise.util.js.map b/views/node_modules/class-validator/esm5/utils/is-promise.util.js.map deleted file mode 100644 index a06a8c5..0000000 --- a/views/node_modules/class-validator/esm5/utils/is-promise.util.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"is-promise.util.js","sourceRoot":"","sources":["../../../src/utils/is-promise.util.ts"],"names":[],"mappings":"AAAA,wGAAwG;AAExG,MAAM,UAAU,SAAS,CAAU,CAAM;IACvC,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;AAC7E,CAAC","sourcesContent":["// https://github.com/TylorS/typed-is-promise/blob/abf1514e1b6961adfc75765476b0debb96b2c3ae/src/index.ts\n\nexport function isPromise(p: any): p is Promise {\n return p !== null && typeof p === 'object' && typeof p.then === 'function';\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation-schema/ValidationSchema.js b/views/node_modules/class-validator/esm5/validation-schema/ValidationSchema.js deleted file mode 100644 index bb7c405..0000000 --- a/views/node_modules/class-validator/esm5/validation-schema/ValidationSchema.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ValidationSchema.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation-schema/ValidationSchema.js.map b/views/node_modules/class-validator/esm5/validation-schema/ValidationSchema.js.map deleted file mode 100644 index 27cc488..0000000 --- a/views/node_modules/class-validator/esm5/validation-schema/ValidationSchema.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationSchema.js","sourceRoot":"","sources":["../../../src/validation-schema/ValidationSchema.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Validation schema is a decorator-free way of validation of your objects.\n * Also using validation schemas makes this library to be easily used with es6/es5.\n */\nexport interface ValidationSchema {\n /**\n * Schema name. This is required, because we tell validator to validate by this schema using its name.\n */\n name: string;\n\n /**\n * Validated properties.\n */\n properties: {\n /**\n * Name of the object's property to be validated which holds an array of validation constraints.\n */\n [propertyName: string]: {\n /**\n * Validation type. Should be one of the ValidationTypes value.\n */\n type: string;\n\n /**\n * Constraints set by validation type.\n */\n constraints?: any[];\n\n /**\n * Error message used to be used on validation fail.\n * You can use \"$value\" to use value that was failed by validation.\n * You can use \"$constraint1\" and \"$constraint2\" keys in the message string,\n * and they will be replaced with constraint values if they exist.\n * Message can be either string, either a function that returns a string.\n * Second option allows to use values and custom messages depend of them.\n */\n message?: string | ((value?: any, constraint1?: any, constraint2?: any) => string);\n\n /**\n * Specifies if validated value is an array and each of its item must be validated.\n */\n each?: boolean;\n\n /**\n * Indicates if validation must be performed always, no matter of validation groups used.\n */\n always?: boolean;\n\n /**\n * Validation groups used for this validation.\n */\n groups?: string[];\n\n /**\n * Specific validation type options.\n */\n options?: any;\n }[];\n };\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js b/views/node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js deleted file mode 100644 index 6df0a64..0000000 --- a/views/node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js +++ /dev/null @@ -1,34 +0,0 @@ -import { ValidationMetadata } from '../metadata/ValidationMetadata'; -/** - * Used to transform validation schemas to validation metadatas. - */ -var ValidationSchemaToMetadataTransformer = /** @class */ (function () { - function ValidationSchemaToMetadataTransformer() { - } - ValidationSchemaToMetadataTransformer.prototype.transform = function (schema) { - var metadatas = []; - Object.keys(schema.properties).forEach(function (property) { - schema.properties[property].forEach(function (validation) { - var validationOptions = { - message: validation.message, - groups: validation.groups, - always: validation.always, - each: validation.each, - }; - var args = { - type: validation.type, - target: schema.name, - propertyName: property, - constraints: validation.constraints, - validationTypeOptions: validation.options, - validationOptions: validationOptions, - }; - metadatas.push(new ValidationMetadata(args)); - }); - }); - return metadatas; - }; - return ValidationSchemaToMetadataTransformer; -}()); -export { ValidationSchemaToMetadataTransformer }; -//# sourceMappingURL=ValidationSchemaToMetadataTransformer.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js.map b/views/node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js.map deleted file mode 100644 index 8747e36..0000000 --- a/views/node_modules/class-validator/esm5/validation-schema/ValidationSchemaToMetadataTransformer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationSchemaToMetadataTransformer.js","sourceRoot":"","sources":["../../../src/validation-schema/ValidationSchemaToMetadataTransformer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAIpE;;GAEG;AACH;IAAA;IAwBA,CAAC;IAvBC,yDAAS,GAAT,UAAU,MAAwB;QAChC,IAAM,SAAS,GAAyB,EAAE,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAA,QAAQ;YAC7C,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAA,UAAU;gBAC5C,IAAM,iBAAiB,GAAsB;oBAC3C,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,IAAI,EAAE,UAAU,CAAC,IAAI;iBACtB,CAAC;gBACF,IAAM,IAAI,GAA2B;oBACnC,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,MAAM,EAAE,MAAM,CAAC,IAAI;oBACnB,YAAY,EAAE,QAAQ;oBACtB,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,qBAAqB,EAAE,UAAU,CAAC,OAAO;oBACzC,iBAAiB,EAAE,iBAAiB;iBACrC,CAAC;gBACF,SAAS,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IACH,4CAAC;AAAD,CAAC,AAxBD,IAwBC","sourcesContent":["import { ValidationSchema } from './ValidationSchema';\nimport { ValidationMetadata } from '../metadata/ValidationMetadata';\nimport { ValidationMetadataArgs } from '../metadata/ValidationMetadataArgs';\nimport { ValidationOptions } from '../decorator/ValidationOptions';\n\n/**\n * Used to transform validation schemas to validation metadatas.\n */\nexport class ValidationSchemaToMetadataTransformer {\n transform(schema: ValidationSchema): ValidationMetadata[] {\n const metadatas: ValidationMetadata[] = [];\n Object.keys(schema.properties).forEach(property => {\n schema.properties[property].forEach(validation => {\n const validationOptions: ValidationOptions = {\n message: validation.message,\n groups: validation.groups,\n always: validation.always,\n each: validation.each,\n };\n const args: ValidationMetadataArgs = {\n type: validation.type,\n target: schema.name,\n propertyName: property,\n constraints: validation.constraints,\n validationTypeOptions: validation.options,\n validationOptions: validationOptions,\n };\n metadatas.push(new ValidationMetadata(args));\n });\n });\n return metadatas;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidationArguments.js b/views/node_modules/class-validator/esm5/validation/ValidationArguments.js deleted file mode 100644 index e6b559f..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidationArguments.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ValidationArguments.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidationArguments.js.map b/views/node_modules/class-validator/esm5/validation/ValidationArguments.js.map deleted file mode 100644 index c2b0f6f..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidationArguments.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationArguments.js","sourceRoot":"","sources":["../../../src/validation/ValidationArguments.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Arguments being sent to message builders - user can create message either by simply returning a string,\n * either by returning a function that accepts MessageArguments and returns a message string built based on these arguments.\n */\nexport interface ValidationArguments {\n /**\n * Validating value.\n */\n value: any;\n\n /**\n * Constraints set by this validation type.\n */\n constraints: any[];\n\n /**\n * Name of the target that is being validated.\n */\n targetName: string;\n\n /**\n * Object that is being validated.\n */\n object: object;\n\n /**\n * Name of the object's property being validated.\n */\n property: string;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidationError.js b/views/node_modules/class-validator/esm5/validation/ValidationError.js deleted file mode 100644 index 0725423..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidationError.js +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Validation error description. - */ -var ValidationError = /** @class */ (function () { - function ValidationError() { - } - /** - * - * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability - * @param hasParent true when the error is a child of an another one - * @param parentPath path as string to the parent of this property - */ - ValidationError.prototype.toString = function (shouldDecorate, hasParent, parentPath) { - var _this = this; - if (shouldDecorate === void 0) { shouldDecorate = false; } - if (hasParent === void 0) { hasParent = false; } - if (parentPath === void 0) { parentPath = ""; } - var boldStart = shouldDecorate ? "\u001B[1m" : ""; - var boldEnd = shouldDecorate ? "\u001B[22m" : ""; - var propConstraintFailed = function (propertyName) { - return " - property " + boldStart + parentPath + propertyName + boldEnd + " has failed the following constraints: " + boldStart + Object.keys(_this.constraints).join(", ") + boldEnd + " \n"; - }; - if (!hasParent) { - return ("An instance of " + boldStart + (this.target ? this.target.constructor.name : 'an object') + boldEnd + " has failed the validation:\n" + - (this.constraints ? propConstraintFailed(this.property) : "") + - (this.children - ? this.children.map(function (childError) { return childError.toString(shouldDecorate, true, _this.property); }).join("") - : "")); - } - else { - // we format numbers as array indexes for better readability. - var formattedProperty_1 = Number.isInteger(+this.property) - ? "[" + this.property + "]" - : "" + (parentPath ? "." : "") + this.property; - if (this.constraints) { - return propConstraintFailed(formattedProperty_1); - } - else { - return this.children - ? this.children - .map(function (childError) { return childError.toString(shouldDecorate, true, "" + parentPath + formattedProperty_1); }) - .join("") - : ""; - } - } - }; - return ValidationError; -}()); -export { ValidationError }; -//# sourceMappingURL=ValidationError.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidationError.js.map b/views/node_modules/class-validator/esm5/validation/ValidationError.js.map deleted file mode 100644 index 22bb223..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidationError.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationError.js","sourceRoot":"","sources":["../../../src/validation/ValidationError.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;IAAA;IAgFA,CAAC;IAzCC;;;;;OAKG;IACH,kCAAQ,GAAR,UAAS,cAA+B,EAAE,SAA0B,EAAE,UAAuB;QAA7F,iBAkCC;QAlCQ,+BAAA,EAAA,sBAA+B;QAAE,0BAAA,EAAA,iBAA0B;QAAE,2BAAA,EAAA,eAAuB;QAC3F,IAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,WAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,IAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,YAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,IAAM,oBAAoB,GAAG,UAAC,YAAoB;YAChD,OAAA,iBAAe,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,+CAA0C,SAAS,GAAG,MAAM,CAAC,IAAI,CAC7H,KAAI,CAAC,WAAW,CACjB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,QAAK;QAF3B,CAE2B,CAAC;QAE9B,IAAI,CAAC,SAAS,EAAE;YACd,OAAO,CACL,oBAAkB,SAAS,IACzB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,IACvD,OAAO,kCAA+B;gBACzC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,CAAC,IAAI,CAAC,QAAQ;oBACZ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,KAAI,CAAC,QAAQ,CAAC,EAAxD,CAAwD,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;oBACpG,CAAC,CAAC,EAAE,CAAC,CACR,CAAC;SACH;aAAM;YACL,6DAA6D;YAC7D,IAAM,mBAAiB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;gBACxD,CAAC,CAAC,MAAI,IAAI,CAAC,QAAQ,MAAG;gBACtB,CAAC,CAAC,MAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAG,IAAI,CAAC,QAAU,CAAC;YAE/C,IAAI,IAAI,CAAC,WAAW,EAAE;gBACpB,OAAO,oBAAoB,CAAC,mBAAiB,CAAC,CAAC;aAChD;iBAAM;gBACL,OAAO,IAAI,CAAC,QAAQ;oBAClB,CAAC,CAAC,IAAI,CAAC,QAAQ;yBACV,GAAG,CAAC,UAAA,UAAU,IAAI,OAAA,UAAU,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,EAAE,KAAG,UAAU,GAAG,mBAAmB,CAAC,EAA9E,CAA8E,CAAC;yBACjG,IAAI,CAAC,EAAE,CAAC;oBACb,CAAC,CAAC,EAAE,CAAC;aACR;SACF;IACH,CAAC;IACH,sBAAC;AAAD,CAAC,AAhFD,IAgFC","sourcesContent":["/**\n * Validation error description.\n */\nexport class ValidationError {\n /**\n * Object that was validated.\n *\n * OPTIONAL - configurable via the ValidatorOptions.validationError.target option\n */\n target?: object;\n\n /**\n * Object's property that haven't pass validation.\n */\n property: string;\n\n /**\n * Value that haven't pass a validation.\n *\n * OPTIONAL - configurable via the ValidatorOptions.validationError.value option\n */\n value?: any;\n\n /**\n * Constraints that failed validation with error messages.\n */\n constraints?: {\n [type: string]: string;\n };\n\n /**\n * Contains all nested validation errors of the property.\n */\n children?: ValidationError[];\n\n /*\n * A transient set of data passed through to the validation result for response mapping\n */\n contexts?: {\n [type: string]: any;\n };\n\n /**\n *\n * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability\n * @param hasParent true when the error is a child of an another one\n * @param parentPath path as string to the parent of this property\n */\n toString(shouldDecorate: boolean = false, hasParent: boolean = false, parentPath: string = ``): string {\n const boldStart = shouldDecorate ? `\\x1b[1m` : ``;\n const boldEnd = shouldDecorate ? `\\x1b[22m` : ``;\n const propConstraintFailed = (propertyName: string): string =>\n ` - property ${boldStart}${parentPath}${propertyName}${boldEnd} has failed the following constraints: ${boldStart}${Object.keys(\n this.constraints\n ).join(`, `)}${boldEnd} \\n`;\n\n if (!hasParent) {\n return (\n `An instance of ${boldStart}${\n this.target ? this.target.constructor.name : 'an object'\n }${boldEnd} has failed the validation:\\n` +\n (this.constraints ? propConstraintFailed(this.property) : ``) +\n (this.children\n ? this.children.map(childError => childError.toString(shouldDecorate, true, this.property)).join(``)\n : ``)\n );\n } else {\n // we format numbers as array indexes for better readability.\n const formattedProperty = Number.isInteger(+this.property)\n ? `[${this.property}]`\n : `${parentPath ? `.` : ``}${this.property}`;\n\n if (this.constraints) {\n return propConstraintFailed(formattedProperty);\n } else {\n return this.children\n ? this.children\n .map(childError => childError.toString(shouldDecorate, true, `${parentPath}${formattedProperty}`))\n .join(``)\n : ``;\n }\n }\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidationExecutor.js b/views/node_modules/class-validator/esm5/validation/ValidationExecutor.js deleted file mode 100644 index ca9b315..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidationExecutor.js +++ /dev/null @@ -1,334 +0,0 @@ -import { ValidationError } from './ValidationError'; -import { ValidationTypes } from './ValidationTypes'; -import { ValidationUtils } from './ValidationUtils'; -import { isPromise, convertToArray } from '../utils'; -import { getMetadataStorage } from '../metadata/MetadataStorage'; -/** - * Executes validation over given object. - */ -var ValidationExecutor = /** @class */ (function () { - // ------------------------------------------------------------------------- - // Constructor - // ------------------------------------------------------------------------- - function ValidationExecutor(validator, validatorOptions) { - this.validator = validator; - this.validatorOptions = validatorOptions; - // ------------------------------------------------------------------------- - // Properties - // ------------------------------------------------------------------------- - this.awaitingPromises = []; - this.ignoreAsyncValidations = false; - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - this.metadataStorage = getMetadataStorage(); - } - // ------------------------------------------------------------------------- - // Public Methods - // ------------------------------------------------------------------------- - ValidationExecutor.prototype.execute = function (object, targetSchema, validationErrors) { - var _this = this; - var _a; - /** - * If there is no metadata registered it means possibly the dependencies are not flatterned and - * more than one instance is used. - * - * TODO: This needs proper handling, forcing to use the same container or some other proper solution. - */ - if (!this.metadataStorage.hasValidationMetaData && ((_a = this.validatorOptions) === null || _a === void 0 ? void 0 : _a.enableDebugMessages) === true) { - console.warn("No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies."); - } - var groups = this.validatorOptions ? this.validatorOptions.groups : undefined; - var strictGroups = (this.validatorOptions && this.validatorOptions.strictGroups) || false; - var always = (this.validatorOptions && this.validatorOptions.always) || false; - var targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(object.constructor, targetSchema, always, strictGroups, groups); - var groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas); - if (this.validatorOptions && this.validatorOptions.forbidUnknownValues && !targetMetadatas.length) { - var validationError = new ValidationError(); - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.target === undefined || - this.validatorOptions.validationError.target === true) - validationError.target = object; - validationError.value = undefined; - validationError.property = undefined; - validationError.children = []; - validationError.constraints = { unknownValue: 'an unknown value was passed to the validate function' }; - validationErrors.push(validationError); - return; - } - if (this.validatorOptions && this.validatorOptions.whitelist) - this.whitelist(object, groupedMetadatas, validationErrors); - // General validation - Object.keys(groupedMetadatas).forEach(function (propertyName) { - var value = object[propertyName]; - var definedMetadatas = groupedMetadatas[propertyName].filter(function (metadata) { return metadata.type === ValidationTypes.IS_DEFINED; }); - var metadatas = groupedMetadatas[propertyName].filter(function (metadata) { return metadata.type !== ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes.WHITELIST; }); - if (value instanceof Promise && - metadatas.find(function (metadata) { return metadata.type === ValidationTypes.PROMISE_VALIDATION; })) { - _this.awaitingPromises.push(value.then(function (resolvedValue) { - _this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors); - })); - } - else { - _this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors); - } - }); - }; - ValidationExecutor.prototype.whitelist = function (object, groupedMetadatas, validationErrors) { - var _this = this; - var notAllowedProperties = []; - Object.keys(object).forEach(function (propertyName) { - // does this property have no metadata? - if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0) - notAllowedProperties.push(propertyName); - }); - if (notAllowedProperties.length > 0) { - if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) { - // throw errors - notAllowedProperties.forEach(function (property) { - var _a; - var validationError = _this.generateValidationError(object, object[property], property); - validationError.constraints = (_a = {}, _a[ValidationTypes.WHITELIST] = "property " + property + " should not exist", _a); - validationError.children = undefined; - validationErrors.push(validationError); - }); - } - else { - // strip non allowed properties - notAllowedProperties.forEach(function (property) { return delete object[property]; }); - } - } - }; - ValidationExecutor.prototype.stripEmptyErrors = function (errors) { - var _this = this; - return errors.filter(function (error) { - if (error.children) { - error.children = _this.stripEmptyErrors(error.children); - } - if (Object.keys(error.constraints).length === 0) { - if (error.children.length === 0) { - return false; - } - else { - delete error.constraints; - } - } - return true; - }); - }; - // ------------------------------------------------------------------------- - // Private Methods - // ------------------------------------------------------------------------- - ValidationExecutor.prototype.performValidations = function (object, value, propertyName, definedMetadatas, metadatas, validationErrors) { - var customValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.CUSTOM_VALIDATION; }); - var nestedValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.NESTED_VALIDATION; }); - var conditionalValidationMetadatas = metadatas.filter(function (metadata) { return metadata.type === ValidationTypes.CONDITIONAL_VALIDATION; }); - var validationError = this.generateValidationError(object, value, propertyName); - validationErrors.push(validationError); - var canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas); - if (!canValidate) { - return; - } - // handle IS_DEFINED validation type the special way - it should work no matter skipUndefinedProperties/skipMissingProperties is set or not - this.customValidations(object, value, definedMetadatas, validationError); - this.mapContexts(object, value, definedMetadatas, validationError); - if (value === undefined && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) { - return; - } - if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) { - return; - } - if ((value === null || value === undefined) && - this.validatorOptions && - this.validatorOptions.skipMissingProperties === true) { - return; - } - this.customValidations(object, value, customValidationMetadatas, validationError); - this.nestedValidations(value, nestedValidationMetadatas, validationError.children); - this.mapContexts(object, value, metadatas, validationError); - this.mapContexts(object, value, customValidationMetadatas, validationError); - }; - ValidationExecutor.prototype.generateValidationError = function (object, value, propertyName) { - var validationError = new ValidationError(); - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.target === undefined || - this.validatorOptions.validationError.target === true) - validationError.target = object; - if (!this.validatorOptions || - !this.validatorOptions.validationError || - this.validatorOptions.validationError.value === undefined || - this.validatorOptions.validationError.value === true) - validationError.value = value; - validationError.property = propertyName; - validationError.children = []; - validationError.constraints = {}; - return validationError; - }; - ValidationExecutor.prototype.conditionalValidations = function (object, value, metadatas) { - return metadatas - .map(function (metadata) { return metadata.constraints[0](object, value); }) - .reduce(function (resultA, resultB) { return resultA && resultB; }, true); - }; - ValidationExecutor.prototype.customValidations = function (object, value, metadatas, error) { - var _this = this; - metadatas.forEach(function (metadata) { - _this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls).forEach(function (customConstraintMetadata) { - if (customConstraintMetadata.async && _this.ignoreAsyncValidations) - return; - if (_this.validatorOptions && - _this.validatorOptions.stopAtFirstError && - Object.keys(error.constraints || {}).length > 0) - return; - var validationArguments = { - targetName: object.constructor ? object.constructor.name : undefined, - property: metadata.propertyName, - object: object, - value: value, - constraints: metadata.constraints, - }; - if (!metadata.each || !(value instanceof Array || value instanceof Set || value instanceof Map)) { - var validatedValue = customConstraintMetadata.instance.validate(value, validationArguments); - if (isPromise(validatedValue)) { - var promise = validatedValue.then(function (isValid) { - if (!isValid) { - var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1]; - error.constraints[type] = message; - if (metadata.context) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - _this.awaitingPromises.push(promise); - } - else { - if (!validatedValue) { - var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1]; - error.constraints[type] = message; - } - } - return; - } - // convert set and map into array - var arrayValue = convertToArray(value); - // Validation needs to be applied to each array item - var validatedSubValues = arrayValue.map(function (subValue) { - return customConstraintMetadata.instance.validate(subValue, validationArguments); - }); - var validationIsAsync = validatedSubValues.some(function (validatedSubValue) { - return isPromise(validatedSubValue); - }); - if (validationIsAsync) { - // Wrap plain values (if any) in promises, so that all are async - var asyncValidatedSubValues = validatedSubValues.map(function (validatedSubValue) { - return isPromise(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue); - }); - var asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues).then(function (flatValidatedValues) { - var validationResult = flatValidatedValues.every(function (isValid) { return isValid; }); - if (!validationResult) { - var _a = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _a[0], message = _a[1]; - error.constraints[type] = message; - if (metadata.context) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - _this.awaitingPromises.push(asyncValidationIsFinishedPromise); - return; - } - var validationResult = validatedSubValues.every(function (isValid) { return isValid; }); - if (!validationResult) { - var _b = _this.createValidationError(object, value, metadata, customConstraintMetadata), type = _b[0], message = _b[1]; - error.constraints[type] = message; - } - }); - }); - }; - ValidationExecutor.prototype.nestedValidations = function (value, metadatas, errors) { - var _this = this; - if (value === void 0) { - return; - } - metadatas.forEach(function (metadata) { - var _a; - if (metadata.type !== ValidationTypes.NESTED_VALIDATION && metadata.type !== ValidationTypes.PROMISE_VALIDATION) { - return; - } - if (value instanceof Array || value instanceof Set || value instanceof Map) { - // Treats Set as an array - as index of Set value is value itself and it is common case to have Object as value - var arrayLikeValue = value instanceof Set ? Array.from(value) : value; - arrayLikeValue.forEach(function (subValue, index) { - _this.performValidations(value, subValue, index.toString(), [], metadatas, errors); - }); - } - else if (value instanceof Object) { - var targetSchema = typeof metadata.target === 'string' ? metadata.target : metadata.target.name; - _this.execute(value, targetSchema, errors); - } - else { - var error = new ValidationError(); - error.value = value; - error.property = metadata.propertyName; - error.target = metadata.target; - var _b = _this.createValidationError(metadata.target, value, metadata), type = _b[0], message = _b[1]; - error.constraints = (_a = {}, - _a[type] = message, - _a); - errors.push(error); - } - }); - }; - ValidationExecutor.prototype.mapContexts = function (object, value, metadatas, error) { - var _this = this; - return metadatas.forEach(function (metadata) { - if (metadata.context) { - var customConstraint = void 0; - if (metadata.type === ValidationTypes.CUSTOM_VALIDATION) { - var customConstraints = _this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls); - customConstraint = customConstraints[0]; - } - var type = _this.getConstraintType(metadata, customConstraint); - if (error.constraints[type]) { - if (!error.contexts) { - error.contexts = {}; - } - error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context); - } - } - }); - }; - ValidationExecutor.prototype.createValidationError = function (object, value, metadata, customValidatorMetadata) { - var targetName = object.constructor ? object.constructor.name : undefined; - var type = this.getConstraintType(metadata, customValidatorMetadata); - var validationArguments = { - targetName: targetName, - property: metadata.propertyName, - object: object, - value: value, - constraints: metadata.constraints, - }; - var message = metadata.message || ''; - if (!metadata.message && - (!this.validatorOptions || (this.validatorOptions && !this.validatorOptions.dismissDefaultMessages))) { - if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) { - message = customValidatorMetadata.instance.defaultMessage(validationArguments); - } - } - var messageString = ValidationUtils.replaceMessageSpecialTokens(message, validationArguments); - return [type, messageString]; - }; - ValidationExecutor.prototype.getConstraintType = function (metadata, customValidatorMetadata) { - var type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type; - return type; - }; - return ValidationExecutor; -}()); -export { ValidationExecutor }; -//# sourceMappingURL=ValidationExecutor.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidationExecutor.js.map b/views/node_modules/class-validator/esm5/validation/ValidationExecutor.js.map deleted file mode 100644 index d7d0525..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidationExecutor.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationExecutor.js","sourceRoot":"","sources":["../../../src/validation/ValidationExecutor.ts"],"names":[],"mappings":"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","sourcesContent":["import { Validator } from './Validator';\nimport { ValidationError } from './ValidationError';\nimport { ValidationMetadata } from '../metadata/ValidationMetadata';\nimport { ValidatorOptions } from './ValidatorOptions';\nimport { ValidationTypes } from './ValidationTypes';\nimport { ConstraintMetadata } from '../metadata/ConstraintMetadata';\nimport { ValidationArguments } from './ValidationArguments';\nimport { ValidationUtils } from './ValidationUtils';\nimport { isPromise, convertToArray } from '../utils';\nimport { getMetadataStorage } from '../metadata/MetadataStorage';\n\n/**\n * Executes validation over given object.\n */\nexport class ValidationExecutor {\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n\n awaitingPromises: Promise[] = [];\n ignoreAsyncValidations: boolean = false;\n\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n\n private metadataStorage = getMetadataStorage();\n\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n\n constructor(private validator: Validator, private validatorOptions?: ValidatorOptions) {}\n\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n execute(object: object, targetSchema: string, validationErrors: ValidationError[]): void {\n /**\n * If there is no metadata registered it means possibly the dependencies are not flatterned and\n * more than one instance is used.\n *\n * TODO: This needs proper handling, forcing to use the same container or some other proper solution.\n */\n if (!this.metadataStorage.hasValidationMetaData && this.validatorOptions?.enableDebugMessages === true) {\n console.warn(\n `No metadata found. There is more than once class-validator version installed probably. You need to flatten your dependencies.`\n );\n }\n\n const groups = this.validatorOptions ? this.validatorOptions.groups : undefined;\n const strictGroups = (this.validatorOptions && this.validatorOptions.strictGroups) || false;\n const always = (this.validatorOptions && this.validatorOptions.always) || false;\n\n const targetMetadatas = this.metadataStorage.getTargetValidationMetadatas(\n object.constructor,\n targetSchema,\n always,\n strictGroups,\n groups\n );\n const groupedMetadatas = this.metadataStorage.groupByPropertyName(targetMetadatas);\n\n if (this.validatorOptions && this.validatorOptions.forbidUnknownValues && !targetMetadatas.length) {\n const validationError = new ValidationError();\n\n if (\n !this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true\n )\n validationError.target = object;\n\n validationError.value = undefined;\n validationError.property = undefined;\n validationError.children = [];\n validationError.constraints = { unknownValue: 'an unknown value was passed to the validate function' };\n\n validationErrors.push(validationError);\n\n return;\n }\n\n if (this.validatorOptions && this.validatorOptions.whitelist)\n this.whitelist(object, groupedMetadatas, validationErrors);\n\n // General validation\n Object.keys(groupedMetadatas).forEach(propertyName => {\n const value = (object as any)[propertyName];\n const definedMetadatas = groupedMetadatas[propertyName].filter(\n metadata => metadata.type === ValidationTypes.IS_DEFINED\n );\n const metadatas = groupedMetadatas[propertyName].filter(\n metadata => metadata.type !== ValidationTypes.IS_DEFINED && metadata.type !== ValidationTypes.WHITELIST\n );\n\n if (\n value instanceof Promise &&\n metadatas.find(metadata => metadata.type === ValidationTypes.PROMISE_VALIDATION)\n ) {\n this.awaitingPromises.push(\n value.then(resolvedValue => {\n this.performValidations(object, resolvedValue, propertyName, definedMetadatas, metadatas, validationErrors);\n })\n );\n } else {\n this.performValidations(object, value, propertyName, definedMetadatas, metadatas, validationErrors);\n }\n });\n }\n\n whitelist(\n object: any,\n groupedMetadatas: { [propertyName: string]: ValidationMetadata[] },\n validationErrors: ValidationError[]\n ): void {\n const notAllowedProperties: string[] = [];\n\n Object.keys(object).forEach(propertyName => {\n // does this property have no metadata?\n if (!groupedMetadatas[propertyName] || groupedMetadatas[propertyName].length === 0)\n notAllowedProperties.push(propertyName);\n });\n\n if (notAllowedProperties.length > 0) {\n if (this.validatorOptions && this.validatorOptions.forbidNonWhitelisted) {\n // throw errors\n notAllowedProperties.forEach(property => {\n const validationError: ValidationError = this.generateValidationError(object, object[property], property);\n validationError.constraints = { [ValidationTypes.WHITELIST]: `property ${property} should not exist` };\n validationError.children = undefined;\n validationErrors.push(validationError);\n });\n } else {\n // strip non allowed properties\n notAllowedProperties.forEach(property => delete object[property]);\n }\n }\n }\n\n stripEmptyErrors(errors: ValidationError[]): ValidationError[] {\n return errors.filter(error => {\n if (error.children) {\n error.children = this.stripEmptyErrors(error.children);\n }\n\n if (Object.keys(error.constraints).length === 0) {\n if (error.children.length === 0) {\n return false;\n } else {\n delete error.constraints;\n }\n }\n\n return true;\n });\n }\n\n // -------------------------------------------------------------------------\n // Private Methods\n // -------------------------------------------------------------------------\n\n private performValidations(\n object: any,\n value: any,\n propertyName: string,\n definedMetadatas: ValidationMetadata[],\n metadatas: ValidationMetadata[],\n validationErrors: ValidationError[]\n ): void {\n const customValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.CUSTOM_VALIDATION);\n const nestedValidationMetadatas = metadatas.filter(metadata => metadata.type === ValidationTypes.NESTED_VALIDATION);\n const conditionalValidationMetadatas = metadatas.filter(\n metadata => metadata.type === ValidationTypes.CONDITIONAL_VALIDATION\n );\n\n const validationError = this.generateValidationError(object, value, propertyName);\n validationErrors.push(validationError);\n\n const canValidate = this.conditionalValidations(object, value, conditionalValidationMetadatas);\n if (!canValidate) {\n return;\n }\n\n // handle IS_DEFINED validation type the special way - it should work no matter skipUndefinedProperties/skipMissingProperties is set or not\n this.customValidations(object, value, definedMetadatas, validationError);\n this.mapContexts(object, value, definedMetadatas, validationError);\n\n if (value === undefined && this.validatorOptions && this.validatorOptions.skipUndefinedProperties === true) {\n return;\n }\n\n if (value === null && this.validatorOptions && this.validatorOptions.skipNullProperties === true) {\n return;\n }\n\n if (\n (value === null || value === undefined) &&\n this.validatorOptions &&\n this.validatorOptions.skipMissingProperties === true\n ) {\n return;\n }\n\n this.customValidations(object, value, customValidationMetadatas, validationError);\n this.nestedValidations(value, nestedValidationMetadatas, validationError.children);\n\n this.mapContexts(object, value, metadatas, validationError);\n this.mapContexts(object, value, customValidationMetadatas, validationError);\n }\n\n private generateValidationError(object: object, value: any, propertyName: string): ValidationError {\n const validationError = new ValidationError();\n\n if (\n !this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.target === undefined ||\n this.validatorOptions.validationError.target === true\n )\n validationError.target = object;\n\n if (\n !this.validatorOptions ||\n !this.validatorOptions.validationError ||\n this.validatorOptions.validationError.value === undefined ||\n this.validatorOptions.validationError.value === true\n )\n validationError.value = value;\n\n validationError.property = propertyName;\n validationError.children = [];\n validationError.constraints = {};\n\n return validationError;\n }\n\n private conditionalValidations(object: object, value: any, metadatas: ValidationMetadata[]): ValidationMetadata[] {\n return metadatas\n .map(metadata => metadata.constraints[0](object, value))\n .reduce((resultA, resultB) => resultA && resultB, true);\n }\n\n private customValidations(object: object, value: any, metadatas: ValidationMetadata[], error: ValidationError): void {\n metadatas.forEach(metadata => {\n this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls).forEach(customConstraintMetadata => {\n if (customConstraintMetadata.async && this.ignoreAsyncValidations) return;\n if (\n this.validatorOptions &&\n this.validatorOptions.stopAtFirstError &&\n Object.keys(error.constraints || {}).length > 0\n )\n return;\n\n const validationArguments: ValidationArguments = {\n targetName: object.constructor ? (object.constructor as any).name : undefined,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n\n if (!metadata.each || !(value instanceof Array || value instanceof Set || value instanceof Map)) {\n const validatedValue = customConstraintMetadata.instance.validate(value, validationArguments);\n if (isPromise(validatedValue)) {\n const promise = validatedValue.then(isValid => {\n if (!isValid) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n this.awaitingPromises.push(promise);\n } else {\n if (!validatedValue) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n }\n }\n\n return;\n }\n\n // convert set and map into array\n const arrayValue = convertToArray(value);\n // Validation needs to be applied to each array item\n const validatedSubValues = arrayValue.map((subValue: any) =>\n customConstraintMetadata.instance.validate(subValue, validationArguments)\n );\n const validationIsAsync = validatedSubValues.some((validatedSubValue: boolean | Promise) =>\n isPromise(validatedSubValue)\n );\n\n if (validationIsAsync) {\n // Wrap plain values (if any) in promises, so that all are async\n const asyncValidatedSubValues = validatedSubValues.map((validatedSubValue: boolean | Promise) =>\n isPromise(validatedSubValue) ? validatedSubValue : Promise.resolve(validatedSubValue)\n );\n const asyncValidationIsFinishedPromise = Promise.all(asyncValidatedSubValues).then(\n (flatValidatedValues: boolean[]) => {\n const validationResult = flatValidatedValues.every((isValid: boolean) => isValid);\n if (!validationResult) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n if (metadata.context) {\n if (!error.contexts) {\n error.contexts = {};\n }\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n }\n );\n\n this.awaitingPromises.push(asyncValidationIsFinishedPromise);\n\n return;\n }\n\n const validationResult = validatedSubValues.every((isValid: boolean) => isValid);\n if (!validationResult) {\n const [type, message] = this.createValidationError(object, value, metadata, customConstraintMetadata);\n error.constraints[type] = message;\n }\n });\n });\n }\n\n private nestedValidations(value: any, metadatas: ValidationMetadata[], errors: ValidationError[]): void {\n if (value === void 0) {\n return;\n }\n\n metadatas.forEach(metadata => {\n if (metadata.type !== ValidationTypes.NESTED_VALIDATION && metadata.type !== ValidationTypes.PROMISE_VALIDATION) {\n return;\n }\n\n if (value instanceof Array || value instanceof Set || value instanceof Map) {\n // Treats Set as an array - as index of Set value is value itself and it is common case to have Object as value\n const arrayLikeValue = value instanceof Set ? Array.from(value) : value;\n arrayLikeValue.forEach((subValue: any, index: any) => {\n this.performValidations(value, subValue, index.toString(), [], metadatas, errors);\n });\n } else if (value instanceof Object) {\n const targetSchema = typeof metadata.target === 'string' ? metadata.target : metadata.target.name;\n this.execute(value, targetSchema, errors);\n } else {\n const error = new ValidationError();\n error.value = value;\n error.property = metadata.propertyName;\n error.target = metadata.target as object;\n const [type, message] = this.createValidationError(metadata.target as object, value, metadata);\n error.constraints = {\n [type]: message,\n };\n errors.push(error);\n }\n });\n }\n\n private mapContexts(object: object, value: any, metadatas: ValidationMetadata[], error: ValidationError): void {\n return metadatas.forEach(metadata => {\n if (metadata.context) {\n let customConstraint;\n if (metadata.type === ValidationTypes.CUSTOM_VALIDATION) {\n const customConstraints = this.metadataStorage.getTargetValidatorConstraints(metadata.constraintCls);\n customConstraint = customConstraints[0];\n }\n\n const type = this.getConstraintType(metadata, customConstraint);\n\n if (error.constraints[type]) {\n if (!error.contexts) {\n error.contexts = {};\n }\n\n error.contexts[type] = Object.assign(error.contexts[type] || {}, metadata.context);\n }\n }\n });\n }\n\n private createValidationError(\n object: object,\n value: any,\n metadata: ValidationMetadata,\n customValidatorMetadata?: ConstraintMetadata\n ): [string, string] {\n const targetName = object.constructor ? (object.constructor as any).name : undefined;\n const type = this.getConstraintType(metadata, customValidatorMetadata);\n const validationArguments: ValidationArguments = {\n targetName: targetName,\n property: metadata.propertyName,\n object: object,\n value: value,\n constraints: metadata.constraints,\n };\n\n let message = metadata.message || '';\n if (\n !metadata.message &&\n (!this.validatorOptions || (this.validatorOptions && !this.validatorOptions.dismissDefaultMessages))\n ) {\n if (customValidatorMetadata && customValidatorMetadata.instance.defaultMessage instanceof Function) {\n message = customValidatorMetadata.instance.defaultMessage(validationArguments);\n }\n }\n\n const messageString = ValidationUtils.replaceMessageSpecialTokens(message, validationArguments);\n return [type, messageString];\n }\n\n private getConstraintType(metadata: ValidationMetadata, customValidatorMetadata?: ConstraintMetadata): string {\n const type = customValidatorMetadata && customValidatorMetadata.name ? customValidatorMetadata.name : metadata.type;\n return type;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidationTypes.js b/views/node_modules/class-validator/esm5/validation/ValidationTypes.js deleted file mode 100644 index f3fc5c1..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidationTypes.js +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Validation types. - */ -var ValidationTypes = /** @class */ (function () { - function ValidationTypes() { - } - /** - * Checks if validation type is valid. - */ - ValidationTypes.isValid = function (type) { - var _this = this; - return (type !== 'isValid' && - type !== 'getMessage' && - Object.keys(this) - .map(function (key) { return _this[key]; }) - .indexOf(type) !== -1); - }; - /* system */ - ValidationTypes.CUSTOM_VALIDATION = 'customValidation'; // done - ValidationTypes.NESTED_VALIDATION = 'nestedValidation'; // done - ValidationTypes.PROMISE_VALIDATION = 'promiseValidation'; // done - ValidationTypes.CONDITIONAL_VALIDATION = 'conditionalValidation'; // done - ValidationTypes.WHITELIST = 'whitelistValidation'; // done - ValidationTypes.IS_DEFINED = 'isDefined'; // done - return ValidationTypes; -}()); -export { ValidationTypes }; -//# sourceMappingURL=ValidationTypes.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidationTypes.js.map b/views/node_modules/class-validator/esm5/validation/ValidationTypes.js.map deleted file mode 100644 index ef73e03..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidationTypes.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationTypes.js","sourceRoot":"","sources":["../../../src/validation/ValidationTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH;IAAA;IAqBA,CAAC;IAZC;;OAEG;IACI,uBAAO,GAAd,UAAe,IAAY;QAA3B,iBAQC;QAPC,OAAO,CACL,IAAI,KAAK,SAAS;YAClB,IAAI,KAAK,YAAY;YACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;iBACd,GAAG,CAAC,UAAA,GAAG,IAAI,OAAC,KAAY,CAAC,GAAG,CAAC,EAAlB,CAAkB,CAAC;iBAC9B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACxB,CAAC;IACJ,CAAC;IAnBD,YAAY;IACL,iCAAiB,GAAG,kBAAkB,CAAC,CAAC,OAAO;IAC/C,iCAAiB,GAAG,kBAAkB,CAAC,CAAC,OAAO;IAC/C,kCAAkB,GAAG,mBAAmB,CAAC,CAAC,OAAO;IACjD,sCAAsB,GAAG,uBAAuB,CAAC,CAAC,OAAO;IACzD,yBAAS,GAAG,qBAAqB,CAAC,CAAC,OAAO;IAC1C,0BAAU,GAAG,WAAW,CAAC,CAAC,OAAO;IAc1C,sBAAC;CAAA,AArBD,IAqBC;SArBY,eAAe","sourcesContent":["/**\n * Validation types.\n */\nexport class ValidationTypes {\n /* system */\n static CUSTOM_VALIDATION = 'customValidation'; // done\n static NESTED_VALIDATION = 'nestedValidation'; // done\n static PROMISE_VALIDATION = 'promiseValidation'; // done\n static CONDITIONAL_VALIDATION = 'conditionalValidation'; // done\n static WHITELIST = 'whitelistValidation'; // done\n static IS_DEFINED = 'isDefined'; // done\n\n /**\n * Checks if validation type is valid.\n */\n static isValid(type: string): boolean {\n return (\n type !== 'isValid' &&\n type !== 'getMessage' &&\n Object.keys(this)\n .map(key => (this as any)[key])\n .indexOf(type) !== -1\n );\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidationUtils.js b/views/node_modules/class-validator/esm5/validation/ValidationUtils.js deleted file mode 100644 index c07c147..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidationUtils.js +++ /dev/null @@ -1,40 +0,0 @@ -/** - * Convert the constraint to a string to be shown in an error - */ -export function constraintToString(constraint) { - if (Array.isArray(constraint)) { - return constraint.join(', '); - } - return "" + constraint; -} -var ValidationUtils = /** @class */ (function () { - function ValidationUtils() { - } - ValidationUtils.replaceMessageSpecialTokens = function (message, validationArguments) { - var messageString; - if (message instanceof Function) { - messageString = message(validationArguments); - } - else if (typeof message === 'string') { - messageString = message; - } - if (messageString && validationArguments.constraints instanceof Array) { - validationArguments.constraints.forEach(function (constraint, index) { - messageString = messageString.replace(new RegExp("\\$constraint" + (index + 1), 'g'), constraintToString(constraint)); - }); - } - if (messageString && - validationArguments.value !== undefined && - validationArguments.value !== null && - typeof validationArguments.value === 'string') - messageString = messageString.replace(/\$value/g, validationArguments.value); - if (messageString) - messageString = messageString.replace(/\$property/g, validationArguments.property); - if (messageString) - messageString = messageString.replace(/\$target/g, validationArguments.targetName); - return messageString; - }; - return ValidationUtils; -}()); -export { ValidationUtils }; -//# sourceMappingURL=ValidationUtils.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidationUtils.js.map b/views/node_modules/class-validator/esm5/validation/ValidationUtils.js.map deleted file mode 100644 index faffc02..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidationUtils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidationUtils.js","sourceRoot":"","sources":["../../../src/validation/ValidationUtils.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAmB;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QAC7B,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9B;IAED,OAAO,KAAG,UAAY,CAAC;AACzB,CAAC;AAED;IAAA;IAiCA,CAAC;IAhCQ,2CAA2B,GAAlC,UACE,OAAyD,EACzD,mBAAwC;QAExC,IAAI,aAAqB,CAAC;QAC1B,IAAI,OAAO,YAAY,QAAQ,EAAE;YAC/B,aAAa,GAAI,OAAiD,CAAC,mBAAmB,CAAC,CAAC;SACzF;aAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YACtC,aAAa,GAAG,OAAO,CAAC;SACzB;QAED,IAAI,aAAa,IAAI,mBAAmB,CAAC,WAAW,YAAY,KAAK,EAAE;YACrE,mBAAmB,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,UAAU,EAAE,KAAK;gBACxD,aAAa,GAAG,aAAa,CAAC,OAAO,CACnC,IAAI,MAAM,CAAC,mBAAgB,KAAK,GAAG,CAAC,CAAE,EAAE,GAAG,CAAC,EAC5C,kBAAkB,CAAC,UAAU,CAAC,CAC/B,CAAC;YACJ,CAAC,CAAC,CAAC;SACJ;QAED,IACE,aAAa;YACb,mBAAmB,CAAC,KAAK,KAAK,SAAS;YACvC,mBAAmB,CAAC,KAAK,KAAK,IAAI;YAClC,OAAO,mBAAmB,CAAC,KAAK,KAAK,QAAQ;YAE7C,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC/E,IAAI,aAAa;YAAE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACtG,IAAI,aAAa;YAAE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEtG,OAAO,aAAa,CAAC;IACvB,CAAC;IACH,sBAAC;AAAD,CAAC,AAjCD,IAiCC","sourcesContent":["import { ValidationArguments } from './ValidationArguments';\n\n/**\n * Convert the constraint to a string to be shown in an error\n */\nexport function constraintToString(constraint: unknown): string {\n if (Array.isArray(constraint)) {\n return constraint.join(', ');\n }\n\n return `${constraint}`;\n}\n\nexport class ValidationUtils {\n static replaceMessageSpecialTokens(\n message: string | ((args: ValidationArguments) => string),\n validationArguments: ValidationArguments\n ): string {\n let messageString: string;\n if (message instanceof Function) {\n messageString = (message as (args: ValidationArguments) => string)(validationArguments);\n } else if (typeof message === 'string') {\n messageString = message;\n }\n\n if (messageString && validationArguments.constraints instanceof Array) {\n validationArguments.constraints.forEach((constraint, index) => {\n messageString = messageString.replace(\n new RegExp(`\\\\$constraint${index + 1}`, 'g'),\n constraintToString(constraint)\n );\n });\n }\n\n if (\n messageString &&\n validationArguments.value !== undefined &&\n validationArguments.value !== null &&\n typeof validationArguments.value === 'string'\n )\n messageString = messageString.replace(/\\$value/g, validationArguments.value);\n if (messageString) messageString = messageString.replace(/\\$property/g, validationArguments.property);\n if (messageString) messageString = messageString.replace(/\\$target/g, validationArguments.targetName);\n\n return messageString;\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/Validator.js b/views/node_modules/class-validator/esm5/validation/Validator.js deleted file mode 100644 index 604dc63..0000000 --- a/views/node_modules/class-validator/esm5/validation/Validator.js +++ /dev/null @@ -1,102 +0,0 @@ -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -}; -import { ValidationExecutor } from './ValidationExecutor'; -/** - * Validator performs validation of the given object based on its metadata. - */ -var Validator = /** @class */ (function () { - function Validator() { - } - /** - * Performs validation of the given object based on decorators or validation schema. - */ - Validator.prototype.validate = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions); - }; - /** - * Performs validation of the given object based on decorators or validation schema and reject on error. - */ - Validator.prototype.validateOrReject = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - return __awaiter(this, void 0, void 0, function () { - var errors; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions)]; - case 1: - errors = _a.sent(); - if (errors.length) - return [2 /*return*/, Promise.reject(errors)]; - return [2 /*return*/]; - } - }); - }); - }; - /** - * Performs validation of the given object based on decorators or validation schema. - */ - Validator.prototype.validateSync = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - var object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName; - var options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions; - var schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined; - var executor = new ValidationExecutor(this, options); - executor.ignoreAsyncValidations = true; - var validationErrors = []; - executor.execute(object, schema, validationErrors); - return executor.stripEmptyErrors(validationErrors); - }; - // ------------------------------------------------------------------------- - // Private Properties - // ------------------------------------------------------------------------- - /** - * Performs validation of the given object based on decorators or validation schema. - * Common method for `validateOrReject` and `validate` methods. - */ - Validator.prototype.coreValidate = function (objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions) { - var object = typeof objectOrSchemaName === 'string' ? objectOrValidationOptions : objectOrSchemaName; - var options = typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : objectOrValidationOptions; - var schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined; - var executor = new ValidationExecutor(this, options); - var validationErrors = []; - executor.execute(object, schema, validationErrors); - return Promise.all(executor.awaitingPromises).then(function () { - return executor.stripEmptyErrors(validationErrors); - }); - }; - return Validator; -}()); -export { Validator }; -//# sourceMappingURL=Validator.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/Validator.js.map b/views/node_modules/class-validator/esm5/validation/Validator.js.map deleted file mode 100644 index 5f6bf1e..0000000 --- a/views/node_modules/class-validator/esm5/validation/Validator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Validator.js","sourceRoot":"","sources":["../../../src/validation/Validator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D;;GAEG;AACH;IAAA;IAwGA,CAAC;IAzFC;;OAEG;IACH,4BAAQ,GAAR,UACE,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;QAExC,OAAO,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,qBAAqB,CAAC,CAAC;IACjG,CAAC;IAYD;;OAEG;IACG,oCAAgB,GAAtB,UACE,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;;;;;4BAEzB,qBAAM,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,qBAAqB,CAAC,EAAA;;wBAAtG,MAAM,GAAG,SAA6F;wBAC5G,IAAI,MAAM,CAAC,MAAM;4BAAE,sBAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAC;;;;;KAClD;IAaD;;OAEG;IACH,gCAAY,GAAZ,UACE,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;QAExC,IAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAE,yBAAoC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACnH,IAAM,OAAO,GACX,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAE,yBAA+C,CAAC;QACpH,IAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvF,IAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,QAAQ,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACvC,IAAM,gBAAgB,GAAsB,EAAE,CAAC;QAC/C,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,4EAA4E;IAC5E,qBAAqB;IACrB,4EAA4E;IAC5E;;;OAGG;IACK,gCAAY,GAApB,UACE,kBAAmC,EACnC,yBAAqD,EACrD,qBAAwC;QAExC,IAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAE,yBAAoC,CAAC,CAAC,CAAC,kBAAkB,CAAC;QACnH,IAAM,OAAO,GACX,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAE,yBAA+C,CAAC;QACpH,IAAM,MAAM,GAAG,OAAO,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvF,IAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,IAAM,gBAAgB,GAAsB,EAAE,CAAC;QAC/C,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC;YACjD,OAAO,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;IACH,gBAAC;AAAD,CAAC,AAxGD,IAwGC","sourcesContent":["import { ValidationError } from './ValidationError';\nimport { ValidatorOptions } from './ValidatorOptions';\nimport { ValidationExecutor } from './ValidationExecutor';\nimport { ValidationOptions } from '../decorator/ValidationOptions';\n\n/**\n * Validator performs validation of the given object based on its metadata.\n */\nexport class Validator {\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n\n /**\n * Performs validation of the given object based on decorators used in given object class.\n */\n validate(object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on validation schema.\n */\n validate(schemaName: string, object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n validate(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): Promise {\n return this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions);\n }\n\n /**\n * Performs validation of the given object based on decorators used in given object class and reject on error.\n */\n validateOrReject(object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on validation schema and reject on error.\n */\n validateOrReject(schemaName: string, object: object, options?: ValidatorOptions): Promise;\n\n /**\n * Performs validation of the given object based on decorators or validation schema and reject on error.\n */\n async validateOrReject(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): Promise {\n const errors = await this.coreValidate(objectOrSchemaName, objectOrValidationOptions, maybeValidatorOptions);\n if (errors.length) return Promise.reject(errors);\n }\n\n /**\n * Performs validation of the given object based on decorators used in given object class.\n * NOTE: This method completely ignores all async validations.\n */\n validateSync(object: object, options?: ValidatorOptions): ValidationError[];\n\n /**\n * Performs validation of the given object based on validation schema.\n */\n validateSync(schemaName: string, object: object, options?: ValidatorOptions): ValidationError[];\n\n /**\n * Performs validation of the given object based on decorators or validation schema.\n */\n validateSync(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): ValidationError[] {\n const object = typeof objectOrSchemaName === 'string' ? (objectOrValidationOptions as object) : objectOrSchemaName;\n const options =\n typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : (objectOrValidationOptions as ValidationOptions);\n const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n\n const executor = new ValidationExecutor(this, options);\n executor.ignoreAsyncValidations = true;\n const validationErrors: ValidationError[] = [];\n executor.execute(object, schema, validationErrors);\n return executor.stripEmptyErrors(validationErrors);\n }\n\n // -------------------------------------------------------------------------\n // Private Properties\n // -------------------------------------------------------------------------\n /**\n * Performs validation of the given object based on decorators or validation schema.\n * Common method for `validateOrReject` and `validate` methods.\n */\n private coreValidate(\n objectOrSchemaName: object | string,\n objectOrValidationOptions: object | ValidationOptions,\n maybeValidatorOptions?: ValidatorOptions\n ): Promise {\n const object = typeof objectOrSchemaName === 'string' ? (objectOrValidationOptions as object) : objectOrSchemaName;\n const options =\n typeof objectOrSchemaName === 'string' ? maybeValidatorOptions : (objectOrValidationOptions as ValidationOptions);\n const schema = typeof objectOrSchemaName === 'string' ? objectOrSchemaName : undefined;\n\n const executor = new ValidationExecutor(this, options);\n const validationErrors: ValidationError[] = [];\n executor.execute(object, schema, validationErrors);\n\n return Promise.all(executor.awaitingPromises).then(() => {\n return executor.stripEmptyErrors(validationErrors);\n });\n }\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidatorConstraintInterface.js b/views/node_modules/class-validator/esm5/validation/ValidatorConstraintInterface.js deleted file mode 100644 index d053f5d..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidatorConstraintInterface.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ValidatorConstraintInterface.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidatorConstraintInterface.js.map b/views/node_modules/class-validator/esm5/validation/ValidatorConstraintInterface.js.map deleted file mode 100644 index acc4adf..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidatorConstraintInterface.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidatorConstraintInterface.js","sourceRoot":"","sources":["../../../src/validation/ValidatorConstraintInterface.ts"],"names":[],"mappings":"","sourcesContent":["import { ValidationArguments } from './ValidationArguments';\n/**\n * Custom validators must implement this interface to provide custom validation logic.\n */\nexport interface ValidatorConstraintInterface {\n /**\n * Method to be called to perform custom validation over given value.\n */\n validate(value: any, validationArguments?: ValidationArguments): Promise | boolean;\n\n /**\n * Gets default message when validation for this constraint fail.\n */\n defaultMessage?(validationArguments?: ValidationArguments): string;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidatorOptions.js b/views/node_modules/class-validator/esm5/validation/ValidatorOptions.js deleted file mode 100644 index 4dfdf01..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidatorOptions.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=ValidatorOptions.js.map \ No newline at end of file diff --git a/views/node_modules/class-validator/esm5/validation/ValidatorOptions.js.map b/views/node_modules/class-validator/esm5/validation/ValidatorOptions.js.map deleted file mode 100644 index 40e2172..0000000 --- a/views/node_modules/class-validator/esm5/validation/ValidatorOptions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ValidatorOptions.js","sourceRoot":"","sources":["../../../src/validation/ValidatorOptions.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Options passed to validator during validation.\n */\nexport interface ValidatorOptions {\n /**\n * If set to true then class-validator will print extra warning messages to the console when something is not right.\n */\n enableDebugMessages?: boolean;\n\n /**\n * If set to true then validator will skip validation of all properties that are undefined in the validating object.\n */\n skipUndefinedProperties?: boolean;\n\n /**\n * If set to true then validator will skip validation of all properties that are null in the validating object.\n */\n skipNullProperties?: boolean;\n\n /**\n * If set to true then validator will skip validation of all properties that are null or undefined in the validating object.\n */\n skipMissingProperties?: boolean;\n\n /**\n * If set to true validator will strip validated object of any properties that do not have any decorators.\n *\n * Tip: if no other decorator is suitable for your property use @Allow decorator.\n */\n whitelist?: boolean;\n\n /**\n * If set to true, instead of stripping non-whitelisted properties validator will throw an error\n */\n forbidNonWhitelisted?: boolean;\n\n /**\n * Groups to be used during validation of the object.\n */\n groups?: string[];\n\n /**\n * Set default for `always` option of decorators. Default can be overridden in decorator options.\n */\n always?: boolean;\n\n /**\n * If [groups]{@link ValidatorOptions#groups} is not given or is empty,\n * ignore decorators with at least one group.\n */\n strictGroups?: boolean;\n\n /**\n * If set to true, the validation will not use default messages.\n * Error message always will be undefined if its not explicitly set.\n */\n dismissDefaultMessages?: boolean;\n\n /**\n * ValidationError special options.\n */\n validationError?: {\n /**\n * Indicates if target should be exposed in ValidationError.\n */\n target?: boolean;\n\n /**\n * Indicates if validated value should be exposed in ValidationError.\n */\n value?: boolean;\n };\n\n /**\n * Settings true will cause fail validation of unknown objects.\n */\n forbidUnknownValues?: boolean;\n\n /**\n * When set to true, validation of the given property will stop after encountering the first error. Defaults to false.\n */\n stopAtFirstError?: boolean;\n}\n"]} \ No newline at end of file diff --git a/views/node_modules/class-validator/package.json b/views/node_modules/class-validator/package.json deleted file mode 100644 index 15ab84d..0000000 --- a/views/node_modules/class-validator/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "class-validator", - "version": "0.13.1", - "description": "Decorator-based property validation for classes.", - "author": "TypeStack contributors", - "license": "MIT", - "sideEffects": false, - "main": "./cjs/index.js", - "module": "./esm5/index.js", - "es2015": "./esm2015/index.js", - "typings": "./types/index.d.ts", - "repository": { - "type": "git", - "url": "https://github.com/typestack/class-validator.git" - }, - "tags": [ - "validator", - "validation", - "decorators", - "typescript" - ], - "dependencies": { - "@types/validator": "^13.1.3", - "libphonenumber-js": "^1.9.7", - "validator": "^13.5.2" - } -} diff --git a/views/node_modules/class-validator/types/container.d.ts b/views/node_modules/class-validator/types/container.d.ts deleted file mode 100644 index ef40864..0000000 --- a/views/node_modules/class-validator/types/container.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** - * Container options. - */ -export interface UseContainerOptions { - /** - * If set to true, then default container will be used in the case if given container haven't returned anything. - */ - fallback?: boolean; - /** - * If set to true, then default container will be used in the case if given container thrown an exception. - */ - fallbackOnErrors?: boolean; -} -/** - * Sets container to be used by this library. - */ -export declare function useContainer(iocContainer: { - get(someClass: any): any; -}, options?: UseContainerOptions): void; -/** - * Gets the IOC container used by this library. - */ -export declare function getFromContainer(someClass: { - new (...args: any[]): T; -} | Function): T; diff --git a/views/node_modules/class-validator/types/decorator/ValidationOptions.d.ts b/views/node_modules/class-validator/types/decorator/ValidationOptions.d.ts deleted file mode 100644 index d174267..0000000 --- a/views/node_modules/class-validator/types/decorator/ValidationOptions.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ValidationArguments } from '../validation/ValidationArguments'; -/** - * Options used to pass to validation decorators. - */ -export interface ValidationOptions { - /** - * Specifies if validated value is an array and each of its items must be validated. - */ - each?: boolean; - /** - * Error message to be used on validation fail. - * Message can be either string or a function that returns a string. - */ - message?: string | ((validationArguments: ValidationArguments) => string); - /** - * Validation groups used for this validation. - */ - groups?: string[]; - /** - * Indicates if validation must be performed always, no matter of validation groups used. - */ - always?: boolean; - context?: any; -} -export declare function isValidationOptions(val: any): val is ValidationOptions; diff --git a/views/node_modules/class-validator/types/decorator/array/ArrayContains.d.ts b/views/node_modules/class-validator/types/decorator/array/ArrayContains.d.ts deleted file mode 100644 index 43cf8a9..0000000 --- a/views/node_modules/class-validator/types/decorator/array/ArrayContains.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const ARRAY_CONTAINS = "arrayContains"; -/** - * Checks if array contains all values from the given array of values. - * If null or undefined is given then this function returns false. - */ -export declare function arrayContains(array: unknown, values: any[]): boolean; -/** - * Checks if array contains all values from the given array of values. - * If null or undefined is given then this function returns false. - */ -export declare function ArrayContains(values: any[], validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/array/ArrayMaxSize.d.ts b/views/node_modules/class-validator/types/decorator/array/ArrayMaxSize.d.ts deleted file mode 100644 index 0fa773f..0000000 --- a/views/node_modules/class-validator/types/decorator/array/ArrayMaxSize.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const ARRAY_MAX_SIZE = "arrayMaxSize"; -/** - * Checks if the array's length is less or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export declare function arrayMaxSize(array: unknown, max: number): boolean; -/** - * Checks if the array's length is less or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export declare function ArrayMaxSize(max: number, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/array/ArrayMinSize.d.ts b/views/node_modules/class-validator/types/decorator/array/ArrayMinSize.d.ts deleted file mode 100644 index 66df2c0..0000000 --- a/views/node_modules/class-validator/types/decorator/array/ArrayMinSize.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const ARRAY_MIN_SIZE = "arrayMinSize"; -/** - * Checks if the array's length is greater than or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export declare function arrayMinSize(array: unknown, min: number): boolean; -/** - * Checks if the array's length is greater than or equal to the specified number. - * If null or undefined is given then this function returns false. - */ -export declare function ArrayMinSize(min: number, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/array/ArrayNotContains.d.ts b/views/node_modules/class-validator/types/decorator/array/ArrayNotContains.d.ts deleted file mode 100644 index cae551e..0000000 --- a/views/node_modules/class-validator/types/decorator/array/ArrayNotContains.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const ARRAY_NOT_CONTAINS = "arrayNotContains"; -/** - * Checks if array does not contain any of the given values. - * If null or undefined is given then this function returns false. - */ -export declare function arrayNotContains(array: unknown, values: any[]): boolean; -/** - * Checks if array does not contain any of the given values. - * If null or undefined is given then this function returns false. - */ -export declare function ArrayNotContains(values: any[], validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/array/ArrayNotEmpty.d.ts b/views/node_modules/class-validator/types/decorator/array/ArrayNotEmpty.d.ts deleted file mode 100644 index 6ce88ad..0000000 --- a/views/node_modules/class-validator/types/decorator/array/ArrayNotEmpty.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const ARRAY_NOT_EMPTY = "arrayNotEmpty"; -/** - * Checks if given array is not empty. - * If null or undefined is given then this function returns false. - */ -export declare function arrayNotEmpty(array: unknown): boolean; -/** - * Checks if given array is not empty. - * If null or undefined is given then this function returns false. - */ -export declare function ArrayNotEmpty(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/array/ArrayUnique.d.ts b/views/node_modules/class-validator/types/decorator/array/ArrayUnique.d.ts deleted file mode 100644 index 437f957..0000000 --- a/views/node_modules/class-validator/types/decorator/array/ArrayUnique.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const ARRAY_UNIQUE = "arrayUnique"; -export declare type ArrayUniqueIdentifier = (o: T) => any; -/** - * Checks if all array's values are unique. Comparison for objects is reference-based. - * If null or undefined is given then this function returns false. - */ -export declare function arrayUnique(array: unknown[], identifier?: ArrayUniqueIdentifier): boolean; -/** - * Checks if all array's values are unique. Comparison for objects is reference-based. - * If null or undefined is given then this function returns false. - */ -export declare function ArrayUnique(identifierOrOptions?: ArrayUniqueIdentifier | ValidationOptions, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/Allow.d.ts b/views/node_modules/class-validator/types/decorator/common/Allow.d.ts deleted file mode 100644 index 6516605..0000000 --- a/views/node_modules/class-validator/types/decorator/common/Allow.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -/** - * If object has both allowed and not allowed properties a validation error will be thrown. - */ -export declare function Allow(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/Equals.d.ts b/views/node_modules/class-validator/types/decorator/common/Equals.d.ts deleted file mode 100644 index 266f963..0000000 --- a/views/node_modules/class-validator/types/decorator/common/Equals.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const EQUALS = "equals"; -/** - * Checks if value matches ("===") the comparison. - */ -export declare function equals(value: unknown, comparison: unknown): boolean; -/** - * Checks if value matches ("===") the comparison. - */ -export declare function Equals(comparison: any, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/IsDefined.d.ts b/views/node_modules/class-validator/types/decorator/common/IsDefined.d.ts deleted file mode 100644 index 7d38bda..0000000 --- a/views/node_modules/class-validator/types/decorator/common/IsDefined.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_DEFINED: string; -/** - * Checks if value is defined (!== undefined, !== null). - */ -export declare function isDefined(value: any): boolean; -/** - * Checks if value is defined (!== undefined, !== null). - */ -export declare function IsDefined(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/IsEmpty.d.ts b/views/node_modules/class-validator/types/decorator/common/IsEmpty.d.ts deleted file mode 100644 index b2bc39e..0000000 --- a/views/node_modules/class-validator/types/decorator/common/IsEmpty.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_EMPTY = "isEmpty"; -/** - * Checks if given value is empty (=== '', === null, === undefined). - */ -export declare function isEmpty(value: unknown): boolean; -/** - * Checks if given value is empty (=== '', === null, === undefined). - */ -export declare function IsEmpty(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/IsIn.d.ts b/views/node_modules/class-validator/types/decorator/common/IsIn.d.ts deleted file mode 100644 index 21dfe62..0000000 --- a/views/node_modules/class-validator/types/decorator/common/IsIn.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_IN = "isIn"; -/** - * Checks if given value is in a array of allowed values. - */ -export declare function isIn(value: unknown, possibleValues: readonly unknown[]): boolean; -/** - * Checks if given value is in a array of allowed values. - */ -export declare function IsIn(values: readonly any[], validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/IsLatLong.d.ts b/views/node_modules/class-validator/types/decorator/common/IsLatLong.d.ts deleted file mode 100644 index 33274d9..0000000 --- a/views/node_modules/class-validator/types/decorator/common/IsLatLong.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_LATLONG = "isLatLong"; -/** - * Checks if a value is string in format a "latitude,longitude". - */ -export declare function isLatLong(value: string): boolean; -/** - * Checks if a value is string in format a "latitude,longitude". - */ -export declare function IsLatLong(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/IsLatitude.d.ts b/views/node_modules/class-validator/types/decorator/common/IsLatitude.d.ts deleted file mode 100644 index 9f29071..0000000 --- a/views/node_modules/class-validator/types/decorator/common/IsLatitude.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_LATITUDE = "isLatitude"; -/** - * Checks if a given value is a latitude. - */ -export declare function isLatitude(value: string): boolean; -/** - * Checks if a given value is a latitude. - */ -export declare function IsLatitude(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/IsLongitude.d.ts b/views/node_modules/class-validator/types/decorator/common/IsLongitude.d.ts deleted file mode 100644 index 2f8ab23..0000000 --- a/views/node_modules/class-validator/types/decorator/common/IsLongitude.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_LONGITUDE = "isLongitude"; -/** - * Checks if a given value is a longitude. - */ -export declare function isLongitude(value: string): boolean; -/** - * Checks if a given value is a longitude. - */ -export declare function IsLongitude(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/IsNotEmpty.d.ts b/views/node_modules/class-validator/types/decorator/common/IsNotEmpty.d.ts deleted file mode 100644 index 01aec18..0000000 --- a/views/node_modules/class-validator/types/decorator/common/IsNotEmpty.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_NOT_EMPTY = "isNotEmpty"; -/** - * Checks if given value is not empty (!== '', !== null, !== undefined). - */ -export declare function isNotEmpty(value: unknown): boolean; -/** - * Checks if given value is not empty (!== '', !== null, !== undefined). - */ -export declare function IsNotEmpty(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/IsNotIn.d.ts b/views/node_modules/class-validator/types/decorator/common/IsNotIn.d.ts deleted file mode 100644 index 8d5be66..0000000 --- a/views/node_modules/class-validator/types/decorator/common/IsNotIn.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_NOT_IN = "isNotIn"; -/** - * Checks if given value not in a array of allowed values. - */ -export declare function isNotIn(value: unknown, possibleValues: readonly unknown[]): boolean; -/** - * Checks if given value not in a array of allowed values. - */ -export declare function IsNotIn(values: readonly any[], validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/IsOptional.d.ts b/views/node_modules/class-validator/types/decorator/common/IsOptional.d.ts deleted file mode 100644 index 47d58ae..0000000 --- a/views/node_modules/class-validator/types/decorator/common/IsOptional.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -/** - * Checks if value is missing and if so, ignores all validators. - */ -export declare function IsOptional(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/NotEquals.d.ts b/views/node_modules/class-validator/types/decorator/common/NotEquals.d.ts deleted file mode 100644 index 9bb18fa..0000000 --- a/views/node_modules/class-validator/types/decorator/common/NotEquals.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const NOT_EQUALS = "notEquals"; -/** - * Checks if value does not match ("!==") the comparison. - */ -export declare function notEquals(value: unknown, comparison: unknown): boolean; -/** - * Checks if value does not match ("!==") the comparison. - */ -export declare function NotEquals(comparison: any, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/Validate.d.ts b/views/node_modules/class-validator/types/decorator/common/Validate.d.ts deleted file mode 100644 index 1857963..0000000 --- a/views/node_modules/class-validator/types/decorator/common/Validate.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -/** - * Registers custom validator class. - */ -export declare function ValidatorConstraint(options?: { - name?: string; - async?: boolean; -}): (target: Function) => void; -/** - * Performs validation based on the given custom validation class. - * Validation class must be decorated with ValidatorConstraint decorator. - */ -export declare function Validate(constraintClass: Function, validationOptions?: ValidationOptions): PropertyDecorator; -export declare function Validate(constraintClass: Function, constraints?: any[], validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/ValidateBy.d.ts b/views/node_modules/class-validator/types/decorator/common/ValidateBy.d.ts deleted file mode 100644 index 7568fdb..0000000 --- a/views/node_modules/class-validator/types/decorator/common/ValidateBy.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import { ValidationArguments } from '../../validation/ValidationArguments'; -import { ValidatorConstraintInterface } from '../../validation/ValidatorConstraintInterface'; -export interface ValidateByOptions { - name: string; - constraints?: any[]; - validator: ValidatorConstraintInterface | Function; - async?: boolean; -} -export declare function buildMessage(impl: (eachPrefix: string, args?: ValidationArguments) => string, validationOptions?: ValidationOptions): (validationArguments?: ValidationArguments) => string; -export declare function ValidateBy(options: ValidateByOptions, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/ValidateIf.d.ts b/views/node_modules/class-validator/types/decorator/common/ValidateIf.d.ts deleted file mode 100644 index de2c447..0000000 --- a/views/node_modules/class-validator/types/decorator/common/ValidateIf.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -/** - * Ignores the other validators on a property when the provided condition function returns false. - */ -export declare function ValidateIf(condition: (object: any, value: any) => boolean, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/ValidateNested.d.ts b/views/node_modules/class-validator/types/decorator/common/ValidateNested.d.ts deleted file mode 100644 index 667af5f..0000000 --- a/views/node_modules/class-validator/types/decorator/common/ValidateNested.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -/** - * Objects / object arrays marked with this decorator will also be validated. - */ -export declare function ValidateNested(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/common/ValidatePromise.d.ts b/views/node_modules/class-validator/types/decorator/common/ValidatePromise.d.ts deleted file mode 100644 index c4032a0..0000000 --- a/views/node_modules/class-validator/types/decorator/common/ValidatePromise.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -/** - * Resolve promise before validation - */ -export declare function ValidatePromise(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/date/MaxDate.d.ts b/views/node_modules/class-validator/types/decorator/date/MaxDate.d.ts deleted file mode 100644 index 056d3bd..0000000 --- a/views/node_modules/class-validator/types/decorator/date/MaxDate.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const MAX_DATE = "maxDate"; -/** - * Checks if the value is a date that's before the specified date. - */ -export declare function maxDate(date: unknown, maxDate: Date): boolean; -/** - * Checks if the value is a date that's after the specified date. - */ -export declare function MaxDate(date: Date, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/date/MinDate.d.ts b/views/node_modules/class-validator/types/decorator/date/MinDate.d.ts deleted file mode 100644 index 52c13fb..0000000 --- a/views/node_modules/class-validator/types/decorator/date/MinDate.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const MIN_DATE = "minDate"; -/** - * Checks if the value is a date that's after the specified date. - */ -export declare function minDate(date: unknown, minDate: Date): boolean; -/** - * Checks if the value is a date that's after the specified date. - */ -export declare function MinDate(date: Date, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/decorators.d.ts b/views/node_modules/class-validator/types/decorator/decorators.d.ts deleted file mode 100644 index ca6b2f1..0000000 --- a/views/node_modules/class-validator/types/decorator/decorators.d.ts +++ /dev/null @@ -1,106 +0,0 @@ -export * from './common/Allow'; -export * from './common/IsDefined'; -export * from './common/IsOptional'; -export * from './common/Validate'; -export * from './common/ValidateBy'; -export * from './common/ValidateIf'; -export * from './common/ValidateNested'; -export * from './common/ValidatePromise'; -export * from './common/IsLatLong'; -export * from './common/IsLatitude'; -export * from './common/IsLongitude'; -export * from './common/Equals'; -export * from './common/NotEquals'; -export * from './common/IsEmpty'; -export * from './common/IsNotEmpty'; -export * from './common/IsIn'; -export * from './common/IsNotIn'; -export * from './number/IsDivisibleBy'; -export * from './number/IsPositive'; -export * from './number/IsNegative'; -export * from './number/Max'; -export * from './number/Min'; -export * from './date/MinDate'; -export * from './date/MaxDate'; -export * from './string/Contains'; -export * from './string/NotContains'; -export * from './string/IsAlpha'; -export * from './string/IsAlphanumeric'; -export * from './string/IsDecimal'; -export * from './string/IsAscii'; -export * from './string/IsBase64'; -export * from './string/IsByteLength'; -export * from './string/IsCreditCard'; -export * from './string/IsCurrency'; -export * from './string/IsEmail'; -export * from './string/IsFQDN'; -export * from './string/IsFullWidth'; -export * from './string/IsHalfWidth'; -export * from './string/IsVariableWidth'; -export * from './string/IsHexColor'; -export * from './string/IsHexadecimal'; -export * from './string/IsMacAddress'; -export * from './string/IsIP'; -export * from './string/IsPort'; -export * from './string/IsISBN'; -export * from './string/IsISIN'; -export * from './string/IsISO8601'; -export * from './string/IsJSON'; -export * from './string/IsJWT'; -export * from './string/IsLowercase'; -export * from './string/IsMobilePhone'; -export * from './string/IsISO31661Alpha2'; -export * from './string/IsISO31661Alpha3'; -export * from './string/IsMongoId'; -export * from './string/IsMultibyte'; -export * from './string/IsSurrogatePair'; -export * from './string/IsUrl'; -export * from './string/IsUUID'; -export * from './string/IsFirebasePushId'; -export * from './string/IsUppercase'; -export * from './string/Length'; -export * from './string/MaxLength'; -export * from './string/MinLength'; -export * from './string/Matches'; -export * from './string/IsPhoneNumber'; -export * from './string/IsMilitaryTime'; -export * from './string/IsHash'; -export * from './string/IsISSN'; -export * from './string/IsDateString'; -export * from './string/IsBooleanString'; -export * from './string/IsNumberString'; -export * from './string/IsBase32'; -export * from './string/IsBIC'; -export * from './string/IsBtcAddress'; -export * from './string/IsDataURI'; -export * from './string/IsEAN'; -export * from './string/IsEthereumAddress'; -export * from './string/IsHSL'; -export * from './string/IsIBAN'; -export * from './string/IsIdentityCard'; -export * from './string/IsISRC'; -export * from './string/IsLocale'; -export * from './string/IsMagnetURI'; -export * from './string/IsMimeType'; -export * from './string/IsOctal'; -export * from './string/IsPassportNumber'; -export * from './string/IsPostalCode'; -export * from './string/IsRFC3339'; -export * from './string/IsRgbColor'; -export * from './string/IsSemVer'; -export * from './typechecker/IsBoolean'; -export * from './typechecker/IsDate'; -export * from './typechecker/IsNumber'; -export * from './typechecker/IsEnum'; -export * from './typechecker/IsInt'; -export * from './typechecker/IsString'; -export * from './typechecker/IsArray'; -export * from './typechecker/IsObject'; -export * from './array/ArrayContains'; -export * from './array/ArrayNotContains'; -export * from './array/ArrayNotEmpty'; -export * from './array/ArrayMinSize'; -export * from './array/ArrayMaxSize'; -export * from './array/ArrayUnique'; -export * from './object/IsNotEmptyObject'; -export * from './object/IsInstance'; diff --git a/views/node_modules/class-validator/types/decorator/number/IsDivisibleBy.d.ts b/views/node_modules/class-validator/types/decorator/number/IsDivisibleBy.d.ts deleted file mode 100644 index 4e61338..0000000 --- a/views/node_modules/class-validator/types/decorator/number/IsDivisibleBy.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_DIVISIBLE_BY = "isDivisibleBy"; -/** - * Checks if value is a number that's divisible by another. - */ -export declare function isDivisibleBy(value: unknown, num: number): boolean; -/** - * Checks if value is a number that's divisible by another. - */ -export declare function IsDivisibleBy(num: number, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/number/IsNegative.d.ts b/views/node_modules/class-validator/types/decorator/number/IsNegative.d.ts deleted file mode 100644 index 6998293..0000000 --- a/views/node_modules/class-validator/types/decorator/number/IsNegative.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_NEGATIVE = "isNegative"; -/** - * Checks if the value is a negative number smaller than zero. - */ -export declare function isNegative(value: unknown): boolean; -/** - * Checks if the value is a negative number smaller than zero. - */ -export declare function IsNegative(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/number/IsPositive.d.ts b/views/node_modules/class-validator/types/decorator/number/IsPositive.d.ts deleted file mode 100644 index 998dbac..0000000 --- a/views/node_modules/class-validator/types/decorator/number/IsPositive.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_POSITIVE = "isPositive"; -/** - * Checks if the value is a positive number greater than zero. - */ -export declare function isPositive(value: unknown): boolean; -/** - * Checks if the value is a positive number greater than zero. - */ -export declare function IsPositive(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/number/Max.d.ts b/views/node_modules/class-validator/types/decorator/number/Max.d.ts deleted file mode 100644 index b8acb8b..0000000 --- a/views/node_modules/class-validator/types/decorator/number/Max.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const MAX = "max"; -/** - * Checks if the first number is less than or equal to the second. - */ -export declare function max(num: unknown, max: number): boolean; -/** - * Checks if the first number is less than or equal to the second. - */ -export declare function Max(maxValue: number, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/number/Min.d.ts b/views/node_modules/class-validator/types/decorator/number/Min.d.ts deleted file mode 100644 index 5b00166..0000000 --- a/views/node_modules/class-validator/types/decorator/number/Min.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const MIN = "min"; -/** - * Checks if the first number is greater than or equal to the second. - */ -export declare function min(num: unknown, min: number): boolean; -/** - * Checks if the first number is greater than or equal to the second. - */ -export declare function Min(minValue: number, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/object/IsInstance.d.ts b/views/node_modules/class-validator/types/decorator/object/IsInstance.d.ts deleted file mode 100644 index 382b2a6..0000000 --- a/views/node_modules/class-validator/types/decorator/object/IsInstance.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_INSTANCE = "isInstance"; -/** - * Checks if the value is an instance of the specified object. - */ -export declare function isInstance(object: unknown, targetTypeConstructor: new (...args: any[]) => any): boolean; -/** - * Checks if the value is an instance of the specified object. - */ -export declare function IsInstance(targetType: new (...args: any[]) => any, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/object/IsNotEmptyObject.d.ts b/views/node_modules/class-validator/types/decorator/object/IsNotEmptyObject.d.ts deleted file mode 100644 index 8c25b2f..0000000 --- a/views/node_modules/class-validator/types/decorator/object/IsNotEmptyObject.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_NOT_EMPTY_OBJECT = "isNotEmptyObject"; -/** - * Checks if the value is valid Object & not empty. - * Returns false if the value is not an object or an empty valid object. - */ -export declare function isNotEmptyObject(value: unknown, options?: { - nullable?: boolean; -}): boolean; -/** - * Checks if the value is valid Object & not empty. - * Returns false if the value is not an object or an empty valid object. - */ -export declare function IsNotEmptyObject(options?: { - nullable?: boolean; -}, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/Contains.d.ts b/views/node_modules/class-validator/types/decorator/string/Contains.d.ts deleted file mode 100644 index 656b20f..0000000 --- a/views/node_modules/class-validator/types/decorator/string/Contains.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const CONTAINS = "contains"; -/** - * Checks if the string contains the seed. - * If given value is not a string, then it returns false. - */ -export declare function contains(value: unknown, seed: string): boolean; -/** - * Checks if the string contains the seed. - * If given value is not a string, then it returns false. - */ -export declare function Contains(seed: string, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsAlpha.d.ts b/views/node_modules/class-validator/types/decorator/string/IsAlpha.d.ts deleted file mode 100644 index 6201e3a..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsAlpha.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_ALPHA = "isAlpha"; -/** - * Checks if the string contains only letters (a-zA-Z). - * If given value is not a string, then it returns false. - */ -export declare function isAlpha(value: unknown, locale?: ValidatorJS.AlphaLocale): boolean; -/** - * Checks if the string contains only letters (a-zA-Z). - * If given value is not a string, then it returns false. - */ -export declare function IsAlpha(locale?: string, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsAlphanumeric.d.ts b/views/node_modules/class-validator/types/decorator/string/IsAlphanumeric.d.ts deleted file mode 100644 index 18184d7..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsAlphanumeric.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_ALPHANUMERIC = "isAlphanumeric"; -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -export declare function isAlphanumeric(value: unknown, locale?: ValidatorJS.AlphanumericLocale): boolean; -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -export declare function IsAlphanumeric(locale?: string, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsAscii.d.ts b/views/node_modules/class-validator/types/decorator/string/IsAscii.d.ts deleted file mode 100644 index 0cabfaf..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsAscii.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_ASCII = "isAscii"; -/** - * Checks if the string contains ASCII chars only. - * If given value is not a string, then it returns false. - */ -export declare function isAscii(value: unknown): boolean; -/** - * Checks if the string contains ASCII chars only. - * If given value is not a string, then it returns false. - */ -export declare function IsAscii(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsBIC.d.ts b/views/node_modules/class-validator/types/decorator/string/IsBIC.d.ts deleted file mode 100644 index cc7671b..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsBIC.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_BIC = "isBIC"; -/** - * Check if a string is a BIC (Bank Identification Code) or SWIFT code. - * If given value is not a string, then it returns false. - */ -export declare function isBIC(value: unknown): boolean; -/** - * Check if a string is a BIC (Bank Identification Code) or SWIFT code. - * If given value is not a string, then it returns false. - */ -export declare function IsBIC(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsBase32.d.ts b/views/node_modules/class-validator/types/decorator/string/IsBase32.d.ts deleted file mode 100644 index cfa4e22..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsBase32.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_BASE32 = "isBase32"; -/** - * Checks if a string is base32 encoded. - * If given value is not a string, then it returns false. - */ -export declare function isBase32(value: unknown): boolean; -/** - * Check if a string is base32 encoded. - * If given value is not a string, then it returns false. - */ -export declare function IsBase32(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsBase64.d.ts b/views/node_modules/class-validator/types/decorator/string/IsBase64.d.ts deleted file mode 100644 index b5edcfb..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsBase64.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_BASE64 = "isBase64"; -/** - * Checks if a string is base64 encoded. - * If given value is not a string, then it returns false. - */ -export declare function isBase64(value: unknown): boolean; -/** - * Checks if a string is base64 encoded. - * If given value is not a string, then it returns false. - */ -export declare function IsBase64(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsBooleanString.d.ts b/views/node_modules/class-validator/types/decorator/string/IsBooleanString.d.ts deleted file mode 100644 index cb4cf6b..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsBooleanString.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_BOOLEAN_STRING = "isBooleanString"; -/** - * Checks if a string is a boolean. - * If given value is not a string, then it returns false. - */ -export declare function isBooleanString(value: unknown): boolean; -/** - * Checks if a string is a boolean. - * If given value is not a string, then it returns false. - */ -export declare function IsBooleanString(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsBtcAddress.d.ts b/views/node_modules/class-validator/types/decorator/string/IsBtcAddress.d.ts deleted file mode 100644 index 3548b9a..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsBtcAddress.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_BTC_ADDRESS = "isBtcAddress"; -/** - * Check if the string is a valid BTC address. - * If given value is not a string, then it returns false. - */ -export declare function isBtcAddress(value: unknown): boolean; -/** - * Check if the string is a valid BTC address. - * If given value is not a string, then it returns false. - */ -export declare function IsBtcAddress(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsByteLength.d.ts b/views/node_modules/class-validator/types/decorator/string/IsByteLength.d.ts deleted file mode 100644 index 2bf6059..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsByteLength.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_BYTE_LENGTH = "isByteLength"; -/** - * Checks if the string's length (in bytes) falls in a range. - * If given value is not a string, then it returns false. - */ -export declare function isByteLength(value: unknown, min: number, max?: number): boolean; -/** - * Checks if the string's length (in bytes) falls in a range. - * If given value is not a string, then it returns false. - */ -export declare function IsByteLength(min: number, max?: number, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsCreditCard.d.ts b/views/node_modules/class-validator/types/decorator/string/IsCreditCard.d.ts deleted file mode 100644 index 8026f4a..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsCreditCard.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_CREDIT_CARD = "isCreditCard"; -/** - * Checks if the string is a credit card. - * If given value is not a string, then it returns false. - */ -export declare function isCreditCard(value: unknown): boolean; -/** - * Checks if the string is a credit card. - * If given value is not a string, then it returns false. - */ -export declare function IsCreditCard(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsCurrency.d.ts b/views/node_modules/class-validator/types/decorator/string/IsCurrency.d.ts deleted file mode 100644 index b86e30d..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsCurrency.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_CURRENCY = "isCurrency"; -/** - * Checks if the string is a valid currency amount. - * If given value is not a string, then it returns false. - */ -export declare function isCurrency(value: unknown, options?: ValidatorJS.IsCurrencyOptions): boolean; -/** - * Checks if the string is a valid currency amount. - * If given value is not a string, then it returns false. - */ -export declare function IsCurrency(options?: ValidatorJS.IsCurrencyOptions, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsDataURI.d.ts b/views/node_modules/class-validator/types/decorator/string/IsDataURI.d.ts deleted file mode 100644 index 7583d93..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsDataURI.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_DATA_URI = "isDataURI"; -/** - * Check if the string is a data uri format. - * If given value is not a string, then it returns false. - */ -export declare function isDataURI(value: unknown): boolean; -/** - * Check if the string is a data uri format. - * If given value is not a string, then it returns false. - */ -export declare function IsDataURI(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsDateString.d.ts b/views/node_modules/class-validator/types/decorator/string/IsDateString.d.ts deleted file mode 100644 index 4ac3b85..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsDateString.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_DATE_STRING = "isDateString"; -/** - * Alias for IsISO8601 validator - */ -export declare function isDateString(value: unknown, options?: ValidatorJS.IsISO8601Options): boolean; -/** - * Alias for IsISO8601 validator - */ -export declare function IsDateString(options?: ValidatorJS.IsISO8601Options, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsDecimal.d.ts b/views/node_modules/class-validator/types/decorator/string/IsDecimal.d.ts deleted file mode 100644 index 4a4dd6d..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsDecimal.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_DECIMAL = "isDecimal"; -/** - * Checks if the string is a valid decimal. - * If given value is not a string, then it returns false. - */ -export declare function isDecimal(value: unknown, options?: ValidatorJS.IsDecimalOptions): boolean; -/** - * Checks if the string contains only letters and numbers. - * If given value is not a string, then it returns false. - */ -export declare function IsDecimal(options?: ValidatorJS.IsDecimalOptions, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsEAN.d.ts b/views/node_modules/class-validator/types/decorator/string/IsEAN.d.ts deleted file mode 100644 index 0540443..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsEAN.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_EAN = "isEAN"; -/** - * Check if the string is an EAN (European Article Number). - * If given value is not a string, then it returns false. - */ -export declare function isEAN(value: unknown): boolean; -/** - * Check if the string is an EAN (European Article Number). - * If given value is not a string, then it returns false. - */ -export declare function IsEAN(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsEmail.d.ts b/views/node_modules/class-validator/types/decorator/string/IsEmail.d.ts deleted file mode 100644 index 2560929..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsEmail.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_EMAIL = "isEmail"; -/** - * Checks if the string is an email. - * If given value is not a string, then it returns false. - */ -export declare function isEmail(value: unknown, options?: ValidatorJS.IsEmailOptions): boolean; -/** - * Checks if the string is an email. - * If given value is not a string, then it returns false. - */ -export declare function IsEmail(options?: ValidatorJS.IsEmailOptions, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsEthereumAddress.d.ts b/views/node_modules/class-validator/types/decorator/string/IsEthereumAddress.d.ts deleted file mode 100644 index 5c449b2..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsEthereumAddress.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_ETHEREUM_ADDRESS = "isEthereumAddress"; -/** - * Check if the string is an Ethereum address using basic regex. Does not validate address checksums. - * If given value is not a string, then it returns false. - */ -export declare function isEthereumAddress(value: unknown): boolean; -/** - * Check if the string is an Ethereum address using basic regex. Does not validate address checksums. - * If given value is not a string, then it returns false. - */ -export declare function IsEthereumAddress(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsFQDN.d.ts b/views/node_modules/class-validator/types/decorator/string/IsFQDN.d.ts deleted file mode 100644 index 3b350d8..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsFQDN.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_FQDN = "isFqdn"; -/** - * Checks if the string is a fully qualified domain name (e.g. domain.com). - * If given value is not a string, then it returns false. - */ -export declare function isFQDN(value: unknown, options?: ValidatorJS.IsFQDNOptions): boolean; -/** - * Checks if the string is a fully qualified domain name (e.g. domain.com). - * If given value is not a string, then it returns false. - */ -export declare function IsFQDN(options?: ValidatorJS.IsFQDNOptions, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsFirebasePushId.d.ts b/views/node_modules/class-validator/types/decorator/string/IsFirebasePushId.d.ts deleted file mode 100644 index 86168a3..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsFirebasePushId.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_FIREBASE_PUSH_ID = "IsFirebasePushId"; -/** - * Checks if the string is a Firebase Push Id - * If given value is not a Firebase Push Id, it returns false - */ -export declare function isFirebasePushId(value: unknown): boolean; -/** - * Checks if the string is a Firebase Push Id - * If given value is not a Firebase Push Id, it returns false - */ -export declare function IsFirebasePushId(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsFullWidth.d.ts b/views/node_modules/class-validator/types/decorator/string/IsFullWidth.d.ts deleted file mode 100644 index b434c5c..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsFullWidth.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_FULL_WIDTH = "isFullWidth"; -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -export declare function isFullWidth(value: unknown): boolean; -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -export declare function IsFullWidth(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsHSL.d.ts b/views/node_modules/class-validator/types/decorator/string/IsHSL.d.ts deleted file mode 100644 index 905287f..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsHSL.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_HSL = "isHSL"; -/** - * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification. - * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)). - * If given value is not a string, then it returns false. - */ -export declare function isHSL(value: unknown): boolean; -/** - * Check if the string is an HSL (hue, saturation, lightness, optional alpha) color based on CSS Colors Level 4 specification. - * Comma-separated format supported. Space-separated format supported with the exception of a few edge cases (ex: hsl(200grad+.1%62%/1)). - * If given value is not a string, then it returns false. - */ -export declare function IsHSL(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsHalfWidth.d.ts b/views/node_modules/class-validator/types/decorator/string/IsHalfWidth.d.ts deleted file mode 100644 index bdd6f68..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsHalfWidth.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_HALF_WIDTH = "isHalfWidth"; -/** - * Checks if the string contains any half-width chars. - * If given value is not a string, then it returns false. - */ -export declare function isHalfWidth(value: unknown): boolean; -/** - * Checks if the string contains any full-width chars. - * If given value is not a string, then it returns false. - */ -export declare function IsHalfWidth(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsHash.d.ts b/views/node_modules/class-validator/types/decorator/string/IsHash.d.ts deleted file mode 100644 index 14a0d48..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsHash.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_HASH = "isHash"; -/** - * Check if the string is a hash of type algorithm. - * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', - * 'tiger160', 'tiger192', 'crc32', 'crc32b'] - */ -export declare function isHash(value: unknown, algorithm: ValidatorJS.HashAlgorithm): boolean; -/** - * Check if the string is a hash of type algorithm. - * Algorithm is one of ['md4', 'md5', 'sha1', 'sha256', 'sha384', 'sha512', 'ripemd128', 'ripemd160', 'tiger128', - * 'tiger160', 'tiger192', 'crc32', 'crc32b'] - */ -export declare function IsHash(algorithm: string, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsHexColor.d.ts b/views/node_modules/class-validator/types/decorator/string/IsHexColor.d.ts deleted file mode 100644 index 34e9e42..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsHexColor.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_HEX_COLOR = "isHexColor"; -/** - * Checks if the string is a hexadecimal color. - * If given value is not a string, then it returns false. - */ -export declare function isHexColor(value: unknown): boolean; -/** - * Checks if the string is a hexadecimal color. - * If given value is not a string, then it returns false. - */ -export declare function IsHexColor(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsHexadecimal.d.ts b/views/node_modules/class-validator/types/decorator/string/IsHexadecimal.d.ts deleted file mode 100644 index f07f986..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsHexadecimal.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_HEXADECIMAL = "isHexadecimal"; -/** - * Checks if the string is a hexadecimal number. - * If given value is not a string, then it returns false. - */ -export declare function isHexadecimal(value: unknown): boolean; -/** - * Checks if the string is a hexadecimal number. - * If given value is not a string, then it returns false. - */ -export declare function IsHexadecimal(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsIBAN.d.ts b/views/node_modules/class-validator/types/decorator/string/IsIBAN.d.ts deleted file mode 100644 index b5998b4..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsIBAN.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_IBAN = "isIBAN"; -/** - * Check if a string is a IBAN (International Bank Account Number). - * If given value is not a string, then it returns false. - */ -export declare function isIBAN(value: unknown): boolean; -/** - * Check if a string is a IBAN (International Bank Account Number). - * If given value is not a string, then it returns false. - */ -export declare function IsIBAN(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsIP.d.ts b/views/node_modules/class-validator/types/decorator/string/IsIP.d.ts deleted file mode 100644 index 2c04eb7..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsIP.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare type IsIpVersion = '4' | '6' | 4 | 6; -export declare const IS_IP = "isIp"; -/** - * Checks if the string is an IP (version 4 or 6). - * If given value is not a string, then it returns false. - */ -export declare function isIP(value: unknown, version?: IsIpVersion): boolean; -/** - * Checks if the string is an IP (version 4 or 6). - * If given value is not a string, then it returns false. - */ -export declare function IsIP(version?: IsIpVersion, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsISBN.d.ts b/views/node_modules/class-validator/types/decorator/string/IsISBN.d.ts deleted file mode 100644 index e61284d..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsISBN.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare type IsISBNVersion = '10' | '13' | 10 | 13; -export declare const IS_ISBN = "isIsbn"; -/** - * Checks if the string is an ISBN (version 10 or 13). - * If given value is not a string, then it returns false. - */ -export declare function isISBN(value: unknown, version?: IsISBNVersion): boolean; -/** - * Checks if the string is an ISBN (version 10 or 13). - * If given value is not a string, then it returns false. - */ -export declare function IsISBN(version?: IsISBNVersion, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsISIN.d.ts b/views/node_modules/class-validator/types/decorator/string/IsISIN.d.ts deleted file mode 100644 index bfdd537..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsISIN.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_ISIN = "isIsin"; -/** - * Checks if the string is an ISIN (stock/security identifier). - * If given value is not a string, then it returns false. - */ -export declare function isISIN(value: unknown): boolean; -/** - * Checks if the string is an ISIN (stock/security identifier). - * If given value is not a string, then it returns false. - */ -export declare function IsISIN(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsISO31661Alpha2.d.ts b/views/node_modules/class-validator/types/decorator/string/IsISO31661Alpha2.d.ts deleted file mode 100644 index 6fb284d..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsISO31661Alpha2.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_ISO31661_ALPHA_2 = "isISO31661Alpha2"; -/** - * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code. - */ -export declare function isISO31661Alpha2(value: unknown): boolean; -/** - * Check if the string is a valid [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) officially assigned country code. - */ -export declare function IsISO31661Alpha2(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsISO31661Alpha3.d.ts b/views/node_modules/class-validator/types/decorator/string/IsISO31661Alpha3.d.ts deleted file mode 100644 index c37f728..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsISO31661Alpha3.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_ISO31661_ALPHA_3 = "isISO31661Alpha3"; -/** - * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code. - */ -export declare function isISO31661Alpha3(value: unknown): boolean; -/** - * Check if the string is a valid [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) officially assigned country code. - */ -export declare function IsISO31661Alpha3(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsISO8601.d.ts b/views/node_modules/class-validator/types/decorator/string/IsISO8601.d.ts deleted file mode 100644 index a3ebbb3..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsISO8601.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_ISO8601 = "isIso8601"; -/** - * Checks if the string is a valid ISO 8601 date. - * If given value is not a string, then it returns false. - * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29. - */ -export declare function isISO8601(value: unknown, options?: ValidatorJS.IsISO8601Options): boolean; -/** - * Checks if the string is a valid ISO 8601 date. - * If given value is not a string, then it returns false. - * Use the option strict = true for additional checks for a valid date, e.g. invalidates dates like 2019-02-29. - */ -export declare function IsISO8601(options?: ValidatorJS.IsISO8601Options, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsISRC.d.ts b/views/node_modules/class-validator/types/decorator/string/IsISRC.d.ts deleted file mode 100644 index 08d38ce..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsISRC.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_ISRC = "isISRC"; -/** - * Check if the string is a ISRC. - * If given value is not a string, then it returns false. - */ -export declare function isISRC(value: unknown): boolean; -/** - * Check if the string is a ISRC. - * If given value is not a string, then it returns false. - */ -export declare function IsISRC(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsISSN.d.ts b/views/node_modules/class-validator/types/decorator/string/IsISSN.d.ts deleted file mode 100644 index 7b66780..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsISSN.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_ISSN = "isISSN"; -/** - * Checks if the string is a ISSN. - * If given value is not a string, then it returns false. - */ -export declare function isISSN(value: unknown, options?: ValidatorJS.IsISSNOptions): boolean; -/** - * Checks if the string is a ISSN. - * If given value is not a string, then it returns false. - */ -export declare function IsISSN(options?: ValidatorJS.IsISSNOptions, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsIdentityCard.d.ts b/views/node_modules/class-validator/types/decorator/string/IsIdentityCard.d.ts deleted file mode 100644 index 62553cf..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsIdentityCard.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_IDENTITY_CARD = "isIdentityCard"; -/** - * Check if the string is a valid identity card code. - * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match. - * Defaults to 'any'. - * If given value is not a string, then it returns false. - */ -export declare function isIdentityCard(value: unknown, locale: ValidatorJS.IdentityCardLocale): boolean; -/** - * Check if the string is a valid identity card code. - * locale is one of ['ES', 'zh-TW', 'he-IL', 'ar-TN'] OR 'any'. If 'any' is used, function will check if any of the locals match. - * Defaults to 'any'. - * If given value is not a string, then it returns false. - */ -export declare function IsIdentityCard(locale?: ValidatorJS.IdentityCardLocale, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsJSON.d.ts b/views/node_modules/class-validator/types/decorator/string/IsJSON.d.ts deleted file mode 100644 index c217083..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsJSON.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_JSON = "isJson"; -/** - * Checks if the string is valid JSON (note: uses JSON.parse). - * If given value is not a string, then it returns false. - */ -export declare function isJSON(value: unknown): boolean; -/** - * Checks if the string is valid JSON (note: uses JSON.parse). - * If given value is not a string, then it returns false. - */ -export declare function IsJSON(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsJWT.d.ts b/views/node_modules/class-validator/types/decorator/string/IsJWT.d.ts deleted file mode 100644 index 508df81..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsJWT.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_JWT = "isJwt"; -/** - * Checks if the string is valid JWT token. - * If given value is not a string, then it returns false. - */ -export declare function isJWT(value: unknown): boolean; -/** - * Checks if the string is valid JWT token. - * If given value is not a string, then it returns false. - */ -export declare function IsJWT(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsLocale.d.ts b/views/node_modules/class-validator/types/decorator/string/IsLocale.d.ts deleted file mode 100644 index e4bf393..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsLocale.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_LOCALE = "isLocale"; -/** - * Check if the string is a locale. - * If given value is not a string, then it returns false. - */ -export declare function isLocale(value: unknown): boolean; -/** - * Check if the string is a locale. - * If given value is not a string, then it returns false. - */ -export declare function IsLocale(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsLowercase.d.ts b/views/node_modules/class-validator/types/decorator/string/IsLowercase.d.ts deleted file mode 100644 index 2de09e0..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsLowercase.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_LOWERCASE = "isLowercase"; -/** - * Checks if the string is lowercase. - * If given value is not a string, then it returns false. - */ -export declare function isLowercase(value: unknown): boolean; -/** - * Checks if the string is lowercase. - * If given value is not a string, then it returns false. - */ -export declare function IsLowercase(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsMacAddress.d.ts b/views/node_modules/class-validator/types/decorator/string/IsMacAddress.d.ts deleted file mode 100644 index d73b08f..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsMacAddress.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_MAC_ADDRESS = "isMacAddress"; -/** - * Check if the string is a MAC address. - * If given value is not a string, then it returns false. - */ -export declare function isMACAddress(value: unknown, options?: ValidatorJS.IsMACAddressOptions): boolean; -/** - * Check if the string is a MAC address. - * If given value is not a string, then it returns false. - */ -export declare function IsMACAddress(optionsArg?: ValidatorJS.IsMACAddressOptions, validationOptionsArg?: ValidationOptions): PropertyDecorator; -export declare function IsMACAddress(validationOptionsArg?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsMagnetURI.d.ts b/views/node_modules/class-validator/types/decorator/string/IsMagnetURI.d.ts deleted file mode 100644 index 167209f..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsMagnetURI.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_MAGNET_URI = "isMagnetURI"; -/** - * Check if the string is a magnet uri format. - * If given value is not a string, then it returns false. - */ -export declare function isMagnetURI(value: unknown): boolean; -/** - * Check if the string is a magnet uri format. - * If given value is not a string, then it returns false. - */ -export declare function IsMagnetURI(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsMilitaryTime.d.ts b/views/node_modules/class-validator/types/decorator/string/IsMilitaryTime.d.ts deleted file mode 100644 index ef45027..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsMilitaryTime.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_MILITARY_TIME = "isMilitaryTime"; -/** - * Checks if the string represents a time without a given timezone in the format HH:MM (military) - * If the given value does not match the pattern HH:MM, then it returns false. - */ -export declare function isMilitaryTime(value: unknown): boolean; -/** - * Checks if the string represents a time without a given timezone in the format HH:MM (military) - * If the given value does not match the pattern HH:MM, then it returns false. - */ -export declare function IsMilitaryTime(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsMimeType.d.ts b/views/node_modules/class-validator/types/decorator/string/IsMimeType.d.ts deleted file mode 100644 index f7cff19..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsMimeType.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_MIME_TYPE = "isMimeType"; -/** - * Check if the string matches to a valid MIME type format - * If given value is not a string, then it returns false. - */ -export declare function isMimeType(value: unknown): boolean; -/** - * Check if the string matches to a valid MIME type format - * If given value is not a string, then it returns false. - */ -export declare function IsMimeType(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsMobilePhone.d.ts b/views/node_modules/class-validator/types/decorator/string/IsMobilePhone.d.ts deleted file mode 100644 index 98a95fa..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsMobilePhone.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_MOBILE_PHONE = "isMobilePhone"; -/** - * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS']) - * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY', - * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK', - * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG', - * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE', - * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID', - * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL', - * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN', - * 'zh-HK', 'zh-MO', 'zh-TW'] - * If given value is not a string, then it returns false. - */ -export declare function isMobilePhone(value: unknown, locale?: ValidatorJS.MobilePhoneLocale, options?: ValidatorJS.IsMobilePhoneOptions): boolean; -/** - * Checks if the string is a mobile phone number (locale is either an array of locales (e.g ['sk-SK', 'sr-RS']) - * OR one of ['am-Am', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', ar-JO', 'ar-KW', 'ar-SA', 'ar-SY', 'ar-TN', 'be-BY', - * 'bg-BG', 'bn-BD', 'cs-CZ', 'da-DK', 'de-DE', 'de-AT', 'el-GR', 'en-AU', 'en-CA', 'en-GB', 'en-GG', 'en-GH', 'en-HK', - * 'en-MO', 'en-IE', 'en-IN', 'en-KE', 'en-MT', 'en-MU', 'en-NG', 'en-NZ', 'en-PK', 'en-RW', 'en-SG', 'en-SL', 'en-UG', - * 'en-US', 'en-TZ', 'en-ZA', 'en-ZM', 'es-CL', 'es-CR', 'es-EC', 'es-ES', 'es-MX', 'es-PA', 'es-PY', 'es-UY', 'et-EE', - * 'fa-IR', 'fi-FI', 'fj-FJ', 'fo-FO', 'fr-BE', 'fr-FR', 'fr-GF', 'fr-GP', 'fr-MQ', 'fr-RE', 'he-IL', 'hu-HU', 'id-ID', - * 'it-IT', 'ja-JP', 'kk-KZ', 'kl-GL', 'ko-KR', 'lt-LT', 'ms-MY', 'nb-NO', 'ne-NP', 'nl-BE', 'nl-NL', 'nn-NO', 'pl-PL', - * 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sv-SE', 'th-TH', 'tr-TR', 'uk-UA', 'vi-VN', 'zh-CN', - * 'zh-HK', 'zh-MO', 'zh-TW'] - * If given value is not a string, then it returns false. - */ -export declare function IsMobilePhone(locale?: ValidatorJS.MobilePhoneLocale, options?: ValidatorJS.IsMobilePhoneOptions, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsMongoId.d.ts b/views/node_modules/class-validator/types/decorator/string/IsMongoId.d.ts deleted file mode 100644 index 21623ec..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsMongoId.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_MONGO_ID = "isMongoId"; -/** - * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. - * If given value is not a string, then it returns false. - */ -export declare function isMongoId(value: unknown): boolean; -/** - * Checks if the string is a valid hex-encoded representation of a MongoDB ObjectId. - * If given value is not a string, then it returns false. - */ -export declare function IsMongoId(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsMultibyte.d.ts b/views/node_modules/class-validator/types/decorator/string/IsMultibyte.d.ts deleted file mode 100644 index 4b34e13..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsMultibyte.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_MULTIBYTE = "isMultibyte"; -/** - * Checks if the string contains one or more multibyte chars. - * If given value is not a string, then it returns false. - */ -export declare function isMultibyte(value: unknown): boolean; -/** - * Checks if the string contains one or more multibyte chars. - * If given value is not a string, then it returns false. - */ -export declare function IsMultibyte(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsNumberString.d.ts b/views/node_modules/class-validator/types/decorator/string/IsNumberString.d.ts deleted file mode 100644 index 7206fd4..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsNumberString.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_NUMBER_STRING = "isNumberString"; -/** - * Checks if the string is numeric. - * If given value is not a string, then it returns false. - */ -export declare function isNumberString(value: unknown, options?: ValidatorJS.IsNumericOptions): boolean; -/** - * Checks if the string is numeric. - * If given value is not a string, then it returns false. - */ -export declare function IsNumberString(options?: ValidatorJS.IsNumericOptions, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsOctal.d.ts b/views/node_modules/class-validator/types/decorator/string/IsOctal.d.ts deleted file mode 100644 index e3b4def..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsOctal.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_OCTAL = "isOctal"; -/** - * Check if the string is a valid octal number. - * If given value is not a string, then it returns false. - */ -export declare function isOctal(value: unknown): boolean; -/** - * Check if the string is a valid octal number. - * If given value is not a string, then it returns false. - */ -export declare function IsOctal(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsPassportNumber.d.ts b/views/node_modules/class-validator/types/decorator/string/IsPassportNumber.d.ts deleted file mode 100644 index faa9e1d..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsPassportNumber.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_PASSPORT_NUMBER = "isPassportNumber"; -/** - * Check if the string is a valid passport number relative to a specific country code. - * If given value is not a string, then it returns false. - */ -export declare function isPassportNumber(value: unknown, countryCode: string): boolean; -/** - * Check if the string is a valid passport number relative to a specific country code. - * If given value is not a string, then it returns false. - */ -export declare function IsPassportNumber(countryCode: string, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsPhoneNumber.d.ts b/views/node_modules/class-validator/types/decorator/string/IsPhoneNumber.d.ts deleted file mode 100644 index 8b74a88..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsPhoneNumber.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import { CountryCode } from 'libphonenumber-js'; -export declare const IS_PHONE_NUMBER = "isPhoneNumber"; -/** - * Checks if the string is a valid phone number. To successfully validate any phone number the text must include - * the intl. calling code, if the calling code wont be provided then the region must be set. - * - * @param value the potential phone number string to test - * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation. - * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter. - */ -export declare function isPhoneNumber(value: string, region?: CountryCode): boolean; -/** - * Checks if the string is a valid phone number. To successfully validate any phone number the text must include - * the intl. calling code, if the calling code wont be provided then the region must be set. - * - * @param region 2 characters uppercase country code (e.g. DE, US, CH) for country specific validation. - * If text doesn't start with the international calling code (e.g. +41), then you must set this parameter. - */ -export declare function IsPhoneNumber(region?: CountryCode, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsPort.d.ts b/views/node_modules/class-validator/types/decorator/string/IsPort.d.ts deleted file mode 100644 index f77fd18..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsPort.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_PORT = "isPort"; -/** - * Check if the string is a valid port number. - */ -export declare function isPort(value: unknown): boolean; -/** - * Check if the string is a valid port number. - */ -export declare function IsPort(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsPostalCode.d.ts b/views/node_modules/class-validator/types/decorator/string/IsPostalCode.d.ts deleted file mode 100644 index 5655f97..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsPostalCode.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_POSTAL_CODE = "isPostalCode"; -/** - * Check if the string is a postal code, - * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.). - * If given value is not a string, then it returns false. - */ -export declare function isPostalCode(value: unknown, locale: 'any' | ValidatorJS.PostalCodeLocale): boolean; -/** - * Check if the string is a postal code, - * (locale is one of [ 'AD', 'AT', 'AU', 'BE', 'BG', 'BR', 'CA', 'CH', 'CZ', 'DE', 'DK', 'DZ', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'ID', 'IE' 'IL', 'IN', 'IR', 'IS', 'IT', 'JP', 'KE', 'LI', 'LT', 'LU', 'LV', 'MT', 'MX', 'NL', 'NO', 'NZ', 'PL', 'PR', 'PT', 'RO', 'RU', 'SA', 'SE', 'SI', 'TN', 'TW', 'UA', 'US', 'ZA', 'ZM' ] OR 'any'. If 'any' is used, function will check if any of the locals match. Locale list is validator.isPostalCodeLocales.). - * If given value is not a string, then it returns false. - */ -export declare function IsPostalCode(locale?: 'any' | ValidatorJS.PostalCodeLocale, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsRFC3339.d.ts b/views/node_modules/class-validator/types/decorator/string/IsRFC3339.d.ts deleted file mode 100644 index 8972863..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsRFC3339.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_RFC_3339 = "isRFC3339"; -/** - * Check if the string is a valid RFC 3339 date. - * If given value is not a string, then it returns false. - */ -export declare function isRFC3339(value: unknown): boolean; -/** - * Check if the string is a valid RFC 3339 date. - * If given value is not a string, then it returns false. - */ -export declare function IsRFC3339(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsRgbColor.d.ts b/views/node_modules/class-validator/types/decorator/string/IsRgbColor.d.ts deleted file mode 100644 index f406384..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsRgbColor.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_RGB_COLOR = "isRgbColor"; -/** - * Check if the string is a rgb or rgba color. - * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false. - * If given value is not a string, then it returns false. - */ -export declare function isRgbColor(value: unknown, includePercentValues?: boolean): boolean; -/** - * Check if the string is a rgb or rgba color. - * `includePercentValues` defaults to true. If you don't want to allow to set rgb or rgba values with percents, like rgb(5%,5%,5%), or rgba(90%,90%,90%,.3), then set it to false. - * If given value is not a string, then it returns false. - */ -export declare function IsRgbColor(includePercentValues?: boolean, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsSemVer.d.ts b/views/node_modules/class-validator/types/decorator/string/IsSemVer.d.ts deleted file mode 100644 index 6e5bc0e..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsSemVer.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_SEM_VER = "isSemVer"; -/** - * Check if the string is a Semantic Versioning Specification (SemVer). - * If given value is not a string, then it returns false. - */ -export declare function isSemVer(value: unknown): boolean; -/** - * Check if the string is a Semantic Versioning Specification (SemVer). - * If given value is not a string, then it returns false. - */ -export declare function IsSemVer(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsSurrogatePair.d.ts b/views/node_modules/class-validator/types/decorator/string/IsSurrogatePair.d.ts deleted file mode 100644 index 8e6bacb..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsSurrogatePair.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_SURROGATE_PAIR = "isSurrogatePair"; -/** - * Checks if the string contains any surrogate pairs chars. - * If given value is not a string, then it returns false. - */ -export declare function isSurrogatePair(value: unknown): boolean; -/** - * Checks if the string contains any surrogate pairs chars. - * If given value is not a string, then it returns false. - */ -export declare function IsSurrogatePair(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsUUID.d.ts b/views/node_modules/class-validator/types/decorator/string/IsUUID.d.ts deleted file mode 100644 index 4756313..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsUUID.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare type UUIDVersion = '3' | '4' | '5' | 'all' | 3 | 4 | 5; -export declare const IS_UUID = "isUuid"; -/** - * Checks if the string is a UUID (version 3, 4 or 5). - * If given value is not a string, then it returns false. - */ -export declare function isUUID(value: unknown, version?: UUIDVersion): boolean; -/** - * Checks if the string is a UUID (version 3, 4 or 5). - * If given value is not a string, then it returns false. - */ -export declare function IsUUID(version?: UUIDVersion, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsUppercase.d.ts b/views/node_modules/class-validator/types/decorator/string/IsUppercase.d.ts deleted file mode 100644 index 4478baa..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsUppercase.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_UPPERCASE = "isUppercase"; -/** - * Checks if the string is uppercase. - * If given value is not a string, then it returns false. - */ -export declare function isUppercase(value: unknown): boolean; -/** - * Checks if the string is uppercase. - * If given value is not a string, then it returns false. - */ -export declare function IsUppercase(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsUrl.d.ts b/views/node_modules/class-validator/types/decorator/string/IsUrl.d.ts deleted file mode 100644 index 0f5e2de..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsUrl.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -import ValidatorJS from 'validator'; -export declare const IS_URL = "isUrl"; -/** - * Checks if the string is an url. - * If given value is not a string, then it returns false. - */ -export declare function isURL(value: string, options?: ValidatorJS.IsURLOptions): boolean; -/** - * Checks if the string is an url. - * If given value is not a string, then it returns false. - */ -export declare function IsUrl(options?: ValidatorJS.IsURLOptions, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/IsVariableWidth.d.ts b/views/node_modules/class-validator/types/decorator/string/IsVariableWidth.d.ts deleted file mode 100644 index c7425ef..0000000 --- a/views/node_modules/class-validator/types/decorator/string/IsVariableWidth.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_VARIABLE_WIDTH = "isVariableWidth"; -/** - * Checks if the string contains variable-width chars. - * If given value is not a string, then it returns false. - */ -export declare function isVariableWidth(value: unknown): boolean; -/** - * Checks if the string contains variable-width chars. - * If given value is not a string, then it returns false. - */ -export declare function IsVariableWidth(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/Length.d.ts b/views/node_modules/class-validator/types/decorator/string/Length.d.ts deleted file mode 100644 index 37c2378..0000000 --- a/views/node_modules/class-validator/types/decorator/string/Length.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_LENGTH = "isLength"; -/** - * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export declare function length(value: unknown, min: number, max?: number): boolean; -/** - * Checks if the string's length falls in a range. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export declare function Length(min: number, max?: number, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/Matches.d.ts b/views/node_modules/class-validator/types/decorator/string/Matches.d.ts deleted file mode 100644 index d09d367..0000000 --- a/views/node_modules/class-validator/types/decorator/string/Matches.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const MATCHES = "matches"; -/** - * Checks if string matches the pattern. Either matches('foo', /foo/i). - * If given value is not a string, then it returns false. - */ -export declare function matches(value: string, pattern: RegExp): boolean; -export declare function matches(value: string, pattern: string, modifiers: string): boolean; -/** - * Checks if string matches the pattern. Either matches('foo', /foo/i) - * If given value is not a string, then it returns false. - */ -export declare function Matches(pattern: RegExp, validationOptions?: ValidationOptions): PropertyDecorator; -export declare function Matches(pattern: string, modifiers?: string, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/MaxLength.d.ts b/views/node_modules/class-validator/types/decorator/string/MaxLength.d.ts deleted file mode 100644 index ffde353..0000000 --- a/views/node_modules/class-validator/types/decorator/string/MaxLength.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const MAX_LENGTH = "maxLength"; -/** - * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export declare function maxLength(value: unknown, max: number): boolean; -/** - * Checks if the string's length is not more than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export declare function MaxLength(max: number, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/MinLength.d.ts b/views/node_modules/class-validator/types/decorator/string/MinLength.d.ts deleted file mode 100644 index 33b4b23..0000000 --- a/views/node_modules/class-validator/types/decorator/string/MinLength.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const MIN_LENGTH = "minLength"; -/** - * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export declare function minLength(value: unknown, min: number): boolean; -/** - * Checks if the string's length is not less than given number. Note: this function takes into account surrogate pairs. - * If given value is not a string, then it returns false. - */ -export declare function MinLength(min: number, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/string/NotContains.d.ts b/views/node_modules/class-validator/types/decorator/string/NotContains.d.ts deleted file mode 100644 index 24dc6bf..0000000 --- a/views/node_modules/class-validator/types/decorator/string/NotContains.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const NOT_CONTAINS = "notContains"; -/** - * Checks if the string does not contain the seed. - * If given value is not a string, then it returns false. - */ -export declare function notContains(value: unknown, seed: string): boolean; -/** - * Checks if the string does not contain the seed. - * If given value is not a string, then it returns false. - */ -export declare function NotContains(seed: string, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/typechecker/IsArray.d.ts b/views/node_modules/class-validator/types/decorator/typechecker/IsArray.d.ts deleted file mode 100644 index 1b635f7..0000000 --- a/views/node_modules/class-validator/types/decorator/typechecker/IsArray.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_ARRAY = "isArray"; -/** - * Checks if a given value is an array - */ -export declare function isArray(value: unknown): boolean; -/** - * Checks if a given value is an array - */ -export declare function IsArray(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/typechecker/IsBoolean.d.ts b/views/node_modules/class-validator/types/decorator/typechecker/IsBoolean.d.ts deleted file mode 100644 index b6ed3f9..0000000 --- a/views/node_modules/class-validator/types/decorator/typechecker/IsBoolean.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_BOOLEAN = "isBoolean"; -/** - * Checks if a given value is a boolean. - */ -export declare function isBoolean(value: unknown): boolean; -/** - * Checks if a value is a boolean. - */ -export declare function IsBoolean(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/typechecker/IsDate.d.ts b/views/node_modules/class-validator/types/decorator/typechecker/IsDate.d.ts deleted file mode 100644 index f4e1bce..0000000 --- a/views/node_modules/class-validator/types/decorator/typechecker/IsDate.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_DATE = "isDate"; -/** - * Checks if a given value is a date. - */ -export declare function isDate(value: unknown): boolean; -/** - * Checks if a value is a date. - */ -export declare function IsDate(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/typechecker/IsEnum.d.ts b/views/node_modules/class-validator/types/decorator/typechecker/IsEnum.d.ts deleted file mode 100644 index d9ed09c..0000000 --- a/views/node_modules/class-validator/types/decorator/typechecker/IsEnum.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_ENUM = "isEnum"; -/** - * Checks if a given value is an enum - */ -export declare function isEnum(value: unknown, entity: any): boolean; -/** - * Checks if a given value is an enum - */ -export declare function IsEnum(entity: object, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/typechecker/IsInt.d.ts b/views/node_modules/class-validator/types/decorator/typechecker/IsInt.d.ts deleted file mode 100644 index 055f75e..0000000 --- a/views/node_modules/class-validator/types/decorator/typechecker/IsInt.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_INT = "isInt"; -/** - * Checks if value is an integer. - */ -export declare function isInt(val: unknown): boolean; -/** - * Checks if value is an integer. - */ -export declare function IsInt(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/typechecker/IsNumber.d.ts b/views/node_modules/class-validator/types/decorator/typechecker/IsNumber.d.ts deleted file mode 100644 index df0e2f0..0000000 --- a/views/node_modules/class-validator/types/decorator/typechecker/IsNumber.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_NUMBER = "isNumber"; -/** - * Options to be passed to IsNumber decorator. - */ -export interface IsNumberOptions { - allowNaN?: boolean; - allowInfinity?: boolean; - maxDecimalPlaces?: number; -} -/** - * Checks if a given value is a number. - */ -export declare function isNumber(value: unknown, options?: IsNumberOptions): boolean; -/** - * Checks if a value is a number. - */ -export declare function IsNumber(options?: IsNumberOptions, validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/typechecker/IsObject.d.ts b/views/node_modules/class-validator/types/decorator/typechecker/IsObject.d.ts deleted file mode 100644 index 40012d6..0000000 --- a/views/node_modules/class-validator/types/decorator/typechecker/IsObject.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_OBJECT = "isObject"; -/** - * Checks if the value is valid Object. - * Returns false if the value is not an object. - */ -export declare function isObject(value: unknown): value is object; -/** - * Checks if the value is valid Object. - * Returns false if the value is not an object. - */ -export declare function IsObject(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/decorator/typechecker/IsString.d.ts b/views/node_modules/class-validator/types/decorator/typechecker/IsString.d.ts deleted file mode 100644 index 50dbd43..0000000 --- a/views/node_modules/class-validator/types/decorator/typechecker/IsString.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { ValidationOptions } from '../ValidationOptions'; -export declare const IS_STRING = "isString"; -/** - * Checks if a given value is a real string. - */ -export declare function isString(value: unknown): value is string; -/** - * Checks if a given value is a real string. - */ -export declare function IsString(validationOptions?: ValidationOptions): PropertyDecorator; diff --git a/views/node_modules/class-validator/types/index.d.ts b/views/node_modules/class-validator/types/index.d.ts deleted file mode 100644 index 0aedda5..0000000 --- a/views/node_modules/class-validator/types/index.d.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { ValidationError } from './validation/ValidationError'; -import { ValidatorOptions } from './validation/ValidatorOptions'; -import { ValidationSchema } from './validation-schema/ValidationSchema'; -export * from './container'; -export * from './decorator/decorators'; -export * from './decorator/ValidationOptions'; -export * from './validation/ValidatorConstraintInterface'; -export * from './validation/ValidationError'; -export * from './validation/ValidatorOptions'; -export * from './validation/ValidationArguments'; -export * from './validation/ValidationTypes'; -export * from './validation/Validator'; -export * from './validation-schema/ValidationSchema'; -export * from './register-decorator'; -export * from './metadata/MetadataStorage'; -/** - * Validates given object. - */ -export declare function validate(object: object, validatorOptions?: ValidatorOptions): Promise; -/** - * Validates given object by a given validation schema. - */ -export declare function validate(schemaName: string, object: object, validatorOptions?: ValidatorOptions): Promise; -/** - * Validates given object and reject on error. - */ -export declare function validateOrReject(object: object, validatorOptions?: ValidatorOptions): Promise; -/** - * Validates given object by a given validation schema and reject on error. - */ -export declare function validateOrReject(schemaName: string, object: object, validatorOptions?: ValidatorOptions): Promise; -/** - * Performs sync validation of the given object. - * Note that this method completely ignores async validations. - * If you want to properly perform validation you need to call validate method instead. - */ -export declare function validateSync(object: object, validatorOptions?: ValidatorOptions): ValidationError[]; -/** - * Validates given object by a given validation schema. - * Note that this method completely ignores async validations. - * If you want to properly perform validation you need to call validate method instead. - */ -export declare function validateSync(schemaName: string, object: object, validatorOptions?: ValidatorOptions): ValidationError[]; -/** - * Registers a new validation schema. - */ -export declare function registerSchema(schema: ValidationSchema): void; diff --git a/views/node_modules/class-validator/types/metadata/ConstraintMetadata.d.ts b/views/node_modules/class-validator/types/metadata/ConstraintMetadata.d.ts deleted file mode 100644 index a56b01b..0000000 --- a/views/node_modules/class-validator/types/metadata/ConstraintMetadata.d.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { ValidatorConstraintInterface } from '../validation/ValidatorConstraintInterface'; -/** - * This metadata interface contains information for custom validators. - */ -export declare class ConstraintMetadata { - /** - * Target class which performs validation. - */ - target: Function; - /** - * Custom validation's name, that will be used as validation error type. - */ - name: string; - /** - * Indicates if this validation is asynchronous or not. - */ - async: boolean; - constructor(target: Function, name?: string, async?: boolean); - /** - * Instance of the target custom validation class which performs validation. - */ - get instance(): ValidatorConstraintInterface; -} diff --git a/views/node_modules/class-validator/types/metadata/MetadataStorage.d.ts b/views/node_modules/class-validator/types/metadata/MetadataStorage.d.ts deleted file mode 100644 index 5fadf3a..0000000 --- a/views/node_modules/class-validator/types/metadata/MetadataStorage.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { ValidationMetadata } from './ValidationMetadata'; -import { ConstraintMetadata } from './ConstraintMetadata'; -import { ValidationSchema } from '../validation-schema/ValidationSchema'; -/** - * Storage all metadatas. - */ -export declare class MetadataStorage { - private validationMetadatas; - private constraintMetadatas; - get hasValidationMetaData(): boolean; - /** - * Adds a new validation metadata. - */ - addValidationSchema(schema: ValidationSchema): void; - /** - * Adds a new validation metadata. - */ - addValidationMetadata(metadata: ValidationMetadata): void; - /** - * Adds a new constraint metadata. - */ - addConstraintMetadata(metadata: ConstraintMetadata): void; - /** - * Groups metadata by their property names. - */ - groupByPropertyName(metadata: ValidationMetadata[]): { - [propertyName: string]: ValidationMetadata[]; - }; - /** - * Gets all validation metadatas for the given object with the given groups. - */ - getTargetValidationMetadatas(targetConstructor: Function, targetSchema: string, always: boolean, strictGroups: boolean, groups?: string[]): ValidationMetadata[]; - /** - * Gets all validator constraints for the given object. - */ - getTargetValidatorConstraints(target: Function): ConstraintMetadata[]; -} -/** - * Gets metadata storage. - * Metadata storage follows the best practices and stores metadata in a global variable. - */ -export declare function getMetadataStorage(): MetadataStorage; diff --git a/views/node_modules/class-validator/types/metadata/ValidationMetadata.d.ts b/views/node_modules/class-validator/types/metadata/ValidationMetadata.d.ts deleted file mode 100644 index 03ff915..0000000 --- a/views/node_modules/class-validator/types/metadata/ValidationMetadata.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { ValidationMetadataArgs } from './ValidationMetadataArgs'; -import { ValidationArguments } from '../validation/ValidationArguments'; -/** - * This metadata contains validation rules. - */ -export declare class ValidationMetadata { - /** - * Validation type. - */ - type: string; - /** - * Target class to which this validation is applied. - */ - target: Function | string; - /** - * Property of the object to be validated. - */ - propertyName: string; - /** - * Constraint class that performs validation. Used only for custom validations. - */ - constraintCls: Function; - /** - * Array of constraints of this validation. - */ - constraints: any[]; - /** - * Validation message to be shown in the case of error. - */ - message: string | ((args: ValidationArguments) => string); - /** - * Validation groups used for this validation. - */ - groups: string[]; - /** - * Indicates if validation must be performed always, no matter of validation groups used. - */ - always?: boolean; - /** - * Specifies if validated value is an array and each of its item must be validated. - */ - each: boolean; - context?: any; - /** - * Extra options specific to validation type. - */ - validationTypeOptions: any; - constructor(args: ValidationMetadataArgs); -} diff --git a/views/node_modules/class-validator/types/metadata/ValidationMetadataArgs.d.ts b/views/node_modules/class-validator/types/metadata/ValidationMetadataArgs.d.ts deleted file mode 100644 index 6a5fb81..0000000 --- a/views/node_modules/class-validator/types/metadata/ValidationMetadataArgs.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { ValidationOptions } from '../decorator/ValidationOptions'; -/** - * Constructor arguments for ValidationMetadata class. - */ -export interface ValidationMetadataArgs { - /** - * Validation type. - */ - type: string; - /** - * Object that is used to be validated. - */ - target: Function | string; - /** - * Property of the object to be validated. - */ - propertyName: string; - /** - * Constraint class that performs validation. Used only for custom validations. - */ - constraintCls?: Function; - /** - * Array of constraints of this validation. - */ - constraints?: any[]; - /** - * Validation options. - */ - validationOptions?: ValidationOptions; - /** - * Extra options specific to validation type. - */ - validationTypeOptions?: any; -} diff --git a/views/node_modules/class-validator/types/register-decorator.d.ts b/views/node_modules/class-validator/types/register-decorator.d.ts deleted file mode 100644 index 48b6e35..0000000 --- a/views/node_modules/class-validator/types/register-decorator.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { ValidatorConstraintInterface } from './validation/ValidatorConstraintInterface'; -import { ValidationOptions } from './decorator/ValidationOptions'; -export interface ValidationDecoratorOptions { - /** - * Target object to be validated. - */ - target: Function; - /** - * Target object's property name to be validated. - */ - propertyName: string; - /** - * Name of the validation that is being registered. - */ - name?: string; - /** - * Indicates if this decorator will perform async validation. - */ - async?: boolean; - /** - * Validator options. - */ - options?: ValidationOptions; - /** - * Array of validation constraints. - */ - constraints?: any[]; - /** - * Validator that performs validation. - */ - validator: ValidatorConstraintInterface | Function; -} -/** - * Registers a custom validation decorator. - */ -export declare function registerDecorator(options: ValidationDecoratorOptions): void; diff --git a/views/node_modules/class-validator/types/utils/convert-to-array.util.d.ts b/views/node_modules/class-validator/types/utils/convert-to-array.util.d.ts deleted file mode 100644 index 9c35e0d..0000000 --- a/views/node_modules/class-validator/types/utils/convert-to-array.util.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Convert Map, Set to Array - */ -export declare function convertToArray(val: Array | Set | Map): Array; diff --git a/views/node_modules/class-validator/types/utils/get-global.util.d.ts b/views/node_modules/class-validator/types/utils/get-global.util.d.ts deleted file mode 100644 index c7d02b8..0000000 --- a/views/node_modules/class-validator/types/utils/get-global.util.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/** - * This function returns the global object across Node and browsers. - * - * Note: `globalThis` is the standardized approach however it has been added to - * Node.js in version 12. We need to include this snippet until Node 12 EOL. - */ -export declare function getGlobal(): any; diff --git a/views/node_modules/class-validator/types/utils/index.d.ts b/views/node_modules/class-validator/types/utils/index.d.ts deleted file mode 100644 index 0094adf..0000000 --- a/views/node_modules/class-validator/types/utils/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './convert-to-array.util'; -export * from './get-global.util'; -export * from './is-promise.util'; diff --git a/views/node_modules/class-validator/types/utils/is-promise.util.d.ts b/views/node_modules/class-validator/types/utils/is-promise.util.d.ts deleted file mode 100644 index 220378d..0000000 --- a/views/node_modules/class-validator/types/utils/is-promise.util.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare function isPromise(p: any): p is Promise; diff --git a/views/node_modules/class-validator/types/validation-schema/ValidationSchema.d.ts b/views/node_modules/class-validator/types/validation-schema/ValidationSchema.d.ts deleted file mode 100644 index 4e7eed7..0000000 --- a/views/node_modules/class-validator/types/validation-schema/ValidationSchema.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Validation schema is a decorator-free way of validation of your objects. - * Also using validation schemas makes this library to be easily used with es6/es5. - */ -export interface ValidationSchema { - /** - * Schema name. This is required, because we tell validator to validate by this schema using its name. - */ - name: string; - /** - * Validated properties. - */ - properties: { - /** - * Name of the object's property to be validated which holds an array of validation constraints. - */ - [propertyName: string]: { - /** - * Validation type. Should be one of the ValidationTypes value. - */ - type: string; - /** - * Constraints set by validation type. - */ - constraints?: any[]; - /** - * Error message used to be used on validation fail. - * You can use "$value" to use value that was failed by validation. - * You can use "$constraint1" and "$constraint2" keys in the message string, - * and they will be replaced with constraint values if they exist. - * Message can be either string, either a function that returns a string. - * Second option allows to use values and custom messages depend of them. - */ - message?: string | ((value?: any, constraint1?: any, constraint2?: any) => string); - /** - * Specifies if validated value is an array and each of its item must be validated. - */ - each?: boolean; - /** - * Indicates if validation must be performed always, no matter of validation groups used. - */ - always?: boolean; - /** - * Validation groups used for this validation. - */ - groups?: string[]; - /** - * Specific validation type options. - */ - options?: any; - }[]; - }; -} diff --git a/views/node_modules/class-validator/types/validation-schema/ValidationSchemaToMetadataTransformer.d.ts b/views/node_modules/class-validator/types/validation-schema/ValidationSchemaToMetadataTransformer.d.ts deleted file mode 100644 index 04556b7..0000000 --- a/views/node_modules/class-validator/types/validation-schema/ValidationSchemaToMetadataTransformer.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ValidationSchema } from './ValidationSchema'; -import { ValidationMetadata } from '../metadata/ValidationMetadata'; -/** - * Used to transform validation schemas to validation metadatas. - */ -export declare class ValidationSchemaToMetadataTransformer { - transform(schema: ValidationSchema): ValidationMetadata[]; -} diff --git a/views/node_modules/class-validator/types/validation/ValidationArguments.d.ts b/views/node_modules/class-validator/types/validation/ValidationArguments.d.ts deleted file mode 100644 index 6cf8842..0000000 --- a/views/node_modules/class-validator/types/validation/ValidationArguments.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Arguments being sent to message builders - user can create message either by simply returning a string, - * either by returning a function that accepts MessageArguments and returns a message string built based on these arguments. - */ -export interface ValidationArguments { - /** - * Validating value. - */ - value: any; - /** - * Constraints set by this validation type. - */ - constraints: any[]; - /** - * Name of the target that is being validated. - */ - targetName: string; - /** - * Object that is being validated. - */ - object: object; - /** - * Name of the object's property being validated. - */ - property: string; -} diff --git a/views/node_modules/class-validator/types/validation/ValidationError.d.ts b/views/node_modules/class-validator/types/validation/ValidationError.d.ts deleted file mode 100644 index 9909895..0000000 --- a/views/node_modules/class-validator/types/validation/ValidationError.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -/** - * Validation error description. - */ -export declare class ValidationError { - /** - * Object that was validated. - * - * OPTIONAL - configurable via the ValidatorOptions.validationError.target option - */ - target?: object; - /** - * Object's property that haven't pass validation. - */ - property: string; - /** - * Value that haven't pass a validation. - * - * OPTIONAL - configurable via the ValidatorOptions.validationError.value option - */ - value?: any; - /** - * Constraints that failed validation with error messages. - */ - constraints?: { - [type: string]: string; - }; - /** - * Contains all nested validation errors of the property. - */ - children?: ValidationError[]; - contexts?: { - [type: string]: any; - }; - /** - * - * @param shouldDecorate decorate the message with ANSI formatter escape codes for better readability - * @param hasParent true when the error is a child of an another one - * @param parentPath path as string to the parent of this property - */ - toString(shouldDecorate?: boolean, hasParent?: boolean, parentPath?: string): string; -} diff --git a/views/node_modules/class-validator/types/validation/ValidationExecutor.d.ts b/views/node_modules/class-validator/types/validation/ValidationExecutor.d.ts deleted file mode 100644 index ff5cba7..0000000 --- a/views/node_modules/class-validator/types/validation/ValidationExecutor.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Validator } from './Validator'; -import { ValidationError } from './ValidationError'; -import { ValidationMetadata } from '../metadata/ValidationMetadata'; -import { ValidatorOptions } from './ValidatorOptions'; -/** - * Executes validation over given object. - */ -export declare class ValidationExecutor { - private validator; - private validatorOptions?; - awaitingPromises: Promise[]; - ignoreAsyncValidations: boolean; - private metadataStorage; - constructor(validator: Validator, validatorOptions?: ValidatorOptions); - execute(object: object, targetSchema: string, validationErrors: ValidationError[]): void; - whitelist(object: any, groupedMetadatas: { - [propertyName: string]: ValidationMetadata[]; - }, validationErrors: ValidationError[]): void; - stripEmptyErrors(errors: ValidationError[]): ValidationError[]; - private performValidations; - private generateValidationError; - private conditionalValidations; - private customValidations; - private nestedValidations; - private mapContexts; - private createValidationError; - private getConstraintType; -} diff --git a/views/node_modules/class-validator/types/validation/ValidationTypes.d.ts b/views/node_modules/class-validator/types/validation/ValidationTypes.d.ts deleted file mode 100644 index ac6bcaa..0000000 --- a/views/node_modules/class-validator/types/validation/ValidationTypes.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Validation types. - */ -export declare class ValidationTypes { - static CUSTOM_VALIDATION: string; - static NESTED_VALIDATION: string; - static PROMISE_VALIDATION: string; - static CONDITIONAL_VALIDATION: string; - static WHITELIST: string; - static IS_DEFINED: string; - /** - * Checks if validation type is valid. - */ - static isValid(type: string): boolean; -} diff --git a/views/node_modules/class-validator/types/validation/ValidationUtils.d.ts b/views/node_modules/class-validator/types/validation/ValidationUtils.d.ts deleted file mode 100644 index e376f68..0000000 --- a/views/node_modules/class-validator/types/validation/ValidationUtils.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ValidationArguments } from './ValidationArguments'; -/** - * Convert the constraint to a string to be shown in an error - */ -export declare function constraintToString(constraint: unknown): string; -export declare class ValidationUtils { - static replaceMessageSpecialTokens(message: string | ((args: ValidationArguments) => string), validationArguments: ValidationArguments): string; -} diff --git a/views/node_modules/class-validator/types/validation/Validator.d.ts b/views/node_modules/class-validator/types/validation/Validator.d.ts deleted file mode 100644 index 528c460..0000000 --- a/views/node_modules/class-validator/types/validation/Validator.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { ValidationError } from './ValidationError'; -import { ValidatorOptions } from './ValidatorOptions'; -/** - * Validator performs validation of the given object based on its metadata. - */ -export declare class Validator { - /** - * Performs validation of the given object based on decorators used in given object class. - */ - validate(object: object, options?: ValidatorOptions): Promise; - /** - * Performs validation of the given object based on validation schema. - */ - validate(schemaName: string, object: object, options?: ValidatorOptions): Promise; - /** - * Performs validation of the given object based on decorators used in given object class and reject on error. - */ - validateOrReject(object: object, options?: ValidatorOptions): Promise; - /** - * Performs validation of the given object based on validation schema and reject on error. - */ - validateOrReject(schemaName: string, object: object, options?: ValidatorOptions): Promise; - /** - * Performs validation of the given object based on decorators used in given object class. - * NOTE: This method completely ignores all async validations. - */ - validateSync(object: object, options?: ValidatorOptions): ValidationError[]; - /** - * Performs validation of the given object based on validation schema. - */ - validateSync(schemaName: string, object: object, options?: ValidatorOptions): ValidationError[]; - /** - * Performs validation of the given object based on decorators or validation schema. - * Common method for `validateOrReject` and `validate` methods. - */ - private coreValidate; -} diff --git a/views/node_modules/class-validator/types/validation/ValidatorConstraintInterface.d.ts b/views/node_modules/class-validator/types/validation/ValidatorConstraintInterface.d.ts deleted file mode 100644 index 4382f54..0000000 --- a/views/node_modules/class-validator/types/validation/ValidatorConstraintInterface.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { ValidationArguments } from './ValidationArguments'; -/** - * Custom validators must implement this interface to provide custom validation logic. - */ -export interface ValidatorConstraintInterface { - /** - * Method to be called to perform custom validation over given value. - */ - validate(value: any, validationArguments?: ValidationArguments): Promise | boolean; - /** - * Gets default message when validation for this constraint fail. - */ - defaultMessage?(validationArguments?: ValidationArguments): string; -} diff --git a/views/node_modules/class-validator/types/validation/ValidatorOptions.d.ts b/views/node_modules/class-validator/types/validation/ValidatorOptions.d.ts deleted file mode 100644 index 3ddb019..0000000 --- a/views/node_modules/class-validator/types/validation/ValidatorOptions.d.ts +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Options passed to validator during validation. - */ -export interface ValidatorOptions { - /** - * If set to true then class-validator will print extra warning messages to the console when something is not right. - */ - enableDebugMessages?: boolean; - /** - * If set to true then validator will skip validation of all properties that are undefined in the validating object. - */ - skipUndefinedProperties?: boolean; - /** - * If set to true then validator will skip validation of all properties that are null in the validating object. - */ - skipNullProperties?: boolean; - /** - * If set to true then validator will skip validation of all properties that are null or undefined in the validating object. - */ - skipMissingProperties?: boolean; - /** - * If set to true validator will strip validated object of any properties that do not have any decorators. - * - * Tip: if no other decorator is suitable for your property use @Allow decorator. - */ - whitelist?: boolean; - /** - * If set to true, instead of stripping non-whitelisted properties validator will throw an error - */ - forbidNonWhitelisted?: boolean; - /** - * Groups to be used during validation of the object. - */ - groups?: string[]; - /** - * Set default for `always` option of decorators. Default can be overridden in decorator options. - */ - always?: boolean; - /** - * If [groups]{@link ValidatorOptions#groups} is not given or is empty, - * ignore decorators with at least one group. - */ - strictGroups?: boolean; - /** - * If set to true, the validation will not use default messages. - * Error message always will be undefined if its not explicitly set. - */ - dismissDefaultMessages?: boolean; - /** - * ValidationError special options. - */ - validationError?: { - /** - * Indicates if target should be exposed in ValidationError. - */ - target?: boolean; - /** - * Indicates if validated value should be exposed in ValidationError. - */ - value?: boolean; - }; - /** - * Settings true will cause fail validation of unknown objects. - */ - forbidUnknownValues?: boolean; - /** - * When set to true, validation of the given property will stop after encountering the first error. Defaults to false. - */ - stopAtFirstError?: boolean; -} diff --git a/views/node_modules/clone-response/LICENSE b/views/node_modules/clone-response/LICENSE deleted file mode 100644 index f27ee9b..0000000 --- a/views/node_modules/clone-response/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Luke Childs - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/views/node_modules/clone-response/README.md b/views/node_modules/clone-response/README.md deleted file mode 100644 index d037cfe..0000000 --- a/views/node_modules/clone-response/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# clone-response - -> Clone a Node.js HTTP response stream - -[![Build Status](https://travis-ci.org/lukechilds/clone-response.svg?branch=master)](https://travis-ci.org/lukechilds/clone-response) -[![Coverage Status](https://coveralls.io/repos/github/lukechilds/clone-response/badge.svg?branch=master)](https://coveralls.io/github/lukechilds/clone-response?branch=master) -[![npm](https://img.shields.io/npm/dm/clone-response.svg)](https://www.npmjs.com/package/clone-response) -[![npm](https://img.shields.io/npm/v/clone-response.svg)](https://www.npmjs.com/package/clone-response) - -Returns a new stream and copies over all properties and methods from the original response giving you a complete duplicate. - -This is useful in situations where you need to consume the response stream but also want to pass an unconsumed stream somewhere else to be consumed later. - -## Install - -```shell -npm install --save clone-response -``` - -## Usage - -```js -const http = require('http'); -const cloneResponse = require('clone-response'); - -http.get('http://example.com', response => { - const clonedResponse = cloneResponse(response); - response.pipe(process.stdout); - - setImmediate(() => { - // The response stream has already been consumed by the time this executes, - // however the cloned response stream is still available. - doSomethingWithResponse(clonedResponse); - }); -}); -``` - -Please bear in mind that the process of cloning a stream consumes it. However, you can consume a stream multiple times in the same tick, therefore allowing you to create multiple clones. e.g: - -```js -const clone1 = cloneResponse(response); -const clone2 = cloneResponse(response); -// response can still be consumed in this tick but cannot be consumed if passed -// into any async callbacks. clone1 and clone2 can be passed around and be -// consumed in the future. -``` - -## API - -### cloneResponse(response) - -Returns a clone of the passed in response. - -#### response - -Type: `stream` - -A [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage) to clone. - -## License - -MIT © Luke Childs diff --git a/views/node_modules/clone-response/package.json b/views/node_modules/clone-response/package.json deleted file mode 100644 index 2cb9aa6..0000000 --- a/views/node_modules/clone-response/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "clone-response", - "version": "1.0.2", - "description": "Clone a Node.js HTTP response stream", - "main": "src/index.js", - "scripts": { - "test": "xo && nyc ava", - "coverage": "nyc report --reporter=text-lcov | coveralls" - }, - "xo": { - "extends": "xo-lukechilds" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/lukechilds/clone-response.git" - }, - "keywords": [ - "clone", - "duplicate", - "copy", - "response", - "HTTP", - "stream" - ], - "author": "Luke Childs (http://lukechilds.co.uk)", - "license": "MIT", - "bugs": { - "url": "https://github.com/lukechilds/clone-response/issues" - }, - "homepage": "https://github.com/lukechilds/clone-response", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "devDependencies": { - "ava": "^0.22.0", - "coveralls": "^2.13.1", - "create-test-server": "^2.0.1", - "eslint-config-xo-lukechilds": "^1.0.0", - "get-stream": "^3.0.0", - "nyc": "^11.0.2", - "pify": "^3.0.0", - "xo": "^0.19.0" - } -} diff --git a/views/node_modules/clone-response/src/index.js b/views/node_modules/clone-response/src/index.js deleted file mode 100644 index 0285dff..0000000 --- a/views/node_modules/clone-response/src/index.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -const PassThrough = require('stream').PassThrough; -const mimicResponse = require('mimic-response'); - -const cloneResponse = response => { - if (!(response && response.pipe)) { - throw new TypeError('Parameter `response` must be a response stream.'); - } - - const clone = new PassThrough(); - mimicResponse(response, clone); - - return response.pipe(clone); -}; - -module.exports = cloneResponse; diff --git a/views/node_modules/connect-flash/.travis.yml b/views/node_modules/connect-flash/.travis.yml deleted file mode 100644 index 79eed11..0000000 --- a/views/node_modules/connect-flash/.travis.yml +++ /dev/null @@ -1,6 +0,0 @@ -language: "node_js" -node_js: - - 0.4 - - 0.6 - - 0.8 - \ No newline at end of file diff --git a/views/node_modules/connect-flash/LICENSE b/views/node_modules/connect-flash/LICENSE deleted file mode 100644 index d61567a..0000000 --- a/views/node_modules/connect-flash/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2013 Jared Hanson - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/views/node_modules/connect-flash/README.md b/views/node_modules/connect-flash/README.md deleted file mode 100644 index b3b58b4..0000000 --- a/views/node_modules/connect-flash/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# connect-flash - -The flash is a special area of the session used for storing messages. Messages -are written to the flash and cleared after being displayed to the user. The -flash is typically used in combination with redirects, ensuring that the message -is available to the next page that is to be rendered. - -This middleware was extracted from [Express](http://expressjs.com/) 2.x, after -Express 3.x removed direct support for the flash. connect-flash brings this -functionality back to Express 3.x, as well as any other middleware-compatible -framework or application. +1 for [radical reusability](http://substack.net/posts/b96642/the-node-js-aesthetic). - -## Install - - $ npm install connect-flash - -## Usage - -#### Express 3.x - -Flash messages are stored in the session. First, setup sessions as usual by -enabling `cookieParser` and `session` middleware. Then, use `flash` middleware -provided by connect-flash. - -```javascript -var flash = require('connect-flash'); -var app = express(); - -app.configure(function() { - app.use(express.cookieParser('keyboard cat')); - app.use(express.session({ cookie: { maxAge: 60000 }})); - app.use(flash()); -}); -``` - -With the `flash` middleware in place, all requests will have a `req.flash()` function -that can be used for flash messages. - -```javascript -app.get('/flash', function(req, res){ - // Set a flash message by passing the key, followed by the value, to req.flash(). - req.flash('info', 'Flash is back!') - res.redirect('/'); -}); - -app.get('/', function(req, res){ - // Get an array of flash messages by passing the key to req.flash() - res.render('index', { messages: req.flash('info') }); -}); -``` - -## Examples - -For an example using connect-flash in an Express 3.x app, refer to the [express3](https://github.com/jaredhanson/connect-flash/tree/master/examples/express3) -example. - -## Tests - - $ npm install --dev - $ make test - -[![Build Status](https://secure.travis-ci.org/jaredhanson/connect-flash.png)](http://travis-ci.org/jaredhanson/connect-flash) - -## Credits - - - [Jared Hanson](http://github.com/jaredhanson) - - [TJ Holowaychuk](https://github.com/visionmedia) - -## License - -[The MIT License](http://opensource.org/licenses/MIT) - -Copyright (c) 2012-2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)> diff --git a/views/node_modules/connect-flash/lib/flash.js b/views/node_modules/connect-flash/lib/flash.js deleted file mode 100644 index a278bc1..0000000 --- a/views/node_modules/connect-flash/lib/flash.js +++ /dev/null @@ -1,82 +0,0 @@ -/** - * Module dependencies. - */ -var format = require('util').format; -var isArray = require('util').isArray; - - -/** - * Expose `flash()` function on requests. - * - * @return {Function} - * @api public - */ -module.exports = function flash(options) { - options = options || {}; - var safe = (options.unsafe === undefined) ? true : !options.unsafe; - - return function(req, res, next) { - if (req.flash && safe) { return next(); } - req.flash = _flash; - next(); - } -} - -/** - * Queue flash `msg` of the given `type`. - * - * Examples: - * - * req.flash('info', 'email sent'); - * req.flash('error', 'email delivery failed'); - * req.flash('info', 'email re-sent'); - * // => 2 - * - * req.flash('info'); - * // => ['email sent', 'email re-sent'] - * - * req.flash('info'); - * // => [] - * - * req.flash(); - * // => { error: ['email delivery failed'], info: [] } - * - * Formatting: - * - * Flash notifications also support arbitrary formatting support. - * For example you may pass variable arguments to `req.flash()` - * and use the %s specifier to be replaced by the associated argument: - * - * req.flash('info', 'email has been sent to %s.', userName); - * - * Formatting uses `util.format()`, which is available on Node 0.6+. - * - * @param {String} type - * @param {String} msg - * @return {Array|Object|Number} - * @api public - */ -function _flash(type, msg) { - if (this.session === undefined) throw Error('req.flash() requires sessions'); - var msgs = this.session.flash = this.session.flash || {}; - if (type && msg) { - // util.format is available in Node.js 0.6+ - if (arguments.length > 2 && format) { - var args = Array.prototype.slice.call(arguments, 1); - msg = format.apply(undefined, args); - } else if (isArray(msg)) { - msg.forEach(function(val){ - (msgs[type] = msgs[type] || []).push(val); - }); - return msgs[type].length; - } - return (msgs[type] = msgs[type] || []).push(msg); - } else if (type) { - var arr = msgs[type]; - delete msgs[type]; - return arr || []; - } else { - this.session.flash = {}; - return msgs; - } -} diff --git a/views/node_modules/connect-flash/lib/index.js b/views/node_modules/connect-flash/lib/index.js deleted file mode 100644 index b4d5961..0000000 --- a/views/node_modules/connect-flash/lib/index.js +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Expose middleware. - */ -exports = module.exports = require('./flash'); diff --git a/views/node_modules/connect-flash/package.json b/views/node_modules/connect-flash/package.json deleted file mode 100644 index bc46300..0000000 --- a/views/node_modules/connect-flash/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "connect-flash", - "version": "0.1.1", - "description": "Flash message middleware for Connect.", - "keywords": ["connect", "express", "flash", "messages"], - "repository": { - "type": "git", - "url": "git://github.com/jaredhanson/connect-flash.git" - }, - "bugs": { - "url": "http://github.com/jaredhanson/connect-flash/issues" - }, - "author": { - "name": "Jared Hanson", - "email": "jaredhanson@gmail.com", - "url": "http://www.jaredhanson.net/" - }, - "licenses": [ { - "type": "MIT", - "url": "http://www.opensource.org/licenses/MIT" - } ], - "main": "./lib", - "dependencies": { - }, - "devDependencies": { - "vows": "0.6.x" - }, - "scripts": { - "test": "NODE_PATH=lib node_modules/.bin/vows test/*-test.js" - }, - "engines": { "node": ">= 0.4.0" } -} diff --git a/views/node_modules/constantinople/.editorconfig b/views/node_modules/constantinople/.editorconfig deleted file mode 100644 index 45c47a5..0000000 --- a/views/node_modules/constantinople/.editorconfig +++ /dev/null @@ -1,10 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -tab_width = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/views/node_modules/constantinople/.gitattributes b/views/node_modules/constantinople/.gitattributes deleted file mode 100644 index 412eeda..0000000 --- a/views/node_modules/constantinople/.gitattributes +++ /dev/null @@ -1,22 +0,0 @@ -# Auto detect text files and perform LF normalization -* text=auto - -# Custom for Visual Studio -*.cs diff=csharp -*.sln merge=union -*.csproj merge=union -*.vbproj merge=union -*.fsproj merge=union -*.dbproj merge=union - -# Standard to msysgit -*.doc diff=astextplain -*.DOC diff=astextplain -*.docx diff=astextplain -*.DOCX diff=astextplain -*.dot diff=astextplain -*.DOT diff=astextplain -*.pdf diff=astextplain -*.PDF diff=astextplain -*.rtf diff=astextplain -*.RTF diff=astextplain diff --git a/views/node_modules/constantinople/.prettierrc b/views/node_modules/constantinople/.prettierrc deleted file mode 100644 index 7145d3b..0000000 --- a/views/node_modules/constantinople/.prettierrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "bracketSpacing": false, - "singleQuote": true, - "trailingComma": "all", - "overrides": [ - { - "files": "*.js", - "options": { - "trailingComma": "es5" - } - } - ] -} \ No newline at end of file diff --git a/views/node_modules/constantinople/.travis.yml b/views/node_modules/constantinople/.travis.yml deleted file mode 100644 index 7789109..0000000 --- a/views/node_modules/constantinople/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: node_js -node_js: - - "8" - - "10" - - "12" diff --git a/views/node_modules/constantinople/LICENSE b/views/node_modules/constantinople/LICENSE deleted file mode 100644 index 35cc606..0000000 --- a/views/node_modules/constantinople/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2013 Forbes Lindesay - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/views/node_modules/constantinople/README.md b/views/node_modules/constantinople/README.md deleted file mode 100644 index 91fc6a4..0000000 --- a/views/node_modules/constantinople/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# constantinople - -Determine whether a JavaScript expression evaluates to a constant (using Babylon). Here it is assumed to be safe to underestimate how constant something is. - -[![Build Status](https://img.shields.io/travis/pugjs/constantinople/master.svg)](https://travis-ci.org/pugjs/constantinople) -[![Dependency Status](https://img.shields.io/david/pugjs/constantinople.svg)](https://david-dm.org/pugjs/constantinople) -[![NPM version](https://img.shields.io/npm/v/constantinople.svg)](https://www.npmjs.org/package/constantinople) - -## Installation - - npm install constantinople - -## Usage - -```js -var isConstant = require('constantinople'); - -if (isConstant('"foo" + 5')) { - console.dir(isConstant.toConstant('"foo" + 5')); -} -if (isConstant('Math.floor(10.5)', {Math: Math})) { - console.dir(isConstant.toConstant('Math.floor(10.5)', {Math: Math})); -} -``` - -## API - -### isConstant(src, [constants, [options]]) - -Returns `true` if `src` evaluates to a constant, `false` otherwise. It will also return `false` if there is a syntax error, which makes it safe to use on potentially ES6 code. - -Constants is an object mapping strings to values, where those values should be treated as constants. Note that this makes it a pretty bad idea to have `Math` in there if the user might make use of `Math.random` and a pretty bad idea to have `Date` in there. - -Options are directly passed-through to [Babylon](https://github.com/babel/babylon#options). - -### toConstant(src, [constants, [options]]) - -Returns the value resulting from evaluating `src`. This method throws an error if the expression is not constant. e.g. `toConstant("Math.random()")` would throw an error. - -Constants is an object mapping strings to values, where those values should be treated as constants. Note that this makes it a pretty bad idea to have `Math` in there if the user might make use of `Math.random` and a pretty bad idea to have `Date` in there. - -Options are directly passed-through to [Babylon](https://github.com/babel/babylon#options). - -## License - -MIT diff --git a/views/node_modules/constantinople/lib/binaryOperation.d.ts b/views/node_modules/constantinople/lib/binaryOperation.d.ts deleted file mode 100644 index 1225019..0000000 --- a/views/node_modules/constantinople/lib/binaryOperation.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare type Operator = '+' | '-' | '/' | '%' | '*' | '**' | '&' | '|' | '>>' | '>>>' | '<<' | '^' | '==' | '===' | '!=' | '!==' | 'in' | 'instanceof' | '>' | '<' | '>=' | '<='; -export default function binaryOperation(operator: Operator, left: any, right: any): any; diff --git a/views/node_modules/constantinople/lib/binaryOperation.js b/views/node_modules/constantinople/lib/binaryOperation.js deleted file mode 100644 index 88a5ce7..0000000 --- a/views/node_modules/constantinople/lib/binaryOperation.js +++ /dev/null @@ -1,51 +0,0 @@ -"use strict"; -exports.__esModule = true; -function binaryOperation(operator, left, right) { - switch (operator) { - case '+': - return left + right; - case '-': - return left - right; - case '/': - return left / right; - case '%': - return left % right; - case '*': - return left * right; - case '**': - return Math.pow(left, right); - case '&': - return left & right; - case '|': - return left | right; - case '>>': - return left >> right; - case '>>>': - return left >>> right; - case '<<': - return left << right; - case '^': - return left ^ right; - case '==': - return left == right; - case '===': - return left === right; - case '!=': - return left != right; - case '!==': - return left !== right; - case 'in': - return left in right; - case 'instanceof': - return left instanceof right; - case '>': - return left > right; - case '<': - return left < right; - case '>=': - return left >= right; - case '<=': - return left <= right; - } -} -exports["default"] = binaryOperation; diff --git a/views/node_modules/constantinople/lib/index.d.ts b/views/node_modules/constantinople/lib/index.d.ts deleted file mode 100644 index 10f4b10..0000000 --- a/views/node_modules/constantinople/lib/index.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { ParserOptions } from '@babel/parser'; -import * as b from '@babel/types'; -export { ParserOptions as BabylonOptions }; -export interface ExpressionToConstantOptions { - constants?: any; -} -export interface Options extends ExpressionToConstantOptions { - babylon?: ParserOptions; -} -export declare function expressionToConstant(expression: b.Expression, options?: ExpressionToConstantOptions): { - constant: true; - result: any; -} | { - constant: false; - result?: void; -}; -export declare function isConstant(src: string, constants?: any, options?: ParserOptions): boolean; -export declare function toConstant(src: string, constants?: any, options?: ParserOptions): any; -export default isConstant; diff --git a/views/node_modules/constantinople/lib/index.js b/views/node_modules/constantinople/lib/index.js deleted file mode 100644 index e1150d9..0000000 --- a/views/node_modules/constantinople/lib/index.js +++ /dev/null @@ -1,368 +0,0 @@ -"use strict"; -exports.__esModule = true; -var parser_1 = require("@babel/parser"); -var b = require("@babel/types"); -var binaryOperation_1 = require("./binaryOperation"); -function expressionToConstant(expression, options) { - if (options === void 0) { options = {}; } - var constant = true; - function toConstant(expression) { - if (!constant) - return; - if (b.isArrayExpression(expression)) { - var result_1 = []; - for (var i = 0; constant && i < expression.elements.length; i++) { - var element = expression.elements[i]; - if (b.isSpreadElement(element)) { - var spread = toConstant(element.argument); - if (!(isSpreadable(spread) && constant)) { - constant = false; - } - else { - result_1.push.apply(result_1, spread); - } - } - else if (b.isExpression(element)) { - result_1.push(toConstant(element)); - } - else { - constant = false; - } - } - return result_1; - } - if (b.isBinaryExpression(expression)) { - var left = toConstant(expression.left); - var right = toConstant(expression.right); - return constant && binaryOperation_1["default"](expression.operator, left, right); - } - if (b.isBooleanLiteral(expression)) { - return expression.value; - } - if (b.isCallExpression(expression)) { - var args = []; - for (var i = 0; constant && i < expression.arguments.length; i++) { - var arg = expression.arguments[i]; - if (b.isSpreadElement(arg)) { - var spread = toConstant(arg.argument); - if (!(isSpreadable(spread) && constant)) { - constant = false; - } - else { - args.push.apply(args, spread); - } - } - else if (b.isExpression(arg)) { - args.push(toConstant(arg)); - } - else { - constant = false; - } - } - if (!constant) - return; - if (b.isMemberExpression(expression.callee)) { - var object = toConstant(expression.callee.object); - if (!object || !constant) { - constant = false; - return; - } - var member = expression.callee.computed - ? toConstant(expression.callee.property) - : b.isIdentifier(expression.callee.property) - ? expression.callee.property.name - : undefined; - if (member === undefined && !expression.callee.computed) { - constant = false; - } - if (!constant) - return; - if (canCallMethod(object, '' + member)) { - return object[member].apply(object, args); - } - } - else { - if (!b.isExpression(expression.callee)) { - constant = false; - return; - } - var callee = toConstant(expression.callee); - if (!constant) - return; - return callee.apply(null, args); - } - } - if (b.isConditionalExpression(expression)) { - var test = toConstant(expression.test); - return test - ? toConstant(expression.consequent) - : toConstant(expression.alternate); - } - if (b.isIdentifier(expression)) { - if (options.constants && - {}.hasOwnProperty.call(options.constants, expression.name)) { - return options.constants[expression.name]; - } - } - if (b.isLogicalExpression(expression)) { - var left = toConstant(expression.left); - var right = toConstant(expression.right); - if (constant && expression.operator === '&&') { - return left && right; - } - if (constant && expression.operator === '||') { - return left || right; - } - } - if (b.isMemberExpression(expression)) { - var object = toConstant(expression.object); - if (!object || !constant) { - constant = false; - return; - } - var member = expression.computed - ? toConstant(expression.property) - : b.isIdentifier(expression.property) - ? expression.property.name - : undefined; - if (member === undefined && !expression.computed) { - constant = false; - } - if (!constant) - return; - if ({}.hasOwnProperty.call(object, '' + member) && member[0] !== '_') { - return object[member]; - } - } - if (b.isNullLiteral(expression)) { - return null; - } - if (b.isNumericLiteral(expression)) { - return expression.value; - } - if (b.isObjectExpression(expression)) { - var result_2 = {}; - for (var i = 0; constant && i < expression.properties.length; i++) { - var property = expression.properties[i]; - if (b.isObjectProperty(property)) { - if (property.shorthand) { - constant = false; - return; - } - var key = property.computed - ? toConstant(property.key) - : b.isIdentifier(property.key) - ? property.key.name - : b.isStringLiteral(property.key) - ? property.key.value - : undefined; - if (!key || key[0] === '_') { - constant = false; - } - if (!constant) - return; - if (b.isExpression(property.value)) { - var value = toConstant(property.value); - if (!constant) - return; - result_2[key] = value; - } - else { - constant = false; - } - } - else if (b.isObjectMethod(property)) { - constant = false; - } - else if (b.isSpreadProperty(property)) { - var argument = toConstant(property.argument); - if (!argument) - constant = false; - if (!constant) - return; - Object.assign(result_2, argument); - } - } - return result_2; - } - if (b.isParenthesizedExpression(expression)) { - return toConstant(expression.expression); - } - if (b.isRegExpLiteral(expression)) { - return new RegExp(expression.pattern, expression.flags); - } - if (b.isSequenceExpression(expression)) { - for (var i = 0; i < expression.expressions.length - 1 && constant; i++) { - toConstant(expression.expressions[i]); - } - return toConstant(expression.expressions[expression.expressions.length - 1]); - } - if (b.isStringLiteral(expression)) { - return expression.value; - } - // TODO: TaggedTemplateExpression - if (b.isTemplateLiteral(expression)) { - var result_3 = ''; - for (var i = 0; i < expression.quasis.length; i++) { - var quasi = expression.quasis[i]; - result_3 += quasi.value.cooked; - if (i < expression.expressions.length) { - result_3 += '' + toConstant(expression.expressions[i]); - } - } - return result_3; - } - if (b.isUnaryExpression(expression)) { - var argument = toConstant(expression.argument); - if (!constant) { - return; - } - switch (expression.operator) { - case '-': - return -argument; - case '+': - return +argument; - case '!': - return !argument; - case '~': - return ~argument; - case 'typeof': - return typeof argument; - case 'void': - return void argument; - } - } - constant = false; - } - var result = toConstant(expression); - return constant ? { constant: true, result: result } : { constant: false }; -} -exports.expressionToConstant = expressionToConstant; -function isSpreadable(value) { - return (typeof value === 'string' || - Array.isArray(value) || - (typeof Set !== 'undefined' && value instanceof Set) || - (typeof Map !== 'undefined' && value instanceof Map)); -} -function shallowEqual(a, b) { - if (a === b) - return true; - if (a && b && typeof a === 'object' && typeof b === 'object') { - for (var key in a) { - if (a[key] !== b[key]) { - return false; - } - } - for (var key in b) { - if (a[key] !== b[key]) { - return false; - } - } - return true; - } - return false; -} -function canCallMethod(object, member) { - switch (typeof object) { - case 'boolean': - switch (member) { - case 'toString': - return true; - default: - return false; - } - case 'number': - switch (member) { - case 'toExponential': - case 'toFixed': - case 'toPrecision': - case 'toString': - return true; - default: - return false; - } - case 'string': - switch (member) { - case 'charAt': - case 'charCodeAt': - case 'codePointAt': - case 'concat': - case 'endsWith': - case 'includes': - case 'indexOf': - case 'lastIndexOf': - case 'match': - case 'normalize': - case 'padEnd': - case 'padStart': - case 'repeat': - case 'replace': - case 'search': - case 'slice': - case 'split': - case 'startsWith': - case 'substr': - case 'substring': - case 'toLowerCase': - case 'toUpperCase': - case 'trim': - return true; - default: - return false; - } - default: - if (object instanceof RegExp) { - switch (member) { - case 'test': - case 'exec': - return true; - default: - return false; - } - } - return {}.hasOwnProperty.call(object, member) && member[0] !== '_'; - } -} -var EMPTY_OBJECT = {}; -var lastSrc = ''; -var lastConstants = EMPTY_OBJECT; -var lastOptions = EMPTY_OBJECT; -var lastResult = null; -var lastWasConstant = false; -function isConstant(src, constants, options) { - if (constants === void 0) { constants = EMPTY_OBJECT; } - if (options === void 0) { options = EMPTY_OBJECT; } - if (lastSrc === src && - shallowEqual(lastConstants, constants) && - shallowEqual(lastOptions, options)) { - return lastWasConstant; - } - lastSrc = src; - lastConstants = constants; - var ast; - try { - ast = parser_1.parseExpression(src, options); - } - catch (ex) { - return (lastWasConstant = false); - } - var _a = expressionToConstant(ast, { constants: constants }), result = _a.result, constant = _a.constant; - lastResult = result; - return (lastWasConstant = constant); -} -exports.isConstant = isConstant; -function toConstant(src, constants, options) { - if (constants === void 0) { constants = EMPTY_OBJECT; } - if (options === void 0) { options = EMPTY_OBJECT; } - if (!isConstant(src, constants, options)) { - throw new Error(JSON.stringify(src) + ' is not constant.'); - } - return lastResult; -} -exports.toConstant = toConstant; -exports["default"] = isConstant; -module.exports = isConstant; -module.exports["default"] = isConstant; -module.exports.expressionToConstant = expressionToConstant; -module.exports.isConstant = isConstant; -module.exports.toConstant = toConstant; diff --git a/views/node_modules/constantinople/package.json b/views/node_modules/constantinople/package.json deleted file mode 100644 index 2d38432..0000000 --- a/views/node_modules/constantinople/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "constantinople", - "version": "4.0.1", - "main": "lib/index.js", - "types": "lib/index.d.ts", - "description": "Determine whether a JavaScript expression evaluates to a constant", - "keywords": [ - "constant", - "ast", - "tooling" - ], - "dependencies": { - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.1" - }, - "devDependencies": { - "@types/node": "^9.4.4", - "mocha": "*", - "prettier": "^1.18.2", - "typescript": "^2.7.1" - }, - "scripts": { - "prepublish": "npm run build", - "build": "tsc", - "pretest": "npm run build && npm run prettier:check", - "test": "mocha -R spec", - "prettier:write": "prettier --ignore-path .gitignore --write './**/*.{md,json,yaml,js,jsx,ts,tsx}'", - "prettier:check": "echo \"If prettier fails you can fix it by running npm run prettier:write\" && prettier --ignore-path .gitignore --list-different './**/*.{md,json,yaml,js,jsx,ts,tsx}'" - }, - "repository": { - "type": "git", - "url": "https://github.com/ForbesLindesay/constantinople.git" - }, - "author": "ForbesLindesay", - "license": "MIT" -} \ No newline at end of file diff --git a/views/node_modules/constantinople/src/binaryOperation.ts b/views/node_modules/constantinople/src/binaryOperation.ts deleted file mode 100644 index 99244d5..0000000 --- a/views/node_modules/constantinople/src/binaryOperation.ts +++ /dev/null @@ -1,76 +0,0 @@ -export type Operator = - | '+' - | '-' - | '/' - | '%' - | '*' - | '**' - | '&' - | '|' - | '>>' - | '>>>' - | '<<' - | '^' - | '==' - | '===' - | '!=' - | '!==' - | 'in' - | 'instanceof' - | '>' - | '<' - | '>=' - | '<='; - -export default function binaryOperation( - operator: Operator, - left: any, - right: any, -): any { - switch (operator) { - case '+': - return left + right; - case '-': - return left - right; - case '/': - return left / right; - case '%': - return left % right; - case '*': - return left * right; - case '**': - return left ** right; - case '&': - return left & right; - case '|': - return left | right; - case '>>': - return left >> right; - case '>>>': - return left >>> right; - case '<<': - return left << right; - case '^': - return left ^ right; - case '==': - return left == right; - case '===': - return left === right; - case '!=': - return left != right; - case '!==': - return left !== right; - case 'in': - return left in right; - case 'instanceof': - return left instanceof right; - case '>': - return left > right; - case '<': - return left < right; - case '>=': - return left >= right; - case '<=': - return left <= right; - } -} diff --git a/views/node_modules/constantinople/src/index.ts b/views/node_modules/constantinople/src/index.ts deleted file mode 100644 index bdc51be..0000000 --- a/views/node_modules/constantinople/src/index.ts +++ /dev/null @@ -1,369 +0,0 @@ -import {parseExpression, ParserOptions} from '@babel/parser'; -import * as b from '@babel/types'; -import binaryOperation from './binaryOperation'; - -export {ParserOptions as BabylonOptions}; - -export interface ExpressionToConstantOptions { - constants?: any; -} - -export interface Options extends ExpressionToConstantOptions { - babylon?: ParserOptions; -} -export function expressionToConstant( - expression: b.Expression, - options: ExpressionToConstantOptions = {}, -): {constant: true; result: any} | {constant: false; result?: void} { - let constant = true; - function toConstant(expression: b.Expression): any { - if (!constant) return; - if (b.isArrayExpression(expression)) { - const result = []; - for (let i = 0; constant && i < expression.elements.length; i++) { - const element = expression.elements[i]; - if (b.isSpreadElement(element)) { - const spread = toConstant(element.argument); - if (!(isSpreadable(spread) && constant)) { - constant = false; - } else { - result.push(...spread); - } - } else if (b.isExpression(element)) { - result.push(toConstant(element)); - } else { - constant = false; - } - } - return result; - } - if (b.isBinaryExpression(expression)) { - const left = toConstant(expression.left); - const right = toConstant(expression.right); - return constant && binaryOperation(expression.operator, left, right); - } - if (b.isBooleanLiteral(expression)) { - return expression.value; - } - if (b.isCallExpression(expression)) { - const args = []; - for (let i = 0; constant && i < expression.arguments.length; i++) { - const arg = expression.arguments[i]; - if (b.isSpreadElement(arg)) { - const spread = toConstant(arg.argument); - if (!(isSpreadable(spread) && constant)) { - constant = false; - } else { - args.push(...spread); - } - } else if (b.isExpression(arg)) { - args.push(toConstant(arg)); - } else { - constant = false; - } - } - if (!constant) return; - if (b.isMemberExpression(expression.callee)) { - const object = toConstant(expression.callee.object); - if (!object || !constant) { - constant = false; - return; - } - const member = expression.callee.computed - ? toConstant(expression.callee.property) - : b.isIdentifier(expression.callee.property) - ? expression.callee.property.name - : undefined; - if (member === undefined && !expression.callee.computed) { - constant = false; - } - if (!constant) return; - if (canCallMethod(object, '' + member)) { - return object[member].apply(object, args); - } - } else { - if (!b.isExpression(expression.callee)) { - constant = false; - return; - } - const callee = toConstant(expression.callee); - if (!constant) return; - return callee.apply(null, args); - } - } - if (b.isConditionalExpression(expression)) { - const test = toConstant(expression.test); - return test - ? toConstant(expression.consequent) - : toConstant(expression.alternate); - } - if (b.isIdentifier(expression)) { - if ( - options.constants && - {}.hasOwnProperty.call(options.constants, expression.name) - ) { - return options.constants[expression.name]; - } - } - if (b.isLogicalExpression(expression)) { - const left = toConstant(expression.left); - const right = toConstant(expression.right); - if (constant && expression.operator === '&&') { - return left && right; - } - if (constant && expression.operator === '||') { - return left || right; - } - } - if (b.isMemberExpression(expression)) { - const object = toConstant(expression.object); - if (!object || !constant) { - constant = false; - return; - } - const member = expression.computed - ? toConstant(expression.property) - : b.isIdentifier(expression.property) - ? expression.property.name - : undefined; - if (member === undefined && !expression.computed) { - constant = false; - } - if (!constant) return; - if ({}.hasOwnProperty.call(object, '' + member) && member[0] !== '_') { - return object[member]; - } - } - if (b.isNullLiteral(expression)) { - return null; - } - if (b.isNumericLiteral(expression)) { - return expression.value; - } - if (b.isObjectExpression(expression)) { - const result: any = {}; - for (let i = 0; constant && i < expression.properties.length; i++) { - const property = expression.properties[i]; - if (b.isObjectProperty(property)) { - if (property.shorthand) { - constant = false; - return; - } - const key = property.computed - ? toConstant(property.key) - : b.isIdentifier(property.key) - ? property.key.name - : b.isStringLiteral(property.key) - ? property.key.value - : undefined; - if (!key || key[0] === '_') { - constant = false; - } - if (!constant) return; - if (b.isExpression(property.value)) { - const value = toConstant(property.value); - if (!constant) return; - result[key] = value; - } else { - constant = false; - } - } else if (b.isObjectMethod(property)) { - constant = false; - } else if (b.isSpreadProperty(property)) { - const argument = toConstant(property.argument); - if (!argument) constant = false; - if (!constant) return; - Object.assign(result, argument); - } - } - return result; - } - if (b.isParenthesizedExpression(expression)) { - return toConstant(expression.expression); - } - if (b.isRegExpLiteral(expression)) { - return new RegExp(expression.pattern, expression.flags); - } - if (b.isSequenceExpression(expression)) { - for (let i = 0; i < expression.expressions.length - 1 && constant; i++) { - toConstant(expression.expressions[i]); - } - return toConstant( - expression.expressions[expression.expressions.length - 1], - ); - } - if (b.isStringLiteral(expression)) { - return expression.value; - } - // TODO: TaggedTemplateExpression - if (b.isTemplateLiteral(expression)) { - let result = ''; - for (let i = 0; i < expression.quasis.length; i++) { - const quasi = expression.quasis[i]; - result += quasi.value.cooked; - if (i < expression.expressions.length) { - result += '' + toConstant(expression.expressions[i]); - } - } - return result; - } - if (b.isUnaryExpression(expression)) { - const argument = toConstant(expression.argument); - if (!constant) { - return; - } - switch (expression.operator) { - case '-': - return -argument; - case '+': - return +argument; - case '!': - return !argument; - case '~': - return ~argument; - case 'typeof': - return typeof argument; - case 'void': - return void argument; - } - } - constant = false; - } - const result = toConstant(expression); - return constant ? {constant: true, result} : {constant: false}; -} -function isSpreadable(value: any): boolean { - return ( - typeof value === 'string' || - Array.isArray(value) || - (typeof Set !== 'undefined' && value instanceof Set) || - (typeof Map !== 'undefined' && value instanceof Map) - ); -} -function shallowEqual(a: any, b: any) { - if (a === b) return true; - if (a && b && typeof a === 'object' && typeof b === 'object') { - for (let key in a) { - if (a[key] !== b[key]) { - return false; - } - } - for (let key in b) { - if (a[key] !== b[key]) { - return false; - } - } - return true; - } - return false; -} -function canCallMethod(object: any, member: string): boolean { - switch (typeof object) { - case 'boolean': - switch (member) { - case 'toString': - return true; - default: - return false; - } - case 'number': - switch (member) { - case 'toExponential': - case 'toFixed': - case 'toPrecision': - case 'toString': - return true; - default: - return false; - } - case 'string': - switch (member) { - case 'charAt': - case 'charCodeAt': - case 'codePointAt': - case 'concat': - case 'endsWith': - case 'includes': - case 'indexOf': - case 'lastIndexOf': - case 'match': - case 'normalize': - case 'padEnd': - case 'padStart': - case 'repeat': - case 'replace': - case 'search': - case 'slice': - case 'split': - case 'startsWith': - case 'substr': - case 'substring': - case 'toLowerCase': - case 'toUpperCase': - case 'trim': - return true; - default: - return false; - } - default: - if (object instanceof RegExp) { - switch (member) { - case 'test': - case 'exec': - return true; - default: - return false; - } - } - return {}.hasOwnProperty.call(object, member) && member[0] !== '_'; - } -} - -const EMPTY_OBJECT = {}; -let lastSrc = ''; -let lastConstants = EMPTY_OBJECT; -let lastOptions = EMPTY_OBJECT; -let lastResult: any = null; -let lastWasConstant = false; -export function isConstant( - src: string, - constants: any = EMPTY_OBJECT, - options: ParserOptions = EMPTY_OBJECT, -) { - if ( - lastSrc === src && - shallowEqual(lastConstants, constants) && - shallowEqual(lastOptions, options) - ) { - return lastWasConstant; - } - lastSrc = src; - lastConstants = constants; - let ast: b.Expression | void; - try { - ast = parseExpression(src, options); - } catch (ex) { - return (lastWasConstant = false); - } - const {result, constant} = expressionToConstant(ast, {constants}); - lastResult = result; - return (lastWasConstant = constant); -} -export function toConstant( - src: string, - constants: any = EMPTY_OBJECT, - options: ParserOptions = EMPTY_OBJECT, -) { - if (!isConstant(src, constants, options)) { - throw new Error(JSON.stringify(src) + ' is not constant.'); - } - return lastResult; -} - -export default isConstant; - -module.exports = isConstant; -module.exports.default = isConstant; -module.exports.expressionToConstant = expressionToConstant; -module.exports.isConstant = isConstant; -module.exports.toConstant = toConstant; diff --git a/views/node_modules/constantinople/test/index.js b/views/node_modules/constantinople/test/index.js deleted file mode 100644 index d6f7dd3..0000000 --- a/views/node_modules/constantinople/test/index.js +++ /dev/null @@ -1,86 +0,0 @@ -'use strict'; - -var assert = require('assert'); -var constaninople = require('../'); - -describe('isConstant(src)', function() { - it('handles "[5 + 3 + 10]"', function() { - assert(constaninople.isConstant('[5 + 3 + 10]') === true); - }); - it('handles "/[a-z]/i.test(\'a\')"', function() { - assert(constaninople.isConstant("/[a-z]/i.test('a')") === true); - }); - it("handles \"{'class': [('data')]}\"", function() { - assert(constaninople.isConstant("{'class': [('data')]}") === true); - }); - it('handles "Math.random()"', function() { - assert(constaninople.isConstant('Math.random()') === false); - }); - it('handles "Math.random("', function() { - assert(constaninople.isConstant('Math.random(') === false); - }); - it('handles "Math.floor(10.5)" with {Math: Math} as constants', function() { - assert(constaninople.isConstant('Math.floor(10.5)', {Math: Math}) === true); - }); - it('handles "this.myVar"', function() { - assert(constaninople.isConstant('this.myVar') === false); - }); - it('handles "(function () { while (true); return 10; }())"', function() { - assert( - constaninople.isConstant( - '(function () { while (true); return 10; }())' - ) === false - ); - }); - it('handles "({}).toString.constructor("console.log(1)")()"', function() { - assert( - constaninople.isConstant( - '({}).toString.constructor("console.log(1)")()' - ) === false - ); - }); -}); - -describe('toConstant(src)', function() { - it('handles "[5 + 3 + 10]"', function() { - assert.deepEqual(constaninople.toConstant('[5 + 3 + 10]'), [5 + 3 + 10]); - }); - it('handles "/[a-z]/i.test(\'a\')"', function() { - assert(constaninople.toConstant("/[a-z]/i.test('a')") === true); - }); - it("handles \"{'class': [('data')]}\"", function() { - assert.deepEqual(constaninople.toConstant("{'class': [('data')]}"), { - class: ['data'], - }); - }); - it('handles "Math.random()"', function() { - try { - constaninople.toConstant('Math.random()'); - } catch (ex) { - return; - } - assert(false, 'Math.random() should result in an error'); - }); - it('handles "Math.random("', function() { - try { - constaninople.toConstant('Math.random('); - } catch (ex) { - return; - } - assert(false, 'Math.random( should result in an error'); - }); - it('handles "Math.floor(10.5)" with {Math: Math} as constants', function() { - assert(constaninople.toConstant('Math.floor(10.5)', {Math: Math}) === 10); - }); - it('handles "(function () { while (true); return 10; }())"', function() { - try { - constaninople.toConstant('(function () { while (true); return 10; }())'); - } catch (ex) { - return; - } - assert( - false, - '(function () { while (true); return 10; }()) should result in an error' - ); - }); -}); diff --git a/views/node_modules/constantinople/tsconfig.json b/views/node_modules/constantinople/tsconfig.json deleted file mode 100644 index 5364a5c..0000000 --- a/views/node_modules/constantinople/tsconfig.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "compilerOptions": { - "declaration": true, - "outDir": "lib", - "strict": true, - "lib": ["es2017"] - } -} diff --git a/views/node_modules/content-disposition/HISTORY.md b/views/node_modules/content-disposition/HISTORY.md deleted file mode 100644 index 63a3d08..0000000 --- a/views/node_modules/content-disposition/HISTORY.md +++ /dev/null @@ -1,55 +0,0 @@ -0.5.3 / 2018-12-17 -================== - - * Use `safe-buffer` for improved Buffer API - -0.5.2 / 2016-12-08 -================== - - * Fix `parse` to accept any linear whitespace character - -0.5.1 / 2016-01-17 -================== - - * perf: enable strict mode - -0.5.0 / 2014-10-11 -================== - - * Add `parse` function - -0.4.0 / 2014-09-21 -================== - - * Expand non-Unicode `filename` to the full ISO-8859-1 charset - -0.3.0 / 2014-09-20 -================== - - * Add `fallback` option - * Add `type` option - -0.2.0 / 2014-09-19 -================== - - * Reduce ambiguity of file names with hex escape in buggy browsers - -0.1.2 / 2014-09-19 -================== - - * Fix periodic invalid Unicode filename header - -0.1.1 / 2014-09-19 -================== - - * Fix invalid characters appearing in `filename*` parameter - -0.1.0 / 2014-09-18 -================== - - * Make the `filename` argument optional - -0.0.0 / 2014-09-18 -================== - - * Initial release diff --git a/views/node_modules/content-disposition/LICENSE b/views/node_modules/content-disposition/LICENSE deleted file mode 100644 index 84441fb..0000000 --- a/views/node_modules/content-disposition/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2017 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/views/node_modules/content-disposition/README.md b/views/node_modules/content-disposition/README.md deleted file mode 100644 index eebef13..0000000 --- a/views/node_modules/content-disposition/README.md +++ /dev/null @@ -1,148 +0,0 @@ -# content-disposition - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create and parse HTTP `Content-Disposition` header - -## Installation - -```sh -$ npm install content-disposition -``` - -## API - - - -```js -var contentDisposition = require('content-disposition') -``` - -### contentDisposition(filename, options) - -Create an attachment `Content-Disposition` header value using the given file name, -if supplied. The `filename` is optional and if no file name is desired, but you -want to specify `options`, set `filename` to `undefined`. - - - -```js -res.setHeader('Content-Disposition', contentDisposition('∫ maths.pdf')) -``` - -**note** HTTP headers are of the ISO-8859-1 character set. If you are writing this -header through a means different from `setHeader` in Node.js, you'll want to specify -the `'binary'` encoding in Node.js. - -#### Options - -`contentDisposition` accepts these properties in the options object. - -##### fallback - -If the `filename` option is outside ISO-8859-1, then the file name is actually -stored in a supplemental field for clients that support Unicode file names and -a ISO-8859-1 version of the file name is automatically generated. - -This specifies the ISO-8859-1 file name to override the automatic generation or -disables the generation all together, defaults to `true`. - - - A string will specify the ISO-8859-1 file name to use in place of automatic - generation. - - `false` will disable including a ISO-8859-1 file name and only include the - Unicode version (unless the file name is already ISO-8859-1). - - `true` will enable automatic generation if the file name is outside ISO-8859-1. - -If the `filename` option is ISO-8859-1 and this option is specified and has a -different value, then the `filename` option is encoded in the extended field -and this set as the fallback field, even though they are both ISO-8859-1. - -##### type - -Specifies the disposition type, defaults to `"attachment"`. This can also be -`"inline"`, or any other value (all values except inline are treated like -`attachment`, but can convey additional information if both parties agree to -it). The type is normalized to lower-case. - -### contentDisposition.parse(string) - - - -```js -var disposition = contentDisposition.parse('attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt') -``` - -Parse a `Content-Disposition` header string. This automatically handles extended -("Unicode") parameters by decoding them and providing them under the standard -parameter name. This will return an object with the following properties (examples -are shown for the string `'attachment; filename="EURO rates.txt"; filename*=UTF-8\'\'%e2%82%ac%20rates.txt'`): - - - `type`: The disposition type (always lower case). Example: `'attachment'` - - - `parameters`: An object of the parameters in the disposition (name of parameter - always lower case and extended versions replace non-extended versions). Example: - `{filename: "€ rates.txt"}` - -## Examples - -### Send a file for download - -```js -var contentDisposition = require('content-disposition') -var destroy = require('destroy') -var fs = require('fs') -var http = require('http') -var onFinished = require('on-finished') - -var filePath = '/path/to/public/plans.pdf' - -http.createServer(function onRequest (req, res) { - // set headers - res.setHeader('Content-Type', 'application/pdf') - res.setHeader('Content-Disposition', contentDisposition(filePath)) - - // send file - var stream = fs.createReadStream(filePath) - stream.pipe(res) - onFinished(res, function () { - destroy(stream) - }) -}) -``` - -## Testing - -```sh -$ npm test -``` - -## References - -- [RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1][rfc-2616] -- [RFC 5987: Character Set and Language Encoding for Hypertext Transfer Protocol (HTTP) Header Field Parameters][rfc-5987] -- [RFC 6266: Use of the Content-Disposition Header Field in the Hypertext Transfer Protocol (HTTP)][rfc-6266] -- [Test Cases for HTTP Content-Disposition header field (RFC 6266) and the Encodings defined in RFCs 2047, 2231 and 5987][tc-2231] - -[rfc-2616]: https://tools.ietf.org/html/rfc2616 -[rfc-5987]: https://tools.ietf.org/html/rfc5987 -[rfc-6266]: https://tools.ietf.org/html/rfc6266 -[tc-2231]: http://greenbytes.de/tech/tc2231/ - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/content-disposition.svg -[npm-url]: https://npmjs.org/package/content-disposition -[node-version-image]: https://img.shields.io/node/v/content-disposition.svg -[node-version-url]: https://nodejs.org/en/download -[travis-image]: https://img.shields.io/travis/jshttp/content-disposition.svg -[travis-url]: https://travis-ci.org/jshttp/content-disposition -[coveralls-image]: https://img.shields.io/coveralls/jshttp/content-disposition.svg -[coveralls-url]: https://coveralls.io/r/jshttp/content-disposition?branch=master -[downloads-image]: https://img.shields.io/npm/dm/content-disposition.svg -[downloads-url]: https://npmjs.org/package/content-disposition diff --git a/views/node_modules/content-disposition/index.js b/views/node_modules/content-disposition/index.js deleted file mode 100644 index 3092a4d..0000000 --- a/views/node_modules/content-disposition/index.js +++ /dev/null @@ -1,458 +0,0 @@ -/*! - * content-disposition - * Copyright(c) 2014-2017 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = contentDisposition -module.exports.parse = parse - -/** - * Module dependencies. - * @private - */ - -var basename = require('path').basename -var Buffer = require('safe-buffer').Buffer - -/** - * RegExp to match non attr-char, *after* encodeURIComponent (i.e. not including "%") - * @private - */ - -var ENCODE_URL_ATTR_CHAR_REGEXP = /[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g // eslint-disable-line no-control-regex - -/** - * RegExp to match percent encoding escape. - * @private - */ - -var HEX_ESCAPE_REGEXP = /%[0-9A-Fa-f]{2}/ -var HEX_ESCAPE_REPLACE_REGEXP = /%([0-9A-Fa-f]{2})/g - -/** - * RegExp to match non-latin1 characters. - * @private - */ - -var NON_LATIN1_REGEXP = /[^\x20-\x7e\xa0-\xff]/g - -/** - * RegExp to match quoted-pair in RFC 2616 - * - * quoted-pair = "\" CHAR - * CHAR = - * @private - */ - -var QESC_REGEXP = /\\([\u0000-\u007f])/g // eslint-disable-line no-control-regex - -/** - * RegExp to match chars that must be quoted-pair in RFC 2616 - * @private - */ - -var QUOTE_REGEXP = /([\\"])/g - -/** - * RegExp for various RFC 2616 grammar - * - * parameter = token "=" ( token | quoted-string ) - * token = 1* - * separators = "(" | ")" | "<" | ">" | "@" - * | "," | ";" | ":" | "\" | <"> - * | "/" | "[" | "]" | "?" | "=" - * | "{" | "}" | SP | HT - * quoted-string = ( <"> *(qdtext | quoted-pair ) <"> ) - * qdtext = > - * quoted-pair = "\" CHAR - * CHAR = - * TEXT = - * LWS = [CRLF] 1*( SP | HT ) - * CRLF = CR LF - * CR = - * LF = - * SP = - * HT = - * CTL = - * OCTET = - * @private - */ - -var PARAM_REGEXP = /;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g // eslint-disable-line no-control-regex -var TEXT_REGEXP = /^[\x20-\x7e\x80-\xff]+$/ -var TOKEN_REGEXP = /^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/ - -/** - * RegExp for various RFC 5987 grammar - * - * ext-value = charset "'" [ language ] "'" value-chars - * charset = "UTF-8" / "ISO-8859-1" / mime-charset - * mime-charset = 1*mime-charsetc - * mime-charsetc = ALPHA / DIGIT - * / "!" / "#" / "$" / "%" / "&" - * / "+" / "-" / "^" / "_" / "`" - * / "{" / "}" / "~" - * language = ( 2*3ALPHA [ extlang ] ) - * / 4ALPHA - * / 5*8ALPHA - * extlang = *3( "-" 3ALPHA ) - * value-chars = *( pct-encoded / attr-char ) - * pct-encoded = "%" HEXDIG HEXDIG - * attr-char = ALPHA / DIGIT - * / "!" / "#" / "$" / "&" / "+" / "-" / "." - * / "^" / "_" / "`" / "|" / "~" - * @private - */ - -var EXT_VALUE_REGEXP = /^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/ - -/** - * RegExp for various RFC 6266 grammar - * - * disposition-type = "inline" | "attachment" | disp-ext-type - * disp-ext-type = token - * disposition-parm = filename-parm | disp-ext-parm - * filename-parm = "filename" "=" value - * | "filename*" "=" ext-value - * disp-ext-parm = token "=" value - * | ext-token "=" ext-value - * ext-token = - * @private - */ - -var DISPOSITION_TYPE_REGEXP = /^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/ // eslint-disable-line no-control-regex - -/** - * Create an attachment Content-Disposition header. - * - * @param {string} [filename] - * @param {object} [options] - * @param {string} [options.type=attachment] - * @param {string|boolean} [options.fallback=true] - * @return {string} - * @public - */ - -function contentDisposition (filename, options) { - var opts = options || {} - - // get type - var type = opts.type || 'attachment' - - // get parameters - var params = createparams(filename, opts.fallback) - - // format into string - return format(new ContentDisposition(type, params)) -} - -/** - * Create parameters object from filename and fallback. - * - * @param {string} [filename] - * @param {string|boolean} [fallback=true] - * @return {object} - * @private - */ - -function createparams (filename, fallback) { - if (filename === undefined) { - return - } - - var params = {} - - if (typeof filename !== 'string') { - throw new TypeError('filename must be a string') - } - - // fallback defaults to true - if (fallback === undefined) { - fallback = true - } - - if (typeof fallback !== 'string' && typeof fallback !== 'boolean') { - throw new TypeError('fallback must be a string or boolean') - } - - if (typeof fallback === 'string' && NON_LATIN1_REGEXP.test(fallback)) { - throw new TypeError('fallback must be ISO-8859-1 string') - } - - // restrict to file base name - var name = basename(filename) - - // determine if name is suitable for quoted string - var isQuotedString = TEXT_REGEXP.test(name) - - // generate fallback name - var fallbackName = typeof fallback !== 'string' - ? fallback && getlatin1(name) - : basename(fallback) - var hasFallback = typeof fallbackName === 'string' && fallbackName !== name - - // set extended filename parameter - if (hasFallback || !isQuotedString || HEX_ESCAPE_REGEXP.test(name)) { - params['filename*'] = name - } - - // set filename parameter - if (isQuotedString || hasFallback) { - params.filename = hasFallback - ? fallbackName - : name - } - - return params -} - -/** - * Format object to Content-Disposition header. - * - * @param {object} obj - * @param {string} obj.type - * @param {object} [obj.parameters] - * @return {string} - * @private - */ - -function format (obj) { - var parameters = obj.parameters - var type = obj.type - - if (!type || typeof type !== 'string' || !TOKEN_REGEXP.test(type)) { - throw new TypeError('invalid type') - } - - // start with normalized type - var string = String(type).toLowerCase() - - // append parameters - if (parameters && typeof parameters === 'object') { - var param - var params = Object.keys(parameters).sort() - - for (var i = 0; i < params.length; i++) { - param = params[i] - - var val = param.substr(-1) === '*' - ? ustring(parameters[param]) - : qstring(parameters[param]) - - string += '; ' + param + '=' + val - } - } - - return string -} - -/** - * Decode a RFC 6987 field value (gracefully). - * - * @param {string} str - * @return {string} - * @private - */ - -function decodefield (str) { - var match = EXT_VALUE_REGEXP.exec(str) - - if (!match) { - throw new TypeError('invalid extended field value') - } - - var charset = match[1].toLowerCase() - var encoded = match[2] - var value - - // to binary string - var binary = encoded.replace(HEX_ESCAPE_REPLACE_REGEXP, pdecode) - - switch (charset) { - case 'iso-8859-1': - value = getlatin1(binary) - break - case 'utf-8': - value = Buffer.from(binary, 'binary').toString('utf8') - break - default: - throw new TypeError('unsupported charset in extended field') - } - - return value -} - -/** - * Get ISO-8859-1 version of string. - * - * @param {string} val - * @return {string} - * @private - */ - -function getlatin1 (val) { - // simple Unicode -> ISO-8859-1 transformation - return String(val).replace(NON_LATIN1_REGEXP, '?') -} - -/** - * Parse Content-Disposition header string. - * - * @param {string} string - * @return {object} - * @public - */ - -function parse (string) { - if (!string || typeof string !== 'string') { - throw new TypeError('argument string is required') - } - - var match = DISPOSITION_TYPE_REGEXP.exec(string) - - if (!match) { - throw new TypeError('invalid type format') - } - - // normalize type - var index = match[0].length - var type = match[1].toLowerCase() - - var key - var names = [] - var params = {} - var value - - // calculate index to start at - index = PARAM_REGEXP.lastIndex = match[0].substr(-1) === ';' - ? index - 1 - : index - - // match parameters - while ((match = PARAM_REGEXP.exec(string))) { - if (match.index !== index) { - throw new TypeError('invalid parameter format') - } - - index += match[0].length - key = match[1].toLowerCase() - value = match[2] - - if (names.indexOf(key) !== -1) { - throw new TypeError('invalid duplicate parameter') - } - - names.push(key) - - if (key.indexOf('*') + 1 === key.length) { - // decode extended value - key = key.slice(0, -1) - value = decodefield(value) - - // overwrite existing value - params[key] = value - continue - } - - if (typeof params[key] === 'string') { - continue - } - - if (value[0] === '"') { - // remove quotes and escapes - value = value - .substr(1, value.length - 2) - .replace(QESC_REGEXP, '$1') - } - - params[key] = value - } - - if (index !== -1 && index !== string.length) { - throw new TypeError('invalid parameter format') - } - - return new ContentDisposition(type, params) -} - -/** - * Percent decode a single character. - * - * @param {string} str - * @param {string} hex - * @return {string} - * @private - */ - -function pdecode (str, hex) { - return String.fromCharCode(parseInt(hex, 16)) -} - -/** - * Percent encode a single character. - * - * @param {string} char - * @return {string} - * @private - */ - -function pencode (char) { - return '%' + String(char) - .charCodeAt(0) - .toString(16) - .toUpperCase() -} - -/** - * Quote a string for HTTP. - * - * @param {string} val - * @return {string} - * @private - */ - -function qstring (val) { - var str = String(val) - - return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' -} - -/** - * Encode a Unicode string for HTTP (RFC 5987). - * - * @param {string} val - * @return {string} - * @private - */ - -function ustring (val) { - var str = String(val) - - // percent encode as UTF-8 - var encoded = encodeURIComponent(str) - .replace(ENCODE_URL_ATTR_CHAR_REGEXP, pencode) - - return 'UTF-8\'\'' + encoded -} - -/** - * Class for parsed Content-Disposition header for v8 optimization - * - * @public - * @param {string} type - * @param {object} parameters - * @constructor - */ - -function ContentDisposition (type, parameters) { - this.type = type - this.parameters = parameters -} diff --git a/views/node_modules/content-disposition/package.json b/views/node_modules/content-disposition/package.json deleted file mode 100644 index 814f7f3..0000000 --- a/views/node_modules/content-disposition/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "content-disposition", - "description": "Create and parse Content-Disposition header", - "version": "0.5.3", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "content-disposition", - "http", - "rfc6266", - "res" - ], - "repository": "jshttp/content-disposition", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "devDependencies": { - "deep-equal": "1.0.1", - "eslint": "5.10.0", - "eslint-config-standard": "12.0.0", - "eslint-plugin-import": "2.14.0", - "eslint-plugin-markdown": "1.0.0-rc.1", - "eslint-plugin-node": "7.0.1", - "eslint-plugin-promise": "4.0.1", - "eslint-plugin-standard": "4.0.0", - "istanbul": "0.4.5", - "mocha": "5.2.0" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint --plugin markdown --ext js,md .", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/" - } -} diff --git a/views/node_modules/content-type/HISTORY.md b/views/node_modules/content-type/HISTORY.md deleted file mode 100644 index 8f5cb70..0000000 --- a/views/node_modules/content-type/HISTORY.md +++ /dev/null @@ -1,24 +0,0 @@ -1.0.4 / 2017-09-11 -================== - - * perf: skip parameter parsing when no parameters - -1.0.3 / 2017-09-10 -================== - - * perf: remove argument reassignment - -1.0.2 / 2016-05-09 -================== - - * perf: enable strict mode - -1.0.1 / 2015-02-13 -================== - - * Improve missing `Content-Type` header error message - -1.0.0 / 2015-02-01 -================== - - * Initial implementation, derived from `media-typer@0.3.0` diff --git a/views/node_modules/content-type/LICENSE b/views/node_modules/content-type/LICENSE deleted file mode 100644 index 34b1a2d..0000000 --- a/views/node_modules/content-type/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2015 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/views/node_modules/content-type/README.md b/views/node_modules/content-type/README.md deleted file mode 100644 index 3ed6741..0000000 --- a/views/node_modules/content-type/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# content-type - -[![NPM Version][npm-image]][npm-url] -[![NPM Downloads][downloads-image]][downloads-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Create and parse HTTP Content-Type header according to RFC 7231 - -## Installation - -```sh -$ npm install content-type -``` - -## API - -```js -var contentType = require('content-type') -``` - -### contentType.parse(string) - -```js -var obj = contentType.parse('image/svg+xml; charset=utf-8') -``` - -Parse a content type string. This will return an object with the following -properties (examples are shown for the string `'image/svg+xml; charset=utf-8'`): - - - `type`: The media type (the type and subtype, always lower case). - Example: `'image/svg+xml'` - - - `parameters`: An object of the parameters in the media type (name of parameter - always lower case). Example: `{charset: 'utf-8'}` - -Throws a `TypeError` if the string is missing or invalid. - -### contentType.parse(req) - -```js -var obj = contentType.parse(req) -``` - -Parse the `content-type` header from the given `req`. Short-cut for -`contentType.parse(req.headers['content-type'])`. - -Throws a `TypeError` if the `Content-Type` header is missing or invalid. - -### contentType.parse(res) - -```js -var obj = contentType.parse(res) -``` - -Parse the `content-type` header set on the given `res`. Short-cut for -`contentType.parse(res.getHeader('content-type'))`. - -Throws a `TypeError` if the `Content-Type` header is missing or invalid. - -### contentType.format(obj) - -```js -var str = contentType.format({type: 'image/svg+xml'}) -``` - -Format an object into a content type string. This will return a string of the -content type for the given object with the following properties (examples are -shown that produce the string `'image/svg+xml; charset=utf-8'`): - - - `type`: The media type (will be lower-cased). Example: `'image/svg+xml'` - - - `parameters`: An object of the parameters in the media type (name of the - parameter will be lower-cased). Example: `{charset: 'utf-8'}` - -Throws a `TypeError` if the object contains an invalid type or parameter names. - -## License - -[MIT](LICENSE) - -[npm-image]: https://img.shields.io/npm/v/content-type.svg -[npm-url]: https://npmjs.org/package/content-type -[node-version-image]: https://img.shields.io/node/v/content-type.svg -[node-version-url]: http://nodejs.org/download/ -[travis-image]: https://img.shields.io/travis/jshttp/content-type/master.svg -[travis-url]: https://travis-ci.org/jshttp/content-type -[coveralls-image]: https://img.shields.io/coveralls/jshttp/content-type/master.svg -[coveralls-url]: https://coveralls.io/r/jshttp/content-type -[downloads-image]: https://img.shields.io/npm/dm/content-type.svg -[downloads-url]: https://npmjs.org/package/content-type diff --git a/views/node_modules/content-type/index.js b/views/node_modules/content-type/index.js deleted file mode 100644 index 6ce03f2..0000000 --- a/views/node_modules/content-type/index.js +++ /dev/null @@ -1,222 +0,0 @@ -/*! - * content-type - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * RegExp to match *( ";" parameter ) in RFC 7231 sec 3.1.1.1 - * - * parameter = token "=" ( token / quoted-string ) - * token = 1*tchar - * tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" - * / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~" - * / DIGIT / ALPHA - * ; any VCHAR, except delimiters - * quoted-string = DQUOTE *( qdtext / quoted-pair ) DQUOTE - * qdtext = HTAB / SP / %x21 / %x23-5B / %x5D-7E / obs-text - * obs-text = %x80-FF - * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) - */ -var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g -var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/ -var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ - -/** - * RegExp to match quoted-pair in RFC 7230 sec 3.2.6 - * - * quoted-pair = "\" ( HTAB / SP / VCHAR / obs-text ) - * obs-text = %x80-FF - */ -var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g - -/** - * RegExp to match chars that must be quoted-pair in RFC 7230 sec 3.2.6 - */ -var QUOTE_REGEXP = /([\\"])/g - -/** - * RegExp to match type in RFC 7231 sec 3.1.1.1 - * - * media-type = type "/" subtype - * type = token - * subtype = token - */ -var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/ - -/** - * Module exports. - * @public - */ - -exports.format = format -exports.parse = parse - -/** - * Format object to media type. - * - * @param {object} obj - * @return {string} - * @public - */ - -function format (obj) { - if (!obj || typeof obj !== 'object') { - throw new TypeError('argument obj is required') - } - - var parameters = obj.parameters - var type = obj.type - - if (!type || !TYPE_REGEXP.test(type)) { - throw new TypeError('invalid type') - } - - var string = type - - // append parameters - if (parameters && typeof parameters === 'object') { - var param - var params = Object.keys(parameters).sort() - - for (var i = 0; i < params.length; i++) { - param = params[i] - - if (!TOKEN_REGEXP.test(param)) { - throw new TypeError('invalid parameter name') - } - - string += '; ' + param + '=' + qstring(parameters[param]) - } - } - - return string -} - -/** - * Parse media type to object. - * - * @param {string|object} string - * @return {Object} - * @public - */ - -function parse (string) { - if (!string) { - throw new TypeError('argument string is required') - } - - // support req/res-like objects as argument - var header = typeof string === 'object' - ? getcontenttype(string) - : string - - if (typeof header !== 'string') { - throw new TypeError('argument string is required to be a string') - } - - var index = header.indexOf(';') - var type = index !== -1 - ? header.substr(0, index).trim() - : header.trim() - - if (!TYPE_REGEXP.test(type)) { - throw new TypeError('invalid media type') - } - - var obj = new ContentType(type.toLowerCase()) - - // parse parameters - if (index !== -1) { - var key - var match - var value - - PARAM_REGEXP.lastIndex = index - - while ((match = PARAM_REGEXP.exec(header))) { - if (match.index !== index) { - throw new TypeError('invalid parameter format') - } - - index += match[0].length - key = match[1].toLowerCase() - value = match[2] - - if (value[0] === '"') { - // remove quotes and escapes - value = value - .substr(1, value.length - 2) - .replace(QESC_REGEXP, '$1') - } - - obj.parameters[key] = value - } - - if (index !== header.length) { - throw new TypeError('invalid parameter format') - } - } - - return obj -} - -/** - * Get content-type from req/res objects. - * - * @param {object} - * @return {Object} - * @private - */ - -function getcontenttype (obj) { - var header - - if (typeof obj.getHeader === 'function') { - // res-like - header = obj.getHeader('content-type') - } else if (typeof obj.headers === 'object') { - // req-like - header = obj.headers && obj.headers['content-type'] - } - - if (typeof header !== 'string') { - throw new TypeError('content-type header is missing from object') - } - - return header -} - -/** - * Quote a string if necessary. - * - * @param {string} val - * @return {string} - * @private - */ - -function qstring (val) { - var str = String(val) - - // no need to quote tokens - if (TOKEN_REGEXP.test(str)) { - return str - } - - if (str.length > 0 && !TEXT_REGEXP.test(str)) { - throw new TypeError('invalid parameter value') - } - - return '"' + str.replace(QUOTE_REGEXP, '\\$1') + '"' -} - -/** - * Class to represent a content type. - * @private - */ -function ContentType (type) { - this.parameters = Object.create(null) - this.type = type -} diff --git a/views/node_modules/content-type/package.json b/views/node_modules/content-type/package.json deleted file mode 100644 index f2d31d4..0000000 --- a/views/node_modules/content-type/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "content-type", - "description": "Create and parse HTTP Content-Type header", - "version": "1.0.4", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "content-type", - "http", - "req", - "res", - "rfc7231" - ], - "repository": "jshttp/content-type", - "devDependencies": { - "eslint": "3.19.0", - "eslint-config-standard": "10.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.5.0", - "eslint-plugin-standard": "3.0.1", - "istanbul": "0.4.5", - "mocha": "~1.21.5" - }, - "files": [ - "LICENSE", - "HISTORY.md", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "lint": "eslint .", - "test": "mocha --reporter spec --check-leaks --bail test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/" - } -} diff --git a/views/node_modules/cookie-signature/.npmignore b/views/node_modules/cookie-signature/.npmignore deleted file mode 100644 index f1250e5..0000000 --- a/views/node_modules/cookie-signature/.npmignore +++ /dev/null @@ -1,4 +0,0 @@ -support -test -examples -*.sock diff --git a/views/node_modules/cookie-signature/History.md b/views/node_modules/cookie-signature/History.md deleted file mode 100644 index 78513cc..0000000 --- a/views/node_modules/cookie-signature/History.md +++ /dev/null @@ -1,38 +0,0 @@ -1.0.6 / 2015-02-03 -================== - -* use `npm test` instead of `make test` to run tests -* clearer assertion messages when checking input - - -1.0.5 / 2014-09-05 -================== - -* add license to package.json - -1.0.4 / 2014-06-25 -================== - - * corrected avoidance of timing attacks (thanks @tenbits!) - -1.0.3 / 2014-01-28 -================== - - * [incorrect] fix for timing attacks - -1.0.2 / 2014-01-28 -================== - - * fix missing repository warning - * fix typo in test - -1.0.1 / 2013-04-15 -================== - - * Revert "Changed underlying HMAC algo. to sha512." - * Revert "Fix for timing attacks on MAC verification." - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/views/node_modules/cookie-signature/Readme.md b/views/node_modules/cookie-signature/Readme.md deleted file mode 100644 index 2559e84..0000000 --- a/views/node_modules/cookie-signature/Readme.md +++ /dev/null @@ -1,42 +0,0 @@ - -# cookie-signature - - Sign and unsign cookies. - -## Example - -```js -var cookie = require('cookie-signature'); - -var val = cookie.sign('hello', 'tobiiscool'); -val.should.equal('hello.DGDUkGlIkCzPz+C0B064FNgHdEjox7ch8tOBGslZ5QI'); - -var val = cookie.sign('hello', 'tobiiscool'); -cookie.unsign(val, 'tobiiscool').should.equal('hello'); -cookie.unsign(val, 'luna').should.be.false; -``` - -## License - -(The MIT License) - -Copyright (c) 2012 LearnBoost <tj@learnboost.com> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/views/node_modules/cookie-signature/index.js b/views/node_modules/cookie-signature/index.js deleted file mode 100644 index b8c9463..0000000 --- a/views/node_modules/cookie-signature/index.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Module dependencies. - */ - -var crypto = require('crypto'); - -/** - * Sign the given `val` with `secret`. - * - * @param {String} val - * @param {String} secret - * @return {String} - * @api private - */ - -exports.sign = function(val, secret){ - if ('string' != typeof val) throw new TypeError("Cookie value must be provided as a string."); - if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); - return val + '.' + crypto - .createHmac('sha256', secret) - .update(val) - .digest('base64') - .replace(/\=+$/, ''); -}; - -/** - * Unsign and decode the given `val` with `secret`, - * returning `false` if the signature is invalid. - * - * @param {String} val - * @param {String} secret - * @return {String|Boolean} - * @api private - */ - -exports.unsign = function(val, secret){ - if ('string' != typeof val) throw new TypeError("Signed cookie string must be provided."); - if ('string' != typeof secret) throw new TypeError("Secret string must be provided."); - var str = val.slice(0, val.lastIndexOf('.')) - , mac = exports.sign(str, secret); - - return sha1(mac) == sha1(val) ? str : false; -}; - -/** - * Private - */ - -function sha1(str){ - return crypto.createHash('sha1').update(str).digest('hex'); -} diff --git a/views/node_modules/cookie-signature/package.json b/views/node_modules/cookie-signature/package.json deleted file mode 100644 index 29c4498..0000000 --- a/views/node_modules/cookie-signature/package.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "cookie-signature", - "version": "1.0.6", - "description": "Sign and unsign cookies", - "keywords": ["cookie", "sign", "unsign"], - "author": "TJ Holowaychuk ", - "license": "MIT", - "repository": { "type": "git", "url": "https://github.com/visionmedia/node-cookie-signature.git"}, - "dependencies": {}, - "devDependencies": { - "mocha": "*", - "should": "*" - }, - "scripts": { - "test": "mocha --require should --reporter spec" - }, - "main": "index" -} diff --git a/views/node_modules/cookie/HISTORY.md b/views/node_modules/cookie/HISTORY.md deleted file mode 100644 index da2bf24..0000000 --- a/views/node_modules/cookie/HISTORY.md +++ /dev/null @@ -1,123 +0,0 @@ -0.4.0 / 2019-05-15 -================== - - * Add `SameSite=None` support - -0.3.1 / 2016-05-26 -================== - - * Fix `sameSite: true` to work with draft-7 clients - - `true` now sends `SameSite=Strict` instead of `SameSite` - -0.3.0 / 2016-05-26 -================== - - * Add `sameSite` option - - Replaces `firstPartyOnly` option, never implemented by browsers - * Improve error message when `encode` is not a function - * Improve error message when `expires` is not a `Date` - -0.2.4 / 2016-05-20 -================== - - * perf: enable strict mode - * perf: use for loop in parse - * perf: use string concatination for serialization - -0.2.3 / 2015-10-25 -================== - - * Fix cookie `Max-Age` to never be a floating point number - -0.2.2 / 2015-09-17 -================== - - * Fix regression when setting empty cookie value - - Ease the new restriction, which is just basic header-level validation - * Fix typo in invalid value errors - -0.2.1 / 2015-09-17 -================== - - * Throw on invalid values provided to `serialize` - - Ensures the resulting string is a valid HTTP header value - -0.2.0 / 2015-08-13 -================== - - * Add `firstPartyOnly` option - * Throw better error for invalid argument to parse - * perf: hoist regular expression - -0.1.5 / 2015-09-17 -================== - - * Fix regression when setting empty cookie value - - Ease the new restriction, which is just basic header-level validation - * Fix typo in invalid value errors - -0.1.4 / 2015-09-17 -================== - - * Throw better error for invalid argument to parse - * Throw on invalid values provided to `serialize` - - Ensures the resulting string is a valid HTTP header value - -0.1.3 / 2015-05-19 -================== - - * Reduce the scope of try-catch deopt - * Remove argument reassignments - -0.1.2 / 2014-04-16 -================== - - * Remove unnecessary files from npm package - -0.1.1 / 2014-02-23 -================== - - * Fix bad parse when cookie value contained a comma - * Fix support for `maxAge` of `0` - -0.1.0 / 2013-05-01 -================== - - * Add `decode` option - * Add `encode` option - -0.0.6 / 2013-04-08 -================== - - * Ignore cookie parts missing `=` - -0.0.5 / 2012-10-29 -================== - - * Return raw cookie value if value unescape errors - -0.0.4 / 2012-06-21 -================== - - * Use encode/decodeURIComponent for cookie encoding/decoding - - Improve server/client interoperability - -0.0.3 / 2012-06-06 -================== - - * Only escape special characters per the cookie RFC - -0.0.2 / 2012-06-01 -================== - - * Fix `maxAge` option to not throw error - -0.0.1 / 2012-05-28 -================== - - * Add more tests - -0.0.0 / 2012-05-28 -================== - - * Initial release diff --git a/views/node_modules/cookie/LICENSE b/views/node_modules/cookie/LICENSE deleted file mode 100644 index 058b6b4..0000000 --- a/views/node_modules/cookie/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -(The MIT License) - -Copyright (c) 2012-2014 Roman Shtylman -Copyright (c) 2015 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/views/node_modules/cookie/README.md b/views/node_modules/cookie/README.md deleted file mode 100644 index 857fb77..0000000 --- a/views/node_modules/cookie/README.md +++ /dev/null @@ -1,253 +0,0 @@ -# cookie - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-version-image]][node-version-url] -[![Build Status][travis-image]][travis-url] -[![Test Coverage][coveralls-image]][coveralls-url] - -Basic HTTP cookie parser and serializer for HTTP servers. - -## Installation - -```sh -$ npm install cookie -``` - -## API - -```js -var cookie = require('cookie'); -``` - -### cookie.parse(str, options) - -Parse an HTTP `Cookie` header string and returning an object of all cookie name-value pairs. -The `str` argument is the string representing a `Cookie` header value and `options` is an -optional object containing additional parsing options. - -```js -var cookies = cookie.parse('foo=bar; equation=E%3Dmc%5E2'); -// { foo: 'bar', equation: 'E=mc^2' } -``` - -#### Options - -`cookie.parse` accepts these properties in the options object. - -##### decode - -Specifies a function that will be used to decode a cookie's value. Since the value of a cookie -has a limited character set (and must be a simple string), this function can be used to decode -a previously-encoded cookie value into a JavaScript string or other object. - -The default function is the global `decodeURIComponent`, which will decode any URL-encoded -sequences into their byte representations. - -**note** if an error is thrown from this function, the original, non-decoded cookie value will -be returned as the cookie's value. - -### cookie.serialize(name, value, options) - -Serialize a cookie name-value pair into a `Set-Cookie` header string. The `name` argument is the -name for the cookie, the `value` argument is the value to set the cookie to, and the `options` -argument is an optional object containing additional serialization options. - -```js -var setCookie = cookie.serialize('foo', 'bar'); -// foo=bar -``` - -#### Options - -`cookie.serialize` accepts these properties in the options object. - -##### domain - -Specifies the value for the [`Domain` `Set-Cookie` attribute][rfc-6265-5.2.3]. By default, no -domain is set, and most clients will consider the cookie to apply to only the current domain. - -##### encode - -Specifies a function that will be used to encode a cookie's value. Since value of a cookie -has a limited character set (and must be a simple string), this function can be used to encode -a value into a string suited for a cookie's value. - -The default function is the global `encodeURIComponent`, which will encode a JavaScript string -into UTF-8 byte sequences and then URL-encode any that fall outside of the cookie range. - -##### expires - -Specifies the `Date` object to be the value for the [`Expires` `Set-Cookie` attribute][rfc-6265-5.2.1]. -By default, no expiration is set, and most clients will consider this a "non-persistent cookie" and -will delete it on a condition like exiting a web browser application. - -**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and -`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, -so if both are set, they should point to the same date and time. - -##### httpOnly - -Specifies the `boolean` value for the [`HttpOnly` `Set-Cookie` attribute][rfc-6265-5.2.6]. When truthy, -the `HttpOnly` attribute is set, otherwise it is not. By default, the `HttpOnly` attribute is not set. - -**note** be careful when setting this to `true`, as compliant clients will not allow client-side -JavaScript to see the cookie in `document.cookie`. - -##### maxAge - -Specifies the `number` (in seconds) to be the value for the [`Max-Age` `Set-Cookie` attribute][rfc-6265-5.2.2]. -The given number will be converted to an integer by rounding down. By default, no maximum age is set. - -**note** the [cookie storage model specification][rfc-6265-5.3] states that if both `expires` and -`maxAge` are set, then `maxAge` takes precedence, but it is possible not all clients by obey this, -so if both are set, they should point to the same date and time. - -##### path - -Specifies the value for the [`Path` `Set-Cookie` attribute][rfc-6265-5.2.4]. By default, the path -is considered the ["default path"][rfc-6265-5.1.4]. - -##### sameSite - -Specifies the `boolean` or `string` to be the value for the [`SameSite` `Set-Cookie` attribute][rfc-6265bis-03-4.1.2.7]. - - - `true` will set the `SameSite` attribute to `Strict` for strict same site enforcement. - - `false` will not set the `SameSite` attribute. - - `'lax'` will set the `SameSite` attribute to `Lax` for lax same site enforcement. - - `'none'` will set the `SameSite` attribute to `None` for an explicit cross-site cookie. - - `'strict'` will set the `SameSite` attribute to `Strict` for strict same site enforcement. - -More information about the different enforcement levels can be found in -[the specification][rfc-6265bis-03-4.1.2.7]. - -**note** This is an attribute that has not yet been fully standardized, and may change in the future. -This also means many clients may ignore this attribute until they understand it. - -##### secure - -Specifies the `boolean` value for the [`Secure` `Set-Cookie` attribute][rfc-6265-5.2.5]. When truthy, -the `Secure` attribute is set, otherwise it is not. By default, the `Secure` attribute is not set. - -**note** be careful when setting this to `true`, as compliant clients will not send the cookie back to -the server in the future if the browser does not have an HTTPS connection. - -## Example - -The following example uses this module in conjunction with the Node.js core HTTP server -to prompt a user for their name and display it back on future visits. - -```js -var cookie = require('cookie'); -var escapeHtml = require('escape-html'); -var http = require('http'); -var url = require('url'); - -function onRequest(req, res) { - // Parse the query string - var query = url.parse(req.url, true, true).query; - - if (query && query.name) { - // Set a new cookie with the name - res.setHeader('Set-Cookie', cookie.serialize('name', String(query.name), { - httpOnly: true, - maxAge: 60 * 60 * 24 * 7 // 1 week - })); - - // Redirect back after setting cookie - res.statusCode = 302; - res.setHeader('Location', req.headers.referer || '/'); - res.end(); - return; - } - - // Parse the cookies on the request - var cookies = cookie.parse(req.headers.cookie || ''); - - // Get the visitor name set in the cookie - var name = cookies.name; - - res.setHeader('Content-Type', 'text/html; charset=UTF-8'); - - if (name) { - res.write('

Welcome back, ' + escapeHtml(name) + '!

'); - } else { - res.write('

Hello, new visitor!

'); - } - - res.write('
'); - res.write(' '); - res.end('
'); -} - -http.createServer(onRequest).listen(3000); -``` - -## Testing - -```sh -$ npm test -``` - -## Benchmark - -``` -$ npm run bench - -> cookie@0.3.1 bench cookie -> node benchmark/index.js - - http_parser@2.8.0 - node@6.14.2 - v8@5.1.281.111 - uv@1.16.1 - zlib@1.2.11 - ares@1.10.1-DEV - icu@58.2 - modules@48 - napi@3 - openssl@1.0.2o - -> node benchmark/parse.js - - cookie.parse - - 6 tests completed. - - simple x 1,200,691 ops/sec ±1.12% (189 runs sampled) - decode x 1,012,994 ops/sec ±0.97% (186 runs sampled) - unquote x 1,074,174 ops/sec ±2.43% (186 runs sampled) - duplicates x 438,424 ops/sec ±2.17% (184 runs sampled) - 10 cookies x 147,154 ops/sec ±1.01% (186 runs sampled) - 100 cookies x 14,274 ops/sec ±1.07% (187 runs sampled) -``` - -## References - -- [RFC 6265: HTTP State Management Mechanism][rfc-6265] -- [Same-site Cookies][rfc-6265bis-03-4.1.2.7] - -[rfc-6265bis-03-4.1.2.7]: https://tools.ietf.org/html/draft-ietf-httpbis-rfc6265bis-03#section-4.1.2.7 -[rfc-6265]: https://tools.ietf.org/html/rfc6265 -[rfc-6265-5.1.4]: https://tools.ietf.org/html/rfc6265#section-5.1.4 -[rfc-6265-5.2.1]: https://tools.ietf.org/html/rfc6265#section-5.2.1 -[rfc-6265-5.2.2]: https://tools.ietf.org/html/rfc6265#section-5.2.2 -[rfc-6265-5.2.3]: https://tools.ietf.org/html/rfc6265#section-5.2.3 -[rfc-6265-5.2.4]: https://tools.ietf.org/html/rfc6265#section-5.2.4 -[rfc-6265-5.2.5]: https://tools.ietf.org/html/rfc6265#section-5.2.5 -[rfc-6265-5.2.6]: https://tools.ietf.org/html/rfc6265#section-5.2.6 -[rfc-6265-5.3]: https://tools.ietf.org/html/rfc6265#section-5.3 - -## License - -[MIT](LICENSE) - -[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/cookie/master -[coveralls-url]: https://coveralls.io/r/jshttp/cookie?branch=master -[node-version-image]: https://badgen.net/npm/node/cookie -[node-version-url]: https://nodejs.org/en/download -[npm-downloads-image]: https://badgen.net/npm/dm/cookie -[npm-url]: https://npmjs.org/package/cookie -[npm-version-image]: https://badgen.net/npm/v/cookie -[travis-image]: https://badgen.net/travis/jshttp/cookie/master -[travis-url]: https://travis-ci.org/jshttp/cookie diff --git a/views/node_modules/cookie/index.js b/views/node_modules/cookie/index.js deleted file mode 100644 index 16f56c0..0000000 --- a/views/node_modules/cookie/index.js +++ /dev/null @@ -1,198 +0,0 @@ -/*! - * cookie - * Copyright(c) 2012-2014 Roman Shtylman - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict'; - -/** - * Module exports. - * @public - */ - -exports.parse = parse; -exports.serialize = serialize; - -/** - * Module variables. - * @private - */ - -var decode = decodeURIComponent; -var encode = encodeURIComponent; -var pairSplitRegExp = /; */; - -/** - * RegExp to match field-content in RFC 7230 sec 3.2 - * - * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] - * field-vchar = VCHAR / obs-text - * obs-text = %x80-FF - */ - -var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; - -/** - * Parse a cookie header. - * - * Parse the given cookie header string into an object - * The object has the various cookies as keys(names) => values - * - * @param {string} str - * @param {object} [options] - * @return {object} - * @public - */ - -function parse(str, options) { - if (typeof str !== 'string') { - throw new TypeError('argument str must be a string'); - } - - var obj = {} - var opt = options || {}; - var pairs = str.split(pairSplitRegExp); - var dec = opt.decode || decode; - - for (var i = 0; i < pairs.length; i++) { - var pair = pairs[i]; - var eq_idx = pair.indexOf('='); - - // skip things that don't look like key=value - if (eq_idx < 0) { - continue; - } - - var key = pair.substr(0, eq_idx).trim() - var val = pair.substr(++eq_idx, pair.length).trim(); - - // quoted values - if ('"' == val[0]) { - val = val.slice(1, -1); - } - - // only assign once - if (undefined == obj[key]) { - obj[key] = tryDecode(val, dec); - } - } - - return obj; -} - -/** - * Serialize data into a cookie header. - * - * Serialize the a name value pair into a cookie string suitable for - * http headers. An optional options object specified cookie parameters. - * - * serialize('foo', 'bar', { httpOnly: true }) - * => "foo=bar; httpOnly" - * - * @param {string} name - * @param {string} val - * @param {object} [options] - * @return {string} - * @public - */ - -function serialize(name, val, options) { - var opt = options || {}; - var enc = opt.encode || encode; - - if (typeof enc !== 'function') { - throw new TypeError('option encode is invalid'); - } - - if (!fieldContentRegExp.test(name)) { - throw new TypeError('argument name is invalid'); - } - - var value = enc(val); - - if (value && !fieldContentRegExp.test(value)) { - throw new TypeError('argument val is invalid'); - } - - var str = name + '=' + value; - - if (null != opt.maxAge) { - var maxAge = opt.maxAge - 0; - if (isNaN(maxAge)) throw new Error('maxAge should be a Number'); - str += '; Max-Age=' + Math.floor(maxAge); - } - - if (opt.domain) { - if (!fieldContentRegExp.test(opt.domain)) { - throw new TypeError('option domain is invalid'); - } - - str += '; Domain=' + opt.domain; - } - - if (opt.path) { - if (!fieldContentRegExp.test(opt.path)) { - throw new TypeError('option path is invalid'); - } - - str += '; Path=' + opt.path; - } - - if (opt.expires) { - if (typeof opt.expires.toUTCString !== 'function') { - throw new TypeError('option expires is invalid'); - } - - str += '; Expires=' + opt.expires.toUTCString(); - } - - if (opt.httpOnly) { - str += '; HttpOnly'; - } - - if (opt.secure) { - str += '; Secure'; - } - - if (opt.sameSite) { - var sameSite = typeof opt.sameSite === 'string' - ? opt.sameSite.toLowerCase() : opt.sameSite; - - switch (sameSite) { - case true: - str += '; SameSite=Strict'; - break; - case 'lax': - str += '; SameSite=Lax'; - break; - case 'strict': - str += '; SameSite=Strict'; - break; - case 'none': - str += '; SameSite=None'; - break; - default: - throw new TypeError('option sameSite is invalid'); - } - } - - return str; -} - -/** - * Try decoding a string using a decoding function. - * - * @param {string} str - * @param {function} decode - * @private - */ - -function tryDecode(str, decode) { - try { - return decode(str); - } catch (e) { - return str; - } -} diff --git a/views/node_modules/cookie/package.json b/views/node_modules/cookie/package.json deleted file mode 100644 index 9bfbc47..0000000 --- a/views/node_modules/cookie/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "cookie", - "description": "HTTP server cookie parsing and serialization", - "version": "0.4.0", - "author": "Roman Shtylman ", - "contributors": [ - "Douglas Christopher Wilson " - ], - "license": "MIT", - "keywords": [ - "cookie", - "cookies" - ], - "repository": "jshttp/cookie", - "devDependencies": { - "beautify-benchmark": "0.2.4", - "benchmark": "2.1.4", - "eslint": "5.16.0", - "eslint-plugin-markdown": "1.0.0", - "istanbul": "0.4.5", - "mocha": "6.1.4" - }, - "files": [ - "HISTORY.md", - "LICENSE", - "README.md", - "index.js" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "lint": "eslint --plugin markdown --ext js,md .", - "test": "mocha --reporter spec --bail --check-leaks test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/", - "version": "node scripts/version-history.js && git add HISTORY.md" - } -} diff --git a/views/node_modules/core-util-is/LICENSE b/views/node_modules/core-util-is/LICENSE deleted file mode 100644 index d8d7f94..0000000 --- a/views/node_modules/core-util-is/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright Node.js contributors. All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. diff --git a/views/node_modules/core-util-is/README.md b/views/node_modules/core-util-is/README.md deleted file mode 100644 index 5a76b41..0000000 --- a/views/node_modules/core-util-is/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# core-util-is - -The `util.is*` functions introduced in Node v0.12. diff --git a/views/node_modules/core-util-is/float.patch b/views/node_modules/core-util-is/float.patch deleted file mode 100644 index a06d5c0..0000000 --- a/views/node_modules/core-util-is/float.patch +++ /dev/null @@ -1,604 +0,0 @@ -diff --git a/lib/util.js b/lib/util.js -index a03e874..9074e8e 100644 ---- a/lib/util.js -+++ b/lib/util.js -@@ -19,430 +19,6 @@ - // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE - // USE OR OTHER DEALINGS IN THE SOFTWARE. - --var formatRegExp = /%[sdj%]/g; --exports.format = function(f) { -- if (!isString(f)) { -- var objects = []; -- for (var i = 0; i < arguments.length; i++) { -- objects.push(inspect(arguments[i])); -- } -- return objects.join(' '); -- } -- -- var i = 1; -- var args = arguments; -- var len = args.length; -- var str = String(f).replace(formatRegExp, function(x) { -- if (x === '%%') return '%'; -- if (i >= len) return x; -- switch (x) { -- case '%s': return String(args[i++]); -- case '%d': return Number(args[i++]); -- case '%j': -- try { -- return JSON.stringify(args[i++]); -- } catch (_) { -- return '[Circular]'; -- } -- default: -- return x; -- } -- }); -- for (var x = args[i]; i < len; x = args[++i]) { -- if (isNull(x) || !isObject(x)) { -- str += ' ' + x; -- } else { -- str += ' ' + inspect(x); -- } -- } -- return str; --}; -- -- --// Mark that a method should not be used. --// Returns a modified function which warns once by default. --// If --no-deprecation is set, then it is a no-op. --exports.deprecate = function(fn, msg) { -- // Allow for deprecating things in the process of starting up. -- if (isUndefined(global.process)) { -- return function() { -- return exports.deprecate(fn, msg).apply(this, arguments); -- }; -- } -- -- if (process.noDeprecation === true) { -- return fn; -- } -- -- var warned = false; -- function deprecated() { -- if (!warned) { -- if (process.throwDeprecation) { -- throw new Error(msg); -- } else if (process.traceDeprecation) { -- console.trace(msg); -- } else { -- console.error(msg); -- } -- warned = true; -- } -- return fn.apply(this, arguments); -- } -- -- return deprecated; --}; -- -- --var debugs = {}; --var debugEnviron; --exports.debuglog = function(set) { -- if (isUndefined(debugEnviron)) -- debugEnviron = process.env.NODE_DEBUG || ''; -- set = set.toUpperCase(); -- if (!debugs[set]) { -- if (new RegExp('\\b' + set + '\\b', 'i').test(debugEnviron)) { -- var pid = process.pid; -- debugs[set] = function() { -- var msg = exports.format.apply(exports, arguments); -- console.error('%s %d: %s', set, pid, msg); -- }; -- } else { -- debugs[set] = function() {}; -- } -- } -- return debugs[set]; --}; -- -- --/** -- * Echos the value of a value. Trys to print the value out -- * in the best way possible given the different types. -- * -- * @param {Object} obj The object to print out. -- * @param {Object} opts Optional options object that alters the output. -- */ --/* legacy: obj, showHidden, depth, colors*/ --function inspect(obj, opts) { -- // default options -- var ctx = { -- seen: [], -- stylize: stylizeNoColor -- }; -- // legacy... -- if (arguments.length >= 3) ctx.depth = arguments[2]; -- if (arguments.length >= 4) ctx.colors = arguments[3]; -- if (isBoolean(opts)) { -- // legacy... -- ctx.showHidden = opts; -- } else if (opts) { -- // got an "options" object -- exports._extend(ctx, opts); -- } -- // set default options -- if (isUndefined(ctx.showHidden)) ctx.showHidden = false; -- if (isUndefined(ctx.depth)) ctx.depth = 2; -- if (isUndefined(ctx.colors)) ctx.colors = false; -- if (isUndefined(ctx.customInspect)) ctx.customInspect = true; -- if (ctx.colors) ctx.stylize = stylizeWithColor; -- return formatValue(ctx, obj, ctx.depth); --} --exports.inspect = inspect; -- -- --// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics --inspect.colors = { -- 'bold' : [1, 22], -- 'italic' : [3, 23], -- 'underline' : [4, 24], -- 'inverse' : [7, 27], -- 'white' : [37, 39], -- 'grey' : [90, 39], -- 'black' : [30, 39], -- 'blue' : [34, 39], -- 'cyan' : [36, 39], -- 'green' : [32, 39], -- 'magenta' : [35, 39], -- 'red' : [31, 39], -- 'yellow' : [33, 39] --}; -- --// Don't use 'blue' not visible on cmd.exe --inspect.styles = { -- 'special': 'cyan', -- 'number': 'yellow', -- 'boolean': 'yellow', -- 'undefined': 'grey', -- 'null': 'bold', -- 'string': 'green', -- 'date': 'magenta', -- // "name": intentionally not styling -- 'regexp': 'red' --}; -- -- --function stylizeWithColor(str, styleType) { -- var style = inspect.styles[styleType]; -- -- if (style) { -- return '\u001b[' + inspect.colors[style][0] + 'm' + str + -- '\u001b[' + inspect.colors[style][1] + 'm'; -- } else { -- return str; -- } --} -- -- --function stylizeNoColor(str, styleType) { -- return str; --} -- -- --function arrayToHash(array) { -- var hash = {}; -- -- array.forEach(function(val, idx) { -- hash[val] = true; -- }); -- -- return hash; --} -- -- --function formatValue(ctx, value, recurseTimes) { -- // Provide a hook for user-specified inspect functions. -- // Check that value is an object with an inspect function on it -- if (ctx.customInspect && -- value && -- isFunction(value.inspect) && -- // Filter out the util module, it's inspect function is special -- value.inspect !== exports.inspect && -- // Also filter out any prototype objects using the circular check. -- !(value.constructor && value.constructor.prototype === value)) { -- var ret = value.inspect(recurseTimes, ctx); -- if (!isString(ret)) { -- ret = formatValue(ctx, ret, recurseTimes); -- } -- return ret; -- } -- -- // Primitive types cannot have properties -- var primitive = formatPrimitive(ctx, value); -- if (primitive) { -- return primitive; -- } -- -- // Look up the keys of the object. -- var keys = Object.keys(value); -- var visibleKeys = arrayToHash(keys); -- -- if (ctx.showHidden) { -- keys = Object.getOwnPropertyNames(value); -- } -- -- // Some type of object without properties can be shortcutted. -- if (keys.length === 0) { -- if (isFunction(value)) { -- var name = value.name ? ': ' + value.name : ''; -- return ctx.stylize('[Function' + name + ']', 'special'); -- } -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } -- if (isDate(value)) { -- return ctx.stylize(Date.prototype.toString.call(value), 'date'); -- } -- if (isError(value)) { -- return formatError(value); -- } -- } -- -- var base = '', array = false, braces = ['{', '}']; -- -- // Make Array say that they are Array -- if (isArray(value)) { -- array = true; -- braces = ['[', ']']; -- } -- -- // Make functions say that they are functions -- if (isFunction(value)) { -- var n = value.name ? ': ' + value.name : ''; -- base = ' [Function' + n + ']'; -- } -- -- // Make RegExps say that they are RegExps -- if (isRegExp(value)) { -- base = ' ' + RegExp.prototype.toString.call(value); -- } -- -- // Make dates with properties first say the date -- if (isDate(value)) { -- base = ' ' + Date.prototype.toUTCString.call(value); -- } -- -- // Make error with message first say the error -- if (isError(value)) { -- base = ' ' + formatError(value); -- } -- -- if (keys.length === 0 && (!array || value.length == 0)) { -- return braces[0] + base + braces[1]; -- } -- -- if (recurseTimes < 0) { -- if (isRegExp(value)) { -- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp'); -- } else { -- return ctx.stylize('[Object]', 'special'); -- } -- } -- -- ctx.seen.push(value); -- -- var output; -- if (array) { -- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys); -- } else { -- output = keys.map(function(key) { -- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array); -- }); -- } -- -- ctx.seen.pop(); -- -- return reduceToSingleString(output, base, braces); --} -- -- --function formatPrimitive(ctx, value) { -- if (isUndefined(value)) -- return ctx.stylize('undefined', 'undefined'); -- if (isString(value)) { -- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '') -- .replace(/'/g, "\\'") -- .replace(/\\"/g, '"') + '\''; -- return ctx.stylize(simple, 'string'); -- } -- if (isNumber(value)) { -- // Format -0 as '-0'. Strict equality won't distinguish 0 from -0, -- // so instead we use the fact that 1 / -0 < 0 whereas 1 / 0 > 0 . -- if (value === 0 && 1 / value < 0) -- return ctx.stylize('-0', 'number'); -- return ctx.stylize('' + value, 'number'); -- } -- if (isBoolean(value)) -- return ctx.stylize('' + value, 'boolean'); -- // For some reason typeof null is "object", so special case here. -- if (isNull(value)) -- return ctx.stylize('null', 'null'); --} -- -- --function formatError(value) { -- return '[' + Error.prototype.toString.call(value) + ']'; --} -- -- --function formatArray(ctx, value, recurseTimes, visibleKeys, keys) { -- var output = []; -- for (var i = 0, l = value.length; i < l; ++i) { -- if (hasOwnProperty(value, String(i))) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- String(i), true)); -- } else { -- output.push(''); -- } -- } -- keys.forEach(function(key) { -- if (!key.match(/^\d+$/)) { -- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, -- key, true)); -- } -- }); -- return output; --} -- -- --function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { -- var name, str, desc; -- desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] }; -- if (desc.get) { -- if (desc.set) { -- str = ctx.stylize('[Getter/Setter]', 'special'); -- } else { -- str = ctx.stylize('[Getter]', 'special'); -- } -- } else { -- if (desc.set) { -- str = ctx.stylize('[Setter]', 'special'); -- } -- } -- if (!hasOwnProperty(visibleKeys, key)) { -- name = '[' + key + ']'; -- } -- if (!str) { -- if (ctx.seen.indexOf(desc.value) < 0) { -- if (isNull(recurseTimes)) { -- str = formatValue(ctx, desc.value, null); -- } else { -- str = formatValue(ctx, desc.value, recurseTimes - 1); -- } -- if (str.indexOf('\n') > -1) { -- if (array) { -- str = str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n').substr(2); -- } else { -- str = '\n' + str.split('\n').map(function(line) { -- return ' ' + line; -- }).join('\n'); -- } -- } -- } else { -- str = ctx.stylize('[Circular]', 'special'); -- } -- } -- if (isUndefined(name)) { -- if (array && key.match(/^\d+$/)) { -- return str; -- } -- name = JSON.stringify('' + key); -- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { -- name = name.substr(1, name.length - 2); -- name = ctx.stylize(name, 'name'); -- } else { -- name = name.replace(/'/g, "\\'") -- .replace(/\\"/g, '"') -- .replace(/(^"|"$)/g, "'"); -- name = ctx.stylize(name, 'string'); -- } -- } -- -- return name + ': ' + str; --} -- -- --function reduceToSingleString(output, base, braces) { -- var numLinesEst = 0; -- var length = output.reduce(function(prev, cur) { -- numLinesEst++; -- if (cur.indexOf('\n') >= 0) numLinesEst++; -- return prev + cur.replace(/\u001b\[\d\d?m/g, '').length + 1; -- }, 0); -- -- if (length > 60) { -- return braces[0] + -- (base === '' ? '' : base + '\n ') + -- ' ' + -- output.join(',\n ') + -- ' ' + -- braces[1]; -- } -- -- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1]; --} -- -- - // NOTE: These type checking functions intentionally don't use `instanceof` - // because it is fragile and can be easily faked with `Object.create()`. - function isArray(ar) { -@@ -522,166 +98,10 @@ function isPrimitive(arg) { - exports.isPrimitive = isPrimitive; - - function isBuffer(arg) { -- return arg instanceof Buffer; -+ return Buffer.isBuffer(arg); - } - exports.isBuffer = isBuffer; - - function objectToString(o) { - return Object.prototype.toString.call(o); --} -- -- --function pad(n) { -- return n < 10 ? '0' + n.toString(10) : n.toString(10); --} -- -- --var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', -- 'Oct', 'Nov', 'Dec']; -- --// 26 Feb 16:19:34 --function timestamp() { -- var d = new Date(); -- var time = [pad(d.getHours()), -- pad(d.getMinutes()), -- pad(d.getSeconds())].join(':'); -- return [d.getDate(), months[d.getMonth()], time].join(' '); --} -- -- --// log is just a thin wrapper to console.log that prepends a timestamp --exports.log = function() { -- console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments)); --}; -- -- --/** -- * Inherit the prototype methods from one constructor into another. -- * -- * The Function.prototype.inherits from lang.js rewritten as a standalone -- * function (not on Function.prototype). NOTE: If this file is to be loaded -- * during bootstrapping this function needs to be rewritten using some native -- * functions as prototype setup using normal JavaScript does not work as -- * expected during bootstrapping (see mirror.js in r114903). -- * -- * @param {function} ctor Constructor function which needs to inherit the -- * prototype. -- * @param {function} superCtor Constructor function to inherit prototype from. -- */ --exports.inherits = function(ctor, superCtor) { -- ctor.super_ = superCtor; -- ctor.prototype = Object.create(superCtor.prototype, { -- constructor: { -- value: ctor, -- enumerable: false, -- writable: true, -- configurable: true -- } -- }); --}; -- --exports._extend = function(origin, add) { -- // Don't do anything if add isn't an object -- if (!add || !isObject(add)) return origin; -- -- var keys = Object.keys(add); -- var i = keys.length; -- while (i--) { -- origin[keys[i]] = add[keys[i]]; -- } -- return origin; --}; -- --function hasOwnProperty(obj, prop) { -- return Object.prototype.hasOwnProperty.call(obj, prop); --} -- -- --// Deprecated old stuff. -- --exports.p = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- console.error(exports.inspect(arguments[i])); -- } --}, 'util.p: Use console.error() instead'); -- -- --exports.exec = exports.deprecate(function() { -- return require('child_process').exec.apply(this, arguments); --}, 'util.exec is now called `child_process.exec`.'); -- -- --exports.print = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(String(arguments[i])); -- } --}, 'util.print: Use console.log instead'); -- -- --exports.puts = exports.deprecate(function() { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stdout.write(arguments[i] + '\n'); -- } --}, 'util.puts: Use console.log instead'); -- -- --exports.debug = exports.deprecate(function(x) { -- process.stderr.write('DEBUG: ' + x + '\n'); --}, 'util.debug: Use console.error instead'); -- -- --exports.error = exports.deprecate(function(x) { -- for (var i = 0, len = arguments.length; i < len; ++i) { -- process.stderr.write(arguments[i] + '\n'); -- } --}, 'util.error: Use console.error instead'); -- -- --exports.pump = exports.deprecate(function(readStream, writeStream, callback) { -- var callbackCalled = false; -- -- function call(a, b, c) { -- if (callback && !callbackCalled) { -- callback(a, b, c); -- callbackCalled = true; -- } -- } -- -- readStream.addListener('data', function(chunk) { -- if (writeStream.write(chunk) === false) readStream.pause(); -- }); -- -- writeStream.addListener('drain', function() { -- readStream.resume(); -- }); -- -- readStream.addListener('end', function() { -- writeStream.end(); -- }); -- -- readStream.addListener('close', function() { -- call(); -- }); -- -- readStream.addListener('error', function(err) { -- writeStream.end(); -- call(err); -- }); -- -- writeStream.addListener('error', function(err) { -- readStream.destroy(); -- call(err); -- }); --}, 'util.pump(): Use readableStream.pipe() instead'); -- -- --var uv; --exports._errnoException = function(err, syscall) { -- if (isUndefined(uv)) uv = process.binding('uv'); -- var errname = uv.errname(err); -- var e = new Error(syscall + ' ' + errname); -- e.code = errname; -- e.errno = errname; -- e.syscall = syscall; -- return e; --}; -+} \ No newline at end of file diff --git a/views/node_modules/core-util-is/lib/util.js b/views/node_modules/core-util-is/lib/util.js deleted file mode 100644 index ff4c851..0000000 --- a/views/node_modules/core-util-is/lib/util.js +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// NOTE: These type checking functions intentionally don't use `instanceof` -// because it is fragile and can be easily faked with `Object.create()`. - -function isArray(arg) { - if (Array.isArray) { - return Array.isArray(arg); - } - return objectToString(arg) === '[object Array]'; -} -exports.isArray = isArray; - -function isBoolean(arg) { - return typeof arg === 'boolean'; -} -exports.isBoolean = isBoolean; - -function isNull(arg) { - return arg === null; -} -exports.isNull = isNull; - -function isNullOrUndefined(arg) { - return arg == null; -} -exports.isNullOrUndefined = isNullOrUndefined; - -function isNumber(arg) { - return typeof arg === 'number'; -} -exports.isNumber = isNumber; - -function isString(arg) { - return typeof arg === 'string'; -} -exports.isString = isString; - -function isSymbol(arg) { - return typeof arg === 'symbol'; -} -exports.isSymbol = isSymbol; - -function isUndefined(arg) { - return arg === void 0; -} -exports.isUndefined = isUndefined; - -function isRegExp(re) { - return objectToString(re) === '[object RegExp]'; -} -exports.isRegExp = isRegExp; - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} -exports.isObject = isObject; - -function isDate(d) { - return objectToString(d) === '[object Date]'; -} -exports.isDate = isDate; - -function isError(e) { - return (objectToString(e) === '[object Error]' || e instanceof Error); -} -exports.isError = isError; - -function isFunction(arg) { - return typeof arg === 'function'; -} -exports.isFunction = isFunction; - -function isPrimitive(arg) { - return arg === null || - typeof arg === 'boolean' || - typeof arg === 'number' || - typeof arg === 'string' || - typeof arg === 'symbol' || // ES6 symbol - typeof arg === 'undefined'; -} -exports.isPrimitive = isPrimitive; - -exports.isBuffer = Buffer.isBuffer; - -function objectToString(o) { - return Object.prototype.toString.call(o); -} diff --git a/views/node_modules/core-util-is/package.json b/views/node_modules/core-util-is/package.json deleted file mode 100644 index 3368e95..0000000 --- a/views/node_modules/core-util-is/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "core-util-is", - "version": "1.0.2", - "description": "The `util.is*` functions introduced in Node v0.12.", - "main": "lib/util.js", - "repository": { - "type": "git", - "url": "git://github.com/isaacs/core-util-is" - }, - "keywords": [ - "util", - "isBuffer", - "isArray", - "isNumber", - "isString", - "isRegExp", - "isThis", - "isThat", - "polyfill" - ], - "author": "Isaac Z. Schlueter (http://blog.izs.me/)", - "license": "MIT", - "bugs": { - "url": "https://github.com/isaacs/core-util-is/issues" - }, - "scripts": { - "test": "tap test.js" - }, - "devDependencies": { - "tap": "^2.3.0" - } -} diff --git a/views/node_modules/core-util-is/test.js b/views/node_modules/core-util-is/test.js deleted file mode 100644 index 1a490c6..0000000 --- a/views/node_modules/core-util-is/test.js +++ /dev/null @@ -1,68 +0,0 @@ -var assert = require('tap'); - -var t = require('./lib/util'); - -assert.equal(t.isArray([]), true); -assert.equal(t.isArray({}), false); - -assert.equal(t.isBoolean(null), false); -assert.equal(t.isBoolean(true), true); -assert.equal(t.isBoolean(false), true); - -assert.equal(t.isNull(null), true); -assert.equal(t.isNull(undefined), false); -assert.equal(t.isNull(false), false); -assert.equal(t.isNull(), false); - -assert.equal(t.isNullOrUndefined(null), true); -assert.equal(t.isNullOrUndefined(undefined), true); -assert.equal(t.isNullOrUndefined(false), false); -assert.equal(t.isNullOrUndefined(), true); - -assert.equal(t.isNumber(null), false); -assert.equal(t.isNumber('1'), false); -assert.equal(t.isNumber(1), true); - -assert.equal(t.isString(null), false); -assert.equal(t.isString('1'), true); -assert.equal(t.isString(1), false); - -assert.equal(t.isSymbol(null), false); -assert.equal(t.isSymbol('1'), false); -assert.equal(t.isSymbol(1), false); -assert.equal(t.isSymbol(Symbol()), true); - -assert.equal(t.isUndefined(null), false); -assert.equal(t.isUndefined(undefined), true); -assert.equal(t.isUndefined(false), false); -assert.equal(t.isUndefined(), true); - -assert.equal(t.isRegExp(null), false); -assert.equal(t.isRegExp('1'), false); -assert.equal(t.isRegExp(new RegExp()), true); - -assert.equal(t.isObject({}), true); -assert.equal(t.isObject([]), true); -assert.equal(t.isObject(new RegExp()), true); -assert.equal(t.isObject(new Date()), true); - -assert.equal(t.isDate(null), false); -assert.equal(t.isDate('1'), false); -assert.equal(t.isDate(new Date()), true); - -assert.equal(t.isError(null), false); -assert.equal(t.isError({ err: true }), false); -assert.equal(t.isError(new Error()), true); - -assert.equal(t.isFunction(null), false); -assert.equal(t.isFunction({ }), false); -assert.equal(t.isFunction(function() {}), true); - -assert.equal(t.isPrimitive(null), true); -assert.equal(t.isPrimitive(''), true); -assert.equal(t.isPrimitive(0), true); -assert.equal(t.isPrimitive(new Date()), false); - -assert.equal(t.isBuffer(null), false); -assert.equal(t.isBuffer({}), false); -assert.equal(t.isBuffer(new Buffer(0)), true); diff --git a/views/node_modules/debug/.coveralls.yml b/views/node_modules/debug/.coveralls.yml deleted file mode 100644 index 20a7068..0000000 --- a/views/node_modules/debug/.coveralls.yml +++ /dev/null @@ -1 +0,0 @@ -repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve diff --git a/views/node_modules/debug/.eslintrc b/views/node_modules/debug/.eslintrc deleted file mode 100644 index 8a37ae2..0000000 --- a/views/node_modules/debug/.eslintrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "env": { - "browser": true, - "node": true - }, - "rules": { - "no-console": 0, - "no-empty": [1, { "allowEmptyCatch": true }] - }, - "extends": "eslint:recommended" -} diff --git a/views/node_modules/debug/.npmignore b/views/node_modules/debug/.npmignore deleted file mode 100644 index 5f60eec..0000000 --- a/views/node_modules/debug/.npmignore +++ /dev/null @@ -1,9 +0,0 @@ -support -test -examples -example -*.sock -dist -yarn.lock -coverage -bower.json diff --git a/views/node_modules/debug/.travis.yml b/views/node_modules/debug/.travis.yml deleted file mode 100644 index 6c6090c..0000000 --- a/views/node_modules/debug/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ - -language: node_js -node_js: - - "6" - - "5" - - "4" - -install: - - make node_modules - -script: - - make lint - - make test - - make coveralls diff --git a/views/node_modules/debug/CHANGELOG.md b/views/node_modules/debug/CHANGELOG.md deleted file mode 100644 index eadaa18..0000000 --- a/views/node_modules/debug/CHANGELOG.md +++ /dev/null @@ -1,362 +0,0 @@ - -2.6.9 / 2017-09-22 -================== - - * remove ReDoS regexp in %o formatter (#504) - -2.6.8 / 2017-05-18 -================== - - * Fix: Check for undefined on browser globals (#462, @marbemac) - -2.6.7 / 2017-05-16 -================== - - * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom) - * Fix: Inline extend function in node implementation (#452, @dougwilson) - * Docs: Fix typo (#455, @msasad) - -2.6.5 / 2017-04-27 -================== - - * Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek) - * Misc: clean up browser reference checks (#447, @thebigredgeek) - * Misc: add npm-debug.log to .gitignore (@thebigredgeek) - - -2.6.4 / 2017-04-20 -================== - - * Fix: bug that would occure if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo) - * Chore: ignore bower.json in npm installations. (#437, @joaovieira) - * Misc: update "ms" to v0.7.3 (@tootallnate) - -2.6.3 / 2017-03-13 -================== - - * Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts) - * Docs: Changelog fix (@thebigredgeek) - -2.6.2 / 2017-03-10 -================== - - * Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin) - * Docs: Add backers and sponsors from Open Collective (#422, @piamancini) - * Docs: Add Slackin invite badge (@tootallnate) - -2.6.1 / 2017-02-10 -================== - - * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error - * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0) - * Fix: IE8 "Expected identifier" error (#414, @vgoma) - * Fix: Namespaces would not disable once enabled (#409, @musikov) - -2.6.0 / 2016-12-28 -================== - - * Fix: added better null pointer checks for browser useColors (@thebigredgeek) - * Improvement: removed explicit `window.debug` export (#404, @tootallnate) - * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate) - -2.5.2 / 2016-12-25 -================== - - * Fix: reference error on window within webworkers (#393, @KlausTrainer) - * Docs: fixed README typo (#391, @lurch) - * Docs: added notice about v3 api discussion (@thebigredgeek) - -2.5.1 / 2016-12-20 -================== - - * Fix: babel-core compatibility - -2.5.0 / 2016-12-20 -================== - - * Fix: wrong reference in bower file (@thebigredgeek) - * Fix: webworker compatibility (@thebigredgeek) - * Fix: output formatting issue (#388, @kribblo) - * Fix: babel-loader compatibility (#383, @escwald) - * Misc: removed built asset from repo and publications (@thebigredgeek) - * Misc: moved source files to /src (#378, @yamikuronue) - * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue) - * Test: coveralls integration (#378, @yamikuronue) - * Docs: simplified language in the opening paragraph (#373, @yamikuronue) - -2.4.5 / 2016-12-17 -================== - - * Fix: `navigator` undefined in Rhino (#376, @jochenberger) - * Fix: custom log function (#379, @hsiliev) - * Improvement: bit of cleanup + linting fixes (@thebigredgeek) - * Improvement: rm non-maintainted `dist/` dir (#375, @freewil) - * Docs: simplified language in the opening paragraph. (#373, @yamikuronue) - -2.4.4 / 2016-12-14 -================== - - * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts) - -2.4.3 / 2016-12-14 -================== - - * Fix: navigation.userAgent error for react native (#364, @escwald) - -2.4.2 / 2016-12-14 -================== - - * Fix: browser colors (#367, @tootallnate) - * Misc: travis ci integration (@thebigredgeek) - * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek) - -2.4.1 / 2016-12-13 -================== - - * Fix: typo that broke the package (#356) - -2.4.0 / 2016-12-13 -================== - - * Fix: bower.json references unbuilt src entry point (#342, @justmatt) - * Fix: revert "handle regex special characters" (@tootallnate) - * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate) - * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate) - * Improvement: allow colors in workers (#335, @botverse) - * Improvement: use same color for same namespace. (#338, @lchenay) - -2.3.3 / 2016-11-09 -================== - - * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne) - * Fix: Returning `localStorage` saved values (#331, Levi Thomason) - * Improvement: Don't create an empty object when no `process` (Nathan Rajlich) - -2.3.2 / 2016-11-09 -================== - - * Fix: be super-safe in index.js as well (@TooTallNate) - * Fix: should check whether process exists (Tom Newby) - -2.3.1 / 2016-11-09 -================== - - * Fix: Added electron compatibility (#324, @paulcbetts) - * Improvement: Added performance optimizations (@tootallnate) - * Readme: Corrected PowerShell environment variable example (#252, @gimre) - * Misc: Removed yarn lock file from source control (#321, @fengmk2) - -2.3.0 / 2016-11-07 -================== - - * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic) - * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos) - * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15) - * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran) - * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom) - * Package: Update "ms" to 0.7.2 (#315, @DevSide) - * Package: removed superfluous version property from bower.json (#207 @kkirsche) - * Readme: fix USE_COLORS to DEBUG_COLORS - * Readme: Doc fixes for format string sugar (#269, @mlucool) - * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0) - * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable) - * Readme: better docs for browser support (#224, @matthewmueller) - * Tooling: Added yarn integration for development (#317, @thebigredgeek) - * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek) - * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman) - * Misc: Updated contributors (@thebigredgeek) - -2.2.0 / 2015-05-09 -================== - - * package: update "ms" to v0.7.1 (#202, @dougwilson) - * README: add logging to file example (#193, @DanielOchoa) - * README: fixed a typo (#191, @amir-s) - * browser: expose `storage` (#190, @stephenmathieson) - * Makefile: add a `distclean` target (#189, @stephenmathieson) - -2.1.3 / 2015-03-13 -================== - - * Updated stdout/stderr example (#186) - * Updated example/stdout.js to match debug current behaviour - * Renamed example/stderr.js to stdout.js - * Update Readme.md (#184) - * replace high intensity foreground color for bold (#182, #183) - -2.1.2 / 2015-03-01 -================== - - * dist: recompile - * update "ms" to v0.7.0 - * package: update "browserify" to v9.0.3 - * component: fix "ms.js" repo location - * changed bower package name - * updated documentation about using debug in a browser - * fix: security error on safari (#167, #168, @yields) - -2.1.1 / 2014-12-29 -================== - - * browser: use `typeof` to check for `console` existence - * browser: check for `console.log` truthiness (fix IE 8/9) - * browser: add support for Chrome apps - * Readme: added Windows usage remarks - * Add `bower.json` to properly support bower install - -2.1.0 / 2014-10-15 -================== - - * node: implement `DEBUG_FD` env variable support - * package: update "browserify" to v6.1.0 - * package: add "license" field to package.json (#135, @panuhorsmalahti) - -2.0.0 / 2014-09-01 -================== - - * package: update "browserify" to v5.11.0 - * node: use stderr rather than stdout for logging (#29, @stephenmathieson) - -1.0.4 / 2014-07-15 -================== - - * dist: recompile - * example: remove `console.info()` log usage - * example: add "Content-Type" UTF-8 header to browser example - * browser: place %c marker after the space character - * browser: reset the "content" color via `color: inherit` - * browser: add colors support for Firefox >= v31 - * debug: prefer an instance `log()` function over the global one (#119) - * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) - -1.0.3 / 2014-07-09 -================== - - * Add support for multiple wildcards in namespaces (#122, @seegno) - * browser: fix lint - -1.0.2 / 2014-06-10 -================== - - * browser: update color palette (#113, @gscottolson) - * common: make console logging function configurable (#108, @timoxley) - * node: fix %o colors on old node <= 0.8.x - * Makefile: find node path using shell/which (#109, @timoxley) - -1.0.1 / 2014-06-06 -================== - - * browser: use `removeItem()` to clear localStorage - * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) - * package: add "contributors" section - * node: fix comment typo - * README: list authors - -1.0.0 / 2014-06-04 -================== - - * make ms diff be global, not be scope - * debug: ignore empty strings in enable() - * node: make DEBUG_COLORS able to disable coloring - * *: export the `colors` array - * npmignore: don't publish the `dist` dir - * Makefile: refactor to use browserify - * package: add "browserify" as a dev dependency - * Readme: add Web Inspector Colors section - * node: reset terminal color for the debug content - * node: map "%o" to `util.inspect()` - * browser: map "%j" to `JSON.stringify()` - * debug: add custom "formatters" - * debug: use "ms" module for humanizing the diff - * Readme: add "bash" syntax highlighting - * browser: add Firebug color support - * browser: add colors for WebKit browsers - * node: apply log to `console` - * rewrite: abstract common logic for Node & browsers - * add .jshintrc file - -0.8.1 / 2014-04-14 -================== - - * package: re-add the "component" section - -0.8.0 / 2014-03-30 -================== - - * add `enable()` method for nodejs. Closes #27 - * change from stderr to stdout - * remove unnecessary index.js file - -0.7.4 / 2013-11-13 -================== - - * remove "browserify" key from package.json (fixes something in browserify) - -0.7.3 / 2013-10-30 -================== - - * fix: catch localStorage security error when cookies are blocked (Chrome) - * add debug(err) support. Closes #46 - * add .browser prop to package.json. Closes #42 - -0.7.2 / 2013-02-06 -================== - - * fix package.json - * fix: Mobile Safari (private mode) is broken with debug - * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript - -0.7.1 / 2013-02-05 -================== - - * add repository URL to package.json - * add DEBUG_COLORED to force colored output - * add browserify support - * fix component. Closes #24 - -0.7.0 / 2012-05-04 -================== - - * Added .component to package.json - * Added debug.component.js build - -0.6.0 / 2012-03-16 -================== - - * Added support for "-" prefix in DEBUG [Vinay Pulim] - * Added `.enabled` flag to the node version [TooTallNate] - -0.5.0 / 2012-02-02 -================== - - * Added: humanize diffs. Closes #8 - * Added `debug.disable()` to the CS variant - * Removed padding. Closes #10 - * Fixed: persist client-side variant again. Closes #9 - -0.4.0 / 2012-02-01 -================== - - * Added browser variant support for older browsers [TooTallNate] - * Added `debug.enable('project:*')` to browser variant [TooTallNate] - * Added padding to diff (moved it to the right) - -0.3.0 / 2012-01-26 -================== - - * Added millisecond diff when isatty, otherwise UTC string - -0.2.0 / 2012-01-22 -================== - - * Added wildcard support - -0.1.0 / 2011-12-02 -================== - - * Added: remove colors unless stderr isatty [TooTallNate] - -0.0.1 / 2010-01-03 -================== - - * Initial release diff --git a/views/node_modules/debug/LICENSE b/views/node_modules/debug/LICENSE deleted file mode 100644 index 658c933..0000000 --- a/views/node_modules/debug/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software -and associated documentation files (the 'Software'), to deal in the Software without restriction, -including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, -and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial -portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT -LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - diff --git a/views/node_modules/debug/Makefile b/views/node_modules/debug/Makefile deleted file mode 100644 index 584da8b..0000000 --- a/views/node_modules/debug/Makefile +++ /dev/null @@ -1,50 +0,0 @@ -# get Makefile directory name: http://stackoverflow.com/a/5982798/376773 -THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) -THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) - -# BIN directory -BIN := $(THIS_DIR)/node_modules/.bin - -# Path -PATH := node_modules/.bin:$(PATH) -SHELL := /bin/bash - -# applications -NODE ?= $(shell which node) -YARN ?= $(shell which yarn) -PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm)) -BROWSERIFY ?= $(NODE) $(BIN)/browserify - -.FORCE: - -install: node_modules - -node_modules: package.json - @NODE_ENV= $(PKG) install - @touch node_modules - -lint: .FORCE - eslint browser.js debug.js index.js node.js - -test-node: .FORCE - istanbul cover node_modules/mocha/bin/_mocha -- test/**.js - -test-browser: .FORCE - mkdir -p dist - - @$(BROWSERIFY) \ - --standalone debug \ - . > dist/debug.js - - karma start --single-run - rimraf dist - -test: .FORCE - concurrently \ - "make test-node" \ - "make test-browser" - -coveralls: - cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js - -.PHONY: all install clean distclean diff --git a/views/node_modules/debug/README.md b/views/node_modules/debug/README.md deleted file mode 100644 index f67be6b..0000000 --- a/views/node_modules/debug/README.md +++ /dev/null @@ -1,312 +0,0 @@ -# debug -[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) -[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) - - - -A tiny node.js debugging utility modelled after node core's debugging technique. - -**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)** - -## Installation - -```bash -$ npm install debug -``` - -## Usage - -`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. - -Example _app.js_: - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %s', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example _worker.js_: - -```js -var debug = require('debug')('worker'); - -setInterval(function(){ - debug('doing some work'); -}, 1000); -``` - - The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: - - ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png) - - ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png) - -#### Windows note - - On Windows the environment variable is set using the `set` command. - - ```cmd - set DEBUG=*,-not_this - ``` - - Note that PowerShell uses different syntax to set environment variables. - - ```cmd - $env:DEBUG = "*,-not_this" - ``` - -Then, run the program to be debugged as usual. - -## Millisecond diff - - When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png) - - When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: - - ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png) - -## Conventions - - If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". - -## Wildcards - - The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - - You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:". - -## Environment Variables - - When running through Node.js, you can set a few environment variables that will - change the behavior of the debug logging: - -| Name | Purpose | -|-----------|-------------------------------------------------| -| `DEBUG` | Enables/disables specific debugging namespaces. | -| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | -| `DEBUG_DEPTH` | Object inspection depth. | -| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | - - - __Note:__ The environment variables beginning with `DEBUG_` end up being - converted into an Options object that gets used with `%o`/`%O` formatters. - See the Node.js documentation for - [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) - for the complete list. - -## Formatters - - - Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters: - -| Formatter | Representation | -|-----------|----------------| -| `%O` | Pretty-print an Object on multiple lines. | -| `%o` | Pretty-print an Object all on a single line. | -| `%s` | String. | -| `%d` | Number (both integer and float). | -| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | -| `%%` | Single percent sign ('%'). This does not consume an argument. | - -### Custom formatters - - You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like: - -```js -const createDebug = require('debug') -createDebug.formatters.h = (v) => { - return v.toString('hex') -} - -// …elsewhere -const debug = createDebug('foo') -debug('this is hex: %h', new Buffer('hello world')) -// foo this is hex: 68656c6c6f20776f726c6421 +0ms -``` - -## Browser support - You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), - or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), - if you don't want to build it yourself. - - Debug's enable state is currently persisted by `localStorage`. - Consider the situation shown below where you have `worker:a` and `worker:b`, - and wish to debug both. You can enable this using `localStorage.debug`: - -```js -localStorage.debug = 'worker:*' -``` - -And then refresh the page. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - -#### Web Inspector Colors - - Colors are also enabled on "Web Inspectors" that understand the `%c` formatting - option. These are WebKit web inspectors, Firefox ([since version - 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) - and the Firebug plugin for Firefox (any version). - - Colored output looks something like: - - ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png) - - -## Output streams - - By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: - -Example _stdout.js_: - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - - Andrew Rhyne - -## Backers - -Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## Sponsors - -Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## License - -(The MIT License) - -Copyright (c) 2014-2016 TJ Holowaychuk <tj@vision-media.ca> - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/views/node_modules/debug/component.json b/views/node_modules/debug/component.json deleted file mode 100644 index 9de2641..0000000 --- a/views/node_modules/debug/component.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "debug", - "repo": "visionmedia/debug", - "description": "small debugging utility", - "version": "2.6.9", - "keywords": [ - "debug", - "log", - "debugger" - ], - "main": "src/browser.js", - "scripts": [ - "src/browser.js", - "src/debug.js" - ], - "dependencies": { - "rauchg/ms.js": "0.7.1" - } -} diff --git a/views/node_modules/debug/karma.conf.js b/views/node_modules/debug/karma.conf.js deleted file mode 100644 index 103a82d..0000000 --- a/views/node_modules/debug/karma.conf.js +++ /dev/null @@ -1,70 +0,0 @@ -// Karma configuration -// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC) - -module.exports = function(config) { - config.set({ - - // base path that will be used to resolve all patterns (eg. files, exclude) - basePath: '', - - - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['mocha', 'chai', 'sinon'], - - - // list of files / patterns to load in the browser - files: [ - 'dist/debug.js', - 'test/*spec.js' - ], - - - // list of files to exclude - exclude: [ - 'src/node.js' - ], - - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - preprocessors: { - }, - - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['progress'], - - - // web server port - port: 9876, - - - // enable / disable colors in the output (reporters and logs) - colors: true, - - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - logLevel: config.LOG_INFO, - - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: true, - - - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['PhantomJS'], - - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: false, - - // Concurrency level - // how many browser should be started simultaneous - concurrency: Infinity - }) -} diff --git a/views/node_modules/debug/node.js b/views/node_modules/debug/node.js deleted file mode 100644 index 7fc36fe..0000000 --- a/views/node_modules/debug/node.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('./src/node'); diff --git a/views/node_modules/debug/package.json b/views/node_modules/debug/package.json deleted file mode 100644 index dc787ba..0000000 --- a/views/node_modules/debug/package.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "name": "debug", - "version": "2.6.9", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" - ], - "author": "TJ Holowaychuk ", - "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne " - ], - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - }, - "devDependencies": { - "browserify": "9.0.3", - "chai": "^3.5.0", - "concurrently": "^3.1.0", - "coveralls": "^2.11.15", - "eslint": "^3.12.1", - "istanbul": "^0.4.5", - "karma": "^1.3.0", - "karma-chai": "^0.1.0", - "karma-mocha": "^1.3.0", - "karma-phantomjs-launcher": "^1.0.2", - "karma-sinon": "^1.0.5", - "mocha": "^3.2.0", - "mocha-lcov-reporter": "^1.2.0", - "rimraf": "^2.5.4", - "sinon": "^1.17.6", - "sinon-chai": "^2.8.0" - }, - "main": "./src/index.js", - "browser": "./src/browser.js", - "component": { - "scripts": { - "debug/index.js": "browser.js", - "debug/debug.js": "debug.js" - } - } -} diff --git a/views/node_modules/debug/src/browser.js b/views/node_modules/debug/src/browser.js deleted file mode 100644 index 7106924..0000000 --- a/views/node_modules/debug/src/browser.js +++ /dev/null @@ -1,185 +0,0 @@ -/** - * This is the web browser implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = 'undefined' != typeof chrome - && 'undefined' != typeof chrome.storage - ? chrome.storage.local - : localstorage(); - -/** - * Colors. - */ - -exports.colors = [ - 'lightseagreen', - 'forestgreen', - 'goldenrod', - 'dodgerblue', - 'darkorchid', - 'crimson' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { - return true; - } - - // is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || - // double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -exports.formatters.j = function(v) { - try { - return JSON.stringify(v); - } catch (err) { - return '[UnexpectedJSONParseError]: ' + err.message; - } -}; - - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs(args) { - var useColors = this.useColors; - - args[0] = (useColors ? '%c' : '') - + this.namespace - + (useColors ? ' %c' : ' ') - + args[0] - + (useColors ? '%c ' : ' ') - + '+' + exports.humanize(this.diff); - - if (!useColors) return; - - var c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit') - - // the final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - var index = 0; - var lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, function(match) { - if ('%%' === match) return; - index++; - if ('%c' === match) { - // we only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); -} - -/** - * Invokes `console.log()` when available. - * No-op when `console.log` is not a "function". - * - * @api public - */ - -function log() { - // this hackery is required for IE8/9, where - // the `console.log` function doesn't have 'apply' - return 'object' === typeof console - && console.log - && Function.prototype.apply.call(console.log, console, arguments); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - try { - if (null == namespaces) { - exports.storage.removeItem('debug'); - } else { - exports.storage.debug = namespaces; - } - } catch(e) {} -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - var r; - try { - r = exports.storage.debug; - } catch(e) {} - - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } - - return r; -} - -/** - * Enable namespaces listed in `localStorage.debug` initially. - */ - -exports.enable(load()); - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage() { - try { - return window.localStorage; - } catch (e) {} -} diff --git a/views/node_modules/debug/src/debug.js b/views/node_modules/debug/src/debug.js deleted file mode 100644 index 6a5e3fc..0000000 --- a/views/node_modules/debug/src/debug.js +++ /dev/null @@ -1,202 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = require('ms'); - -/** - * The currently active debug mode names, and names to skip. - */ - -exports.names = []; -exports.skips = []; - -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - -exports.formatters = {}; - -/** - * Previous log timestamp. - */ - -var prevTime; - -/** - * Select a color. - * @param {String} namespace - * @return {Number} - * @api private - */ - -function selectColor(namespace) { - var hash = 0, i; - - for (i in namespace) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return exports.colors[Math.abs(hash) % exports.colors.length]; -} - -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - -function createDebug(namespace) { - - function debug() { - // disabled? - if (!debug.enabled) return; - - var self = debug; - - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - // turn the `arguments` into a proper Array - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; - } - - args[0] = exports.coerce(args[0]); - - if ('string' !== typeof args[0]) { - // anything else let's inspect with %O - args.unshift('%O'); - } - - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); - - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // apply env-specific formatting (colors, etc.) - exports.formatArgs.call(self, args); - - var logFn = debug.log || exports.log || console.log.bind(console); - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.enabled = exports.enabled(namespace); - debug.useColors = exports.useColors(); - debug.color = selectColor(namespace); - - // env-specific initialization logic for debug instances - if ('function' === typeof exports.init) { - exports.init(debug); - } - - return debug; -} - -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - -function enable(namespaces) { - exports.save(namespaces); - - exports.names = []; - exports.skips = []; - - var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - var len = split.length; - - for (var i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } - } -} - -/** - * Disable debug output. - * - * @api public - */ - -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - -function enabled(name) { - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; - } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; - } - } - return false; -} - -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} diff --git a/views/node_modules/debug/src/index.js b/views/node_modules/debug/src/index.js deleted file mode 100644 index e12cf4d..0000000 --- a/views/node_modules/debug/src/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Detect Electron renderer process, which is node, but we should - * treat as a browser. - */ - -if (typeof process !== 'undefined' && process.type === 'renderer') { - module.exports = require('./browser.js'); -} else { - module.exports = require('./node.js'); -} diff --git a/views/node_modules/debug/src/inspector-log.js b/views/node_modules/debug/src/inspector-log.js deleted file mode 100644 index 60ea6c0..0000000 --- a/views/node_modules/debug/src/inspector-log.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = inspectorLog; - -// black hole -const nullStream = new (require('stream').Writable)(); -nullStream._write = () => {}; - -/** - * Outputs a `console.log()` to the Node.js Inspector console *only*. - */ -function inspectorLog() { - const stdout = console._stdout; - console._stdout = nullStream; - console.log.apply(console, arguments); - console._stdout = stdout; -} diff --git a/views/node_modules/debug/src/node.js b/views/node_modules/debug/src/node.js deleted file mode 100644 index b15109c..0000000 --- a/views/node_modules/debug/src/node.js +++ /dev/null @@ -1,248 +0,0 @@ -/** - * Module dependencies. - */ - -var tty = require('tty'); -var util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = require('./debug'); -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -/** - * Build up the default `inspectOpts` object from the environment variables. - * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js - */ - -exports.inspectOpts = Object.keys(process.env).filter(function (key) { - return /^debug_/i.test(key); -}).reduce(function (obj, key) { - // camel-case - var prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() }); - - // coerce string value into JS value - var val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) val = true; - else if (/^(no|off|false|disabled)$/i.test(val)) val = false; - else if (val === 'null') val = null; - else val = Number(val); - - obj[prop] = val; - return obj; -}, {}); - -/** - * The file descriptor to write the `debug()` calls to. - * Set the `DEBUG_FD` env variable to override with another value. i.e.: - * - * $ DEBUG_FD=3 node script.js 3>debug.log - */ - -var fd = parseInt(process.env.DEBUG_FD, 10) || 2; - -if (1 !== fd && 2 !== fd) { - util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')() -} - -var stream = 1 === fd ? process.stdout : - 2 === fd ? process.stderr : - createWritableStdioStream(fd); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - return 'colors' in exports.inspectOpts - ? Boolean(exports.inspectOpts.colors) - : tty.isatty(fd); -} - -/** - * Map %o to `util.inspect()`, all on a single line. - */ - -exports.formatters.o = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .split('\n').map(function(str) { - return str.trim() - }).join(' '); -}; - -/** - * Map %o to `util.inspect()`, allowing multiple lines if needed. - */ - -exports.formatters.O = function(v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); -}; - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs(args) { - var name = this.namespace; - var useColors = this.useColors; - - if (useColors) { - var c = this.color; - var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m'; - - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m'); - } else { - args[0] = new Date().toUTCString() - + ' ' + name + ' ' + args[0]; - } -} - -/** - * Invokes `util.format()` with the specified arguments and writes to `stream`. - */ - -function log() { - return stream.write(util.format.apply(util, arguments) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ - -function save(namespaces) { - if (null == namespaces) { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } else { - process.env.DEBUG = namespaces; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Copied from `node/src/node.js`. - * - * XXX: It's lame that node doesn't expose this API out-of-the-box. It also - * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. - */ - -function createWritableStdioStream (fd) { - var stream; - var tty_wrap = process.binding('tty_wrap'); - - // Note stream._type is used for test-module-load-list.js - - switch (tty_wrap.guessHandleType(fd)) { - case 'TTY': - stream = new tty.WriteStream(fd); - stream._type = 'tty'; - - // Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - case 'FILE': - var fs = require('fs'); - stream = new fs.SyncWriteStream(fd, { autoClose: false }); - stream._type = 'fs'; - break; - - case 'PIPE': - case 'TCP': - var net = require('net'); - stream = new net.Socket({ - fd: fd, - readable: false, - writable: true - }); - - // FIXME Should probably have an option in net.Socket to create a - // stream from an existing fd which is writable only. But for now - // we'll just add this hack and set the `readable` member to false. - // Test: ./node test/fixtures/echo.js < /etc/passwd - stream.readable = false; - stream.read = null; - stream._type = 'pipe'; - - // FIXME Hack to have stream not keep the event loop alive. - // See https://github.com/joyent/node/issues/1726 - if (stream._handle && stream._handle.unref) { - stream._handle.unref(); - } - break; - - default: - // Probably an error on in uv_guess_handle() - throw new Error('Implement me. Unknown stream file type!'); - } - - // For supporting legacy API we put the FD here. - stream.fd = fd; - - stream._isStdio = true; - - return stream; -} - -/** - * Init logic for `debug` instances. - * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. - */ - -function init (debug) { - debug.inspectOpts = {}; - - var keys = Object.keys(exports.inspectOpts); - for (var i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} - -/** - * Enable namespaces listed in `process.env.DEBUG` initially. - */ - -exports.enable(load()); diff --git a/views/node_modules/decompress-response/index.d.ts b/views/node_modules/decompress-response/index.d.ts deleted file mode 100644 index c0be175..0000000 --- a/views/node_modules/decompress-response/index.d.ts +++ /dev/null @@ -1,22 +0,0 @@ -/// -import {IncomingMessage} from 'http'; - -/** -Decompress a HTTP response if needed. - -@param response - The HTTP incoming stream with compressed data. -@returns The decompressed HTTP response stream. - -@example -``` -import {http} from 'http'; -import decompressResponse = require('decompress-response'); - -http.get('https://sindresorhus.com', response => { - response = decompressResponse(response); -}); -``` -*/ -declare function decompressResponse(response: IncomingMessage): IncomingMessage; - -export = decompressResponse; diff --git a/views/node_modules/decompress-response/index.js b/views/node_modules/decompress-response/index.js deleted file mode 100644 index c861036..0000000 --- a/views/node_modules/decompress-response/index.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; -const {Transform, PassThrough} = require('stream'); -const zlib = require('zlib'); -const mimicResponse = require('mimic-response'); - -module.exports = response => { - const contentEncoding = (response.headers['content-encoding'] || '').toLowerCase(); - - if (!['gzip', 'deflate', 'br'].includes(contentEncoding)) { - return response; - } - - // TODO: Remove this when targeting Node.js 12. - const isBrotli = contentEncoding === 'br'; - if (isBrotli && typeof zlib.createBrotliDecompress !== 'function') { - response.destroy(new Error('Brotli is not supported on Node.js < 12')); - return response; - } - - let isEmpty = true; - - const checker = new Transform({ - transform(data, _encoding, callback) { - isEmpty = false; - - callback(null, data); - }, - - flush(callback) { - callback(); - } - }); - - const finalStream = new PassThrough({ - autoDestroy: false, - destroy(error, callback) { - response.destroy(); - - callback(error); - } - }); - - const decompressStream = isBrotli ? zlib.createBrotliDecompress() : zlib.createUnzip(); - - decompressStream.once('error', error => { - if (isEmpty && !response.readable) { - finalStream.end(); - return; - } - - finalStream.destroy(error); - }); - - mimicResponse(response, finalStream); - response.pipe(checker).pipe(decompressStream).pipe(finalStream); - - return finalStream; -}; diff --git a/views/node_modules/decompress-response/license b/views/node_modules/decompress-response/license deleted file mode 100644 index fa7ceba..0000000 --- a/views/node_modules/decompress-response/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/views/node_modules/decompress-response/node_modules/mimic-response/index.d.ts b/views/node_modules/decompress-response/node_modules/mimic-response/index.d.ts deleted file mode 100644 index 65a51e9..0000000 --- a/views/node_modules/decompress-response/node_modules/mimic-response/index.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import {IncomingMessage} from 'http'; - -/** -Mimic a [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage) - -Makes `toStream` include the properties from `fromStream`. - -@param fromStream - The stream to copy the properties from. -@param toStream - The stream to copy the properties to. -@return The same object as `toStream`. -*/ -declare function mimicResponse( - fromStream: IncomingMessage, // eslint-disable-line @typescript-eslint/prefer-readonly-parameter-types - toStream: T, -): T & IncomingMessage; - -export = mimicResponse; diff --git a/views/node_modules/decompress-response/node_modules/mimic-response/index.js b/views/node_modules/decompress-response/node_modules/mimic-response/index.js deleted file mode 100644 index 404e111..0000000 --- a/views/node_modules/decompress-response/node_modules/mimic-response/index.js +++ /dev/null @@ -1,77 +0,0 @@ -'use strict'; - -// We define these manually to ensure they're always copied -// even if they would move up the prototype chain -// https://nodejs.org/api/http.html#http_class_http_incomingmessage -const knownProperties = [ - 'aborted', - 'complete', - 'headers', - 'httpVersion', - 'httpVersionMinor', - 'httpVersionMajor', - 'method', - 'rawHeaders', - 'rawTrailers', - 'setTimeout', - 'socket', - 'statusCode', - 'statusMessage', - 'trailers', - 'url' -]; - -module.exports = (fromStream, toStream) => { - if (toStream._readableState.autoDestroy) { - throw new Error('The second stream must have the `autoDestroy` option set to `false`'); - } - - const fromProperties = new Set(Object.keys(fromStream).concat(knownProperties)); - - const properties = {}; - - for (const property of fromProperties) { - // Don't overwrite existing properties. - if (property in toStream) { - continue; - } - - properties[property] = { - get() { - const value = fromStream[property]; - const isFunction = typeof value === 'function'; - - return isFunction ? value.bind(fromStream) : value; - }, - set(value) { - fromStream[property] = value; - }, - enumerable: true, - configurable: false - }; - } - - Object.defineProperties(toStream, properties); - - fromStream.once('aborted', () => { - toStream.destroy(); - - toStream.emit('aborted'); - }); - - fromStream.once('close', () => { - if (fromStream.complete) { - if (toStream.readable) { - toStream.once('end', () => { - toStream.emit('close'); - }); - } else { - toStream.emit('close'); - } - } else { - toStream.emit('close'); - } - }); - - return toStream; -}; diff --git a/views/node_modules/decompress-response/node_modules/mimic-response/license b/views/node_modules/decompress-response/node_modules/mimic-response/license deleted file mode 100644 index fa7ceba..0000000 --- a/views/node_modules/decompress-response/node_modules/mimic-response/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (https://sindresorhus.com) - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/views/node_modules/decompress-response/node_modules/mimic-response/package.json b/views/node_modules/decompress-response/node_modules/mimic-response/package.json deleted file mode 100644 index d478b0f..0000000 --- a/views/node_modules/decompress-response/node_modules/mimic-response/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "mimic-response", - "version": "3.1.0", - "description": "Mimic a Node.js HTTP response stream", - "license": "MIT", - "repository": "sindresorhus/mimic-response", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=10" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.d.ts", - "index.js" - ], - "keywords": [ - "mimic", - "response", - "stream", - "http", - "https", - "request", - "get", - "core" - ], - "devDependencies": { - "@types/node": "^14.0.1", - "ava": "^2.4.0", - "create-test-server": "^2.4.0", - "p-event": "^4.1.0", - "pify": "^5.0.0", - "tsd": "^0.11.0", - "xo": "^0.30.0" - } -} diff --git a/views/node_modules/decompress-response/node_modules/mimic-response/readme.md b/views/node_modules/decompress-response/node_modules/mimic-response/readme.md deleted file mode 100644 index e968620..0000000 --- a/views/node_modules/decompress-response/node_modules/mimic-response/readme.md +++ /dev/null @@ -1,78 +0,0 @@ -# mimic-response [![Build Status](https://travis-ci.com/sindresorhus/mimic-response.svg?branch=master)](https://travis-ci.com/sindresorhus/mimic-response) - -> Mimic a [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage) - -## Install - -``` -$ npm install mimic-response -``` - -## Usage - -```js -const stream = require('stream'); -const mimicResponse = require('mimic-response'); - -const responseStream = getHttpResponseStream(); -const myStream = new stream.PassThrough(); - -mimicResponse(responseStream, myStream); - -console.log(myStream.statusCode); -//=> 200 -``` - -## API - -### mimicResponse(from, to) - -**Note #1:** The `from.destroy(error)` function is not proxied. You have to call it manually: - -```js -const stream = require('stream'); -const mimicResponse = require('mimic-response'); - -const responseStream = getHttpResponseStream(); - -const myStream = new stream.PassThrough({ - destroy(error, callback) { - responseStream.destroy(); - - callback(error); - } -}); - -myStream.destroy(); -``` - -Please note that `myStream` and `responseStream` never throws. The error is passed to the request instead. - -#### from - -Type: `Stream` - -[Node.js HTTP response stream.](https://nodejs.org/api/http.html#http_class_http_incomingmessage) - -#### to - -Type: `Stream` - -Any stream. - -## Related - -- [mimic-fn](https://github.com/sindresorhus/mimic-fn) - Make a function mimic another one -- [clone-response](https://github.com/lukechilds/clone-response) - Clone a Node.js response stream - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/views/node_modules/decompress-response/package.json b/views/node_modules/decompress-response/package.json deleted file mode 100644 index 57df889..0000000 --- a/views/node_modules/decompress-response/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "decompress-response", - "version": "6.0.0", - "description": "Decompress a HTTP response if needed", - "license": "MIT", - "repository": "sindresorhus/decompress-response", - "funding": "https://github.com/sponsors/sindresorhus", - "author": { - "name": "Sindre Sorhus", - "email": "sindresorhus@gmail.com", - "url": "https://sindresorhus.com" - }, - "engines": { - "node": ">=10" - }, - "scripts": { - "test": "xo && ava && tsd" - }, - "files": [ - "index.js", - "index.d.ts" - ], - "keywords": [ - "decompress", - "response", - "http", - "https", - "zlib", - "gzip", - "zip", - "deflate", - "unzip", - "ungzip", - "incoming", - "message", - "stream", - "compressed", - "brotli" - ], - "dependencies": { - "mimic-response": "^3.1.0" - }, - "devDependencies": { - "@types/node": "^14.0.1", - "ava": "^2.2.0", - "get-stream": "^5.0.0", - "pify": "^5.0.0", - "tsd": "^0.11.0", - "xo": "^0.30.0" - }, - "xo": { - "rules": { - "@typescript-eslint/prefer-readonly-parameter-types": "off" - } - } -} diff --git a/views/node_modules/decompress-response/readme.md b/views/node_modules/decompress-response/readme.md deleted file mode 100644 index 58523ef..0000000 --- a/views/node_modules/decompress-response/readme.md +++ /dev/null @@ -1,48 +0,0 @@ -# decompress-response [![Build Status](https://travis-ci.com/sindresorhus/decompress-response.svg?branch=master)](https://travis-ci.com/sindresorhus/decompress-response) - -> Decompress a HTTP response if needed - -Decompresses the [response](https://nodejs.org/api/http.html#http_class_http_incomingmessage) from [`http.request`](https://nodejs.org/api/http.html#http_http_request_options_callback) if it's gzipped, deflated or compressed with Brotli, otherwise just passes it through. - -Used by [`got`](https://github.com/sindresorhus/got). - -## Install - -``` -$ npm install decompress-response -``` - -## Usage - -```js -const http = require('http'); -const decompressResponse = require('decompress-response'); - -http.get('https://sindresorhus.com', response => { - response = decompressResponse(response); -}); -``` - -## API - -### decompressResponse(response) - -Returns the decompressed HTTP response stream. - -#### response - -Type: [`http.IncomingMessage`](https://nodejs.org/api/http.html#http_class_http_incomingmessage) - -The HTTP incoming stream with compressed data. - ---- - -
- - Get professional support for this package with a Tidelift subscription - -
- - Tidelift helps make open source sustainable for maintainers while giving companies
assurances about security, maintenance, and licensing for their dependencies. -
-
diff --git a/views/node_modules/defer-to-connect/LICENSE b/views/node_modules/defer-to-connect/LICENSE deleted file mode 100644 index 15ad2e8..0000000 --- a/views/node_modules/defer-to-connect/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Szymon Marczak - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/views/node_modules/defer-to-connect/README.md b/views/node_modules/defer-to-connect/README.md deleted file mode 100644 index 4dd36c2..0000000 --- a/views/node_modules/defer-to-connect/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# defer-to-connect - -> The safe way to handle the `connect` socket event - -[![Coverage Status](https://coveralls.io/repos/github/szmarczak/defer-to-connect/badge.svg?branch=master)](https://coveralls.io/github/szmarczak/defer-to-connect?branch=master) - -Once you receive the socket, it may be already connected (or disconnected).
-To avoid checking that, use `defer-to-connect`. It'll do that for you. - -## Usage - -```js -const deferToConnect = require('defer-to-connect'); - -deferToConnect(socket, () => { - console.log('Connected!'); -}); -``` - -## API - -### deferToConnect(socket, connectListener) - -Calls `connectListener()` when connected. - -### deferToConnect(socket, listeners) - -#### listeners - -An object representing `connect`, `secureConnect` and `close` properties. - -Calls `connect()` when the socket is connected.
-Calls `secureConnect()` when the socket is securely connected.
-Calls `close()` when the socket is destroyed. - -## License - -MIT diff --git a/views/node_modules/defer-to-connect/dist/source/index.d.ts b/views/node_modules/defer-to-connect/dist/source/index.d.ts deleted file mode 100644 index 8db8dbb..0000000 --- a/views/node_modules/defer-to-connect/dist/source/index.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/// -import { Socket } from 'net'; -import { TLSSocket } from 'tls'; -interface Listeners { - connect?: () => void; - secureConnect?: () => void; - close?: (hadError: boolean) => void; -} -declare const deferToConnect: (socket: TLSSocket | Socket, fn: Listeners | (() => void)) => void; -export default deferToConnect; diff --git a/views/node_modules/defer-to-connect/dist/source/index.js b/views/node_modules/defer-to-connect/dist/source/index.js deleted file mode 100644 index f26c4fa..0000000 --- a/views/node_modules/defer-to-connect/dist/source/index.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -function isTLSSocket(socket) { - return socket.encrypted; -} -const deferToConnect = (socket, fn) => { - let listeners; - if (typeof fn === 'function') { - const connect = fn; - listeners = { connect }; - } - else { - listeners = fn; - } - const hasConnectListener = typeof listeners.connect === 'function'; - const hasSecureConnectListener = typeof listeners.secureConnect === 'function'; - const hasCloseListener = typeof listeners.close === 'function'; - const onConnect = () => { - if (hasConnectListener) { - listeners.connect(); - } - if (isTLSSocket(socket) && hasSecureConnectListener) { - if (socket.authorized) { - listeners.secureConnect(); - } - else if (!socket.authorizationError) { - socket.once('secureConnect', listeners.secureConnect); - } - } - if (hasCloseListener) { - socket.once('close', listeners.close); - } - }; - if (socket.writable && !socket.connecting) { - onConnect(); - } - else if (socket.connecting) { - socket.once('connect', onConnect); - } - else if (socket.destroyed && hasCloseListener) { - listeners.close(socket._hadError); - } -}; -exports.default = deferToConnect; -// For CommonJS default export support -module.exports = deferToConnect; -module.exports.default = deferToConnect; diff --git a/views/node_modules/defer-to-connect/package.json b/views/node_modules/defer-to-connect/package.json deleted file mode 100644 index 4dbd1c6..0000000 --- a/views/node_modules/defer-to-connect/package.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "name": "defer-to-connect", - "version": "2.0.1", - "description": "The safe way to handle the `connect` socket event", - "main": "dist/source", - "files": [ - "dist/source" - ], - "engines": { - "node": ">=10" - }, - "scripts": { - "build": "del-cli dist && tsc", - "prepare": "npm run build", - "test": "xo && tsc --noEmit && nyc ava", - "coveralls": "nyc report --reporter=text-lcov | coveralls" - }, - "keywords": [ - "socket", - "connect", - "event" - ], - "author": "Szymon Marczak", - "license": "MIT", - "repository": { - "type": "git", - "url": "git+https://github.com/szmarczak/defer-to-connect.git" - }, - "bugs": { - "url": "https://github.com/szmarczak/defer-to-connect/issues" - }, - "homepage": "https://github.com/szmarczak/defer-to-connect#readme", - "xo": { - "extends": "xo-typescript", - "extensions": [ - "ts" - ] - }, - "devDependencies": { - "@ava/typescript": "^1.1.0", - "@sindresorhus/tsconfig": "^0.7.0", - "@types/node": "^13.5.0", - "@typescript-eslint/eslint-plugin": "^2.18.0", - "@typescript-eslint/parser": "^2.18.0", - "ava": "^3.2.0", - "coveralls": "^3.0.9", - "create-cert": "^1.0.6", - "del-cli": "^3.0.0", - "eslint-config-xo-typescript": "^0.24.1", - "nyc": "^15.0.0", - "p-event": "^4.1.0", - "typescript": "^3.7.5", - "xo": "^0.25.3" - }, - "nyc": { - "include": [ - "dist/source" - ], - "extension": [ - ".ts" - ] - }, - "ava": { - "typescript": { - "rewritePaths": { - "tests/": "dist/tests/" - } - } - }, - "types": "dist/source/index.d.ts" -} diff --git a/views/node_modules/denque/CHANGELOG.md b/views/node_modules/denque/CHANGELOG.md deleted file mode 100644 index bb5ffb6..0000000 --- a/views/node_modules/denque/CHANGELOG.md +++ /dev/null @@ -1,4 +0,0 @@ -## 1.5.0 - - - feat: adds capacity option for circular buffers (#27) - diff --git a/views/node_modules/denque/LICENSE b/views/node_modules/denque/LICENSE deleted file mode 100644 index fd22a2d..0000000 --- a/views/node_modules/denque/LICENSE +++ /dev/null @@ -1,13 +0,0 @@ -Copyright (c) 2018 Mike Diarmid (Salakar) - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this library except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/views/node_modules/denque/README.md b/views/node_modules/denque/README.md deleted file mode 100644 index 6821e0d..0000000 --- a/views/node_modules/denque/README.md +++ /dev/null @@ -1,362 +0,0 @@ -

- -
-
-

Denque

-

- -

- NPM downloads - NPM version - Build version - Build version - License - Chat - Follow on Twitter -

- -Extremely fast and lightweight [double-ended queue](http://en.wikipedia.org/wiki/Double-ended_queue) implementation with zero dependencies. - -Double-ended queues can also be used as a: - -- [Stack](http://en.wikipedia.org/wiki/Stack_\(abstract_data_type\)) -- [Queue](http://en.wikipedia.org/wiki/Queue_\(data_structure\)) - -This implementation is currently the fastest available, even faster than `double-ended-queue`, see the [benchmarks](#benchmarks) - -Every queue operation is done at a constant `O(1)` - including random access from `.peekAt(index)`. - -**Works on all node versions >= v0.10** - -# Quick Start - - npm install denque - -```js -const Denque = require("denque"); - -const denque = new Denque([1,2,3,4]); -denque.shift(); // 1 -denque.pop(); // 4 -``` - - -# API - -- [`new Denque()`](#new-denque---denque) -- [`new Denque(Array items)`](#new-denquearray-items---denque) -- [`push(item)`](#pushitem---int) -- [`unshift(item)`](#unshiftitem---int) -- [`pop()`](#pop---dynamic) -- [`shift()`](#shift---dynamic) -- [`toArray()`](#toarray---array) -- [`peekBack()`](#peekback---dynamic) -- [`peekFront()`](#peekfront---dynamic) -- [`peekAt(int index)`](#peekAtint-index---dynamic) -- [`remove(int index, int count)`](#remove) -- [`removeOne(int index)`](#removeOne) -- [`splice(int index, int count, item1, item2, ...)`](#splice) -- [`isEmpty()`](#isempty---boolean) -- [`clear()`](#clear---void) - -#### `new Denque()` -> `Denque` - -Creates an empty double-ended queue with initial capacity of 4. - -```js -var denque = new Denque(); -denque.push(1); -denque.push(2); -denque.push(3); -denque.shift(); //1 -denque.pop(); //3 -``` - -
- -#### `new Denque(Array items)` -> `Denque` - -Creates a double-ended queue from `items`. - -```js -var denque = new Denque([1,2,3,4]); -denque.shift(); // 1 -denque.pop(); // 4 -``` - -
- - -#### `push(item)` -> `int` - -Push an item to the back of this queue. Returns the amount of items currently in the queue after the operation. - -```js -var denque = new Denque(); -denque.push(1); -denque.pop(); // 1 -denque.push(2); -denque.push(3); -denque.shift(); // 2 -denque.shift(); // 3 -``` - -
- -#### `unshift(item)` -> `int` - -Unshift an item to the front of this queue. Returns the amount of items currently in the queue after the operation. - -```js -var denque = new Denque([2,3]); -denque.unshift(1); -denque.toString(); // "1,2,3" -denque.unshift(-2); -denque.toString(); // "-2,-1,0,1,2,3" -``` - -
- - -#### `pop()` -> `dynamic` - -Pop off the item at the back of this queue. - -Note: The item will be removed from the queue. If you simply want to see what's at the back of the queue use [`peekBack()`](#peekback---dynamic) or [`.peekAt(-1)`](#peekAtint-index---dynamic). - -If the queue is empty, `undefined` is returned. If you need to differentiate between `undefined` values in the queue and `pop()` return value - -check the queue `.length` before popping. - -```js -var denque = new Denque([1,2,3]); -denque.pop(); // 3 -denque.pop(); // 2 -denque.pop(); // 1 -denque.pop(); // undefined -``` - -**Aliases:** `removeBack` - -
- -#### `shift()` -> `dynamic` - -Shifts off the item at the front of this queue. - -Note: The item will be removed from the queue. If you simply want to see what's at the front of the queue use [`peekFront()`](#peekfront---dynamic) or [`.peekAt(0)`](#peekAtint-index---dynamic). - -If the queue is empty, `undefined` is returned. If you need to differentiate between `undefined` values in the queue and `shift()` return value - -check the queue `.length` before shifting. - -```js -var denque = new Denque([1,2,3]); -denque.shift(); // 1 -denque.shift(); // 2 -denque.shift(); // 3 -denque.shift(); // undefined -``` - -
- -#### `toArray()` -> `Array` - -Returns the items in the queue as an array. Starting from the item in the front of the queue and ending to the item at the back of the queue. - -```js -var denque = new Denque([1,2,3]); -denque.push(4); -denque.unshift(0); -denque.toArray(); // [0,1,2,3,4] -``` - -
- -#### `peekBack()` -> `dynamic` - -Returns the item that is at the back of this queue without removing it. - -If the queue is empty, `undefined` is returned. - -```js -var denque = new Denque([1,2,3]); -denque.push(4); -denque.peekBack(); // 4 -``` - -
- -#### `peekFront()` -> `dynamic` - -Returns the item that is at the front of this queue without removing it. - -If the queue is empty, `undefined` is returned. - -```js -var denque = new Denque([1,2,3]); -denque.push(4); -denque.peekFront(); // 1 -``` - -
- -#### `peekAt(int index)` -> `dynamic` - -Returns the item that is at the given `index` of this queue without removing it. - -The index is zero-based, so `.peekAt(0)` will return the item that is at the front, `.peekAt(1)` will return -the item that comes after and so on. - -The index can be negative to read items at the back of the queue. `.peekAt(-1)` returns the item that is at the back of the queue, -`.peekAt(-2)` will return the item that comes before and so on. - -Returns `undefined` if `index` is not a valid index into the queue. - -```js -var denque = new Denque([1,2,3]); -denque.peekAt(0); //1 -denque.peekAt(1); //2 -denque.peekAt(2); //3 - -denque.peekAt(-1); // 3 -denque.peekAt(-2); // 2 -denque.peekAt(-3); // 1 -``` - -**Note**: The implementation has O(1) random access using `.peekAt()`. - -**Aliases:** `get` - -
- -#### `remove(int index, int count)` -> `array` - -Remove number of items from the specified index from the list. - -Returns array of removed items. - -Returns undefined if the list is empty. - -```js -var denque = new Denque([1,2,3,4,5,6,7]); -denque.remove(0,3); //[1,2,3] -denque.remove(1,2); //[5,6] -var denque1 = new Denque([1,2,3,4,5,6,7]); -denque1.remove(4, 100); //[5,6,7] -``` - -
- -#### `removeOne(int index)` -> `dynamic` - -Remove and return the item at the specified index from the list. - -Returns undefined if the list is empty. - -```js -var denque = new Denque([1,2,3,4,5,6,7]); -denque.removeOne(4); // 5 -denque.removeOne(3); // 4 -denque1.removeOne(1); // 2 -``` - -
- -#### `splice(int index, int count, item1, item2, ...)` -> `array` - -Native splice implementation. - -Remove number of items from the specified index from the list and/or add new elements. - -Returns array of removed items or empty array if count == 0. - -Returns undefined if the list is empty. - -```js -var denque = new Denque([1,2,3,4,5,6,7]); -denque.splice(denque.length, 0, 8, 9, 10); // [] -denque.toArray() // [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] -denque.splice(3, 3, 44, 55, 66); // [4,5,6] -denque.splice(5,4, 666,667,668,669); // [ 66, 7, 8, 9 ] -denque.toArray() // [ 1, 2, 3, 44, 55, 666, 667, 668, 669, 10 ] -``` - -
- -#### `isEmpty()` -> `boolean` - -Return `true` if this queue is empty, `false` otherwise. - -```js -var denque = new Denque(); -denque.isEmpty(); // true -denque.push(1); -denque.isEmpty(); // false -``` - -
- -#### `clear()` -> `void` - -Remove all items from this queue. Does not change the queue's capacity. - -```js -var denque = new Denque([1,2,3]); -denque.toString(); // "1,2,3" -denque.clear(); -denque.toString(); // "" -``` -
- - -## Benchmarks - -#### Platform info: -``` -Darwin 17.0.0 x64 -Node.JS 9.4.0 -V8 6.2.414.46-node.17 -Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz × 8 -``` - -#### 1000 items in queue - - (3 x shift + 3 x push ops per 'op') - - denque x 64,365,425 ops/sec ±0.69% (92 runs sampled) - double-ended-queue x 26,646,882 ops/sec ±0.47% (94 runs sampled) - -#### 2 million items in queue - - (3 x shift + 3 x push ops per 'op') - - denque x 61,994,249 ops/sec ±0.26% (95 runs sampled) - double-ended-queue x 26,363,500 ops/sec ±0.42% (91 runs sampled) - -#### Splice - - (1 x splice per 'op') - initial size of 100,000 items - - denque.splice x 925,749 ops/sec ±22.29% (77 runs sampled) - native array splice x 7,777 ops/sec ±8.35% (50 runs sampled) - -#### Remove - - (1 x remove + 10 x push per 'op') - initial size of 100,000 items - - denque.remove x 2,635,275 ops/sec ±0.37% (95 runs sampled) - native array splice - Fails to complete: "JavaScript heap out of memory" - -#### Remove One - - (1 x removeOne + 10 x push per 'op') - initial size of 100,000 items - - denque.removeOne x 1,088,240 ops/sec ±0.21% (93 runs sampled) - native array splice x 5,300 ops/sec ±0.41% (96 runs sampled) - ---- - -Built and maintained with 💛 by [Invertase](https://invertase.io). - -- [💼 Hire Us](https://invertase.io/hire-us) -- [☕️ Sponsor Us](https://opencollective.com/react-native-firebase) -- [👩‍💻 Work With Us](https://invertase.io/jobs) diff --git a/views/node_modules/denque/index.d.ts b/views/node_modules/denque/index.d.ts deleted file mode 100644 index 05d7123..0000000 --- a/views/node_modules/denque/index.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -declare class Denque { - constructor(); - constructor(array: T[]); - constructor(array: T[], options: IDenqueOptions); - - push(item: T): number; - unshift(item: T): number; - pop(): T | undefined; - removeBack(): T | undefined; - shift(): T | undefined; - peekBack(): T | undefined; - peekFront(): T | undefined; - peekAt(index: number): T | undefined; - get(index: number): T | undefined; - remove(index: number, count: number): T[]; - removeOne(index: number): T | undefined; - splice(index: number, count: number, ...item: T[]): T[] | undefined; - isEmpty(): boolean; - clear(): void; - - toString(): string; - toArray(): T[]; - - length: number; -} - -interface IDenqueOptions { - capacity?: number -} - -export = Denque; diff --git a/views/node_modules/denque/index.js b/views/node_modules/denque/index.js deleted file mode 100644 index f664cd7..0000000 --- a/views/node_modules/denque/index.js +++ /dev/null @@ -1,443 +0,0 @@ -'use strict'; - -/** - * Custom implementation of a double ended queue. - */ -function Denque(array, options) { - var options = options || {}; - - this._head = 0; - this._tail = 0; - this._capacity = options.capacity; - this._capacityMask = 0x3; - this._list = new Array(4); - if (Array.isArray(array)) { - this._fromArray(array); - } -} - -/** - * ------------- - * PUBLIC API - * ------------- - */ - -/** - * Returns the item at the specified index from the list. - * 0 is the first element, 1 is the second, and so on... - * Elements at negative values are that many from the end: -1 is one before the end - * (the last element), -2 is two before the end (one before last), etc. - * @param index - * @returns {*} - */ -Denque.prototype.peekAt = function peekAt(index) { - var i = index; - // expect a number or return undefined - if ((i !== (i | 0))) { - return void 0; - } - var len = this.size(); - if (i >= len || i < -len) return undefined; - if (i < 0) i += len; - i = (this._head + i) & this._capacityMask; - return this._list[i]; -}; - -/** - * Alias for peekAt() - * @param i - * @returns {*} - */ -Denque.prototype.get = function get(i) { - return this.peekAt(i); -}; - -/** - * Returns the first item in the list without removing it. - * @returns {*} - */ -Denque.prototype.peek = function peek() { - if (this._head === this._tail) return undefined; - return this._list[this._head]; -}; - -/** - * Alias for peek() - * @returns {*} - */ -Denque.prototype.peekFront = function peekFront() { - return this.peek(); -}; - -/** - * Returns the item that is at the back of the queue without removing it. - * Uses peekAt(-1) - */ -Denque.prototype.peekBack = function peekBack() { - return this.peekAt(-1); -}; - -/** - * Returns the current length of the queue - * @return {Number} - */ -Object.defineProperty(Denque.prototype, 'length', { - get: function length() { - return this.size(); - } -}); - -/** - * Return the number of items on the list, or 0 if empty. - * @returns {number} - */ -Denque.prototype.size = function size() { - if (this._head === this._tail) return 0; - if (this._head < this._tail) return this._tail - this._head; - else return this._capacityMask + 1 - (this._head - this._tail); -}; - -/** - * Add an item at the beginning of the list. - * @param item - */ -Denque.prototype.unshift = function unshift(item) { - if (item === undefined) return this.size(); - var len = this._list.length; - this._head = (this._head - 1 + len) & this._capacityMask; - this._list[this._head] = item; - if (this._tail === this._head) this._growArray(); - if (this._capacity && this.size() > this._capacity) this.pop(); - if (this._head < this._tail) return this._tail - this._head; - else return this._capacityMask + 1 - (this._head - this._tail); -}; - -/** - * Remove and return the first item on the list, - * Returns undefined if the list is empty. - * @returns {*} - */ -Denque.prototype.shift = function shift() { - var head = this._head; - if (head === this._tail) return undefined; - var item = this._list[head]; - this._list[head] = undefined; - this._head = (head + 1) & this._capacityMask; - if (head < 2 && this._tail > 10000 && this._tail <= this._list.length >>> 2) this._shrinkArray(); - return item; -}; - -/** - * Add an item to the bottom of the list. - * @param item - */ -Denque.prototype.push = function push(item) { - if (item === undefined) return this.size(); - var tail = this._tail; - this._list[tail] = item; - this._tail = (tail + 1) & this._capacityMask; - if (this._tail === this._head) { - this._growArray(); - } - if (this._capacity && this.size() > this._capacity) { - this.shift(); - } - if (this._head < this._tail) return this._tail - this._head; - else return this._capacityMask + 1 - (this._head - this._tail); -}; - -/** - * Remove and return the last item on the list. - * Returns undefined if the list is empty. - * @returns {*} - */ -Denque.prototype.pop = function pop() { - var tail = this._tail; - if (tail === this._head) return undefined; - var len = this._list.length; - this._tail = (tail - 1 + len) & this._capacityMask; - var item = this._list[this._tail]; - this._list[this._tail] = undefined; - if (this._head < 2 && tail > 10000 && tail <= len >>> 2) this._shrinkArray(); - return item; -}; - -/** - * Remove and return the item at the specified index from the list. - * Returns undefined if the list is empty. - * @param index - * @returns {*} - */ -Denque.prototype.removeOne = function removeOne(index) { - var i = index; - // expect a number or return undefined - if ((i !== (i | 0))) { - return void 0; - } - if (this._head === this._tail) return void 0; - var size = this.size(); - var len = this._list.length; - if (i >= size || i < -size) return void 0; - if (i < 0) i += size; - i = (this._head + i) & this._capacityMask; - var item = this._list[i]; - var k; - if (index < size / 2) { - for (k = index; k > 0; k--) { - this._list[i] = this._list[i = (i - 1 + len) & this._capacityMask]; - } - this._list[i] = void 0; - this._head = (this._head + 1 + len) & this._capacityMask; - } else { - for (k = size - 1 - index; k > 0; k--) { - this._list[i] = this._list[i = ( i + 1 + len) & this._capacityMask]; - } - this._list[i] = void 0; - this._tail = (this._tail - 1 + len) & this._capacityMask; - } - return item; -}; - -/** - * Remove number of items from the specified index from the list. - * Returns array of removed items. - * Returns undefined if the list is empty. - * @param index - * @param count - * @returns {array} - */ -Denque.prototype.remove = function remove(index, count) { - var i = index; - var removed; - var del_count = count; - // expect a number or return undefined - if ((i !== (i | 0))) { - return void 0; - } - if (this._head === this._tail) return void 0; - var size = this.size(); - var len = this._list.length; - if (i >= size || i < -size || count < 1) return void 0; - if (i < 0) i += size; - if (count === 1 || !count) { - removed = new Array(1); - removed[0] = this.removeOne(i); - return removed; - } - if (i === 0 && i + count >= size) { - removed = this.toArray(); - this.clear(); - return removed; - } - if (i + count > size) count = size - i; - var k; - removed = new Array(count); - for (k = 0; k < count; k++) { - removed[k] = this._list[(this._head + i + k) & this._capacityMask]; - } - i = (this._head + i) & this._capacityMask; - if (index + count === size) { - this._tail = (this._tail - count + len) & this._capacityMask; - for (k = count; k > 0; k--) { - this._list[i = (i + 1 + len) & this._capacityMask] = void 0; - } - return removed; - } - if (index === 0) { - this._head = (this._head + count + len) & this._capacityMask; - for (k = count - 1; k > 0; k--) { - this._list[i = (i + 1 + len) & this._capacityMask] = void 0; - } - return removed; - } - if (i < size / 2) { - this._head = (this._head + index + count + len) & this._capacityMask; - for (k = index; k > 0; k--) { - this.unshift(this._list[i = (i - 1 + len) & this._capacityMask]); - } - i = (this._head - 1 + len) & this._capacityMask; - while (del_count > 0) { - this._list[i = (i - 1 + len) & this._capacityMask] = void 0; - del_count--; - } - if (index < 0) this._tail = i; - } else { - this._tail = i; - i = (i + count + len) & this._capacityMask; - for (k = size - (count + index); k > 0; k--) { - this.push(this._list[i++]); - } - i = this._tail; - while (del_count > 0) { - this._list[i = (i + 1 + len) & this._capacityMask] = void 0; - del_count--; - } - } - if (this._head < 2 && this._tail > 10000 && this._tail <= len >>> 2) this._shrinkArray(); - return removed; -}; - -/** - * Native splice implementation. - * Remove number of items from the specified index from the list and/or add new elements. - * Returns array of removed items or empty array if count == 0. - * Returns undefined if the list is empty. - * - * @param index - * @param count - * @param {...*} [elements] - * @returns {array} - */ -Denque.prototype.splice = function splice(index, count) { - var i = index; - // expect a number or return undefined - if ((i !== (i | 0))) { - return void 0; - } - var size = this.size(); - if (i < 0) i += size; - if (i > size) return void 0; - if (arguments.length > 2) { - var k; - var temp; - var removed; - var arg_len = arguments.length; - var len = this._list.length; - var arguments_index = 2; - if (!size || i < size / 2) { - temp = new Array(i); - for (k = 0; k < i; k++) { - temp[k] = this._list[(this._head + k) & this._capacityMask]; - } - if (count === 0) { - removed = []; - if (i > 0) { - this._head = (this._head + i + len) & this._capacityMask; - } - } else { - removed = this.remove(i, count); - this._head = (this._head + i + len) & this._capacityMask; - } - while (arg_len > arguments_index) { - this.unshift(arguments[--arg_len]); - } - for (k = i; k > 0; k--) { - this.unshift(temp[k - 1]); - } - } else { - temp = new Array(size - (i + count)); - var leng = temp.length; - for (k = 0; k < leng; k++) { - temp[k] = this._list[(this._head + i + count + k) & this._capacityMask]; - } - if (count === 0) { - removed = []; - if (i != size) { - this._tail = (this._head + i + len) & this._capacityMask; - } - } else { - removed = this.remove(i, count); - this._tail = (this._tail - leng + len) & this._capacityMask; - } - while (arguments_index < arg_len) { - this.push(arguments[arguments_index++]); - } - for (k = 0; k < leng; k++) { - this.push(temp[k]); - } - } - return removed; - } else { - return this.remove(i, count); - } -}; - -/** - * Soft clear - does not reset capacity. - */ -Denque.prototype.clear = function clear() { - this._head = 0; - this._tail = 0; -}; - -/** - * Returns true or false whether the list is empty. - * @returns {boolean} - */ -Denque.prototype.isEmpty = function isEmpty() { - return this._head === this._tail; -}; - -/** - * Returns an array of all queue items. - * @returns {Array} - */ -Denque.prototype.toArray = function toArray() { - return this._copyArray(false); -}; - -/** - * ------------- - * INTERNALS - * ------------- - */ - -/** - * Fills the queue with items from an array - * For use in the constructor - * @param array - * @private - */ -Denque.prototype._fromArray = function _fromArray(array) { - for (var i = 0; i < array.length; i++) this.push(array[i]); -}; - -/** - * - * @param fullCopy - * @returns {Array} - * @private - */ -Denque.prototype._copyArray = function _copyArray(fullCopy) { - var newArray = []; - var list = this._list; - var len = list.length; - var i; - if (fullCopy || this._head > this._tail) { - for (i = this._head; i < len; i++) newArray.push(list[i]); - for (i = 0; i < this._tail; i++) newArray.push(list[i]); - } else { - for (i = this._head; i < this._tail; i++) newArray.push(list[i]); - } - return newArray; -}; - -/** - * Grows the internal list array. - * @private - */ -Denque.prototype._growArray = function _growArray() { - if (this._head) { - // copy existing data, head to end, then beginning to tail. - this._list = this._copyArray(true); - this._head = 0; - } - - // head is at 0 and array is now full, safe to extend - this._tail = this._list.length; - - this._list.length *= 2; - this._capacityMask = (this._capacityMask << 1) | 1; -}; - -/** - * Shrinks the internal list array. - * @private - */ -Denque.prototype._shrinkArray = function _shrinkArray() { - this._list.length >>>= 1; - this._capacityMask >>>= 1; -}; - - -module.exports = Denque; diff --git a/views/node_modules/denque/package.json b/views/node_modules/denque/package.json deleted file mode 100644 index 37b6298..0000000 --- a/views/node_modules/denque/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "denque", - "version": "1.5.0", - "description": "The fastest javascript implementation of a double-ended queue. Maintains compatability with deque.", - "main": "index.js", - "engines": { - "node": ">=0.10" - }, - "keywords": [ - "data-structure", - "data-structures", - "queue", - "double", - "end", - "ended", - "deque", - "denque", - "double-ended-queue" - ], - "scripts": { - "test": "istanbul cover --report lcov _mocha && npm run typescript", - "coveralls": "cat ./coverage/lcov.info | coveralls", - "typescript": "tsc --project ./test/type/tsconfig.json", - "benchmark_thousand": "node benchmark/thousand", - "benchmark_2mil": "node benchmark/two_million", - "benchmark_splice": "node benchmark/splice", - "benchmark_remove": "node benchmark/remove", - "benchmark_removeOne": "node benchmark/removeOne" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/invertase/denque.git" - }, - "license": "Apache-2.0", - "author": { - "name": "Invertase", - "email": "oss@invertase.io", - "url": "http://github.com/invertase/" - }, - "contributors": [ - "Mike Diarmid (Salakar) " - ], - "bugs": { - "url": "https://github.com/invertase/denque/issues" - }, - "homepage": "https://github.com/invertase/denque#readme", - "devDependencies": { - "benchmark": "^2.1.4", - "coveralls": "^2.13.3", - "double-ended-queue": "^2.1.0-0", - "istanbul": "^0.4.5", - "mocha": "^3.5.3", - "typescript": "^3.4.1" - } -} diff --git a/views/node_modules/depd/History.md b/views/node_modules/depd/History.md deleted file mode 100644 index 507ecb8..0000000 --- a/views/node_modules/depd/History.md +++ /dev/null @@ -1,96 +0,0 @@ -1.1.2 / 2018-01-11 -================== - - * perf: remove argument reassignment - * Support Node.js 0.6 to 9.x - -1.1.1 / 2017-07-27 -================== - - * Remove unnecessary `Buffer` loading - * Support Node.js 0.6 to 8.x - -1.1.0 / 2015-09-14 -================== - - * Enable strict mode in more places - * Support io.js 3.x - * Support io.js 2.x - * Support web browser loading - - Requires bundler like Browserify or webpack - -1.0.1 / 2015-04-07 -================== - - * Fix `TypeError`s when under `'use strict'` code - * Fix useless type name on auto-generated messages - * Support io.js 1.x - * Support Node.js 0.12 - -1.0.0 / 2014-09-17 -================== - - * No changes - -0.4.5 / 2014-09-09 -================== - - * Improve call speed to functions using the function wrapper - * Support Node.js 0.6 - -0.4.4 / 2014-07-27 -================== - - * Work-around v8 generating empty stack traces - -0.4.3 / 2014-07-26 -================== - - * Fix exception when global `Error.stackTraceLimit` is too low - -0.4.2 / 2014-07-19 -================== - - * Correct call site for wrapped functions and properties - -0.4.1 / 2014-07-19 -================== - - * Improve automatic message generation for function properties - -0.4.0 / 2014-07-19 -================== - - * Add `TRACE_DEPRECATION` environment variable - * Remove non-standard grey color from color output - * Support `--no-deprecation` argument - * Support `--trace-deprecation` argument - * Support `deprecate.property(fn, prop, message)` - -0.3.0 / 2014-06-16 -================== - - * Add `NO_DEPRECATION` environment variable - -0.2.0 / 2014-06-15 -================== - - * Add `deprecate.property(obj, prop, message)` - * Remove `supports-color` dependency for node.js 0.8 - -0.1.0 / 2014-06-15 -================== - - * Add `deprecate.function(fn, message)` - * Add `process.on('deprecation', fn)` emitter - * Automatically generate message when omitted from `deprecate()` - -0.0.1 / 2014-06-15 -================== - - * Fix warning for dynamic calls at singe call site - -0.0.0 / 2014-06-15 -================== - - * Initial implementation diff --git a/views/node_modules/depd/LICENSE b/views/node_modules/depd/LICENSE deleted file mode 100644 index 84441fb..0000000 --- a/views/node_modules/depd/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -(The MIT License) - -Copyright (c) 2014-2017 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/views/node_modules/depd/Readme.md b/views/node_modules/depd/Readme.md deleted file mode 100644 index 7790670..0000000 --- a/views/node_modules/depd/Readme.md +++ /dev/null @@ -1,280 +0,0 @@ -# depd - -[![NPM Version][npm-version-image]][npm-url] -[![NPM Downloads][npm-downloads-image]][npm-url] -[![Node.js Version][node-image]][node-url] -[![Linux Build][travis-image]][travis-url] -[![Windows Build][appveyor-image]][appveyor-url] -[![Coverage Status][coveralls-image]][coveralls-url] - -Deprecate all the things - -> With great modules comes great responsibility; mark things deprecated! - -## Install - -This module is installed directly using `npm`: - -```sh -$ npm install depd -``` - -This module can also be bundled with systems like -[Browserify](http://browserify.org/) or [webpack](https://webpack.github.io/), -though by default this module will alter it's API to no longer display or -track deprecations. - -## API - - - -```js -var deprecate = require('depd')('my-module') -``` - -This library allows you to display deprecation messages to your users. -This library goes above and beyond with deprecation warnings by -introspection of the call stack (but only the bits that it is interested -in). - -Instead of just warning on the first invocation of a deprecated -function and never again, this module will warn on the first invocation -of a deprecated function per unique call site, making it ideal to alert -users of all deprecated uses across the code base, rather than just -whatever happens to execute first. - -The deprecation warnings from this module also include the file and line -information for the call into the module that the deprecated function was -in. - -**NOTE** this library has a similar interface to the `debug` module, and -this module uses the calling file to get the boundary for the call stacks, -so you should always create a new `deprecate` object in each file and not -within some central file. - -### depd(namespace) - -Create a new deprecate function that uses the given namespace name in the -messages and will display the call site prior to the stack entering the -file this function was called from. It is highly suggested you use the -name of your module as the namespace. - -### deprecate(message) - -Call this function from deprecated code to display a deprecation message. -This message will appear once per unique caller site. Caller site is the -first call site in the stack in a different file from the caller of this -function. - -If the message is omitted, a message is generated for you based on the site -of the `deprecate()` call and will display the name of the function called, -similar to the name displayed in a stack trace. - -### deprecate.function(fn, message) - -Call this function to wrap a given function in a deprecation message on any -call to the function. An optional message can be supplied to provide a custom -message. - -### deprecate.property(obj, prop, message) - -Call this function to wrap a given property on object in a deprecation message -on any accessing or setting of the property. An optional message can be supplied -to provide a custom message. - -The method must be called on the object where the property belongs (not -inherited from the prototype). - -If the property is a data descriptor, it will be converted to an accessor -descriptor in order to display the deprecation message. - -### process.on('deprecation', fn) - -This module will allow easy capturing of deprecation errors by emitting the -errors as the type "deprecation" on the global `process`. If there are no -listeners for this type, the errors are written to STDERR as normal, but if -there are any listeners, nothing will be written to STDERR and instead only -emitted. From there, you can write the errors in a different format or to a -logging source. - -The error represents the deprecation and is emitted only once with the same -rules as writing to STDERR. The error has the following properties: - - - `message` - This is the message given by the library - - `name` - This is always `'DeprecationError'` - - `namespace` - This is the namespace the deprecation came from - - `stack` - This is the stack of the call to the deprecated thing - -Example `error.stack` output: - -``` -DeprecationError: my-cool-module deprecated oldfunction - at Object. ([eval]-wrapper:6:22) - at Module._compile (module.js:456:26) - at evalScript (node.js:532:25) - at startup (node.js:80:7) - at node.js:902:3 -``` - -### process.env.NO_DEPRECATION - -As a user of modules that are deprecated, the environment variable `NO_DEPRECATION` -is provided as a quick solution to silencing deprecation warnings from being -output. The format of this is similar to that of `DEBUG`: - -```sh -$ NO_DEPRECATION=my-module,othermod node app.js -``` - -This will suppress deprecations from being output for "my-module" and "othermod". -The value is a list of comma-separated namespaces. To suppress every warning -across all namespaces, use the value `*` for a namespace. - -Providing the argument `--no-deprecation` to the `node` executable will suppress -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not suppress the deperecations given to any "deprecation" -event listeners, just the output to STDERR. - -### process.env.TRACE_DEPRECATION - -As a user of modules that are deprecated, the environment variable `TRACE_DEPRECATION` -is provided as a solution to getting more detailed location information in deprecation -warnings by including the entire stack trace. The format of this is the same as -`NO_DEPRECATION`: - -```sh -$ TRACE_DEPRECATION=my-module,othermod node app.js -``` - -This will include stack traces for deprecations being output for "my-module" and -"othermod". The value is a list of comma-separated namespaces. To trace every -warning across all namespaces, use the value `*` for a namespace. - -Providing the argument `--trace-deprecation` to the `node` executable will trace -all deprecations (only available in Node.js 0.8 or higher). - -**NOTE** This will not trace the deperecations silenced by `NO_DEPRECATION`. - -## Display - -![message](files/message.png) - -When a user calls a function in your library that you mark deprecated, they -will see the following written to STDERR (in the given colors, similar colors -and layout to the `debug` module): - -``` -bright cyan bright yellow -| | reset cyan -| | | | -▼ ▼ ▼ ▼ -my-cool-module deprecated oldfunction [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ -| | | | -namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -If the user redirects their STDERR to a file or somewhere that does not support -colors, they see (similar layout to the `debug` module): - -``` -Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22 -▲ ▲ ▲ ▲ ▲ -| | | | | -timestamp of message namespace | | location of mycoolmod.oldfunction() call - | deprecation message - the word "deprecated" -``` - -## Examples - -### Deprecating all calls to a function - -This will display a deprecated message about "oldfunction" being deprecated -from "my-module" on STDERR. - -```js -var deprecate = require('depd')('my-cool-module') - -// message automatically derived from function name -// Object.oldfunction -exports.oldfunction = deprecate.function(function oldfunction () { - // all calls to function are deprecated -}) - -// specific message -exports.oldfunction = deprecate.function(function () { - // all calls to function are deprecated -}, 'oldfunction') -``` - -### Conditionally deprecating a function call - -This will display a deprecated message about "weirdfunction" being deprecated -from "my-module" on STDERR when called with less than 2 arguments. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } -} -``` - -When calling `deprecate` as a function, the warning is counted per call site -within your own module, so you can display different deprecations depending -on different situations and the users will still get all the warnings: - -```js -var deprecate = require('depd')('my-cool-module') - -exports.weirdfunction = function () { - if (arguments.length < 2) { - // calls with 0 or 1 args are deprecated - deprecate('weirdfunction args < 2') - } else if (typeof arguments[0] !== 'string') { - // calls with non-string first argument are deprecated - deprecate('weirdfunction non-string first arg') - } -} -``` - -### Deprecating property access - -This will display a deprecated message about "oldprop" being deprecated -from "my-module" on STDERR when accessed. A deprecation will be displayed -when setting the value and when getting the value. - -```js -var deprecate = require('depd')('my-cool-module') - -exports.oldprop = 'something' - -// message automatically derives from property name -deprecate.property(exports, 'oldprop') - -// explicit message -deprecate.property(exports, 'oldprop', 'oldprop >= 0.10') -``` - -## License - -[MIT](LICENSE) - -[npm-version-image]: https://img.shields.io/npm/v/depd.svg -[npm-downloads-image]: https://img.shields.io/npm/dm/depd.svg -[npm-url]: https://npmjs.org/package/depd -[travis-image]: https://img.shields.io/travis/dougwilson/nodejs-depd/master.svg?label=linux -[travis-url]: https://travis-ci.org/dougwilson/nodejs-depd -[appveyor-image]: https://img.shields.io/appveyor/ci/dougwilson/nodejs-depd/master.svg?label=windows -[appveyor-url]: https://ci.appveyor.com/project/dougwilson/nodejs-depd -[coveralls-image]: https://img.shields.io/coveralls/dougwilson/nodejs-depd/master.svg -[coveralls-url]: https://coveralls.io/r/dougwilson/nodejs-depd?branch=master -[node-image]: https://img.shields.io/node/v/depd.svg -[node-url]: https://nodejs.org/en/download/ diff --git a/views/node_modules/depd/index.js b/views/node_modules/depd/index.js deleted file mode 100644 index d758d3c..0000000 --- a/views/node_modules/depd/index.js +++ /dev/null @@ -1,522 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2017 Douglas Christopher Wilson - * MIT Licensed - */ - -/** - * Module dependencies. - */ - -var callSiteToString = require('./lib/compat').callSiteToString -var eventListenerCount = require('./lib/compat').eventListenerCount -var relative = require('path').relative - -/** - * Module exports. - */ - -module.exports = depd - -/** - * Get the path to base files on. - */ - -var basePath = process.cwd() - -/** - * Determine if namespace is contained in the string. - */ - -function containsNamespace (str, namespace) { - var vals = str.split(/[ ,]+/) - var ns = String(namespace).toLowerCase() - - for (var i = 0; i < vals.length; i++) { - var val = vals[i] - - // namespace contained - if (val && (val === '*' || val.toLowerCase() === ns)) { - return true - } - } - - return false -} - -/** - * Convert a data descriptor to accessor descriptor. - */ - -function convertDataDescriptorToAccessor (obj, prop, message) { - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - var value = descriptor.value - - descriptor.get = function getter () { return value } - - if (descriptor.writable) { - descriptor.set = function setter (val) { return (value = val) } - } - - delete descriptor.value - delete descriptor.writable - - Object.defineProperty(obj, prop, descriptor) - - return descriptor -} - -/** - * Create arguments string to keep arity. - */ - -function createArgumentsString (arity) { - var str = '' - - for (var i = 0; i < arity; i++) { - str += ', arg' + i - } - - return str.substr(2) -} - -/** - * Create stack string from stack. - */ - -function createStackString (stack) { - var str = this.name + ': ' + this.namespace - - if (this.message) { - str += ' deprecated ' + this.message - } - - for (var i = 0; i < stack.length; i++) { - str += '\n at ' + callSiteToString(stack[i]) - } - - return str -} - -/** - * Create deprecate for namespace in caller. - */ - -function depd (namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - var stack = getStack() - var site = callSiteLocation(stack[1]) - var file = site[0] - - function deprecate (message) { - // call to self as log - log.call(deprecate, message) - } - - deprecate._file = file - deprecate._ignored = isignored(namespace) - deprecate._namespace = namespace - deprecate._traced = istraced(namespace) - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Determine if namespace is ignored. - */ - -function isignored (namespace) { - /* istanbul ignore next: tested in a child processs */ - if (process.noDeprecation) { - // --no-deprecation support - return true - } - - var str = process.env.NO_DEPRECATION || '' - - // namespace ignored - return containsNamespace(str, namespace) -} - -/** - * Determine if namespace is traced. - */ - -function istraced (namespace) { - /* istanbul ignore next: tested in a child processs */ - if (process.traceDeprecation) { - // --trace-deprecation support - return true - } - - var str = process.env.TRACE_DEPRECATION || '' - - // namespace traced - return containsNamespace(str, namespace) -} - -/** - * Display deprecation message. - */ - -function log (message, site) { - var haslisteners = eventListenerCount(process, 'deprecation') !== 0 - - // abort early if no destination - if (!haslisteners && this._ignored) { - return - } - - var caller - var callFile - var callSite - var depSite - var i = 0 - var seen = false - var stack = getStack() - var file = this._file - - if (site) { - // provided site - depSite = site - callSite = callSiteLocation(stack[1]) - callSite.name = depSite.name - file = callSite[0] - } else { - // get call site - i = 2 - depSite = callSiteLocation(stack[i]) - callSite = depSite - } - - // get caller of deprecated thing in relation to file - for (; i < stack.length; i++) { - caller = callSiteLocation(stack[i]) - callFile = caller[0] - - if (callFile === file) { - seen = true - } else if (callFile === this._file) { - file = this._file - } else if (seen) { - break - } - } - - var key = caller - ? depSite.join(':') + '__' + caller.join(':') - : undefined - - if (key !== undefined && key in this._warned) { - // already warned - return - } - - this._warned[key] = true - - // generate automatic message from call site - var msg = message - if (!msg) { - msg = callSite === depSite || !callSite.name - ? defaultMessage(depSite) - : defaultMessage(callSite) - } - - // emit deprecation if listeners exist - if (haslisteners) { - var err = DeprecationError(this._namespace, msg, stack.slice(i)) - process.emit('deprecation', err) - return - } - - // format and write message - var format = process.stderr.isTTY - ? formatColor - : formatPlain - var output = format.call(this, msg, caller, stack.slice(i)) - process.stderr.write(output + '\n', 'utf8') -} - -/** - * Get call site location as array. - */ - -function callSiteLocation (callSite) { - var file = callSite.getFileName() || '' - var line = callSite.getLineNumber() - var colm = callSite.getColumnNumber() - - if (callSite.isEval()) { - file = callSite.getEvalOrigin() + ', ' + file - } - - var site = [file, line, colm] - - site.callSite = callSite - site.name = callSite.getFunctionName() - - return site -} - -/** - * Generate a default message from the site. - */ - -function defaultMessage (site) { - var callSite = site.callSite - var funcName = site.name - - // make useful anonymous name - if (!funcName) { - funcName = '' - } - - var context = callSite.getThis() - var typeName = context && callSite.getTypeName() - - // ignore useless type name - if (typeName === 'Object') { - typeName = undefined - } - - // make useful type name - if (typeName === 'Function') { - typeName = context.name || typeName - } - - return typeName && callSite.getMethodName() - ? typeName + '.' + funcName - : funcName -} - -/** - * Format deprecation message without color. - */ - -function formatPlain (msg, caller, stack) { - var timestamp = new Date().toUTCString() - - var formatted = timestamp + - ' ' + this._namespace + - ' deprecated ' + msg - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n at ' + callSiteToString(stack[i]) - } - - return formatted - } - - if (caller) { - formatted += ' at ' + formatLocation(caller) - } - - return formatted -} - -/** - * Format deprecation message with color. - */ - -function formatColor (msg, caller, stack) { - var formatted = '\x1b[36;1m' + this._namespace + '\x1b[22;39m' + // bold cyan - ' \x1b[33;1mdeprecated\x1b[22;39m' + // bold yellow - ' \x1b[0m' + msg + '\x1b[39m' // reset - - // add stack trace - if (this._traced) { - for (var i = 0; i < stack.length; i++) { - formatted += '\n \x1b[36mat ' + callSiteToString(stack[i]) + '\x1b[39m' // cyan - } - - return formatted - } - - if (caller) { - formatted += ' \x1b[36m' + formatLocation(caller) + '\x1b[39m' // cyan - } - - return formatted -} - -/** - * Format call site location. - */ - -function formatLocation (callSite) { - return relative(basePath, callSite[0]) + - ':' + callSite[1] + - ':' + callSite[2] -} - -/** - * Get the stack as array of call sites. - */ - -function getStack () { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = Math.max(10, limit) - - // capture the stack - Error.captureStackTrace(obj) - - // slice this function off the top - var stack = obj.stack.slice(1) - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack -} - -/** - * Capture call site stack from v8. - */ - -function prepareObjectStackTrace (obj, stack) { - return stack -} - -/** - * Return a wrapped function in a deprecation message. - */ - -function wrapfunction (fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - var args = createArgumentsString(fn.length) - var deprecate = this // eslint-disable-line no-unused-vars - var stack = getStack() - var site = callSiteLocation(stack[1]) - - site.name = fn.name - - // eslint-disable-next-line no-eval - var deprecatedfn = eval('(function (' + args + ') {\n' + - '"use strict"\n' + - 'log.call(deprecate, message, site)\n' + - 'return fn.apply(this, arguments)\n' + - '})') - - return deprecatedfn -} - -/** - * Wrap property in a deprecation message. - */ - -function wrapproperty (obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } - - var deprecate = this - var stack = getStack() - var site = callSiteLocation(stack[1]) - - // set site name - site.name = prop - - // convert data descriptor - if ('value' in descriptor) { - descriptor = convertDataDescriptorToAccessor(obj, prop, message) - } - - var get = descriptor.get - var set = descriptor.set - - // wrap getter - if (typeof get === 'function') { - descriptor.get = function getter () { - log.call(deprecate, message, site) - return get.apply(this, arguments) - } - } - - // wrap setter - if (typeof set === 'function') { - descriptor.set = function setter () { - log.call(deprecate, message, site) - return set.apply(this, arguments) - } - } - - Object.defineProperty(obj, prop, descriptor) -} - -/** - * Create DeprecationError for deprecation - */ - -function DeprecationError (namespace, message, stack) { - var error = new Error() - var stackString - - Object.defineProperty(error, 'constructor', { - value: DeprecationError - }) - - Object.defineProperty(error, 'message', { - configurable: true, - enumerable: false, - value: message, - writable: true - }) - - Object.defineProperty(error, 'name', { - enumerable: false, - configurable: true, - value: 'DeprecationError', - writable: true - }) - - Object.defineProperty(error, 'namespace', { - configurable: true, - enumerable: false, - value: namespace, - writable: true - }) - - Object.defineProperty(error, 'stack', { - configurable: true, - enumerable: false, - get: function () { - if (stackString !== undefined) { - return stackString - } - - // prepare stack trace - return (stackString = createStackString.call(this, stack)) - }, - set: function setter (val) { - stackString = val - } - }) - - return error -} diff --git a/views/node_modules/depd/lib/browser/index.js b/views/node_modules/depd/lib/browser/index.js deleted file mode 100644 index 6be45cc..0000000 --- a/views/node_modules/depd/lib/browser/index.js +++ /dev/null @@ -1,77 +0,0 @@ -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = depd - -/** - * Create deprecate for namespace in caller. - */ - -function depd (namespace) { - if (!namespace) { - throw new TypeError('argument namespace is required') - } - - function deprecate (message) { - // no-op in browser - } - - deprecate._file = undefined - deprecate._ignored = true - deprecate._namespace = namespace - deprecate._traced = false - deprecate._warned = Object.create(null) - - deprecate.function = wrapfunction - deprecate.property = wrapproperty - - return deprecate -} - -/** - * Return a wrapped function in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapfunction (fn, message) { - if (typeof fn !== 'function') { - throw new TypeError('argument fn must be a function') - } - - return fn -} - -/** - * Wrap property in a deprecation message. - * - * This is a no-op version of the wrapper, which does nothing but call - * validation. - */ - -function wrapproperty (obj, prop, message) { - if (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) { - throw new TypeError('argument obj must be object') - } - - var descriptor = Object.getOwnPropertyDescriptor(obj, prop) - - if (!descriptor) { - throw new TypeError('must call property on owner object') - } - - if (!descriptor.configurable) { - throw new TypeError('property must be configurable') - } -} diff --git a/views/node_modules/depd/lib/compat/callsite-tostring.js b/views/node_modules/depd/lib/compat/callsite-tostring.js deleted file mode 100644 index 73186dc..0000000 --- a/views/node_modules/depd/lib/compat/callsite-tostring.js +++ /dev/null @@ -1,103 +0,0 @@ -/*! - * depd - * Copyright(c) 2014 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - */ - -module.exports = callSiteToString - -/** - * Format a CallSite file location to a string. - */ - -function callSiteFileLocation (callSite) { - var fileName - var fileLocation = '' - - if (callSite.isNative()) { - fileLocation = 'native' - } else if (callSite.isEval()) { - fileName = callSite.getScriptNameOrSourceURL() - if (!fileName) { - fileLocation = callSite.getEvalOrigin() - } - } else { - fileName = callSite.getFileName() - } - - if (fileName) { - fileLocation += fileName - - var lineNumber = callSite.getLineNumber() - if (lineNumber != null) { - fileLocation += ':' + lineNumber - - var columnNumber = callSite.getColumnNumber() - if (columnNumber) { - fileLocation += ':' + columnNumber - } - } - } - - return fileLocation || 'unknown source' -} - -/** - * Format a CallSite to a string. - */ - -function callSiteToString (callSite) { - var addSuffix = true - var fileLocation = callSiteFileLocation(callSite) - var functionName = callSite.getFunctionName() - var isConstructor = callSite.isConstructor() - var isMethodCall = !(callSite.isToplevel() || isConstructor) - var line = '' - - if (isMethodCall) { - var methodName = callSite.getMethodName() - var typeName = getConstructorName(callSite) - - if (functionName) { - if (typeName && functionName.indexOf(typeName) !== 0) { - line += typeName + '.' - } - - line += functionName - - if (methodName && functionName.lastIndexOf('.' + methodName) !== functionName.length - methodName.length - 1) { - line += ' [as ' + methodName + ']' - } - } else { - line += typeName + '.' + (methodName || '') - } - } else if (isConstructor) { - line += 'new ' + (functionName || '') - } else if (functionName) { - line += functionName - } else { - addSuffix = false - line += fileLocation - } - - if (addSuffix) { - line += ' (' + fileLocation + ')' - } - - return line -} - -/** - * Get constructor name of reviver. - */ - -function getConstructorName (obj) { - var receiver = obj.receiver - return (receiver.constructor && receiver.constructor.name) || null -} diff --git a/views/node_modules/depd/lib/compat/event-listener-count.js b/views/node_modules/depd/lib/compat/event-listener-count.js deleted file mode 100644 index 3a8925d..0000000 --- a/views/node_modules/depd/lib/compat/event-listener-count.js +++ /dev/null @@ -1,22 +0,0 @@ -/*! - * depd - * Copyright(c) 2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module exports. - * @public - */ - -module.exports = eventListenerCount - -/** - * Get the count of listeners on an event emitter of a specific type. - */ - -function eventListenerCount (emitter, type) { - return emitter.listeners(type).length -} diff --git a/views/node_modules/depd/lib/compat/index.js b/views/node_modules/depd/lib/compat/index.js deleted file mode 100644 index 955b333..0000000 --- a/views/node_modules/depd/lib/compat/index.js +++ /dev/null @@ -1,79 +0,0 @@ -/*! - * depd - * Copyright(c) 2014-2015 Douglas Christopher Wilson - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var EventEmitter = require('events').EventEmitter - -/** - * Module exports. - * @public - */ - -lazyProperty(module.exports, 'callSiteToString', function callSiteToString () { - var limit = Error.stackTraceLimit - var obj = {} - var prep = Error.prepareStackTrace - - function prepareObjectStackTrace (obj, stack) { - return stack - } - - Error.prepareStackTrace = prepareObjectStackTrace - Error.stackTraceLimit = 2 - - // capture the stack - Error.captureStackTrace(obj) - - // slice the stack - var stack = obj.stack.slice() - - Error.prepareStackTrace = prep - Error.stackTraceLimit = limit - - return stack[0].toString ? toString : require('./callsite-tostring') -}) - -lazyProperty(module.exports, 'eventListenerCount', function eventListenerCount () { - return EventEmitter.listenerCount || require('./event-listener-count') -}) - -/** - * Define a lazy property. - */ - -function lazyProperty (obj, prop, getter) { - function get () { - var val = getter() - - Object.defineProperty(obj, prop, { - configurable: true, - enumerable: true, - value: val - }) - - return val - } - - Object.defineProperty(obj, prop, { - configurable: true, - enumerable: true, - get: get - }) -} - -/** - * Call toString() on the obj - */ - -function toString (obj) { - return obj.toString() -} diff --git a/views/node_modules/depd/package.json b/views/node_modules/depd/package.json deleted file mode 100644 index 5e3c863..0000000 --- a/views/node_modules/depd/package.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "name": "depd", - "description": "Deprecate all the things", - "version": "1.1.2", - "author": "Douglas Christopher Wilson ", - "license": "MIT", - "keywords": [ - "deprecate", - "deprecated" - ], - "repository": "dougwilson/nodejs-depd", - "browser": "lib/browser/index.js", - "devDependencies": { - "benchmark": "2.1.4", - "beautify-benchmark": "0.2.4", - "eslint": "3.19.0", - "eslint-config-standard": "7.1.0", - "eslint-plugin-markdown": "1.0.0-beta.7", - "eslint-plugin-promise": "3.6.0", - "eslint-plugin-standard": "3.0.1", - "istanbul": "0.4.5", - "mocha": "~1.21.5" - }, - "files": [ - "lib/", - "History.md", - "LICENSE", - "index.js", - "Readme.md" - ], - "engines": { - "node": ">= 0.6" - }, - "scripts": { - "bench": "node benchmark/index.js", - "lint": "eslint --plugin markdown --ext js,md .", - "test": "mocha --reporter spec --bail test/", - "test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --no-exit test/", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/" - } -} diff --git a/views/node_modules/destroy/LICENSE b/views/node_modules/destroy/LICENSE deleted file mode 100644 index a7ae8ee..0000000 --- a/views/node_modules/destroy/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ - -The MIT License (MIT) - -Copyright (c) 2014 Jonathan Ong me@jongleberry.com - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/views/node_modules/destroy/README.md b/views/node_modules/destroy/README.md deleted file mode 100644 index 6474bc3..0000000 --- a/views/node_modules/destroy/README.md +++ /dev/null @@ -1,60 +0,0 @@ -# Destroy - -[![NPM version][npm-image]][npm-url] -[![Build status][travis-image]][travis-url] -[![Test coverage][coveralls-image]][coveralls-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] -[![Gittip][gittip-image]][gittip-url] - -Destroy a stream. - -This module is meant to ensure a stream gets destroyed, handling different APIs -and Node.js bugs. - -## API - -```js -var destroy = require('destroy') -``` - -### destroy(stream) - -Destroy the given stream. In most cases, this is identical to a simple -`stream.destroy()` call. The rules are as follows for a given stream: - - 1. If the `stream` is an instance of `ReadStream`, then call `stream.destroy()` - and add a listener to the `open` event to call `stream.close()` if it is - fired. This is for a Node.js bug that will leak a file descriptor if - `.destroy()` is called before `open`. - 2. If the `stream` is not an instance of `Stream`, then nothing happens. - 3. If the `stream` has a `.destroy()` method, then call it. - -The function returns the `stream` passed in as the argument. - -## Example - -```js -var destroy = require('destroy') - -var fs = require('fs') -var stream = fs.createReadStream('package.json') - -// ... and later -destroy(stream) -``` - -[npm-image]: https://img.shields.io/npm/v/destroy.svg?style=flat-square -[npm-url]: https://npmjs.org/package/destroy -[github-tag]: http://img.shields.io/github/tag/stream-utils/destroy.svg?style=flat-square -[github-url]: https://github.com/stream-utils/destroy/tags -[travis-image]: https://img.shields.io/travis/stream-utils/destroy.svg?style=flat-square -[travis-url]: https://travis-ci.org/stream-utils/destroy -[coveralls-image]: https://img.shields.io/coveralls/stream-utils/destroy.svg?style=flat-square -[coveralls-url]: https://coveralls.io/r/stream-utils/destroy?branch=master -[license-image]: http://img.shields.io/npm/l/destroy.svg?style=flat-square -[license-url]: LICENSE.md -[downloads-image]: http://img.shields.io/npm/dm/destroy.svg?style=flat-square -[downloads-url]: https://npmjs.org/package/destroy -[gittip-image]: https://img.shields.io/gittip/jonathanong.svg?style=flat-square -[gittip-url]: https://www.gittip.com/jonathanong/ diff --git a/views/node_modules/destroy/index.js b/views/node_modules/destroy/index.js deleted file mode 100644 index 6da2d26..0000000 --- a/views/node_modules/destroy/index.js +++ /dev/null @@ -1,75 +0,0 @@ -/*! - * destroy - * Copyright(c) 2014 Jonathan Ong - * MIT Licensed - */ - -'use strict' - -/** - * Module dependencies. - * @private - */ - -var ReadStream = require('fs').ReadStream -var Stream = require('stream') - -/** - * Module exports. - * @public - */ - -module.exports = destroy - -/** - * Destroy a stream. - * - * @param {object} stream - * @public - */ - -function destroy(stream) { - if (stream instanceof ReadStream) { - return destroyReadStream(stream) - } - - if (!(stream instanceof Stream)) { - return stream - } - - if (typeof stream.destroy === 'function') { - stream.destroy() - } - - return stream -} - -/** - * Destroy a ReadStream. - * - * @param {object} stream - * @private - */ - -function destroyReadStream(stream) { - stream.destroy() - - if (typeof stream.close === 'function') { - // node.js core bug work-around - stream.on('open', onOpenClose) - } - - return stream -} - -/** - * On open handler to close stream. - * @private - */ - -function onOpenClose() { - if (typeof this.fd === 'number') { - // actually close down the fd - this.close() - } -} diff --git a/views/node_modules/destroy/package.json b/views/node_modules/destroy/package.json deleted file mode 100644 index 024bff9..0000000 --- a/views/node_modules/destroy/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "destroy", - "description": "destroy a stream if possible", - "version": "1.0.4", - "author": { - "name": "Jonathan Ong", - "email": "me@jongleberry.com", - "url": "http://jongleberry.com", - "twitter": "https://twitter.com/jongleberry" - }, - "contributors": [ - "Douglas Christopher Wilson " - ], - "license": "MIT", - "repository": "stream-utils/destroy", - "devDependencies": { - "istanbul": "0.4.2", - "mocha": "2.3.4" - }, - "scripts": { - "test": "mocha --reporter spec", - "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot", - "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot" - }, - "files": [ - "index.js", - "LICENSE" - ], - "keywords": [ - "stream", - "streams", - "destroy", - "cleanup", - "leak", - "fd" - ] -} diff --git a/views/node_modules/doctypes/.npmignore b/views/node_modules/doctypes/.npmignore deleted file mode 100644 index b83202d..0000000 --- a/views/node_modules/doctypes/.npmignore +++ /dev/null @@ -1,13 +0,0 @@ -lib-cov -*.seed -*.log -*.csv -*.dat -*.out -*.pid -*.gz -pids -logs -results -npm-debug.log -node_modules diff --git a/views/node_modules/doctypes/.travis.yml b/views/node_modules/doctypes/.travis.yml deleted file mode 100644 index 6e5919d..0000000 --- a/views/node_modules/doctypes/.travis.yml +++ /dev/null @@ -1,3 +0,0 @@ -language: node_js -node_js: - - "0.10" diff --git a/views/node_modules/doctypes/HISTORY.md b/views/node_modules/doctypes/HISTORY.md deleted file mode 100644 index d99fd34..0000000 --- a/views/node_modules/doctypes/HISTORY.md +++ /dev/null @@ -1,14 +0,0 @@ -# Change log - -## 1.1.0 / 2016-08-10 - -- Bump minor (to fix a packaging error in 1.0.1) -- Update plist doctype - -## 1.0.1 / 2016-08-09 - -- Add property list doctype - -## 1.0.0 / 2015-01-22 - -- Initial release diff --git a/views/node_modules/doctypes/LICENSE b/views/node_modules/doctypes/LICENSE deleted file mode 100644 index a1421ff..0000000 --- a/views/node_modules/doctypes/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2015 Forbes Lindesay - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/views/node_modules/doctypes/README.md b/views/node_modules/doctypes/README.md deleted file mode 100644 index 08013ab..0000000 --- a/views/node_modules/doctypes/README.md +++ /dev/null @@ -1,24 +0,0 @@ -# doctypes - -Shorthands for commonly used doctypes - -[![Build Status](https://img.shields.io/travis/pugjs/doctypes/master.svg)](https://travis-ci.org/pugjs/doctypes) -[![NPM version](https://img.shields.io/npm/v/doctypes.svg)](https://www.npmjs.org/package/doctypes) - -## Installation - - npm install doctypes - -## Usage - -```js -var assert = require('assert'); -var doctypes = require('doctypes'); - -assert(doctypes['html'] === ''); -assert(doctypes['xml'] === ''); -``` - -## License - - MIT diff --git a/views/node_modules/doctypes/index.js b/views/node_modules/doctypes/index.js deleted file mode 100644 index 9e0f52d..0000000 --- a/views/node_modules/doctypes/index.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -module.exports = { - 'html': '', - 'xml': '', - 'transitional': '', - 'strict': '', - 'frameset': '', - '1.1': '', - 'basic': '', - 'mobile': '', - 'plist': '' -}; diff --git a/views/node_modules/doctypes/package.json b/views/node_modules/doctypes/package.json deleted file mode 100644 index 704b9d5..0000000 --- a/views/node_modules/doctypes/package.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "doctypes", - "version": "1.1.0", - "description": "Shorthands for commonly used doctypes", - "keywords": [ - "doctype" - ], - "dependencies": {}, - "devDependencies": {}, - "scripts": { - "test": "node test" - }, - "repository": { - "type": "git", - "url": "https://github.com/pugjs/doctypes.git" - }, - "author": "ForbesLindesay", - "license": "MIT" -} diff --git a/views/node_modules/doctypes/test.js b/views/node_modules/doctypes/test.js deleted file mode 100644 index 7ef4b09..0000000 --- a/views/node_modules/doctypes/test.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var assert = require('assert'); -var doctypes = require('./'); - -assert(doctypes['html'] === ''); -assert(doctypes['xml'] === ''); - -console.log('tests passed'); diff --git a/views/node_modules/dotenv/CHANGELOG.md b/views/node_modules/dotenv/CHANGELOG.md deleted file mode 100644 index 7bf933b..0000000 --- a/views/node_modules/dotenv/CHANGELOG.md +++ /dev/null @@ -1,155 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. - -## [8.2.0](https://github.com/motdotla/dotenv/compare/v8.1.0...v8.2.0) (2019-10-16) - -## [8.1.0](https://github.com/motdotla/dotenv/compare/v7.0.0...v8.1.0) (2019-08-18) - - -### ⚠ BREAKING CHANGES - -* dropping Node v6 support because end-of-life - -* Drop support for Node v6 (#392) ([2e9636a](https://github.com/motdotla/dotenv/commit/2e9636a)), closes [#392](https://github.com/motdotla/dotenv/issues/392) - -# [8.0.0](https://github.com/motdotla/dotenv/compare/v7.0.0...v8.0.0) (2019-05-02) - -- Drop support for Node v6 (#392) ([2e9636a](https://github.com/motdotla/dotenv/commit/2e9636a)), closes [#392](https://github.com/motdotla/dotenv/issues/392) - -### BREAKING CHANGES - -- dropping Node v6 support because end-of-life - -## [7.0.0] - 2019-03-12 - -### Fixed - -- Fix removing unbalanced quotes ([#376](https://github.com/motdotla/dotenv/pull/376)) - -### Removed - -- Removed `load` alias for `config` for consistency throughout code and documentation. - -## [6.2.0] - 2018-12-03 - -### Added - -- Support preload configuration via environment variables ([#351](https://github.com/motdotla/dotenv/issues/351)) - -## [6.1.0] - 2018-10-08 - -### Added - -- `debug` option for `config` and `parse` methods will turn on logging - -## [6.0.0] - 2018-06-02 - -### Changed - -- _Breaking:_ drop support for Node v4 ([#304](https://github.com/motdotla/dotenv/pull/304)) - -## [5.0.0] - 2018-01-29 - -### Added - -- Testing against Node v8 and v9 -- Documentation on trim behavior of values -- Documentation on how to use with `import` - -### Changed - -- _Breaking_: default `path` is now `path.resolve(process.cwd(), '.env')` -- _Breaking_: does not write over keys already in `process.env` if the key has a falsy value -- using `const` and `let` instead of `var` - -### Removed - -- Testing against Node v7 - -## [4.0.0] - 2016-12-23 - -### Changed - -- Return Object with parsed content or error instead of false ([#165](https://github.com/motdotla/dotenv/pull/165)). - -### Removed - -- `verbose` option removed in favor of returning result. - -## [3.0.0] - 2016-12-20 - -### Added - -- `verbose` option will log any error messages. Off by default. -- parses email addresses correctly -- allow importing config method directly in ES6 - -### Changed - -- Suppress error messages by default ([#154](https://github.com/motdotla/dotenv/pull/154)) -- Ignoring more files for NPM to make package download smaller - -### Fixed - -- False positive test due to case-sensitive variable ([#124](https://github.com/motdotla/dotenv/pull/124)) - -### Removed - -- `silent` option removed in favor of `verbose` - -## [2.0.0] - 2016-01-20 - -### Added - -- CHANGELOG to ["make it easier for users and contributors to see precisely what notable changes have been made between each release"](http://keepachangelog.com/). Linked to from README -- LICENSE to be more explicit about what was defined in `package.json`. Linked to from README -- Testing nodejs v4 on travis-ci -- added examples of how to use dotenv in different ways -- return parsed object on success rather than boolean true - -### Changed - -- README has shorter description not referencing ruby gem since we don't have or want feature parity - -### Removed - -- Variable expansion and escaping so environment variables are encouraged to be fully orthogonal - -## [1.2.0] - 2015-06-20 - -### Added - -- Preload hook to require dotenv without including it in your code - -### Changed - -- clarified license to be "BSD-2-Clause" in `package.json` - -### Fixed - -- retain spaces in string vars - -## [1.1.0] - 2015-03-31 - -### Added - -- Silent option to silence `console.log` when `.env` missing - -## [1.0.0] - 2015-03-13 - -### Removed - -- support for multiple `.env` files. should always use one `.env` file for the current environment - -[7.0.0]: https://github.com/motdotla/dotenv/compare/v6.2.0...v7.0.0 -[6.2.0]: https://github.com/motdotla/dotenv/compare/v6.1.0...v6.2.0 -[6.1.0]: https://github.com/motdotla/dotenv/compare/v6.0.0...v6.1.0 -[6.0.0]: https://github.com/motdotla/dotenv/compare/v5.0.0...v6.0.0 -[5.0.0]: https://github.com/motdotla/dotenv/compare/v4.0.0...v5.0.0 -[4.0.0]: https://github.com/motdotla/dotenv/compare/v3.0.0...v4.0.0 -[3.0.0]: https://github.com/motdotla/dotenv/compare/v2.0.0...v3.0.0 -[2.0.0]: https://github.com/motdotla/dotenv/compare/v1.2.0...v2.0.0 -[1.2.0]: https://github.com/motdotla/dotenv/compare/v1.1.0...v1.2.0 -[1.1.0]: https://github.com/motdotla/dotenv/compare/v1.0.0...v1.1.0 -[1.0.0]: https://github.com/motdotla/dotenv/compare/v0.4.0...v1.0.0 diff --git a/views/node_modules/dotenv/LICENSE b/views/node_modules/dotenv/LICENSE deleted file mode 100644 index c430ad8..0000000 --- a/views/node_modules/dotenv/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2015, Scott Motte -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/views/node_modules/dotenv/README.md b/views/node_modules/dotenv/README.md deleted file mode 100644 index cf65c9e..0000000 --- a/views/node_modules/dotenv/README.md +++ /dev/null @@ -1,271 +0,0 @@ -# dotenv - -dotenv - -Dotenv is a zero-dependency module that loads environment variables from a `.env` file into [`process.env`](https://nodejs.org/docs/latest/api/process.html#process_process_env). Storing configuration in the environment separate from code is based on [The Twelve-Factor App](http://12factor.net/config) methodology. - -[![BuildStatus](https://img.shields.io/travis/motdotla/dotenv/master.svg?style=flat-square)](https://travis-ci.org/motdotla/dotenv) -[![Build status](https://ci.appveyor.com/api/projects/status/github/motdotla/dotenv?svg=true)](https://ci.appveyor.com/project/motdotla/dotenv/branch/master) -[![NPM version](https://img.shields.io/npm/v/dotenv.svg?style=flat-square)](https://www.npmjs.com/package/dotenv) -[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard) -[![Coverage Status](https://img.shields.io/coveralls/motdotla/dotenv/master.svg?style=flat-square)](https://coveralls.io/github/motdotla/dotenv?branch=coverall-intergration) -[![LICENSE](https://img.shields.io/github/license/motdotla/dotenv.svg)](LICENSE) -[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org) - -## Install - -```bash -# with npm -npm install dotenv - -# or with Yarn -yarn add dotenv -``` - -## Usage - -As early as possible in your application, require and configure dotenv. - -```javascript -require('dotenv').config() -``` - -Create a `.env` file in the root directory of your project. Add -environment-specific variables on new lines in the form of `NAME=VALUE`. -For example: - -```dosini -DB_HOST=localhost -DB_USER=root -DB_PASS=s1mpl3 -``` - -`process.env` now has the keys and values you defined in your `.env` file. - -```javascript -const db = require('db') -db.connect({ - host: process.env.DB_HOST, - username: process.env.DB_USER, - password: process.env.DB_PASS -}) -``` - -### Preload - -You can use the `--require` (`-r`) [command line option](https://nodejs.org/api/cli.html#cli_r_require_module) to preload dotenv. By doing this, you do not need to require and load dotenv in your application code. This is the preferred approach when using `import` instead of `require`. - -```bash -$ node -r dotenv/config your_script.js -``` - -The configuration options below are supported as command line arguments in the format `dotenv_config_